trtc-sdk-v5 5.14.2-wasm.2 → 5.14.2-wasm.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/trtc.esm.js CHANGED
@@ -1,15 +1,14 @@
1
- var eS=Object.create;var Da=Object.defineProperty,tS=Object.defineProperties,bg=Object.getOwnPropertyDescriptor,rS=Object.getOwnPropertyDescriptors,iS=Object.getOwnPropertyNames,xd=Object.getOwnPropertySymbols,Ag=Object.getPrototypeOf,Lh=Object.prototype.hasOwnProperty,vg=Object.prototype.propertyIsEnumerable,oS=Reflect.get;var ki=Math.pow,kh=(i,t,e)=>t in i?Da(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,be=(i,t)=>{for(var e in t||(t={}))Lh.call(t,e)&&kh(i,e,t[e]);if(xd)for(var e of xd(t))vg.call(t,e)&&kh(i,e,t[e]);return i},qe=(i,t)=>tS(i,rS(t));var Oa=(i=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(i,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):i)(function(i){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var Rg=(i,t)=>{var e={};for(var r in i)Lh.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&xd)for(var r of xd(i))t.indexOf(r)<0&&vg.call(i,r)&&(e[r]=i[r]);return e};var vn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),eo=(i,t)=>{for(var e in t)Da(i,e,{get:t[e],enumerable:!0})},sS=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of iS(t))!Lh.call(i,o)&&o!==e&&Da(i,o,{get:()=>t[o],enumerable:!(r=bg(t,o))||r.enumerable});return i};var Li=(i,t,e)=>(e=i!=null?eS(Ag(i)):{},sS(t||!i||!i.__esModule?Da(e,"default",{value:i,enumerable:!0}):e,i));var Ie=(i,t,e,r)=>{for(var o=r>1?void 0:r?bg(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&Da(t,e,o),o};var p=(i,t,e)=>kh(i,typeof t!="symbol"?t+"":t,e);var Er=(i,t,e)=>oS(Ag(i),e,t);var D=(i,t,e)=>new Promise((r,o)=>{var s=c=>{try{a(e.next(c))}catch(d){o(d)}},n=c=>{try{a(e.throw(c))}catch(d){o(d)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(s,n);a((e=e.apply(i,t)).next())});var mo=vn((yC,Am)=>{"use strict";var yI=Object.prototype.hasOwnProperty,Lr="~";function ic(){}Object.create&&(ic.prototype=Object.create(null),new ic().__proto__||(Lr=!1));function SI(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function p_(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new SI(e,r||i,o),n=Lr?Lr+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function bu(i,t){--i._eventsCount===0?i._events=new ic:delete i._events[t]}function Dr(){this._events=new ic,this._eventsCount=0}Dr.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)yI.call(e,r)&&t.push(Lr?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Dr.prototype.listeners=function(t){var e=Lr?Lr+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Dr.prototype.listenerCount=function(t){var e=Lr?Lr+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Dr.prototype.emit=function(t,e,r,o,s,n){var a=Lr?Lr+t:t;if(!this._events[a])return!1;var c=this._events[a],d=arguments.length,m,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,r),!0;case 4:return c.fn.call(c.context,e,r,o),!0;case 5:return c.fn.call(c.context,e,r,o,s),!0;case 6:return c.fn.call(c.context,e,r,o,s,n),!0}for(l=1,m=new Array(d-1);l<d;l++)m[l-1]=arguments[l];c.fn.apply(c.context,m)}else{var f=c.length,g;for(l=0;l<f;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),d){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,e);break;case 3:c[l].fn.call(c[l].context,e,r);break;case 4:c[l].fn.call(c[l].context,e,r,o);break;default:if(!m)for(g=1,m=new Array(d-1);g<d;g++)m[g-1]=arguments[g];c[l].fn.apply(c[l].context,m)}}return!0};Dr.prototype.on=function(t,e,r){return p_(this,t,e,r,!1)};Dr.prototype.once=function(t,e,r){return p_(this,t,e,r,!0)};Dr.prototype.removeListener=function(t,e,r,o){var s=Lr?Lr+t:t;if(!this._events[s])return this;if(!e)return bu(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&bu(this,s);else{for(var a=0,c=[],d=n.length;a<d;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&c.push(n[a]);c.length?this._events[s]=c.length===1?c[0]:c:bu(this,s)}return this};Dr.prototype.removeAllListeners=function(t){var e;return t?(e=Lr?Lr+t:t,this._events[e]&&bu(this,e)):(this._events=new ic,this._eventsCount=0),this};Dr.prototype.off=Dr.prototype.removeListener;Dr.prototype.addListener=Dr.prototype.on;Dr.prefixed=Lr;Dr.EventEmitter=Dr;typeof Am!="undefined"&&(Am.exports=Dr)});var Ou=vn((iw,C_)=>{"use strict";var R_=C_.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(R_).forEach(function(i){var t=R_[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var D_=vn(_o=>{"use strict";var Zn=function(i){return String(Number(i))===i?Number(i):i},NI=function(i,t,e,r){if(r&&!e)t[r]=Zn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Zn(i[o+1]))},DI=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;NI(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},w_=Ou(),OI=RegExp.prototype.test.bind(/^([a-z])=(.*)/);_o.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(OI).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<(w_[s]||[]).length;a+=1){var c=w_[s][a];if(c.reg.test(n))return DI(c,r,n)}}),t.media=e,t};var N_=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Zn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};_o.parseParams=function(i){return i.split(/;\s?/).reduce(N_,{})};_o.parseFmtpConfig=_o.parseParams;_o.parsePayloads=function(i){return i.toString().split(" ").map(Number)};_o.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Zn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};_o.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(N_,{})})};_o.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Zn(e):(r=Zn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var M_=vn((sw,O_)=>{"use strict";var Fm=Ou(),MI=/%[sdv%]/g,xI=function(i){var t=1,e=arguments,r=e.length;return i.replace(MI,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},hc=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return xI.apply(null,o)},kI=["v","o","s","i","u","e","p","c","b","t","r","z","a"],LI=["i","c","b","a"];O_.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||kI,r=t.innerOrder||LI,o=[];return e.forEach(function(s){Fm[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(hc(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(hc(s,n,a))})})}),i.media.forEach(function(s){o.push(hc("m",Fm.m[0],s)),r.forEach(function(n){Fm[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(hc(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(c){o.push(hc(n,a,c))})})})}),o.join(`\r
1
+ var JT=Object.create;var da=Object.defineProperty,XT=Object.defineProperties,xf=Object.getOwnPropertyDescriptor,QT=Object.getOwnPropertyDescriptors,YT=Object.getOwnPropertyNames,dd=Object.getOwnPropertySymbols,Pf=Object.getPrototypeOf,rm=Object.prototype.hasOwnProperty,Lf=Object.prototype.propertyIsEnumerable,ZT=Reflect.get;var ri=Math.pow,tm=(i,t,e)=>t in i?da(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Y=(i,t)=>{for(var e in t||(t={}))rm.call(t,e)&&tm(i,e,t[e]);if(dd)for(var e of dd(t))Lf.call(t,e)&&tm(i,e,t[e]);return i},_e=(i,t)=>XT(i,QT(t));var kf=(i,t)=>{var e={};for(var r in i)rm.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&dd)for(var r of dd(i))t.indexOf(r)<0&&Lf.call(i,r)&&(e[r]=i[r]);return e};var ua=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),yi=(i,t)=>{for(var e in t)da(i,e,{get:t[e],enumerable:!0})},KT=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of YT(t))!rm.call(i,o)&&o!==e&&da(i,o,{get:()=>t[o],enumerable:!(r=xf(t,o))||r.enumerable});return i};var bi=(i,t,e)=>(e=i!=null?JT(Pf(i)):{},KT(t||!i||!i.__esModule?da(e,"default",{value:i,enumerable:!0}):e,i));var Z=(i,t,e,r)=>{for(var o=r>1?void 0:r?xf(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&da(t,e,o),o};var m=(i,t,e)=>tm(i,typeof t!="symbol"?t+"":t,e);var wt=(i,t,e)=>ZT(Pf(i),e,t);var y=(i,t,e)=>new Promise((r,o)=>{var s=d=>{try{a(e.next(d))}catch(l){o(l)}},n=d=>{try{a(e.throw(d))}catch(l){o(l)}},a=d=>d.done?r(d.value):Promise.resolve(d.value).then(s,n);a((e=e.apply(i,t)).next())});var ki=ua((hC,jm)=>{"use strict";var pS=Object.prototype.hasOwnProperty,Zt="~";function ka(){}Object.create&&(ka.prototype=Object.create(null),new ka().__proto__||(Zt=!1));function fS(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function bg(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new fS(e,r||i,o),n=Zt?Zt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function Kd(i,t){--i._eventsCount===0?i._events=new ka:delete i._events[t]}function Xt(){this._events=new ka,this._eventsCount=0}Xt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)pS.call(e,r)&&t.push(Zt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Xt.prototype.listeners=function(t){var e=Zt?Zt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Xt.prototype.listenerCount=function(t){var e=Zt?Zt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Xt.prototype.emit=function(t,e,r,o,s,n){var a=Zt?Zt+t:t;if(!this._events[a])return!1;var d=this._events[a],l=arguments.length,p,f;if(d.fn){switch(d.once&&this.removeListener(t,d.fn,void 0,!0),l){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,e),!0;case 3:return d.fn.call(d.context,e,r),!0;case 4:return d.fn.call(d.context,e,r,o),!0;case 5:return d.fn.call(d.context,e,r,o,s),!0;case 6:return d.fn.call(d.context,e,r,o,s,n),!0}for(f=1,p=new Array(l-1);f<l;f++)p[f-1]=arguments[f];d.fn.apply(d.context,p)}else{var g=d.length,A;for(f=0;f<g;f++)switch(d[f].once&&this.removeListener(t,d[f].fn,void 0,!0),l){case 1:d[f].fn.call(d[f].context);break;case 2:d[f].fn.call(d[f].context,e);break;case 3:d[f].fn.call(d[f].context,e,r);break;case 4:d[f].fn.call(d[f].context,e,r,o);break;default:if(!p)for(A=1,p=new Array(l-1);A<l;A++)p[A-1]=arguments[A];d[f].fn.apply(d[f].context,p)}}return!0};Xt.prototype.on=function(t,e,r){return bg(this,t,e,r,!1)};Xt.prototype.once=function(t,e,r){return bg(this,t,e,r,!0)};Xt.prototype.removeListener=function(t,e,r,o){var s=Zt?Zt+t:t;if(!this._events[s])return this;if(!e)return Kd(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&Kd(this,s);else{for(var a=0,d=[],l=n.length;a<l;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&d.push(n[a]);d.length?this._events[s]=d.length===1?d[0]:d:Kd(this,s)}return this};Xt.prototype.removeAllListeners=function(t){var e;return t?(e=Zt?Zt+t:t,this._events[e]&&Kd(this,e)):(this._events=new ka,this._eventsCount=0),this};Xt.prototype.off=Xt.prototype.removeListener;Xt.prototype.addListener=Xt.prototype.on;Xt.prefixed=Zt;Xt.EventEmitter=Xt;typeof jm!="undefined"&&(jm.exports=Xt)});var cu=ua((QC,Ug)=>{"use strict";var kg=Ug.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(kg).forEach(function(i){var t=kg[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Bg=ua($i=>{"use strict";var vn=function(i){return String(Number(i))===i?Number(i):i},yS=function(i,t,e,r){if(r&&!e)t[r]=vn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=vn(i[o+1]))},bS=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;yS(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},Vg=cu(),RS=RegExp.prototype.test.bind(/^([a-z])=(.*)/);$i.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(RS).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<(Vg[s]||[]).length;a+=1){var d=Vg[s][a];if(d.reg.test(n))return bS(d,r,n)}}),t.media=e,t};var Fg=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=vn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};$i.parseParams=function(i){return i.split(/;\s?/).reduce(Fg,{})};$i.parseFmtpConfig=$i.parseParams;$i.parsePayloads=function(i){return i.toString().split(" ").map(Number)};$i.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(vn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};$i.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Fg,{})})};$i.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=vn(e):(r=vn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Hg=ua((ZC,$g)=>{"use strict";var ch=cu(),vS=/%[sdv%]/g,CS=function(i){var t=1,e=arguments,r=e.length;return i.replace(vS,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},ja=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return CS.apply(null,o)},NS=["v","o","s","i","u","e","p","c","b","t","r","z","a"],DS=["i","c","b","a"];$g.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||NS,r=t.innerOrder||DS,o=[];return e.forEach(function(s){ch[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(ja(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(ja(s,n,a))})})}),i.media.forEach(function(s){o.push(ja("m",ch.m[0],s)),r.forEach(function(n){ch[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(ja(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(d){o.push(ja(n,a,d))})})})}),o.join(`\r
2
2
  `)+`\r
3
- `}});var x_=vn(Fi=>{"use strict";var Ws=D_(),PI=M_(),UI=Ou();Fi.grammar=UI;Fi.write=PI;Fi.parse=Ws.parse;Fi.parseParams=Ws.parseParams;Fi.parseFmtpConfig=Ws.parseFmtpConfig;Fi.parsePayloads=Ws.parsePayloads;Fi.parseRemoteCandidates=Ws.parseRemoteCandidates;Fi.parseImageAttributes=Ws.parseImageAttributes;Fi.parseSimulcastStreamList=Ws.parseSimulcastStreamList});var hy=vn((ly,Zf)=>{"use strict";(function(i){typeof ly=="object"&&typeof Zf!="undefined"?Zf.exports=i():typeof define=="function"&&define.amd?define([],i):(typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:this).JSZip=i()})(function(){return function i(t,e,r){function o(a,c){if(!e[a]){if(!t[a]){var d=typeof Oa=="function"&&Oa;if(!c&&d)return d(a,!0);if(s)return s(a,!0);var m=new Error("Cannot find module '"+a+"'");throw m.code="MODULE_NOT_FOUND",m}var l=e[a]={exports:{}};t[a][0].call(l.exports,function(f){var g=t[a][1][f];return o(g||f)},l,l.exports,i,t,e,r)}return e[a].exports}for(var s=typeof Oa=="function"&&Oa,n=0;n<r.length;n++)o(r[n]);return o}({1:[function(i,t,e){"use strict";var r=i("./utils"),o=i("./support"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.encode=function(n){for(var a,c,d,m,l,f,g,T=[],E=0,y=n.length,v=y,M=r.getTypeOf(n)!=="string";E<n.length;)v=y-E,d=M?(a=n[E++],c=E<y?n[E++]:0,E<y?n[E++]:0):(a=n.charCodeAt(E++),c=E<y?n.charCodeAt(E++):0,E<y?n.charCodeAt(E++):0),m=a>>2,l=(3&a)<<4|c>>4,f=1<v?(15&c)<<2|d>>6:64,g=2<v?63&d:64,T.push(s.charAt(m)+s.charAt(l)+s.charAt(f)+s.charAt(g));return T.join("")},e.decode=function(n){var a,c,d,m,l,f,g=0,T=0,E="data:";if(n.substr(0,E.length)===E)throw new Error("Invalid base64 input, it looks like a data url.");var y,v=3*(n=n.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(n.charAt(n.length-1)===s.charAt(64)&&v--,n.charAt(n.length-2)===s.charAt(64)&&v--,v%1!=0)throw new Error("Invalid base64 input, bad content length.");for(y=o.uint8array?new Uint8Array(0|v):new Array(0|v);g<n.length;)a=s.indexOf(n.charAt(g++))<<2|(m=s.indexOf(n.charAt(g++)))>>4,c=(15&m)<<4|(l=s.indexOf(n.charAt(g++)))>>2,d=(3&l)<<6|(f=s.indexOf(n.charAt(g++))),y[T++]=a,l!==64&&(y[T++]=c),f!==64&&(y[T++]=d);return y}},{"./support":30,"./utils":32}],2:[function(i,t,e){"use strict";var r=i("./external"),o=i("./stream/DataWorker"),s=i("./stream/Crc32Probe"),n=i("./stream/DataLengthProbe");function a(c,d,m,l,f){this.compressedSize=c,this.uncompressedSize=d,this.crc32=m,this.compression=l,this.compressedContent=f}a.prototype={getContentWorker:function(){var c=new o(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new n("data_length")),d=this;return c.on("end",function(){if(this.streamInfo.data_length!==d.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),c},getCompressedWorker:function(){return new o(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(c,d,m){return c.pipe(new s).pipe(new n("uncompressedSize")).pipe(d.compressWorker(m)).pipe(new n("compressedSize")).withStreamInfo("compression",d)},t.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(i,t,e){"use strict";var r=i("./stream/GenericWorker");e.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},e.DEFLATE=i("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(i,t,e){"use strict";var r=i("./utils"),o=function(){for(var s,n=[],a=0;a<256;a++){s=a;for(var c=0;c<8;c++)s=1&s?3988292384^s>>>1:s>>>1;n[a]=s}return n}();t.exports=function(s,n){return s!==void 0&&s.length?r.getTypeOf(s)!=="string"?function(a,c,d,m){var l=o,f=m+d;a^=-1;for(var g=m;g<f;g++)a=a>>>8^l[255&(a^c[g])];return-1^a}(0|n,s,s.length,0):function(a,c,d,m){var l=o,f=m+d;a^=-1;for(var g=m;g<f;g++)a=a>>>8^l[255&(a^c.charCodeAt(g))];return-1^a}(0|n,s,s.length,0):0}},{"./utils":32}],5:[function(i,t,e){"use strict";e.base64=!1,e.binary=!1,e.dir=!1,e.createFolders=!0,e.date=null,e.compression=null,e.compressionOptions=null,e.comment=null,e.unixPermissions=null,e.dosPermissions=null},{}],6:[function(i,t,e){"use strict";var r=null;r=typeof Promise!="undefined"?Promise:i("lie"),t.exports={Promise:r}},{lie:37}],7:[function(i,t,e){"use strict";var r=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",o=i("pako"),s=i("./utils"),n=i("./stream/GenericWorker"),a=r?"uint8array":"array";function c(d,m){n.call(this,"FlateWorker/"+d),this._pako=null,this._pakoAction=d,this._pakoOptions=m,this.meta={}}e.magic="\b\0",s.inherits(c,n),c.prototype.processChunk=function(d){this.meta=d.meta,this._pako===null&&this._createPako(),this._pako.push(s.transformTo(a,d.data),!1)},c.prototype.flush=function(){n.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var d=this;this._pako.onData=function(m){d.push({data:m,meta:d.meta})}},e.compressWorker=function(d){return new c("Deflate",d)},e.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(i,t,e){"use strict";function r(l,f){var g,T="";for(g=0;g<f;g++)T+=String.fromCharCode(255&l),l>>>=8;return T}function o(l,f,g,T,E,y){var v,M,w=l.file,H=l.compression,B=y!==a.utf8encode,P=s.transformTo("string",y(w.name)),$=s.transformTo("string",a.utf8encode(w.name)),de=w.comment,Ae=s.transformTo("string",y(de)),L=s.transformTo("string",a.utf8encode(de)),te=$.length!==w.name.length,A=L.length!==de.length,le="",He="",ge="",ze=w.dir,me=w.date,re={crc32:0,compressedSize:0,uncompressedSize:0};f&&!g||(re.crc32=l.crc32,re.compressedSize=l.compressedSize,re.uncompressedSize=l.uncompressedSize);var Q=0;f&&(Q|=8),B||!te&&!A||(Q|=2048);var q=0,Be=0;ze&&(q|=16),E==="UNIX"?(Be=798,q|=function(ne,Ze){var yt=ne;return ne||(yt=Ze?16893:33204),(65535&yt)<<16}(w.unixPermissions,ze)):(Be=20,q|=function(ne){return 63&(ne||0)}(w.dosPermissions)),v=me.getUTCHours(),v<<=6,v|=me.getUTCMinutes(),v<<=5,v|=me.getUTCSeconds()/2,M=me.getUTCFullYear()-1980,M<<=4,M|=me.getUTCMonth()+1,M<<=5,M|=me.getUTCDate(),te&&(He=r(1,1)+r(c(P),4)+$,le+="up"+r(He.length,2)+He),A&&(ge=r(1,1)+r(c(Ae),4)+L,le+="uc"+r(ge.length,2)+ge);var De="";return De+=`
4
- \0`,De+=r(Q,2),De+=H.magic,De+=r(v,2),De+=r(M,2),De+=r(re.crc32,4),De+=r(re.compressedSize,4),De+=r(re.uncompressedSize,4),De+=r(P.length,2),De+=r(le.length,2),{fileRecord:d.LOCAL_FILE_HEADER+De+P+le,dirRecord:d.CENTRAL_FILE_HEADER+r(Be,2)+De+r(Ae.length,2)+"\0\0\0\0"+r(q,4)+r(T,4)+P+le+Ae}}var s=i("../utils"),n=i("../stream/GenericWorker"),a=i("../utf8"),c=i("../crc32"),d=i("../signature");function m(l,f,g,T){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=f,this.zipPlatform=g,this.encodeFileName=T,this.streamFiles=l,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(m,n),m.prototype.push=function(l){var f=l.meta.percent||0,g=this.entriesCount,T=this._sources.length;this.accumulate?this.contentBuffer.push(l):(this.bytesWritten+=l.data.length,n.prototype.push.call(this,{data:l.data,meta:{currentFile:this.currentFile,percent:g?(f+100*(g-T-1))/g:100}}))},m.prototype.openedSource=function(l){this.currentSourceOffset=this.bytesWritten,this.currentFile=l.file.name;var f=this.streamFiles&&!l.file.dir;if(f){var g=o(l,f,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:g.fileRecord,meta:{percent:0}})}else this.accumulate=!0},m.prototype.closedSource=function(l){this.accumulate=!1;var f=this.streamFiles&&!l.file.dir,g=o(l,f,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(g.dirRecord),f)this.push({data:function(T){return d.DATA_DESCRIPTOR+r(T.crc32,4)+r(T.compressedSize,4)+r(T.uncompressedSize,4)}(l),meta:{percent:100}});else for(this.push({data:g.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},m.prototype.flush=function(){for(var l=this.bytesWritten,f=0;f<this.dirRecords.length;f++)this.push({data:this.dirRecords[f],meta:{percent:100}});var g=this.bytesWritten-l,T=function(E,y,v,M,w){var H=s.transformTo("string",w(M));return d.CENTRAL_DIRECTORY_END+"\0\0\0\0"+r(E,2)+r(E,2)+r(y,4)+r(v,4)+r(H.length,2)+H}(this.dirRecords.length,g,l,this.zipComment,this.encodeFileName);this.push({data:T,meta:{percent:100}})},m.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},m.prototype.registerPrevious=function(l){this._sources.push(l);var f=this;return l.on("data",function(g){f.processChunk(g)}),l.on("end",function(){f.closedSource(f.previous.streamInfo),f._sources.length?f.prepareNextSource():f.end()}),l.on("error",function(g){f.error(g)}),this},m.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},m.prototype.error=function(l){var f=this._sources;if(!n.prototype.error.call(this,l))return!1;for(var g=0;g<f.length;g++)try{f[g].error(l)}catch(T){}return!0},m.prototype.lock=function(){n.prototype.lock.call(this);for(var l=this._sources,f=0;f<l.length;f++)l[f].lock()},t.exports=m},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(i,t,e){"use strict";var r=i("../compressions"),o=i("./ZipFileWorker");e.generateWorker=function(s,n,a){var c=new o(n.streamFiles,a,n.platform,n.encodeFileName),d=0;try{s.forEach(function(m,l){d++;var f=function(y,v){var M=y||v,w=r[M];if(!w)throw new Error(M+" is not a valid compression method !");return w}(l.options.compression,n.compression),g=l.options.compressionOptions||n.compressionOptions||{},T=l.dir,E=l.date;l._compressWorker(f,g).withStreamInfo("file",{name:m,dir:T,date:E,comment:l.comment||"",unixPermissions:l.unixPermissions,dosPermissions:l.dosPermissions}).pipe(c)}),c.entriesCount=d}catch(m){c.error(m)}return c}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(i,t,e){"use strict";function r(){if(!(this instanceof r))return new r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var o=new r;for(var s in this)typeof this[s]!="function"&&(o[s]=this[s]);return o}}(r.prototype=i("./object")).loadAsync=i("./load"),r.support=i("./support"),r.defaults=i("./defaults"),r.version="3.10.1",r.loadAsync=function(o,s){return new r().loadAsync(o,s)},r.external=i("./external"),t.exports=r},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(i,t,e){"use strict";var r=i("./utils"),o=i("./external"),s=i("./utf8"),n=i("./zipEntries"),a=i("./stream/Crc32Probe"),c=i("./nodejsUtils");function d(m){return new o.Promise(function(l,f){var g=m.decompressed.getContentWorker().pipe(new a);g.on("error",function(T){f(T)}).on("end",function(){g.streamInfo.crc32!==m.decompressed.crc32?f(new Error("Corrupted zip : CRC32 mismatch")):l()}).resume()})}t.exports=function(m,l){var f=this;return l=r.extend(l||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),c.isNode&&c.isStream(m)?o.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):r.prepareContent("the loaded zip file",m,!0,l.optimizedBinaryString,l.base64).then(function(g){var T=new n(l);return T.load(g),T}).then(function(g){var T=[o.Promise.resolve(g)],E=g.files;if(l.checkCRC32)for(var y=0;y<E.length;y++)T.push(d(E[y]));return o.Promise.all(T)}).then(function(g){for(var T=g.shift(),E=T.files,y=0;y<E.length;y++){var v=E[y],M=v.fileNameStr,w=r.resolve(v.fileNameStr);f.file(w,v.decompressed,{binary:!0,optimizedBinaryString:!0,date:v.date,dir:v.dir,comment:v.fileCommentStr.length?v.fileCommentStr:null,unixPermissions:v.unixPermissions,dosPermissions:v.dosPermissions,createFolders:l.createFolders}),v.dir||(f.file(w).unsafeOriginalName=M)}return T.zipComment.length&&(f.comment=T.zipComment),f})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(i,t,e){"use strict";var r=i("../utils"),o=i("../stream/GenericWorker");function s(n,a){o.call(this,"Nodejs stream input adapter for "+n),this._upstreamEnded=!1,this._bindStream(a)}r.inherits(s,o),s.prototype._bindStream=function(n){var a=this;(this._stream=n).pause(),n.on("data",function(c){a.push({data:c,meta:{percent:0}})}).on("error",function(c){a.isPaused?this.generatedError=c:a.error(c)}).on("end",function(){a.isPaused?a._upstreamEnded=!0:a.end()})},s.prototype.pause=function(){return!!o.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(i,t,e){"use strict";var r=i("readable-stream").Readable;function o(s,n,a){r.call(this,n),this._helper=s;var c=this;s.on("data",function(d,m){c.push(d)||c._helper.pause(),a&&a(m)}).on("error",function(d){c.emit("error",d)}).on("end",function(){c.push(null)})}i("../utils").inherits(o,r),o.prototype._read=function(){this._helper.resume()},t.exports=o},{"../utils":32,"readable-stream":16}],14:[function(i,t,e){"use strict";t.exports={isNode:typeof Buffer!="undefined",newBufferFrom:function(r,o){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(r,o);if(typeof r=="number")throw new Error('The "data" argument must not be a number');return new Buffer(r,o)},allocBuffer:function(r){if(Buffer.alloc)return Buffer.alloc(r);var o=new Buffer(r);return o.fill(0),o},isBuffer:function(r){return Buffer.isBuffer(r)},isStream:function(r){return r&&typeof r.on=="function"&&typeof r.pause=="function"&&typeof r.resume=="function"}}},{}],15:[function(i,t,e){"use strict";function r(w,H,B){var P,$=s.getTypeOf(H),de=s.extend(B||{},c);de.date=de.date||new Date,de.compression!==null&&(de.compression=de.compression.toUpperCase()),typeof de.unixPermissions=="string"&&(de.unixPermissions=parseInt(de.unixPermissions,8)),de.unixPermissions&&16384&de.unixPermissions&&(de.dir=!0),de.dosPermissions&&16&de.dosPermissions&&(de.dir=!0),de.dir&&(w=E(w)),de.createFolders&&(P=T(w))&&y.call(this,P,!0);var Ae=$==="string"&&de.binary===!1&&de.base64===!1;B&&B.binary!==void 0||(de.binary=!Ae),(H instanceof d&&H.uncompressedSize===0||de.dir||!H||H.length===0)&&(de.base64=!1,de.binary=!0,H="",de.compression="STORE",$="string");var L=null;L=H instanceof d||H instanceof n?H:f.isNode&&f.isStream(H)?new g(w,H):s.prepareContent(w,H,de.binary,de.optimizedBinaryString,de.base64);var te=new m(w,L,de);this.files[w]=te}var o=i("./utf8"),s=i("./utils"),n=i("./stream/GenericWorker"),a=i("./stream/StreamHelper"),c=i("./defaults"),d=i("./compressedObject"),m=i("./zipObject"),l=i("./generate"),f=i("./nodejsUtils"),g=i("./nodejs/NodejsStreamInputAdapter"),T=function(w){w.slice(-1)==="/"&&(w=w.substring(0,w.length-1));var H=w.lastIndexOf("/");return 0<H?w.substring(0,H):""},E=function(w){return w.slice(-1)!=="/"&&(w+="/"),w},y=function(w,H){return H=H!==void 0?H:c.createFolders,w=E(w),this.files[w]||r.call(this,w,null,{dir:!0,createFolders:H}),this.files[w]};function v(w){return Object.prototype.toString.call(w)==="[object RegExp]"}var M={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(w){var H,B,P;for(H in this.files)P=this.files[H],(B=H.slice(this.root.length,H.length))&&H.slice(0,this.root.length)===this.root&&w(B,P)},filter:function(w){var H=[];return this.forEach(function(B,P){w(B,P)&&H.push(P)}),H},file:function(w,H,B){if(arguments.length!==1)return w=this.root+w,r.call(this,w,H,B),this;if(v(w)){var P=w;return this.filter(function(de,Ae){return!Ae.dir&&P.test(de)})}var $=this.files[this.root+w];return $&&!$.dir?$:null},folder:function(w){if(!w)return this;if(v(w))return this.filter(function($,de){return de.dir&&w.test($)});var H=this.root+w,B=y.call(this,H),P=this.clone();return P.root=B.name,P},remove:function(w){w=this.root+w;var H=this.files[w];if(H||(w.slice(-1)!=="/"&&(w+="/"),H=this.files[w]),H&&!H.dir)delete this.files[w];else for(var B=this.filter(function($,de){return de.name.slice(0,w.length)===w}),P=0;P<B.length;P++)delete this.files[B[P].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(w){var H,B={};try{if((B=s.extend(w||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:o.utf8encode})).type=B.type.toLowerCase(),B.compression=B.compression.toUpperCase(),B.type==="binarystring"&&(B.type="string"),!B.type)throw new Error("No output type specified.");s.checkSupport(B.type),B.platform!=="darwin"&&B.platform!=="freebsd"&&B.platform!=="linux"&&B.platform!=="sunos"||(B.platform="UNIX"),B.platform==="win32"&&(B.platform="DOS");var P=B.comment||this.comment||"";H=l.generateWorker(this,B,P)}catch($){(H=new n("error")).error($)}return new a(H,B.type||"string",B.mimeType)},generateAsync:function(w,H){return this.generateInternalStream(w).accumulate(H)},generateNodeStream:function(w,H){return(w=w||{}).type||(w.type="nodebuffer"),this.generateInternalStream(w).toNodejsStream(H)}};t.exports=M},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(i,t,e){"use strict";t.exports=i("stream")},{stream:void 0}],17:[function(i,t,e){"use strict";var r=i("./DataReader");function o(s){r.call(this,s);for(var n=0;n<this.data.length;n++)s[n]=255&s[n]}i("../utils").inherits(o,r),o.prototype.byteAt=function(s){return this.data[this.zero+s]},o.prototype.lastIndexOfSignature=function(s){for(var n=s.charCodeAt(0),a=s.charCodeAt(1),c=s.charCodeAt(2),d=s.charCodeAt(3),m=this.length-4;0<=m;--m)if(this.data[m]===n&&this.data[m+1]===a&&this.data[m+2]===c&&this.data[m+3]===d)return m-this.zero;return-1},o.prototype.readAndCheckSignature=function(s){var n=s.charCodeAt(0),a=s.charCodeAt(1),c=s.charCodeAt(2),d=s.charCodeAt(3),m=this.readData(4);return n===m[0]&&a===m[1]&&c===m[2]&&d===m[3]},o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return[];var n=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./DataReader":18}],18:[function(i,t,e){"use strict";var r=i("../utils");function o(s){this.data=s,this.length=s.length,this.index=0,this.zero=0}o.prototype={checkOffset:function(s){this.checkIndex(this.index+s)},checkIndex:function(s){if(this.length<this.zero+s||s<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+s+"). Corrupted zip ?")},setIndex:function(s){this.checkIndex(s),this.index=s},skip:function(s){this.setIndex(this.index+s)},byteAt:function(){},readInt:function(s){var n,a=0;for(this.checkOffset(s),n=this.index+s-1;n>=this.index;n--)a=(a<<8)+this.byteAt(n);return this.index+=s,a},readString:function(s){return r.transformTo("string",this.readData(s))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var s=this.readInt(4);return new Date(Date.UTC(1980+(s>>25&127),(s>>21&15)-1,s>>16&31,s>>11&31,s>>5&63,(31&s)<<1))}},t.exports=o},{"../utils":32}],19:[function(i,t,e){"use strict";var r=i("./Uint8ArrayReader");function o(s){r.call(this,s)}i("../utils").inherits(o,r),o.prototype.readData=function(s){this.checkOffset(s);var n=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(i,t,e){"use strict";var r=i("./DataReader");function o(s){r.call(this,s)}i("../utils").inherits(o,r),o.prototype.byteAt=function(s){return this.data.charCodeAt(this.zero+s)},o.prototype.lastIndexOfSignature=function(s){return this.data.lastIndexOf(s)-this.zero},o.prototype.readAndCheckSignature=function(s){return s===this.readData(4)},o.prototype.readData=function(s){this.checkOffset(s);var n=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./DataReader":18}],21:[function(i,t,e){"use strict";var r=i("./ArrayReader");function o(s){r.call(this,s)}i("../utils").inherits(o,r),o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return new Uint8Array(0);var n=this.data.subarray(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(i,t,e){"use strict";var r=i("../utils"),o=i("../support"),s=i("./ArrayReader"),n=i("./StringReader"),a=i("./NodeBufferReader"),c=i("./Uint8ArrayReader");t.exports=function(d){var m=r.getTypeOf(d);return r.checkSupport(m),m!=="string"||o.uint8array?m==="nodebuffer"?new a(d):o.uint8array?new c(r.transformTo("uint8array",d)):new s(r.transformTo("array",d)):new n(d)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(i,t,e){"use strict";e.LOCAL_FILE_HEADER="PK",e.CENTRAL_FILE_HEADER="PK",e.CENTRAL_DIRECTORY_END="PK",e.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",e.ZIP64_CENTRAL_DIRECTORY_END="PK",e.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(i,t,e){"use strict";var r=i("./GenericWorker"),o=i("../utils");function s(n){r.call(this,"ConvertWorker to "+n),this.destType=n}o.inherits(s,r),s.prototype.processChunk=function(n){this.push({data:o.transformTo(this.destType,n.data),meta:n.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(i,t,e){"use strict";var r=i("./GenericWorker"),o=i("../crc32");function s(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}i("../utils").inherits(s,r),s.prototype.processChunk=function(n){this.streamInfo.crc32=o(n.data,this.streamInfo.crc32||0),this.push(n)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(i,t,e){"use strict";var r=i("../utils"),o=i("./GenericWorker");function s(n){o.call(this,"DataLengthProbe for "+n),this.propName=n,this.withStreamInfo(n,0)}r.inherits(s,o),s.prototype.processChunk=function(n){if(n){var a=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=a+n.data.length}o.prototype.processChunk.call(this,n)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(i,t,e){"use strict";var r=i("../utils"),o=i("./GenericWorker");function s(n){o.call(this,"DataWorker");var a=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,n.then(function(c){a.dataIsReady=!0,a.data=c,a.max=c&&c.length||0,a.type=r.getTypeOf(c),a.isPaused||a._tickAndRepeat()},function(c){a.error(c)})}r.inherits(s,o),s.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var n=null,a=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":n=this.data.substring(this.index,a);break;case"uint8array":n=this.data.subarray(this.index,a);break;case"array":case"nodebuffer":n=this.data.slice(this.index,a)}return this.index=a,this.push({data:n,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(i,t,e){"use strict";function r(o){this.name=o||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(o){this.emit("data",o)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(o){this.emit("error",o)}return!0},error:function(o){return!this.isFinished&&(this.isPaused?this.generatedError=o:(this.isFinished=!0,this.emit("error",o),this.previous&&this.previous.error(o),this.cleanUp()),!0)},on:function(o,s){return this._listeners[o].push(s),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(o,s){if(this._listeners[o])for(var n=0;n<this._listeners[o].length;n++)this._listeners[o][n].call(this,s)},pipe:function(o){return o.registerPrevious(this)},registerPrevious:function(o){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=o.streamInfo,this.mergeStreamInfo(),this.previous=o;var s=this;return o.on("data",function(n){s.processChunk(n)}),o.on("end",function(){s.end()}),o.on("error",function(n){s.error(n)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var o=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),o=!0),this.previous&&this.previous.resume(),!o},flush:function(){},processChunk:function(o){this.push(o)},withStreamInfo:function(o,s){return this.extraStreamInfo[o]=s,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var o in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,o)&&(this.streamInfo[o]=this.extraStreamInfo[o])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var o="Worker "+this.name;return this.previous?this.previous+" -> "+o:o}},t.exports=r},{}],29:[function(i,t,e){"use strict";var r=i("../utils"),o=i("./ConvertWorker"),s=i("./GenericWorker"),n=i("../base64"),a=i("../support"),c=i("../external"),d=null;if(a.nodestream)try{d=i("../nodejs/NodejsStreamOutputAdapter")}catch(f){}function m(f,g){return new c.Promise(function(T,E){var y=[],v=f._internalType,M=f._outputType,w=f._mimeType;f.on("data",function(H,B){y.push(H),g&&g(B)}).on("error",function(H){y=[],E(H)}).on("end",function(){try{var H=function(B,P,$){switch(B){case"blob":return r.newBlob(r.transformTo("arraybuffer",P),$);case"base64":return n.encode(P);default:return r.transformTo(B,P)}}(M,function(B,P){var $,de=0,Ae=null,L=0;for($=0;$<P.length;$++)L+=P[$].length;switch(B){case"string":return P.join("");case"array":return Array.prototype.concat.apply([],P);case"uint8array":for(Ae=new Uint8Array(L),$=0;$<P.length;$++)Ae.set(P[$],de),de+=P[$].length;return Ae;case"nodebuffer":return Buffer.concat(P);default:throw new Error("concat : unsupported type '"+B+"'")}}(v,y),w);T(H)}catch(B){E(B)}y=[]}).resume()})}function l(f,g,T){var E=g;switch(g){case"blob":case"arraybuffer":E="uint8array";break;case"base64":E="string"}try{this._internalType=E,this._outputType=g,this._mimeType=T,r.checkSupport(E),this._worker=f.pipe(new o(E)),f.lock()}catch(y){this._worker=new s("error"),this._worker.error(y)}}l.prototype={accumulate:function(f){return m(this,f)},on:function(f,g){var T=this;return f==="data"?this._worker.on(f,function(E){g.call(T,E.data,E.meta)}):this._worker.on(f,function(){r.delay(g,arguments,T)}),this},resume:function(){return r.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(f){if(r.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new d(this,{objectMode:this._outputType!=="nodebuffer"},f)}},t.exports=l},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(i,t,e){"use strict";if(e.base64=!0,e.array=!0,e.string=!0,e.arraybuffer=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined",e.nodebuffer=typeof Buffer!="undefined",e.uint8array=typeof Uint8Array!="undefined",typeof ArrayBuffer=="undefined")e.blob=!1;else{var r=new ArrayBuffer(0);try{e.blob=new Blob([r],{type:"application/zip"}).size===0}catch(s){try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(r),e.blob=o.getBlob("application/zip").size===0}catch(n){e.blob=!1}}}try{e.nodestream=!!i("readable-stream").Readable}catch(s){e.nodestream=!1}},{"readable-stream":16}],31:[function(i,t,e){"use strict";for(var r=i("./utils"),o=i("./support"),s=i("./nodejsUtils"),n=i("./stream/GenericWorker"),a=new Array(256),c=0;c<256;c++)a[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;a[254]=a[254]=1;function d(){n.call(this,"utf-8 decode"),this.leftOver=null}function m(){n.call(this,"utf-8 encode")}e.utf8encode=function(l){return o.nodebuffer?s.newBufferFrom(l,"utf-8"):function(f){var g,T,E,y,v,M=f.length,w=0;for(y=0;y<M;y++)(64512&(T=f.charCodeAt(y)))==55296&&y+1<M&&(64512&(E=f.charCodeAt(y+1)))==56320&&(T=65536+(T-55296<<10)+(E-56320),y++),w+=T<128?1:T<2048?2:T<65536?3:4;for(g=o.uint8array?new Uint8Array(w):new Array(w),y=v=0;v<w;y++)(64512&(T=f.charCodeAt(y)))==55296&&y+1<M&&(64512&(E=f.charCodeAt(y+1)))==56320&&(T=65536+(T-55296<<10)+(E-56320),y++),T<128?g[v++]=T:(T<2048?g[v++]=192|T>>>6:(T<65536?g[v++]=224|T>>>12:(g[v++]=240|T>>>18,g[v++]=128|T>>>12&63),g[v++]=128|T>>>6&63),g[v++]=128|63&T);return g}(l)},e.utf8decode=function(l){return o.nodebuffer?r.transformTo("nodebuffer",l).toString("utf-8"):function(f){var g,T,E,y,v=f.length,M=new Array(2*v);for(g=T=0;g<v;)if((E=f[g++])<128)M[T++]=E;else if(4<(y=a[E]))M[T++]=65533,g+=y-1;else{for(E&=y===2?31:y===3?15:7;1<y&&g<v;)E=E<<6|63&f[g++],y--;1<y?M[T++]=65533:E<65536?M[T++]=E:(E-=65536,M[T++]=55296|E>>10&1023,M[T++]=56320|1023&E)}return M.length!==T&&(M.subarray?M=M.subarray(0,T):M.length=T),r.applyFromCharCode(M)}(l=r.transformTo(o.uint8array?"uint8array":"array",l))},r.inherits(d,n),d.prototype.processChunk=function(l){var f=r.transformTo(o.uint8array?"uint8array":"array",l.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var g=f;(f=new Uint8Array(g.length+this.leftOver.length)).set(this.leftOver,0),f.set(g,this.leftOver.length)}else f=this.leftOver.concat(f);this.leftOver=null}var T=function(y,v){var M;for((v=v||y.length)>y.length&&(v=y.length),M=v-1;0<=M&&(192&y[M])==128;)M--;return M<0||M===0?v:M+a[y[M]]>v?M:v}(f),E=f;T!==f.length&&(o.uint8array?(E=f.subarray(0,T),this.leftOver=f.subarray(T,f.length)):(E=f.slice(0,T),this.leftOver=f.slice(T,f.length))),this.push({data:e.utf8decode(E),meta:l.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:e.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},e.Utf8DecodeWorker=d,r.inherits(m,n),m.prototype.processChunk=function(l){this.push({data:e.utf8encode(l.data),meta:l.meta})},e.Utf8EncodeWorker=m},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(i,t,e){"use strict";var r=i("./support"),o=i("./base64"),s=i("./nodejsUtils"),n=i("./external");function a(g){return g}function c(g,T){for(var E=0;E<g.length;++E)T[E]=255&g.charCodeAt(E);return T}i("setimmediate"),e.newBlob=function(g,T){e.checkSupport("blob");try{return new Blob([g],{type:T})}catch(y){try{var E=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return E.append(g),E.getBlob(T)}catch(v){throw new Error("Bug : can't construct the Blob.")}}};var d={stringifyByChunk:function(g,T,E){var y=[],v=0,M=g.length;if(M<=E)return String.fromCharCode.apply(null,g);for(;v<M;)T==="array"||T==="nodebuffer"?y.push(String.fromCharCode.apply(null,g.slice(v,Math.min(v+E,M)))):y.push(String.fromCharCode.apply(null,g.subarray(v,Math.min(v+E,M)))),v+=E;return y.join("")},stringifyByChar:function(g){for(var T="",E=0;E<g.length;E++)T+=String.fromCharCode(g[E]);return T},applyCanBeUsed:{uint8array:function(){try{return r.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch(g){return!1}}(),nodebuffer:function(){try{return r.nodebuffer&&String.fromCharCode.apply(null,s.allocBuffer(1)).length===1}catch(g){return!1}}()}};function m(g){var T=65536,E=e.getTypeOf(g),y=!0;if(E==="uint8array"?y=d.applyCanBeUsed.uint8array:E==="nodebuffer"&&(y=d.applyCanBeUsed.nodebuffer),y)for(;1<T;)try{return d.stringifyByChunk(g,E,T)}catch(v){T=Math.floor(T/2)}return d.stringifyByChar(g)}function l(g,T){for(var E=0;E<g.length;E++)T[E]=g[E];return T}e.applyFromCharCode=m;var f={};f.string={string:a,array:function(g){return c(g,new Array(g.length))},arraybuffer:function(g){return f.string.uint8array(g).buffer},uint8array:function(g){return c(g,new Uint8Array(g.length))},nodebuffer:function(g){return c(g,s.allocBuffer(g.length))}},f.array={string:m,array:a,arraybuffer:function(g){return new Uint8Array(g).buffer},uint8array:function(g){return new Uint8Array(g)},nodebuffer:function(g){return s.newBufferFrom(g)}},f.arraybuffer={string:function(g){return m(new Uint8Array(g))},array:function(g){return l(new Uint8Array(g),new Array(g.byteLength))},arraybuffer:a,uint8array:function(g){return new Uint8Array(g)},nodebuffer:function(g){return s.newBufferFrom(new Uint8Array(g))}},f.uint8array={string:m,array:function(g){return l(g,new Array(g.length))},arraybuffer:function(g){return g.buffer},uint8array:a,nodebuffer:function(g){return s.newBufferFrom(g)}},f.nodebuffer={string:m,array:function(g){return l(g,new Array(g.length))},arraybuffer:function(g){return f.nodebuffer.uint8array(g).buffer},uint8array:function(g){return l(g,new Uint8Array(g.length))},nodebuffer:a},e.transformTo=function(g,T){if(T=T||"",!g)return T;e.checkSupport(g);var E=e.getTypeOf(T);return f[E][g](T)},e.resolve=function(g){for(var T=g.split("/"),E=[],y=0;y<T.length;y++){var v=T[y];v==="."||v===""&&y!==0&&y!==T.length-1||(v===".."?E.pop():E.push(v))}return E.join("/")},e.getTypeOf=function(g){return typeof g=="string"?"string":Object.prototype.toString.call(g)==="[object Array]"?"array":r.nodebuffer&&s.isBuffer(g)?"nodebuffer":r.uint8array&&g instanceof Uint8Array?"uint8array":r.arraybuffer&&g instanceof ArrayBuffer?"arraybuffer":void 0},e.checkSupport=function(g){if(!r[g.toLowerCase()])throw new Error(g+" is not supported by this platform")},e.MAX_VALUE_16BITS=65535,e.MAX_VALUE_32BITS=-1,e.pretty=function(g){var T,E,y="";for(E=0;E<(g||"").length;E++)y+="\\x"+((T=g.charCodeAt(E))<16?"0":"")+T.toString(16).toUpperCase();return y},e.delay=function(g,T,E){setImmediate(function(){g.apply(E||null,T||[])})},e.inherits=function(g,T){function E(){}E.prototype=T.prototype,g.prototype=new E},e.extend=function(){var g,T,E={};for(g=0;g<arguments.length;g++)for(T in arguments[g])Object.prototype.hasOwnProperty.call(arguments[g],T)&&E[T]===void 0&&(E[T]=arguments[g][T]);return E},e.prepareContent=function(g,T,E,y,v){return n.Promise.resolve(T).then(function(M){return r.blob&&(M instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(M))!==-1)&&typeof FileReader!="undefined"?new n.Promise(function(w,H){var B=new FileReader;B.onload=function(P){w(P.target.result)},B.onerror=function(P){H(P.target.error)},B.readAsArrayBuffer(M)}):M}).then(function(M){var w=e.getTypeOf(M);return w?(w==="arraybuffer"?M=e.transformTo("uint8array",M):w==="string"&&(v?M=o.decode(M):E&&y!==!0&&(M=function(H){return c(H,r.uint8array?new Uint8Array(H.length):new Array(H.length))}(M))),M):n.Promise.reject(new Error("Can't read the data of '"+g+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(i,t,e){"use strict";var r=i("./reader/readerFor"),o=i("./utils"),s=i("./signature"),n=i("./zipEntry"),a=i("./support");function c(d){this.files=[],this.loadOptions=d}c.prototype={checkSignature:function(d){if(!this.reader.readAndCheckSignature(d)){this.reader.index-=4;var m=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+o.pretty(m)+", expected "+o.pretty(d)+")")}},isSignature:function(d,m){var l=this.reader.index;this.reader.setIndex(d);var f=this.reader.readString(4)===m;return this.reader.setIndex(l),f},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var d=this.reader.readData(this.zipCommentLength),m=a.uint8array?"uint8array":"array",l=o.transformTo(m,d);this.zipComment=this.loadOptions.decodeFileName(l)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var d,m,l,f=this.zip64EndOfCentralSize-44;0<f;)d=this.reader.readInt(2),m=this.reader.readInt(4),l=this.reader.readData(m),this.zip64ExtensibleData[d]={id:d,length:m,value:l}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var d,m;for(d=0;d<this.files.length;d++)m=this.files[d],this.reader.setIndex(m.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),m.readLocalPart(this.reader),m.handleUTF8(),m.processAttributes()},readCentralDir:function(){var d;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(d=new n({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(d);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var d=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(d<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(d);var m=d;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===o.MAX_VALUE_16BITS||this.diskWithCentralDirStart===o.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===o.MAX_VALUE_16BITS||this.centralDirRecords===o.MAX_VALUE_16BITS||this.centralDirSize===o.MAX_VALUE_32BITS||this.centralDirOffset===o.MAX_VALUE_32BITS){if(this.zip64=!0,(d=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(d),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var l=this.centralDirOffset+this.centralDirSize;this.zip64&&(l+=20,l+=12+this.zip64EndOfCentralSize);var f=m-l;if(0<f)this.isSignature(m,s.CENTRAL_FILE_HEADER)||(this.reader.zero=f);else if(f<0)throw new Error("Corrupted zip: missing "+Math.abs(f)+" bytes.")},prepareReader:function(d){this.reader=r(d)},load:function(d){this.prepareReader(d),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(i,t,e){"use strict";var r=i("./reader/readerFor"),o=i("./utils"),s=i("./compressedObject"),n=i("./crc32"),a=i("./utf8"),c=i("./compressions"),d=i("./support");function m(l,f){this.options=l,this.loadOptions=f}m.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(l){var f,g;if(l.skip(22),this.fileNameLength=l.readInt(2),g=l.readInt(2),this.fileName=l.readData(this.fileNameLength),l.skip(g),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((f=function(T){for(var E in c)if(Object.prototype.hasOwnProperty.call(c,E)&&c[E].magic===T)return c[E];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+o.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,f,l.readData(this.compressedSize))},readCentralPart:function(l){this.versionMadeBy=l.readInt(2),l.skip(2),this.bitFlag=l.readInt(2),this.compressionMethod=l.readString(2),this.date=l.readDate(),this.crc32=l.readInt(4),this.compressedSize=l.readInt(4),this.uncompressedSize=l.readInt(4);var f=l.readInt(2);if(this.extraFieldsLength=l.readInt(2),this.fileCommentLength=l.readInt(2),this.diskNumberStart=l.readInt(2),this.internalFileAttributes=l.readInt(2),this.externalFileAttributes=l.readInt(4),this.localHeaderOffset=l.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");l.skip(f),this.readExtraFields(l),this.parseZIP64ExtraField(l),this.fileComment=l.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var l=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),l==0&&(this.dosPermissions=63&this.externalFileAttributes),l==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var l=r(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=l.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=l.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=l.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=l.readInt(4))}},readExtraFields:function(l){var f,g,T,E=l.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});l.index+4<E;)f=l.readInt(2),g=l.readInt(2),T=l.readData(g),this.extraFields[f]={id:f,length:g,value:T};l.setIndex(E)},handleUTF8:function(){var l=d.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=a.utf8decode(this.fileName),this.fileCommentStr=a.utf8decode(this.fileComment);else{var f=this.findExtraFieldUnicodePath();if(f!==null)this.fileNameStr=f;else{var g=o.transformTo(l,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(g)}var T=this.findExtraFieldUnicodeComment();if(T!==null)this.fileCommentStr=T;else{var E=o.transformTo(l,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(E)}}},findExtraFieldUnicodePath:function(){var l=this.extraFields[28789];if(l){var f=r(l.value);return f.readInt(1)!==1||n(this.fileName)!==f.readInt(4)?null:a.utf8decode(f.readData(l.length-5))}return null},findExtraFieldUnicodeComment:function(){var l=this.extraFields[25461];if(l){var f=r(l.value);return f.readInt(1)!==1||n(this.fileComment)!==f.readInt(4)?null:a.utf8decode(f.readData(l.length-5))}return null}},t.exports=m},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(i,t,e){"use strict";function r(f,g,T){this.name=f,this.dir=T.dir,this.date=T.date,this.comment=T.comment,this.unixPermissions=T.unixPermissions,this.dosPermissions=T.dosPermissions,this._data=g,this._dataBinary=T.binary,this.options={compression:T.compression,compressionOptions:T.compressionOptions}}var o=i("./stream/StreamHelper"),s=i("./stream/DataWorker"),n=i("./utf8"),a=i("./compressedObject"),c=i("./stream/GenericWorker");r.prototype={internalStream:function(f){var g=null,T="string";try{if(!f)throw new Error("No output type specified.");var E=(T=f.toLowerCase())==="string"||T==="text";T!=="binarystring"&&T!=="text"||(T="string"),g=this._decompressWorker();var y=!this._dataBinary;y&&!E&&(g=g.pipe(new n.Utf8EncodeWorker)),!y&&E&&(g=g.pipe(new n.Utf8DecodeWorker))}catch(v){(g=new c("error")).error(v)}return new o(g,T,"")},async:function(f,g){return this.internalStream(f).accumulate(g)},nodeStream:function(f,g){return this.internalStream(f||"nodebuffer").toNodejsStream(g)},_compressWorker:function(f,g){if(this._data instanceof a&&this._data.compression.magic===f.magic)return this._data.getCompressedWorker();var T=this._decompressWorker();return this._dataBinary||(T=T.pipe(new n.Utf8EncodeWorker)),a.createWorkerFrom(T,f,g)},_decompressWorker:function(){return this._data instanceof a?this._data.getContentWorker():this._data instanceof c?this._data:new s(this._data)}};for(var d=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],m=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<d.length;l++)r.prototype[d[l]]=m;t.exports=r},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(i,t,e){(function(r){"use strict";var o,s,n=r.MutationObserver||r.WebKitMutationObserver;if(n){var a=0,c=new n(f),d=r.document.createTextNode("");c.observe(d,{characterData:!0}),o=function(){d.data=a=++a%2}}else if(r.setImmediate||r.MessageChannel===void 0)o="document"in r&&"onreadystatechange"in r.document.createElement("script")?function(){var g=r.document.createElement("script");g.onreadystatechange=function(){f(),g.onreadystatechange=null,g.parentNode.removeChild(g),g=null},r.document.documentElement.appendChild(g)}:function(){setTimeout(f,0)};else{var m=new r.MessageChannel;m.port1.onmessage=f,o=function(){m.port2.postMessage(0)}}var l=[];function f(){var g,T;s=!0;for(var E=l.length;E;){for(T=l,l=[],g=-1;++g<E;)T[g]();E=l.length}s=!1}t.exports=function(g){l.push(g)!==1||s||o()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],37:[function(i,t,e){"use strict";var r=i("immediate");function o(){}var s={},n=["REJECTED"],a=["FULFILLED"],c=["PENDING"];function d(E){if(typeof E!="function")throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,E!==o&&g(this,E)}function m(E,y,v){this.promise=E,typeof y=="function"&&(this.onFulfilled=y,this.callFulfilled=this.otherCallFulfilled),typeof v=="function"&&(this.onRejected=v,this.callRejected=this.otherCallRejected)}function l(E,y,v){r(function(){var M;try{M=y(v)}catch(w){return s.reject(E,w)}M===E?s.reject(E,new TypeError("Cannot resolve promise with itself")):s.resolve(E,M)})}function f(E){var y=E&&E.then;if(E&&(typeof E=="object"||typeof E=="function")&&typeof y=="function")return function(){y.apply(E,arguments)}}function g(E,y){var v=!1;function M(B){v||(v=!0,s.reject(E,B))}function w(B){v||(v=!0,s.resolve(E,B))}var H=T(function(){y(w,M)});H.status==="error"&&M(H.value)}function T(E,y){var v={};try{v.value=E(y),v.status="success"}catch(M){v.status="error",v.value=M}return v}(t.exports=d).prototype.finally=function(E){if(typeof E!="function")return this;var y=this.constructor;return this.then(function(v){return y.resolve(E()).then(function(){return v})},function(v){return y.resolve(E()).then(function(){throw v})})},d.prototype.catch=function(E){return this.then(null,E)},d.prototype.then=function(E,y){if(typeof E!="function"&&this.state===a||typeof y!="function"&&this.state===n)return this;var v=new this.constructor(o);return this.state!==c?l(v,this.state===a?E:y,this.outcome):this.queue.push(new m(v,E,y)),v},m.prototype.callFulfilled=function(E){s.resolve(this.promise,E)},m.prototype.otherCallFulfilled=function(E){l(this.promise,this.onFulfilled,E)},m.prototype.callRejected=function(E){s.reject(this.promise,E)},m.prototype.otherCallRejected=function(E){l(this.promise,this.onRejected,E)},s.resolve=function(E,y){var v=T(f,y);if(v.status==="error")return s.reject(E,v.value);var M=v.value;if(M)g(E,M);else{E.state=a,E.outcome=y;for(var w=-1,H=E.queue.length;++w<H;)E.queue[w].callFulfilled(y)}return E},s.reject=function(E,y){E.state=n,E.outcome=y;for(var v=-1,M=E.queue.length;++v<M;)E.queue[v].callRejected(y);return E},d.resolve=function(E){return E instanceof this?E:s.resolve(new this(o),E)},d.reject=function(E){var y=new this(o);return s.reject(y,E)},d.all=function(E){var y=this;if(Object.prototype.toString.call(E)!=="[object Array]")return this.reject(new TypeError("must be an array"));var v=E.length,M=!1;if(!v)return this.resolve([]);for(var w=new Array(v),H=0,B=-1,P=new this(o);++B<v;)$(E[B],B);return P;function $(de,Ae){y.resolve(de).then(function(L){w[Ae]=L,++H!==v||M||(M=!0,s.resolve(P,w))},function(L){M||(M=!0,s.reject(P,L))})}},d.race=function(E){var y=this;if(Object.prototype.toString.call(E)!=="[object Array]")return this.reject(new TypeError("must be an array"));var v=E.length,M=!1;if(!v)return this.resolve([]);for(var w=-1,H=new this(o);++w<v;)B=E[w],y.resolve(B).then(function(P){M||(M=!0,s.resolve(H,P))},function(P){M||(M=!0,s.reject(H,P))});var B;return H}},{immediate:36}],38:[function(i,t,e){"use strict";var r={};(0,i("./lib/utils/common").assign)(r,i("./lib/deflate"),i("./lib/inflate"),i("./lib/zlib/constants")),t.exports=r},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(i,t,e){"use strict";var r=i("./zlib/deflate"),o=i("./utils/common"),s=i("./utils/strings"),n=i("./zlib/messages"),a=i("./zlib/zstream"),c=Object.prototype.toString,d=0,m=-1,l=0,f=8;function g(E){if(!(this instanceof g))return new g(E);this.options=o.assign({level:m,method:f,chunkSize:16384,windowBits:15,memLevel:8,strategy:l,to:""},E||{});var y=this.options;y.raw&&0<y.windowBits?y.windowBits=-y.windowBits:y.gzip&&0<y.windowBits&&y.windowBits<16&&(y.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;var v=r.deflateInit2(this.strm,y.level,y.method,y.windowBits,y.memLevel,y.strategy);if(v!==d)throw new Error(n[v]);if(y.header&&r.deflateSetHeader(this.strm,y.header),y.dictionary){var M;if(M=typeof y.dictionary=="string"?s.string2buf(y.dictionary):c.call(y.dictionary)==="[object ArrayBuffer]"?new Uint8Array(y.dictionary):y.dictionary,(v=r.deflateSetDictionary(this.strm,M))!==d)throw new Error(n[v]);this._dict_set=!0}}function T(E,y){var v=new g(y);if(v.push(E,!0),v.err)throw v.msg||n[v.err];return v.result}g.prototype.push=function(E,y){var v,M,w=this.strm,H=this.options.chunkSize;if(this.ended)return!1;M=y===~~y?y:y===!0?4:0,typeof E=="string"?w.input=s.string2buf(E):c.call(E)==="[object ArrayBuffer]"?w.input=new Uint8Array(E):w.input=E,w.next_in=0,w.avail_in=w.input.length;do{if(w.avail_out===0&&(w.output=new o.Buf8(H),w.next_out=0,w.avail_out=H),(v=r.deflate(w,M))!==1&&v!==d)return this.onEnd(v),!(this.ended=!0);w.avail_out!==0&&(w.avail_in!==0||M!==4&&M!==2)||(this.options.to==="string"?this.onData(s.buf2binstring(o.shrinkBuf(w.output,w.next_out))):this.onData(o.shrinkBuf(w.output,w.next_out)))}while((0<w.avail_in||w.avail_out===0)&&v!==1);return M===4?(v=r.deflateEnd(this.strm),this.onEnd(v),this.ended=!0,v===d):M!==2||(this.onEnd(d),!(w.avail_out=0))},g.prototype.onData=function(E){this.chunks.push(E)},g.prototype.onEnd=function(E){E===d&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=E,this.msg=this.strm.msg},e.Deflate=g,e.deflate=T,e.deflateRaw=function(E,y){return(y=y||{}).raw=!0,T(E,y)},e.gzip=function(E,y){return(y=y||{}).gzip=!0,T(E,y)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(i,t,e){"use strict";var r=i("./zlib/inflate"),o=i("./utils/common"),s=i("./utils/strings"),n=i("./zlib/constants"),a=i("./zlib/messages"),c=i("./zlib/zstream"),d=i("./zlib/gzheader"),m=Object.prototype.toString;function l(g){if(!(this instanceof l))return new l(g);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},g||{});var T=this.options;T.raw&&0<=T.windowBits&&T.windowBits<16&&(T.windowBits=-T.windowBits,T.windowBits===0&&(T.windowBits=-15)),!(0<=T.windowBits&&T.windowBits<16)||g&&g.windowBits||(T.windowBits+=32),15<T.windowBits&&T.windowBits<48&&(15&T.windowBits)==0&&(T.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var E=r.inflateInit2(this.strm,T.windowBits);if(E!==n.Z_OK)throw new Error(a[E]);this.header=new d,r.inflateGetHeader(this.strm,this.header)}function f(g,T){var E=new l(T);if(E.push(g,!0),E.err)throw E.msg||a[E.err];return E.result}l.prototype.push=function(g,T){var E,y,v,M,w,H,B=this.strm,P=this.options.chunkSize,$=this.options.dictionary,de=!1;if(this.ended)return!1;y=T===~~T?T:T===!0?n.Z_FINISH:n.Z_NO_FLUSH,typeof g=="string"?B.input=s.binstring2buf(g):m.call(g)==="[object ArrayBuffer]"?B.input=new Uint8Array(g):B.input=g,B.next_in=0,B.avail_in=B.input.length;do{if(B.avail_out===0&&(B.output=new o.Buf8(P),B.next_out=0,B.avail_out=P),(E=r.inflate(B,n.Z_NO_FLUSH))===n.Z_NEED_DICT&&$&&(H=typeof $=="string"?s.string2buf($):m.call($)==="[object ArrayBuffer]"?new Uint8Array($):$,E=r.inflateSetDictionary(this.strm,H)),E===n.Z_BUF_ERROR&&de===!0&&(E=n.Z_OK,de=!1),E!==n.Z_STREAM_END&&E!==n.Z_OK)return this.onEnd(E),!(this.ended=!0);B.next_out&&(B.avail_out!==0&&E!==n.Z_STREAM_END&&(B.avail_in!==0||y!==n.Z_FINISH&&y!==n.Z_SYNC_FLUSH)||(this.options.to==="string"?(v=s.utf8border(B.output,B.next_out),M=B.next_out-v,w=s.buf2string(B.output,v),B.next_out=M,B.avail_out=P-M,M&&o.arraySet(B.output,B.output,v,M,0),this.onData(w)):this.onData(o.shrinkBuf(B.output,B.next_out)))),B.avail_in===0&&B.avail_out===0&&(de=!0)}while((0<B.avail_in||B.avail_out===0)&&E!==n.Z_STREAM_END);return E===n.Z_STREAM_END&&(y=n.Z_FINISH),y===n.Z_FINISH?(E=r.inflateEnd(this.strm),this.onEnd(E),this.ended=!0,E===n.Z_OK):y!==n.Z_SYNC_FLUSH||(this.onEnd(n.Z_OK),!(B.avail_out=0))},l.prototype.onData=function(g){this.chunks.push(g)},l.prototype.onEnd=function(g){g===n.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=g,this.msg=this.strm.msg},e.Inflate=l,e.inflate=f,e.inflateRaw=function(g,T){return(T=T||{}).raw=!0,f(g,T)},e.ungzip=f},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(i,t,e){"use strict";var r=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";e.assign=function(n){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var c=a.shift();if(c){if(typeof c!="object")throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(n[d]=c[d])}}return n},e.shrinkBuf=function(n,a){return n.length===a?n:n.subarray?n.subarray(0,a):(n.length=a,n)};var o={arraySet:function(n,a,c,d,m){if(a.subarray&&n.subarray)n.set(a.subarray(c,c+d),m);else for(var l=0;l<d;l++)n[m+l]=a[c+l]},flattenChunks:function(n){var a,c,d,m,l,f;for(a=d=0,c=n.length;a<c;a++)d+=n[a].length;for(f=new Uint8Array(d),a=m=0,c=n.length;a<c;a++)l=n[a],f.set(l,m),m+=l.length;return f}},s={arraySet:function(n,a,c,d,m){for(var l=0;l<d;l++)n[m+l]=a[c+l]},flattenChunks:function(n){return[].concat.apply([],n)}};e.setTyped=function(n){n?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,o)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,s))},e.setTyped(r)},{}],42:[function(i,t,e){"use strict";var r=i("./common"),o=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(d){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(d){s=!1}for(var n=new r.Buf8(256),a=0;a<256;a++)n[a]=252<=a?6:248<=a?5:240<=a?4:224<=a?3:192<=a?2:1;function c(d,m){if(m<65537&&(d.subarray&&s||!d.subarray&&o))return String.fromCharCode.apply(null,r.shrinkBuf(d,m));for(var l="",f=0;f<m;f++)l+=String.fromCharCode(d[f]);return l}n[254]=n[254]=1,e.string2buf=function(d){var m,l,f,g,T,E=d.length,y=0;for(g=0;g<E;g++)(64512&(l=d.charCodeAt(g)))==55296&&g+1<E&&(64512&(f=d.charCodeAt(g+1)))==56320&&(l=65536+(l-55296<<10)+(f-56320),g++),y+=l<128?1:l<2048?2:l<65536?3:4;for(m=new r.Buf8(y),g=T=0;T<y;g++)(64512&(l=d.charCodeAt(g)))==55296&&g+1<E&&(64512&(f=d.charCodeAt(g+1)))==56320&&(l=65536+(l-55296<<10)+(f-56320),g++),l<128?m[T++]=l:(l<2048?m[T++]=192|l>>>6:(l<65536?m[T++]=224|l>>>12:(m[T++]=240|l>>>18,m[T++]=128|l>>>12&63),m[T++]=128|l>>>6&63),m[T++]=128|63&l);return m},e.buf2binstring=function(d){return c(d,d.length)},e.binstring2buf=function(d){for(var m=new r.Buf8(d.length),l=0,f=m.length;l<f;l++)m[l]=d.charCodeAt(l);return m},e.buf2string=function(d,m){var l,f,g,T,E=m||d.length,y=new Array(2*E);for(l=f=0;l<E;)if((g=d[l++])<128)y[f++]=g;else if(4<(T=n[g]))y[f++]=65533,l+=T-1;else{for(g&=T===2?31:T===3?15:7;1<T&&l<E;)g=g<<6|63&d[l++],T--;1<T?y[f++]=65533:g<65536?y[f++]=g:(g-=65536,y[f++]=55296|g>>10&1023,y[f++]=56320|1023&g)}return c(y,f)},e.utf8border=function(d,m){var l;for((m=m||d.length)>d.length&&(m=d.length),l=m-1;0<=l&&(192&d[l])==128;)l--;return l<0||l===0?m:l+n[d[l]]>m?l:m}},{"./common":41}],43:[function(i,t,e){"use strict";t.exports=function(r,o,s,n){for(var a=65535&r|0,c=r>>>16&65535|0,d=0;s!==0;){for(s-=d=2e3<s?2e3:s;c=c+(a=a+o[n++]|0)|0,--d;);a%=65521,c%=65521}return a|c<<16|0}},{}],44:[function(i,t,e){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(i,t,e){"use strict";var r=function(){for(var o,s=[],n=0;n<256;n++){o=n;for(var a=0;a<8;a++)o=1&o?3988292384^o>>>1:o>>>1;s[n]=o}return s}();t.exports=function(o,s,n,a){var c=r,d=a+n;o^=-1;for(var m=a;m<d;m++)o=o>>>8^c[255&(o^s[m])];return-1^o}},{}],46:[function(i,t,e){"use strict";var r,o=i("../utils/common"),s=i("./trees"),n=i("./adler32"),a=i("./crc32"),c=i("./messages"),d=0,m=4,l=0,f=-2,g=-1,T=4,E=2,y=8,v=9,M=286,w=30,H=19,B=2*M+1,P=15,$=3,de=258,Ae=de+$+1,L=42,te=113,A=1,le=2,He=3,ge=4;function ze(S,ue){return S.msg=c[ue],ue}function me(S){return(S<<1)-(4<S?9:0)}function re(S){for(var ue=S.length;0<=--ue;)S[ue]=0}function Q(S){var ue=S.state,Y=ue.pending;Y>S.avail_out&&(Y=S.avail_out),Y!==0&&(o.arraySet(S.output,ue.pending_buf,ue.pending_out,Y,S.next_out),S.next_out+=Y,ue.pending_out+=Y,S.total_out+=Y,S.avail_out-=Y,ue.pending-=Y,ue.pending===0&&(ue.pending_out=0))}function q(S,ue){s._tr_flush_block(S,0<=S.block_start?S.block_start:-1,S.strstart-S.block_start,ue),S.block_start=S.strstart,Q(S.strm)}function Be(S,ue){S.pending_buf[S.pending++]=ue}function De(S,ue){S.pending_buf[S.pending++]=ue>>>8&255,S.pending_buf[S.pending++]=255&ue}function ne(S,ue){var Y,x,O=S.max_chain_length,F=S.strstart,pe=S.prev_length,fe=S.nice_match,X=S.strstart>S.w_size-Ae?S.strstart-(S.w_size-Ae):0,oe=S.window,xe=S.w_mask,Z=S.prev,$e=S.strstart+de,b=oe[F+pe-1],it=oe[F+pe];S.prev_length>=S.good_match&&(O>>=2),fe>S.lookahead&&(fe=S.lookahead);do if(oe[(Y=ue)+pe]===it&&oe[Y+pe-1]===b&&oe[Y]===oe[F]&&oe[++Y]===oe[F+1]){F+=2,Y++;do;while(oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&F<$e);if(x=de-($e-F),F=$e-de,pe<x){if(S.match_start=ue,fe<=(pe=x))break;b=oe[F+pe-1],it=oe[F+pe]}}while((ue=Z[ue&xe])>X&&--O!=0);return pe<=S.lookahead?pe:S.lookahead}function Ze(S){var ue,Y,x,O,F,pe,fe,X,oe,xe,Z=S.w_size;do{if(O=S.window_size-S.lookahead-S.strstart,S.strstart>=Z+(Z-Ae)){for(o.arraySet(S.window,S.window,Z,Z,0),S.match_start-=Z,S.strstart-=Z,S.block_start-=Z,ue=Y=S.hash_size;x=S.head[--ue],S.head[ue]=Z<=x?x-Z:0,--Y;);for(ue=Y=Z;x=S.prev[--ue],S.prev[ue]=Z<=x?x-Z:0,--Y;);O+=Z}if(S.strm.avail_in===0)break;if(pe=S.strm,fe=S.window,X=S.strstart+S.lookahead,oe=O,xe=void 0,xe=pe.avail_in,oe<xe&&(xe=oe),Y=xe===0?0:(pe.avail_in-=xe,o.arraySet(fe,pe.input,pe.next_in,xe,X),pe.state.wrap===1?pe.adler=n(pe.adler,fe,xe,X):pe.state.wrap===2&&(pe.adler=a(pe.adler,fe,xe,X)),pe.next_in+=xe,pe.total_in+=xe,xe),S.lookahead+=Y,S.lookahead+S.insert>=$)for(F=S.strstart-S.insert,S.ins_h=S.window[F],S.ins_h=(S.ins_h<<S.hash_shift^S.window[F+1])&S.hash_mask;S.insert&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[F+$-1])&S.hash_mask,S.prev[F&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=F,F++,S.insert--,!(S.lookahead+S.insert<$)););}while(S.lookahead<Ae&&S.strm.avail_in!==0)}function yt(S,ue){for(var Y,x;;){if(S.lookahead<Ae){if(Ze(S),S.lookahead<Ae&&ue===d)return A;if(S.lookahead===0)break}if(Y=0,S.lookahead>=$&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart),Y!==0&&S.strstart-Y<=S.w_size-Ae&&(S.match_length=ne(S,Y)),S.match_length>=$)if(x=s._tr_tally(S,S.strstart-S.match_start,S.match_length-$),S.lookahead-=S.match_length,S.match_length<=S.max_lazy_match&&S.lookahead>=$){for(S.match_length--;S.strstart++,S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart,--S.match_length!=0;);S.strstart++}else S.strstart+=S.match_length,S.match_length=0,S.ins_h=S.window[S.strstart],S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+1])&S.hash_mask;else x=s._tr_tally(S,0,S.window[S.strstart]),S.lookahead--,S.strstart++;if(x&&(q(S,!1),S.strm.avail_out===0))return A}return S.insert=S.strstart<$-1?S.strstart:$-1,ue===m?(q(S,!0),S.strm.avail_out===0?He:ge):S.last_lit&&(q(S,!1),S.strm.avail_out===0)?A:le}function ae(S,ue){for(var Y,x,O;;){if(S.lookahead<Ae){if(Ze(S),S.lookahead<Ae&&ue===d)return A;if(S.lookahead===0)break}if(Y=0,S.lookahead>=$&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart),S.prev_length=S.match_length,S.prev_match=S.match_start,S.match_length=$-1,Y!==0&&S.prev_length<S.max_lazy_match&&S.strstart-Y<=S.w_size-Ae&&(S.match_length=ne(S,Y),S.match_length<=5&&(S.strategy===1||S.match_length===$&&4096<S.strstart-S.match_start)&&(S.match_length=$-1)),S.prev_length>=$&&S.match_length<=S.prev_length){for(O=S.strstart+S.lookahead-$,x=s._tr_tally(S,S.strstart-1-S.prev_match,S.prev_length-$),S.lookahead-=S.prev_length-1,S.prev_length-=2;++S.strstart<=O&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart),--S.prev_length!=0;);if(S.match_available=0,S.match_length=$-1,S.strstart++,x&&(q(S,!1),S.strm.avail_out===0))return A}else if(S.match_available){if((x=s._tr_tally(S,0,S.window[S.strstart-1]))&&q(S,!1),S.strstart++,S.lookahead--,S.strm.avail_out===0)return A}else S.match_available=1,S.strstart++,S.lookahead--}return S.match_available&&(x=s._tr_tally(S,0,S.window[S.strstart-1]),S.match_available=0),S.insert=S.strstart<$-1?S.strstart:$-1,ue===m?(q(S,!0),S.strm.avail_out===0?He:ge):S.last_lit&&(q(S,!1),S.strm.avail_out===0)?A:le}function at(S,ue,Y,x,O){this.good_length=S,this.max_lazy=ue,this.nice_length=Y,this.max_chain=x,this.func=O}function Lt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new o.Buf16(2*B),this.dyn_dtree=new o.Buf16(2*(2*w+1)),this.bl_tree=new o.Buf16(2*(2*H+1)),re(this.dyn_ltree),re(this.dyn_dtree),re(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new o.Buf16(P+1),this.heap=new o.Buf16(2*M+1),re(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new o.Buf16(2*M+1),re(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function wt(S){var ue;return S&&S.state?(S.total_in=S.total_out=0,S.data_type=E,(ue=S.state).pending=0,ue.pending_out=0,ue.wrap<0&&(ue.wrap=-ue.wrap),ue.status=ue.wrap?L:te,S.adler=ue.wrap===2?0:1,ue.last_flush=d,s._tr_init(ue),l):ze(S,f)}function we(S){var ue=wt(S);return ue===l&&function(Y){Y.window_size=2*Y.w_size,re(Y.head),Y.max_lazy_match=r[Y.level].max_lazy,Y.good_match=r[Y.level].good_length,Y.nice_match=r[Y.level].nice_length,Y.max_chain_length=r[Y.level].max_chain,Y.strstart=0,Y.block_start=0,Y.lookahead=0,Y.insert=0,Y.match_length=Y.prev_length=$-1,Y.match_available=0,Y.ins_h=0}(S.state),ue}function fr(S,ue,Y,x,O,F){if(!S)return f;var pe=1;if(ue===g&&(ue=6),x<0?(pe=0,x=-x):15<x&&(pe=2,x-=16),O<1||v<O||Y!==y||x<8||15<x||ue<0||9<ue||F<0||T<F)return ze(S,f);x===8&&(x=9);var fe=new Lt;return(S.state=fe).strm=S,fe.wrap=pe,fe.gzhead=null,fe.w_bits=x,fe.w_size=1<<fe.w_bits,fe.w_mask=fe.w_size-1,fe.hash_bits=O+7,fe.hash_size=1<<fe.hash_bits,fe.hash_mask=fe.hash_size-1,fe.hash_shift=~~((fe.hash_bits+$-1)/$),fe.window=new o.Buf8(2*fe.w_size),fe.head=new o.Buf16(fe.hash_size),fe.prev=new o.Buf16(fe.w_size),fe.lit_bufsize=1<<O+6,fe.pending_buf_size=4*fe.lit_bufsize,fe.pending_buf=new o.Buf8(fe.pending_buf_size),fe.d_buf=1*fe.lit_bufsize,fe.l_buf=3*fe.lit_bufsize,fe.level=ue,fe.strategy=F,fe.method=Y,we(S)}r=[new at(0,0,0,0,function(S,ue){var Y=65535;for(Y>S.pending_buf_size-5&&(Y=S.pending_buf_size-5);;){if(S.lookahead<=1){if(Ze(S),S.lookahead===0&&ue===d)return A;if(S.lookahead===0)break}S.strstart+=S.lookahead,S.lookahead=0;var x=S.block_start+Y;if((S.strstart===0||S.strstart>=x)&&(S.lookahead=S.strstart-x,S.strstart=x,q(S,!1),S.strm.avail_out===0)||S.strstart-S.block_start>=S.w_size-Ae&&(q(S,!1),S.strm.avail_out===0))return A}return S.insert=0,ue===m?(q(S,!0),S.strm.avail_out===0?He:ge):(S.strstart>S.block_start&&(q(S,!1),S.strm.avail_out),A)}),new at(4,4,8,4,yt),new at(4,5,16,8,yt),new at(4,6,32,32,yt),new at(4,4,16,16,ae),new at(8,16,32,32,ae),new at(8,16,128,128,ae),new at(8,32,128,256,ae),new at(32,128,258,1024,ae),new at(32,258,258,4096,ae)],e.deflateInit=function(S,ue){return fr(S,ue,y,15,8,0)},e.deflateInit2=fr,e.deflateReset=we,e.deflateResetKeep=wt,e.deflateSetHeader=function(S,ue){return S&&S.state?S.state.wrap!==2?f:(S.state.gzhead=ue,l):f},e.deflate=function(S,ue){var Y,x,O,F;if(!S||!S.state||5<ue||ue<0)return S?ze(S,f):f;if(x=S.state,!S.output||!S.input&&S.avail_in!==0||x.status===666&&ue!==m)return ze(S,S.avail_out===0?-5:f);if(x.strm=S,Y=x.last_flush,x.last_flush=ue,x.status===L)if(x.wrap===2)S.adler=0,Be(x,31),Be(x,139),Be(x,8),x.gzhead?(Be(x,(x.gzhead.text?1:0)+(x.gzhead.hcrc?2:0)+(x.gzhead.extra?4:0)+(x.gzhead.name?8:0)+(x.gzhead.comment?16:0)),Be(x,255&x.gzhead.time),Be(x,x.gzhead.time>>8&255),Be(x,x.gzhead.time>>16&255),Be(x,x.gzhead.time>>24&255),Be(x,x.level===9?2:2<=x.strategy||x.level<2?4:0),Be(x,255&x.gzhead.os),x.gzhead.extra&&x.gzhead.extra.length&&(Be(x,255&x.gzhead.extra.length),Be(x,x.gzhead.extra.length>>8&255)),x.gzhead.hcrc&&(S.adler=a(S.adler,x.pending_buf,x.pending,0)),x.gzindex=0,x.status=69):(Be(x,0),Be(x,0),Be(x,0),Be(x,0),Be(x,0),Be(x,x.level===9?2:2<=x.strategy||x.level<2?4:0),Be(x,3),x.status=te);else{var pe=y+(x.w_bits-8<<4)<<8;pe|=(2<=x.strategy||x.level<2?0:x.level<6?1:x.level===6?2:3)<<6,x.strstart!==0&&(pe|=32),pe+=31-pe%31,x.status=te,De(x,pe),x.strstart!==0&&(De(x,S.adler>>>16),De(x,65535&S.adler)),S.adler=1}if(x.status===69)if(x.gzhead.extra){for(O=x.pending;x.gzindex<(65535&x.gzhead.extra.length)&&(x.pending!==x.pending_buf_size||(x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),Q(S),O=x.pending,x.pending!==x.pending_buf_size));)Be(x,255&x.gzhead.extra[x.gzindex]),x.gzindex++;x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),x.gzindex===x.gzhead.extra.length&&(x.gzindex=0,x.status=73)}else x.status=73;if(x.status===73)if(x.gzhead.name){O=x.pending;do{if(x.pending===x.pending_buf_size&&(x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),Q(S),O=x.pending,x.pending===x.pending_buf_size)){F=1;break}F=x.gzindex<x.gzhead.name.length?255&x.gzhead.name.charCodeAt(x.gzindex++):0,Be(x,F)}while(F!==0);x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),F===0&&(x.gzindex=0,x.status=91)}else x.status=91;if(x.status===91)if(x.gzhead.comment){O=x.pending;do{if(x.pending===x.pending_buf_size&&(x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),Q(S),O=x.pending,x.pending===x.pending_buf_size)){F=1;break}F=x.gzindex<x.gzhead.comment.length?255&x.gzhead.comment.charCodeAt(x.gzindex++):0,Be(x,F)}while(F!==0);x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),F===0&&(x.status=103)}else x.status=103;if(x.status===103&&(x.gzhead.hcrc?(x.pending+2>x.pending_buf_size&&Q(S),x.pending+2<=x.pending_buf_size&&(Be(x,255&S.adler),Be(x,S.adler>>8&255),S.adler=0,x.status=te)):x.status=te),x.pending!==0){if(Q(S),S.avail_out===0)return x.last_flush=-1,l}else if(S.avail_in===0&&me(ue)<=me(Y)&&ue!==m)return ze(S,-5);if(x.status===666&&S.avail_in!==0)return ze(S,-5);if(S.avail_in!==0||x.lookahead!==0||ue!==d&&x.status!==666){var fe=x.strategy===2?function(X,oe){for(var xe;;){if(X.lookahead===0&&(Ze(X),X.lookahead===0)){if(oe===d)return A;break}if(X.match_length=0,xe=s._tr_tally(X,0,X.window[X.strstart]),X.lookahead--,X.strstart++,xe&&(q(X,!1),X.strm.avail_out===0))return A}return X.insert=0,oe===m?(q(X,!0),X.strm.avail_out===0?He:ge):X.last_lit&&(q(X,!1),X.strm.avail_out===0)?A:le}(x,ue):x.strategy===3?function(X,oe){for(var xe,Z,$e,b,it=X.window;;){if(X.lookahead<=de){if(Ze(X),X.lookahead<=de&&oe===d)return A;if(X.lookahead===0)break}if(X.match_length=0,X.lookahead>=$&&0<X.strstart&&(Z=it[$e=X.strstart-1])===it[++$e]&&Z===it[++$e]&&Z===it[++$e]){b=X.strstart+de;do;while(Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&$e<b);X.match_length=de-(b-$e),X.match_length>X.lookahead&&(X.match_length=X.lookahead)}if(X.match_length>=$?(xe=s._tr_tally(X,1,X.match_length-$),X.lookahead-=X.match_length,X.strstart+=X.match_length,X.match_length=0):(xe=s._tr_tally(X,0,X.window[X.strstart]),X.lookahead--,X.strstart++),xe&&(q(X,!1),X.strm.avail_out===0))return A}return X.insert=0,oe===m?(q(X,!0),X.strm.avail_out===0?He:ge):X.last_lit&&(q(X,!1),X.strm.avail_out===0)?A:le}(x,ue):r[x.level].func(x,ue);if(fe!==He&&fe!==ge||(x.status=666),fe===A||fe===He)return S.avail_out===0&&(x.last_flush=-1),l;if(fe===le&&(ue===1?s._tr_align(x):ue!==5&&(s._tr_stored_block(x,0,0,!1),ue===3&&(re(x.head),x.lookahead===0&&(x.strstart=0,x.block_start=0,x.insert=0))),Q(S),S.avail_out===0))return x.last_flush=-1,l}return ue!==m?l:x.wrap<=0?1:(x.wrap===2?(Be(x,255&S.adler),Be(x,S.adler>>8&255),Be(x,S.adler>>16&255),Be(x,S.adler>>24&255),Be(x,255&S.total_in),Be(x,S.total_in>>8&255),Be(x,S.total_in>>16&255),Be(x,S.total_in>>24&255)):(De(x,S.adler>>>16),De(x,65535&S.adler)),Q(S),0<x.wrap&&(x.wrap=-x.wrap),x.pending!==0?l:1)},e.deflateEnd=function(S){var ue;return S&&S.state?(ue=S.state.status)!==L&&ue!==69&&ue!==73&&ue!==91&&ue!==103&&ue!==te&&ue!==666?ze(S,f):(S.state=null,ue===te?ze(S,-3):l):f},e.deflateSetDictionary=function(S,ue){var Y,x,O,F,pe,fe,X,oe,xe=ue.length;if(!S||!S.state||(F=(Y=S.state).wrap)===2||F===1&&Y.status!==L||Y.lookahead)return f;for(F===1&&(S.adler=n(S.adler,ue,xe,0)),Y.wrap=0,xe>=Y.w_size&&(F===0&&(re(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0),oe=new o.Buf8(Y.w_size),o.arraySet(oe,ue,xe-Y.w_size,Y.w_size,0),ue=oe,xe=Y.w_size),pe=S.avail_in,fe=S.next_in,X=S.input,S.avail_in=xe,S.next_in=0,S.input=ue,Ze(Y);Y.lookahead>=$;){for(x=Y.strstart,O=Y.lookahead-($-1);Y.ins_h=(Y.ins_h<<Y.hash_shift^Y.window[x+$-1])&Y.hash_mask,Y.prev[x&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=x,x++,--O;);Y.strstart=x,Y.lookahead=$-1,Ze(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=$-1,Y.match_available=0,S.next_in=fe,S.input=X,S.avail_in=pe,Y.wrap=F,l},e.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(i,t,e){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(i,t,e){"use strict";t.exports=function(r,o){var s,n,a,c,d,m,l,f,g,T,E,y,v,M,w,H,B,P,$,de,Ae,L,te,A,le;s=r.state,n=r.next_in,A=r.input,a=n+(r.avail_in-5),c=r.next_out,le=r.output,d=c-(o-r.avail_out),m=c+(r.avail_out-257),l=s.dmax,f=s.wsize,g=s.whave,T=s.wnext,E=s.window,y=s.hold,v=s.bits,M=s.lencode,w=s.distcode,H=(1<<s.lenbits)-1,B=(1<<s.distbits)-1;e:do{v<15&&(y+=A[n++]<<v,v+=8,y+=A[n++]<<v,v+=8),P=M[y&H];t:for(;;){if(y>>>=$=P>>>24,v-=$,($=P>>>16&255)===0)le[c++]=65535&P;else{if(!(16&$)){if((64&$)==0){P=M[(65535&P)+(y&(1<<$)-1)];continue t}if(32&$){s.mode=12;break e}r.msg="invalid literal/length code",s.mode=30;break e}de=65535&P,($&=15)&&(v<$&&(y+=A[n++]<<v,v+=8),de+=y&(1<<$)-1,y>>>=$,v-=$),v<15&&(y+=A[n++]<<v,v+=8,y+=A[n++]<<v,v+=8),P=w[y&B];r:for(;;){if(y>>>=$=P>>>24,v-=$,!(16&($=P>>>16&255))){if((64&$)==0){P=w[(65535&P)+(y&(1<<$)-1)];continue r}r.msg="invalid distance code",s.mode=30;break e}if(Ae=65535&P,v<($&=15)&&(y+=A[n++]<<v,(v+=8)<$&&(y+=A[n++]<<v,v+=8)),l<(Ae+=y&(1<<$)-1)){r.msg="invalid distance too far back",s.mode=30;break e}if(y>>>=$,v-=$,($=c-d)<Ae){if(g<($=Ae-$)&&s.sane){r.msg="invalid distance too far back",s.mode=30;break e}if(te=E,(L=0)===T){if(L+=f-$,$<de){for(de-=$;le[c++]=E[L++],--$;);L=c-Ae,te=le}}else if(T<$){if(L+=f+T-$,($-=T)<de){for(de-=$;le[c++]=E[L++],--$;);if(L=0,T<de){for(de-=$=T;le[c++]=E[L++],--$;);L=c-Ae,te=le}}}else if(L+=T-$,$<de){for(de-=$;le[c++]=E[L++],--$;);L=c-Ae,te=le}for(;2<de;)le[c++]=te[L++],le[c++]=te[L++],le[c++]=te[L++],de-=3;de&&(le[c++]=te[L++],1<de&&(le[c++]=te[L++]))}else{for(L=c-Ae;le[c++]=le[L++],le[c++]=le[L++],le[c++]=le[L++],2<(de-=3););de&&(le[c++]=le[L++],1<de&&(le[c++]=le[L++]))}break}}break}}while(n<a&&c<m);n-=de=v>>3,y&=(1<<(v-=de<<3))-1,r.next_in=n,r.next_out=c,r.avail_in=n<a?a-n+5:5-(n-a),r.avail_out=c<m?m-c+257:257-(c-m),s.hold=y,s.bits=v}},{}],49:[function(i,t,e){"use strict";var r=i("../utils/common"),o=i("./adler32"),s=i("./crc32"),n=i("./inffast"),a=i("./inftrees"),c=1,d=2,m=0,l=-2,f=1,g=852,T=592;function E(L){return(L>>>24&255)+(L>>>8&65280)+((65280&L)<<8)+((255&L)<<24)}function y(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function v(L){var te;return L&&L.state?(te=L.state,L.total_in=L.total_out=te.total=0,L.msg="",te.wrap&&(L.adler=1&te.wrap),te.mode=f,te.last=0,te.havedict=0,te.dmax=32768,te.head=null,te.hold=0,te.bits=0,te.lencode=te.lendyn=new r.Buf32(g),te.distcode=te.distdyn=new r.Buf32(T),te.sane=1,te.back=-1,m):l}function M(L){var te;return L&&L.state?((te=L.state).wsize=0,te.whave=0,te.wnext=0,v(L)):l}function w(L,te){var A,le;return L&&L.state?(le=L.state,te<0?(A=0,te=-te):(A=1+(te>>4),te<48&&(te&=15)),te&&(te<8||15<te)?l:(le.window!==null&&le.wbits!==te&&(le.window=null),le.wrap=A,le.wbits=te,M(L))):l}function H(L,te){var A,le;return L?(le=new y,(L.state=le).window=null,(A=w(L,te))!==m&&(L.state=null),A):l}var B,P,$=!0;function de(L){if($){var te;for(B=new r.Buf32(512),P=new r.Buf32(32),te=0;te<144;)L.lens[te++]=8;for(;te<256;)L.lens[te++]=9;for(;te<280;)L.lens[te++]=7;for(;te<288;)L.lens[te++]=8;for(a(c,L.lens,0,288,B,0,L.work,{bits:9}),te=0;te<32;)L.lens[te++]=5;a(d,L.lens,0,32,P,0,L.work,{bits:5}),$=!1}L.lencode=B,L.lenbits=9,L.distcode=P,L.distbits=5}function Ae(L,te,A,le){var He,ge=L.state;return ge.window===null&&(ge.wsize=1<<ge.wbits,ge.wnext=0,ge.whave=0,ge.window=new r.Buf8(ge.wsize)),le>=ge.wsize?(r.arraySet(ge.window,te,A-ge.wsize,ge.wsize,0),ge.wnext=0,ge.whave=ge.wsize):(le<(He=ge.wsize-ge.wnext)&&(He=le),r.arraySet(ge.window,te,A-le,He,ge.wnext),(le-=He)?(r.arraySet(ge.window,te,A-le,le,0),ge.wnext=le,ge.whave=ge.wsize):(ge.wnext+=He,ge.wnext===ge.wsize&&(ge.wnext=0),ge.whave<ge.wsize&&(ge.whave+=He))),0}e.inflateReset=M,e.inflateReset2=w,e.inflateResetKeep=v,e.inflateInit=function(L){return H(L,15)},e.inflateInit2=H,e.inflate=function(L,te){var A,le,He,ge,ze,me,re,Q,q,Be,De,ne,Ze,yt,ae,at,Lt,wt,we,fr,S,ue,Y,x,O=0,F=new r.Buf8(4),pe=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!L||!L.state||!L.output||!L.input&&L.avail_in!==0)return l;(A=L.state).mode===12&&(A.mode=13),ze=L.next_out,He=L.output,re=L.avail_out,ge=L.next_in,le=L.input,me=L.avail_in,Q=A.hold,q=A.bits,Be=me,De=re,ue=m;e:for(;;)switch(A.mode){case f:if(A.wrap===0){A.mode=13;break}for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(2&A.wrap&&Q===35615){F[A.check=0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0),q=Q=0,A.mode=2;break}if(A.flags=0,A.head&&(A.head.done=!1),!(1&A.wrap)||(((255&Q)<<8)+(Q>>8))%31){L.msg="incorrect header check",A.mode=30;break}if((15&Q)!=8){L.msg="unknown compression method",A.mode=30;break}if(q-=4,S=8+(15&(Q>>>=4)),A.wbits===0)A.wbits=S;else if(S>A.wbits){L.msg="invalid window size",A.mode=30;break}A.dmax=1<<S,L.adler=A.check=1,A.mode=512&Q?10:12,q=Q=0;break;case 2:for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(A.flags=Q,(255&A.flags)!=8){L.msg="unknown compression method",A.mode=30;break}if(57344&A.flags){L.msg="unknown header flags set",A.mode=30;break}A.head&&(A.head.text=Q>>8&1),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0)),q=Q=0,A.mode=3;case 3:for(;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.head&&(A.head.time=Q),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,F[2]=Q>>>16&255,F[3]=Q>>>24&255,A.check=s(A.check,F,4,0)),q=Q=0,A.mode=4;case 4:for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.head&&(A.head.xflags=255&Q,A.head.os=Q>>8),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0)),q=Q=0,A.mode=5;case 5:if(1024&A.flags){for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.length=Q,A.head&&(A.head.extra_len=Q),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0)),q=Q=0}else A.head&&(A.head.extra=null);A.mode=6;case 6:if(1024&A.flags&&(me<(ne=A.length)&&(ne=me),ne&&(A.head&&(S=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),r.arraySet(A.head.extra,le,ge,ne,S)),512&A.flags&&(A.check=s(A.check,le,ne,ge)),me-=ne,ge+=ne,A.length-=ne),A.length))break e;A.length=0,A.mode=7;case 7:if(2048&A.flags){if(me===0)break e;for(ne=0;S=le[ge+ne++],A.head&&S&&A.length<65536&&(A.head.name+=String.fromCharCode(S)),S&&ne<me;);if(512&A.flags&&(A.check=s(A.check,le,ne,ge)),me-=ne,ge+=ne,S)break e}else A.head&&(A.head.name=null);A.length=0,A.mode=8;case 8:if(4096&A.flags){if(me===0)break e;for(ne=0;S=le[ge+ne++],A.head&&S&&A.length<65536&&(A.head.comment+=String.fromCharCode(S)),S&&ne<me;);if(512&A.flags&&(A.check=s(A.check,le,ne,ge)),me-=ne,ge+=ne,S)break e}else A.head&&(A.head.comment=null);A.mode=9;case 9:if(512&A.flags){for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Q!==(65535&A.check)){L.msg="header crc mismatch",A.mode=30;break}q=Q=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),L.adler=A.check=0,A.mode=12;break;case 10:for(;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}L.adler=A.check=E(Q),q=Q=0,A.mode=11;case 11:if(A.havedict===0)return L.next_out=ze,L.avail_out=re,L.next_in=ge,L.avail_in=me,A.hold=Q,A.bits=q,2;L.adler=A.check=1,A.mode=12;case 12:if(te===5||te===6)break e;case 13:if(A.last){Q>>>=7&q,q-=7&q,A.mode=27;break}for(;q<3;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}switch(A.last=1&Q,q-=1,3&(Q>>>=1)){case 0:A.mode=14;break;case 1:if(de(A),A.mode=20,te!==6)break;Q>>>=2,q-=2;break e;case 2:A.mode=17;break;case 3:L.msg="invalid block type",A.mode=30}Q>>>=2,q-=2;break;case 14:for(Q>>>=7&q,q-=7&q;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if((65535&Q)!=(Q>>>16^65535)){L.msg="invalid stored block lengths",A.mode=30;break}if(A.length=65535&Q,q=Q=0,A.mode=15,te===6)break e;case 15:A.mode=16;case 16:if(ne=A.length){if(me<ne&&(ne=me),re<ne&&(ne=re),ne===0)break e;r.arraySet(He,le,ge,ne,ze),me-=ne,ge+=ne,re-=ne,ze+=ne,A.length-=ne;break}A.mode=12;break;case 17:for(;q<14;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(A.nlen=257+(31&Q),Q>>>=5,q-=5,A.ndist=1+(31&Q),Q>>>=5,q-=5,A.ncode=4+(15&Q),Q>>>=4,q-=4,286<A.nlen||30<A.ndist){L.msg="too many length or distance symbols",A.mode=30;break}A.have=0,A.mode=18;case 18:for(;A.have<A.ncode;){for(;q<3;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.lens[pe[A.have++]]=7&Q,Q>>>=3,q-=3}for(;A.have<19;)A.lens[pe[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,Y={bits:A.lenbits},ue=a(0,A.lens,0,19,A.lencode,0,A.work,Y),A.lenbits=Y.bits,ue){L.msg="invalid code lengths set",A.mode=30;break}A.have=0,A.mode=19;case 19:for(;A.have<A.nlen+A.ndist;){for(;at=(O=A.lencode[Q&(1<<A.lenbits)-1])>>>16&255,Lt=65535&O,!((ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Lt<16)Q>>>=ae,q-=ae,A.lens[A.have++]=Lt;else{if(Lt===16){for(x=ae+2;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Q>>>=ae,q-=ae,A.have===0){L.msg="invalid bit length repeat",A.mode=30;break}S=A.lens[A.have-1],ne=3+(3&Q),Q>>>=2,q-=2}else if(Lt===17){for(x=ae+3;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}q-=ae,S=0,ne=3+(7&(Q>>>=ae)),Q>>>=3,q-=3}else{for(x=ae+7;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}q-=ae,S=0,ne=11+(127&(Q>>>=ae)),Q>>>=7,q-=7}if(A.have+ne>A.nlen+A.ndist){L.msg="invalid bit length repeat",A.mode=30;break}for(;ne--;)A.lens[A.have++]=S}}if(A.mode===30)break;if(A.lens[256]===0){L.msg="invalid code -- missing end-of-block",A.mode=30;break}if(A.lenbits=9,Y={bits:A.lenbits},ue=a(c,A.lens,0,A.nlen,A.lencode,0,A.work,Y),A.lenbits=Y.bits,ue){L.msg="invalid literal/lengths set",A.mode=30;break}if(A.distbits=6,A.distcode=A.distdyn,Y={bits:A.distbits},ue=a(d,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,Y),A.distbits=Y.bits,ue){L.msg="invalid distances set",A.mode=30;break}if(A.mode=20,te===6)break e;case 20:A.mode=21;case 21:if(6<=me&&258<=re){L.next_out=ze,L.avail_out=re,L.next_in=ge,L.avail_in=me,A.hold=Q,A.bits=q,n(L,De),ze=L.next_out,He=L.output,re=L.avail_out,ge=L.next_in,le=L.input,me=L.avail_in,Q=A.hold,q=A.bits,A.mode===12&&(A.back=-1);break}for(A.back=0;at=(O=A.lencode[Q&(1<<A.lenbits)-1])>>>16&255,Lt=65535&O,!((ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(at&&(240&at)==0){for(wt=ae,we=at,fr=Lt;at=(O=A.lencode[fr+((Q&(1<<wt+we)-1)>>wt)])>>>16&255,Lt=65535&O,!(wt+(ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}Q>>>=wt,q-=wt,A.back+=wt}if(Q>>>=ae,q-=ae,A.back+=ae,A.length=Lt,at===0){A.mode=26;break}if(32&at){A.back=-1,A.mode=12;break}if(64&at){L.msg="invalid literal/length code",A.mode=30;break}A.extra=15&at,A.mode=22;case 22:if(A.extra){for(x=A.extra;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.length+=Q&(1<<A.extra)-1,Q>>>=A.extra,q-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=23;case 23:for(;at=(O=A.distcode[Q&(1<<A.distbits)-1])>>>16&255,Lt=65535&O,!((ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if((240&at)==0){for(wt=ae,we=at,fr=Lt;at=(O=A.distcode[fr+((Q&(1<<wt+we)-1)>>wt)])>>>16&255,Lt=65535&O,!(wt+(ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}Q>>>=wt,q-=wt,A.back+=wt}if(Q>>>=ae,q-=ae,A.back+=ae,64&at){L.msg="invalid distance code",A.mode=30;break}A.offset=Lt,A.extra=15&at,A.mode=24;case 24:if(A.extra){for(x=A.extra;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.offset+=Q&(1<<A.extra)-1,Q>>>=A.extra,q-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){L.msg="invalid distance too far back",A.mode=30;break}A.mode=25;case 25:if(re===0)break e;if(ne=De-re,A.offset>ne){if((ne=A.offset-ne)>A.whave&&A.sane){L.msg="invalid distance too far back",A.mode=30;break}Ze=ne>A.wnext?(ne-=A.wnext,A.wsize-ne):A.wnext-ne,ne>A.length&&(ne=A.length),yt=A.window}else yt=He,Ze=ze-A.offset,ne=A.length;for(re<ne&&(ne=re),re-=ne,A.length-=ne;He[ze++]=yt[Ze++],--ne;);A.length===0&&(A.mode=21);break;case 26:if(re===0)break e;He[ze++]=A.length,re--,A.mode=21;break;case 27:if(A.wrap){for(;q<32;){if(me===0)break e;me--,Q|=le[ge++]<<q,q+=8}if(De-=re,L.total_out+=De,A.total+=De,De&&(L.adler=A.check=A.flags?s(A.check,He,De,ze-De):o(A.check,He,De,ze-De)),De=re,(A.flags?Q:E(Q))!==A.check){L.msg="incorrect data check",A.mode=30;break}q=Q=0}A.mode=28;case 28:if(A.wrap&&A.flags){for(;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Q!==(4294967295&A.total)){L.msg="incorrect length check",A.mode=30;break}q=Q=0}A.mode=29;case 29:ue=1;break e;case 30:ue=-3;break e;case 31:return-4;case 32:default:return l}return L.next_out=ze,L.avail_out=re,L.next_in=ge,L.avail_in=me,A.hold=Q,A.bits=q,(A.wsize||De!==L.avail_out&&A.mode<30&&(A.mode<27||te!==4))&&Ae(L,L.output,L.next_out,De-L.avail_out)?(A.mode=31,-4):(Be-=L.avail_in,De-=L.avail_out,L.total_in+=Be,L.total_out+=De,A.total+=De,A.wrap&&De&&(L.adler=A.check=A.flags?s(A.check,He,De,L.next_out-De):o(A.check,He,De,L.next_out-De)),L.data_type=A.bits+(A.last?64:0)+(A.mode===12?128:0)+(A.mode===20||A.mode===15?256:0),(Be==0&&De===0||te===4)&&ue===m&&(ue=-5),ue)},e.inflateEnd=function(L){if(!L||!L.state)return l;var te=L.state;return te.window&&(te.window=null),L.state=null,m},e.inflateGetHeader=function(L,te){var A;return L&&L.state?(2&(A=L.state).wrap)==0?l:((A.head=te).done=!1,m):l},e.inflateSetDictionary=function(L,te){var A,le=te.length;return L&&L.state?(A=L.state).wrap!==0&&A.mode!==11?l:A.mode===11&&o(1,te,le,0)!==A.check?-3:Ae(L,te,le,le)?(A.mode=31,-4):(A.havedict=1,m):l},e.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(i,t,e){"use strict";var r=i("../utils/common"),o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],n=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],a=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(c,d,m,l,f,g,T,E){var y,v,M,w,H,B,P,$,de,Ae=E.bits,L=0,te=0,A=0,le=0,He=0,ge=0,ze=0,me=0,re=0,Q=0,q=null,Be=0,De=new r.Buf16(16),ne=new r.Buf16(16),Ze=null,yt=0;for(L=0;L<=15;L++)De[L]=0;for(te=0;te<l;te++)De[d[m+te]]++;for(He=Ae,le=15;1<=le&&De[le]===0;le--);if(le<He&&(He=le),le===0)return f[g++]=20971520,f[g++]=20971520,E.bits=1,0;for(A=1;A<le&&De[A]===0;A++);for(He<A&&(He=A),L=me=1;L<=15;L++)if(me<<=1,(me-=De[L])<0)return-1;if(0<me&&(c===0||le!==1))return-1;for(ne[1]=0,L=1;L<15;L++)ne[L+1]=ne[L]+De[L];for(te=0;te<l;te++)d[m+te]!==0&&(T[ne[d[m+te]]++]=te);if(B=c===0?(q=Ze=T,19):c===1?(q=o,Be-=257,Ze=s,yt-=257,256):(q=n,Ze=a,-1),L=A,H=g,ze=te=Q=0,M=-1,w=(re=1<<(ge=He))-1,c===1&&852<re||c===2&&592<re)return 1;for(;;){for(P=L-ze,de=T[te]<B?($=0,T[te]):T[te]>B?($=Ze[yt+T[te]],q[Be+T[te]]):($=96,0),y=1<<L-ze,A=v=1<<ge;f[H+(Q>>ze)+(v-=y)]=P<<24|$<<16|de|0,v!==0;);for(y=1<<L-1;Q&y;)y>>=1;if(y!==0?(Q&=y-1,Q+=y):Q=0,te++,--De[L]==0){if(L===le)break;L=d[m+T[te]]}if(He<L&&(Q&w)!==M){for(ze===0&&(ze=He),H+=A,me=1<<(ge=L-ze);ge+ze<le&&!((me-=De[ge+ze])<=0);)ge++,me<<=1;if(re+=1<<ge,c===1&&852<re||c===2&&592<re)return 1;f[M=Q&w]=He<<24|ge<<16|H-g|0}}return Q!==0&&(f[H+Q]=L-ze<<24|64<<16|0),E.bits=He,0}},{"../utils/common":41}],51:[function(i,t,e){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(i,t,e){"use strict";var r=i("../utils/common"),o=0,s=1;function n(O){for(var F=O.length;0<=--F;)O[F]=0}var a=0,c=29,d=256,m=d+1+c,l=30,f=19,g=2*m+1,T=15,E=16,y=7,v=256,M=16,w=17,H=18,B=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],P=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],$=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],de=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Ae=new Array(2*(m+2));n(Ae);var L=new Array(2*l);n(L);var te=new Array(512);n(te);var A=new Array(256);n(A);var le=new Array(c);n(le);var He,ge,ze,me=new Array(l);function re(O,F,pe,fe,X){this.static_tree=O,this.extra_bits=F,this.extra_base=pe,this.elems=fe,this.max_length=X,this.has_stree=O&&O.length}function Q(O,F){this.dyn_tree=O,this.max_code=0,this.stat_desc=F}function q(O){return O<256?te[O]:te[256+(O>>>7)]}function Be(O,F){O.pending_buf[O.pending++]=255&F,O.pending_buf[O.pending++]=F>>>8&255}function De(O,F,pe){O.bi_valid>E-pe?(O.bi_buf|=F<<O.bi_valid&65535,Be(O,O.bi_buf),O.bi_buf=F>>E-O.bi_valid,O.bi_valid+=pe-E):(O.bi_buf|=F<<O.bi_valid&65535,O.bi_valid+=pe)}function ne(O,F,pe){De(O,pe[2*F],pe[2*F+1])}function Ze(O,F){for(var pe=0;pe|=1&O,O>>>=1,pe<<=1,0<--F;);return pe>>>1}function yt(O,F,pe){var fe,X,oe=new Array(T+1),xe=0;for(fe=1;fe<=T;fe++)oe[fe]=xe=xe+pe[fe-1]<<1;for(X=0;X<=F;X++){var Z=O[2*X+1];Z!==0&&(O[2*X]=Ze(oe[Z]++,Z))}}function ae(O){var F;for(F=0;F<m;F++)O.dyn_ltree[2*F]=0;for(F=0;F<l;F++)O.dyn_dtree[2*F]=0;for(F=0;F<f;F++)O.bl_tree[2*F]=0;O.dyn_ltree[2*v]=1,O.opt_len=O.static_len=0,O.last_lit=O.matches=0}function at(O){8<O.bi_valid?Be(O,O.bi_buf):0<O.bi_valid&&(O.pending_buf[O.pending++]=O.bi_buf),O.bi_buf=0,O.bi_valid=0}function Lt(O,F,pe,fe){var X=2*F,oe=2*pe;return O[X]<O[oe]||O[X]===O[oe]&&fe[F]<=fe[pe]}function wt(O,F,pe){for(var fe=O.heap[pe],X=pe<<1;X<=O.heap_len&&(X<O.heap_len&&Lt(F,O.heap[X+1],O.heap[X],O.depth)&&X++,!Lt(F,fe,O.heap[X],O.depth));)O.heap[pe]=O.heap[X],pe=X,X<<=1;O.heap[pe]=fe}function we(O,F,pe){var fe,X,oe,xe,Z=0;if(O.last_lit!==0)for(;fe=O.pending_buf[O.d_buf+2*Z]<<8|O.pending_buf[O.d_buf+2*Z+1],X=O.pending_buf[O.l_buf+Z],Z++,fe===0?ne(O,X,F):(ne(O,(oe=A[X])+d+1,F),(xe=B[oe])!==0&&De(O,X-=le[oe],xe),ne(O,oe=q(--fe),pe),(xe=P[oe])!==0&&De(O,fe-=me[oe],xe)),Z<O.last_lit;);ne(O,v,F)}function fr(O,F){var pe,fe,X,oe=F.dyn_tree,xe=F.stat_desc.static_tree,Z=F.stat_desc.has_stree,$e=F.stat_desc.elems,b=-1;for(O.heap_len=0,O.heap_max=g,pe=0;pe<$e;pe++)oe[2*pe]!==0?(O.heap[++O.heap_len]=b=pe,O.depth[pe]=0):oe[2*pe+1]=0;for(;O.heap_len<2;)oe[2*(X=O.heap[++O.heap_len]=b<2?++b:0)]=1,O.depth[X]=0,O.opt_len--,Z&&(O.static_len-=xe[2*X+1]);for(F.max_code=b,pe=O.heap_len>>1;1<=pe;pe--)wt(O,oe,pe);for(X=$e;pe=O.heap[1],O.heap[1]=O.heap[O.heap_len--],wt(O,oe,1),fe=O.heap[1],O.heap[--O.heap_max]=pe,O.heap[--O.heap_max]=fe,oe[2*X]=oe[2*pe]+oe[2*fe],O.depth[X]=(O.depth[pe]>=O.depth[fe]?O.depth[pe]:O.depth[fe])+1,oe[2*pe+1]=oe[2*fe+1]=X,O.heap[1]=X++,wt(O,oe,1),2<=O.heap_len;);O.heap[--O.heap_max]=O.heap[1],function(it,vt){var Mr,xr,Ft,G,gr,Di,lr=vt.dyn_tree,pt=vt.max_code,_n=vt.stat_desc.static_tree,kr=vt.stat_desc.has_stree,ei=vt.stat_desc.extra_bits,vr=vt.stat_desc.extra_base,Oi=vt.stat_desc.max_length,Mi=0;for(G=0;G<=T;G++)it.bl_count[G]=0;for(lr[2*it.heap[it.heap_max]+1]=0,Mr=it.heap_max+1;Mr<g;Mr++)Oi<(G=lr[2*lr[2*(xr=it.heap[Mr])+1]+1]+1)&&(G=Oi,Mi++),lr[2*xr+1]=G,pt<xr||(it.bl_count[G]++,gr=0,vr<=xr&&(gr=ei[xr-vr]),Di=lr[2*xr],it.opt_len+=Di*(G+gr),kr&&(it.static_len+=Di*(_n[2*xr+1]+gr)));if(Mi!==0){do{for(G=Oi-1;it.bl_count[G]===0;)G--;it.bl_count[G]--,it.bl_count[G+1]+=2,it.bl_count[Oi]--,Mi-=2}while(0<Mi);for(G=Oi;G!==0;G--)for(xr=it.bl_count[G];xr!==0;)pt<(Ft=it.heap[--Mr])||(lr[2*Ft+1]!==G&&(it.opt_len+=(G-lr[2*Ft+1])*lr[2*Ft],lr[2*Ft+1]=G),xr--)}}(O,F),yt(oe,b,O.bl_count)}function S(O,F,pe){var fe,X,oe=-1,xe=F[1],Z=0,$e=7,b=4;for(xe===0&&($e=138,b=3),F[2*(pe+1)+1]=65535,fe=0;fe<=pe;fe++)X=xe,xe=F[2*(fe+1)+1],++Z<$e&&X===xe||(Z<b?O.bl_tree[2*X]+=Z:X!==0?(X!==oe&&O.bl_tree[2*X]++,O.bl_tree[2*M]++):Z<=10?O.bl_tree[2*w]++:O.bl_tree[2*H]++,oe=X,b=(Z=0)===xe?($e=138,3):X===xe?($e=6,3):($e=7,4))}function ue(O,F,pe){var fe,X,oe=-1,xe=F[1],Z=0,$e=7,b=4;for(xe===0&&($e=138,b=3),fe=0;fe<=pe;fe++)if(X=xe,xe=F[2*(fe+1)+1],!(++Z<$e&&X===xe)){if(Z<b)for(;ne(O,X,O.bl_tree),--Z!=0;);else X!==0?(X!==oe&&(ne(O,X,O.bl_tree),Z--),ne(O,M,O.bl_tree),De(O,Z-3,2)):Z<=10?(ne(O,w,O.bl_tree),De(O,Z-3,3)):(ne(O,H,O.bl_tree),De(O,Z-11,7));oe=X,b=(Z=0)===xe?($e=138,3):X===xe?($e=6,3):($e=7,4)}}n(me);var Y=!1;function x(O,F,pe,fe){De(O,(a<<1)+(fe?1:0),3),function(X,oe,xe,Z){at(X),Z&&(Be(X,xe),Be(X,~xe)),r.arraySet(X.pending_buf,X.window,oe,xe,X.pending),X.pending+=xe}(O,F,pe,!0)}e._tr_init=function(O){Y||(function(){var F,pe,fe,X,oe,xe=new Array(T+1);for(X=fe=0;X<c-1;X++)for(le[X]=fe,F=0;F<1<<B[X];F++)A[fe++]=X;for(A[fe-1]=X,X=oe=0;X<16;X++)for(me[X]=oe,F=0;F<1<<P[X];F++)te[oe++]=X;for(oe>>=7;X<l;X++)for(me[X]=oe<<7,F=0;F<1<<P[X]-7;F++)te[256+oe++]=X;for(pe=0;pe<=T;pe++)xe[pe]=0;for(F=0;F<=143;)Ae[2*F+1]=8,F++,xe[8]++;for(;F<=255;)Ae[2*F+1]=9,F++,xe[9]++;for(;F<=279;)Ae[2*F+1]=7,F++,xe[7]++;for(;F<=287;)Ae[2*F+1]=8,F++,xe[8]++;for(yt(Ae,m+1,xe),F=0;F<l;F++)L[2*F+1]=5,L[2*F]=Ze(F,5);He=new re(Ae,B,d+1,m,T),ge=new re(L,P,0,l,T),ze=new re(new Array(0),$,0,f,y)}(),Y=!0),O.l_desc=new Q(O.dyn_ltree,He),O.d_desc=new Q(O.dyn_dtree,ge),O.bl_desc=new Q(O.bl_tree,ze),O.bi_buf=0,O.bi_valid=0,ae(O)},e._tr_stored_block=x,e._tr_flush_block=function(O,F,pe,fe){var X,oe,xe=0;0<O.level?(O.strm.data_type===2&&(O.strm.data_type=function(Z){var $e,b=4093624447;for($e=0;$e<=31;$e++,b>>>=1)if(1&b&&Z.dyn_ltree[2*$e]!==0)return o;if(Z.dyn_ltree[18]!==0||Z.dyn_ltree[20]!==0||Z.dyn_ltree[26]!==0)return s;for($e=32;$e<d;$e++)if(Z.dyn_ltree[2*$e]!==0)return s;return o}(O)),fr(O,O.l_desc),fr(O,O.d_desc),xe=function(Z){var $e;for(S(Z,Z.dyn_ltree,Z.l_desc.max_code),S(Z,Z.dyn_dtree,Z.d_desc.max_code),fr(Z,Z.bl_desc),$e=f-1;3<=$e&&Z.bl_tree[2*de[$e]+1]===0;$e--);return Z.opt_len+=3*($e+1)+5+5+4,$e}(O),X=O.opt_len+3+7>>>3,(oe=O.static_len+3+7>>>3)<=X&&(X=oe)):X=oe=pe+5,pe+4<=X&&F!==-1?x(O,F,pe,fe):O.strategy===4||oe===X?(De(O,2+(fe?1:0),3),we(O,Ae,L)):(De(O,4+(fe?1:0),3),function(Z,$e,b,it){var vt;for(De(Z,$e-257,5),De(Z,b-1,5),De(Z,it-4,4),vt=0;vt<it;vt++)De(Z,Z.bl_tree[2*de[vt]+1],3);ue(Z,Z.dyn_ltree,$e-1),ue(Z,Z.dyn_dtree,b-1)}(O,O.l_desc.max_code+1,O.d_desc.max_code+1,xe+1),we(O,O.dyn_ltree,O.dyn_dtree)),ae(O),fe&&at(O)},e._tr_tally=function(O,F,pe){return O.pending_buf[O.d_buf+2*O.last_lit]=F>>>8&255,O.pending_buf[O.d_buf+2*O.last_lit+1]=255&F,O.pending_buf[O.l_buf+O.last_lit]=255&pe,O.last_lit++,F===0?O.dyn_ltree[2*pe]++:(O.matches++,F--,O.dyn_ltree[2*(A[pe]+d+1)]++,O.dyn_dtree[2*q(F)]++),O.last_lit===O.lit_bufsize-1},e._tr_align=function(O){De(O,2,3),ne(O,v,Ae),function(F){F.bi_valid===16?(Be(F,F.bi_buf),F.bi_buf=0,F.bi_valid=0):8<=F.bi_valid&&(F.pending_buf[F.pending++]=255&F.bi_buf,F.bi_buf>>=8,F.bi_valid-=8)}(O)}},{"../utils/common":41}],53:[function(i,t,e){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(i,t,e){(function(r){(function(o,s){"use strict";if(!o.setImmediate){var n,a,c,d,m=1,l={},f=!1,g=o.document,T=Object.getPrototypeOf&&Object.getPrototypeOf(o);T=T&&T.setTimeout?T:o,n={}.toString.call(o.process)==="[object process]"?function(M){process.nextTick(function(){y(M)})}:function(){if(o.postMessage&&!o.importScripts){var M=!0,w=o.onmessage;return o.onmessage=function(){M=!1},o.postMessage("","*"),o.onmessage=w,M}}()?(d="setImmediate$"+Math.random()+"$",o.addEventListener?o.addEventListener("message",v,!1):o.attachEvent("onmessage",v),function(M){o.postMessage(d+M,"*")}):o.MessageChannel?((c=new MessageChannel).port1.onmessage=function(M){y(M.data)},function(M){c.port2.postMessage(M)}):g&&"onreadystatechange"in g.createElement("script")?(a=g.documentElement,function(M){var w=g.createElement("script");w.onreadystatechange=function(){y(M),w.onreadystatechange=null,a.removeChild(w),w=null},a.appendChild(w)}):function(M){setTimeout(y,0,M)},T.setImmediate=function(M){typeof M!="function"&&(M=new Function(""+M));for(var w=new Array(arguments.length-1),H=0;H<w.length;H++)w[H]=arguments[H+1];var B={callback:M,args:w};return l[m]=B,n(m),m++},T.clearImmediate=E}function E(M){delete l[M]}function y(M){if(f)setTimeout(y,0,M);else{var w=l[M];if(w){f=!0;try{(function(H){var B=H.callback,P=H.args;switch(P.length){case 0:B();break;case 1:B(P[0]);break;case 2:B(P[0],P[1]);break;case 3:B(P[0],P[1],P[2]);break;default:B.apply(s,P)}})(w)}finally{E(M),f=!1}}}}function v(M){M.source===o&&typeof M.data=="string"&&M.data.indexOf(d)===0&&y(+M.data.slice(d.length))}})(typeof self=="undefined"?r===void 0?this:r:self)}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}]},{},[10])(10)})});var Cg=(re=>(re[re.INVALID_PARAMETER=4096]="INVALID_PARAMETER",re[re.INVALID_OPERATION=4097]="INVALID_OPERATION",re[re.NOT_SUPPORTED=4098]="NOT_SUPPORTED",re[re.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",re[re.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",re[re.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",re[re.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",re[re.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",re[re.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",re[re.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",re[re.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",re[re.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",re[re.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",re[re.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",re[re.CLIENT_BANNED=16448]="CLIENT_BANNED",re[re.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",re[re.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",re[re.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",re[re.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",re[re.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",re[re.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",re[re.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",re[re.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",re[re.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",re[re.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",re[re.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",re[re.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",re[re.API_CALL_ABORTED=16461]="API_CALL_ABORTED",re[re.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",re[re.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",re[re.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",re[re.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",re[re.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",re[re.UNKNOWN=65535]="UNKNOWN",re))(Cg||{}),Te=Cg;var nS=function(i){for(let t in Te)if(Te[t]===i)return t;return"UNKNOWN"},Ma=class extends Error{constructor({name:e="RtcError",message:r,code:o=Te.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${nS(o)} 0x${o.toString(16)}>`,c=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(c);p(this,"code");p(this,"extraCode");p(this,"message");p(this,"originMessage");p(this,"name");p(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=c,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},Me=Ma;var wg=0;var Ng=function(){return wg},to=function(){return Date.now()+wg},kd=function(){let i=new Date;return i.setTime(to()),i.toLocaleString()},Rn=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var Vi={};eo(Vi,{REPORT_TYPE:()=>$n,buildSSOPackage:()=>so,bytes2ms:()=>Hg,calculateScaleResolutionDownNumber:()=>eu,concatArrayBuffers:()=>e_,convertObjectNumberToInt:()=>Wa,copyProperties:()=>Fg,deepClone:()=>Ns,deepCloneBasic:()=>Xd,deepMerge:()=>Ei,delay:()=>Ti,fibonacci:()=>Ds,formatedTime:()=>Qd,getConstructorName:()=>Ln,getContainerFromElement:()=>Yg,getEnv:()=>Ug,getFirst16Bits:()=>r_,getInternalVersion:()=>Jg,getLast16Bits:()=>t_,getLoggerUrl:()=>oo,getMediaStreamTrackInfo:()=>Kd,getMuteStateFromFlag:()=>Ms,getNetworkType:()=>kn,getNumNetworkType:()=>Jd,getReconnectionTimeout:()=>Gg,getStringByteLength:()=>Zg,getTurnServer:()=>Qg,getUint32Version:()=>Yd,getValueType:()=>Xt,getViewListFromView:()=>Vn,glog:()=>$a,ipv4ToUint32:()=>Un,isArray:()=>Gt,isAudioWorkletSupported:()=>qg,isBoolean:()=>Nt,isConstructor:()=>Os,isEmpty:()=>Pn,isFunction:()=>Rt,isLangChinese:()=>_i,isMediaStreamTrack:()=>zg,isNumber:()=>ft,isObject:()=>Xr,isOverseaSdkAppId:()=>si,isPlainObject:()=>Nr,isPortrait:()=>im,isPromise:()=>$o,isRemoteTrack:()=>jg,isRotate90Or270:()=>Jr,isSetSinkIdSupported:()=>Xg,isString:()=>nt,isUndefined:()=>z,loadImage:()=>Bn,loadVideo:()=>Kg,ms2bytes:()=>Wg,ms2samples:()=>rm,normalizeUrl:()=>xs,performanceNow:()=>Xe,promiseAny:()=>Fa,samples2ms:()=>tm,setNetworkTypeFromWebRTC:()=>$g,stringify:()=>oi,stringifyIncludeValue:()=>Ha,throttlePromise:()=>Zd});var zh={};eo(zh,{AUDIO_MUTE_BIT:()=>Fd,AUDIO_STAT_BIT:()=>Nn,AUX_STAT_BIT:()=>Pa,AUX_STREAM_MSID:()=>ES,BACKEND_ENV:()=>$d,BASE_DOC_URL:()=>Br,BASE_HOST:()=>Dg,CAPABILITIES_KEYS:()=>Gd,CLASS_NAME:()=>HS,CLOUD_CONSOLE_URL:()=>uS,CROSS_ROOM_BIT:()=>gS,DATA_FREEZE_TIMING:()=>Wd,DOC_BILLING_CN:()=>Ld,DOC_BILLING_OVERSEA:()=>Pd,DOC_URL:()=>lS,DTLS_STATE_UNKNOWN:()=>wS,ENV_NAME:()=>ro,EXCHANGE_SDP_TIMEOUT:()=>kS,IS_WORKER:()=>Cn,IS_WORKLET:()=>xa,KIBANA_EVENT:()=>ii,LOCAL_STREAM_PUBLISH_STATE:()=>Mg,LOGGER_CMD_TYPE:()=>Bo,LOGGER_DOMAIN:()=>Vh,LOGGER_DOMAIN_OVERSEA:()=>Bh,LOG_LEVEL:()=>ri,LOG_LEVEL_NAME:()=>GS,MAIN_STREAM_MSID:()=>_S,MAX_RTT:()=>Va,MICROPHONE_COMMUNICATIONS:()=>WS,MICROPHONE_DEFAULT:()=>ws,MUTE_ALL_BIT:()=>fS,NAME:()=>j,NETWORK_TYPE:()=>Rs,NOT_SUPPORTED_H264:()=>PS,PAUSED_RETRY_COUNT:()=>Cs,PEERCONNECTION_CONNECTING_TIMEOUT:()=>$S,PEER_CONNECTION_STATE:()=>NS,PEER_LEAVE_REASON:()=>xg,RECOVER_CAPTURE_INTERVAL:()=>Dn,REMOTE_STREAM_TYPE_AUX:()=>yS,REMOTE_STREAM_TYPE_MAIN:()=>TS,RENDER_FREEZE_TIMING:()=>US,SCHEDULE_DOMAIN:()=>io,SCHEDULE_TIMEOUT:()=>FS,SDP_SEMANTICS_PLAN_B:()=>LS,SDP_SEMANTICS_UNIFIED_PLAN:()=>Gh,SECOND_HOST:()=>cS,SIGNAL_PING_PONG_INTERVAL:()=>mS,SIGNAL_PING_TIMEOUT:()=>hS,SIGNAL_RECONNECTION_COUNT:()=>OS,SMALL_STAT_BIT:()=>Hh,SPEAKER_DEFAULT:()=>Ua,STORAGE_EXPIRES_TIME:()=>Ud,STREAM_TYPE_BIG:()=>VS,STREAM_TYPE_SMALL:()=>BS,SUBSCRIBE_SMALL_RETRY_COUNT:()=>zS,SYNC_USER_LIST_INTERVAL:()=>MS,Scene:()=>Pi,THIRD_HOST:()=>dS,TRANSPORT_DIRECTION:()=>pS,TRTC_ERROR_ASSISTANCE:()=>$h,TRTC_QUALITY_BAD:()=>vS,TRTC_QUALITY_DISCONNECTED:()=>CS,TRTC_QUALITY_EXCELLENT:()=>IS,TRTC_QUALITY_GOOD:()=>bS,TRTC_QUALITY_POOR:()=>AS,TRTC_QUALITY_UNKNOWN:()=>SS,TRTC_QUALITY_VERY_BAD:()=>RS,UPDATE_OFFER_TIMEOUT:()=>xS,VIDEO_MUTE_BIT:()=>Hd,VIDEO_STAT_BIT:()=>wn,audioProfileMap:()=>Vd,defaultBigVideoProfile:()=>La,defaultSmallVideoProfile:()=>Fh,getRetryCount:()=>DS,getScriptDir:()=>aS,innerVersion:()=>Ph,loggerProxy:()=>ka,screenProfileMap:()=>Bd,setLoggerProxy:()=>vs,setRetryCount:()=>Wh,setVersion:()=>Uh,version:()=>qt,videoProfileMap:()=>gi});var Ph="4.15.00.1600",qt="5.0.0";function Uh(i){qt=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));Ph=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var Cn=typeof importScripts!="undefined",xa=typeof registerProcessor!="undefined",aS=()=>{let i=Cn?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},ka="",vs=i=>ka=i,Dg="web.sdk.qcloud.com",cS="web.sdk.tencent.cn",dS="web.sdk.cloud.tencent.cn",uS="https://console.cloud.tencent.com/trtc",Br=`https://${Dg}/trtc/webrtc/doc`,lS=`${Br}/zh-cn/`,Ld="https://cloud.tencent.com/document/product/647/85386",Pd="https://trtc.io/document/56025",Vh="https://yun.tim.qq.com",Bh="https://apisgp.my-imcloud.com",$h="trtc_error_assistance",Bo={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ro={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},ri=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(ri||{}),hS=18e3,mS=2e3,Rs={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},Ud=7*24*3600*1e3,Vd={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},gi={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},La=gi["480p_2"],Fh=gi["120p_2"],Bd={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},j={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},pS={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},$d={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Pi=(e=>(e.LIVE="live",e.RTC="rtc",e))(Pi||{}),wn=1,Hh=2,Pa=4,Nn=8,Fd=64,Hd=16,fS=112,gS=128,_S="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",ES="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",TS=j.MAIN,yS=j.AUXILIARY,SS=0,IS=1,bS=2,AS=3,vS=4,RS=5,CS=6,wS="unknown",NS={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Og=1/0;function Wh(i){Og=i}function DS(){return Og}var OS=30,ii={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},MS=1e4,xS=1e4,kS=1e4,Gh="unified-plan",LS="plan-b",PS=1028,Mg=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Mg||{}),Wd=500,US=1e3,VS=j.BIG,BS=j.SMALL,$S=10*1e3,io={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},FS=2e3,HS={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Cs=5,ws="default",Ua=ws,WS="communications",GS=Object.keys(ri),xg=["normal leave","timeout leave","kick","role change"],zS=10,Dn=2e3,Gd=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Va=10*1e3;var jS=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(m){try{d(r.next(m))}catch(l){n(l)}}function c(m){try{d(r.throw(m))}catch(l){n(l)}}function d(m){m.done?s(m.value):o(m.value).then(a,c)}d((r=r.apply(i,t||[])).next())})},jh=Symbol(32),qh=Symbol(16),Xh=Symbol(8),Ui=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return jS(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(jh)}readU16(){return this.read(qh)}readU8(){return this.read(Xh)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===jh){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===qh){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===Xh){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};Ui.U32=jh;Ui.U16=qh;Ui.U8=Xh;var qS=128,XS=127,B0=~XS,$0=Math.pow(2,31);function Jh(i){let t=new Ui;for(;i>=128;)t.malloc(1)[0]=i&255|qS,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function zd(i,t=0){let e=new Ui,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Jh(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Jh(s.length));let n=e.malloc(s.length);for(let c=0;c<s.length;c++)n[c]=s[c];break;case"object":let a=new Ui;if(Array.isArray(i))for(let c=0;c<i.length;c++){let d=zd(i[c],c+1);d&&a.write(d)}else{let c=1;for(let d in i){let m=zd(i[d],c++);m&&a.write(m)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Jh(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var Ba=class{constructor(){p(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function Qh(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function wr(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Yh(i,t){return i[t]}function On(i,t,e){return new TextDecoder().decode(JS(i,t,e))}function JS(i,t,e){return i.slice(t,t+e)}var Zh=0,jd=2654435769,qd=16,em=4,Mn=2,xn=7;function QS(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function kg(i,t){let e=new Ba,r=QS(t,i,Zh);Zh=Zh+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new Ba;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let M=4;M<16;M++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let c=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(c.length+4),c.length&&n.writeBytes(c);let d=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let m=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let l=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let f=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(f.length+2),f.length&&n.writeBytes(f);let g=n.length;n.data[0]=g>>>24&255,n.data[1]=g>>>16&255,n.data[2]=g>>>8&255,n.data[3]=g&255,nt(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let T=new Uint8Array(n.data),E=null;r.encryption===1?E=new TextEncoder().encode(r.uin):r.encryption===2&&(E=new Uint8Array(16)),E&&(T=YS(T,E)),e.writeBytes(T);let y=new Uint8Array(e.data),v=y.length;return y[0]=v>>>24&255,y[1]=v>>>16&255,y[2]=v>>>8&255,y[3]=v&255,y}function YS(i,t){let e=i.length,o=(e+1+Mn+xn)%8;o&&(o=8-o);let s=e+1+Mn+xn+o,n=new Uint8Array(s),a=0,c=new Uint8Array(8),d=new Uint8Array(8),m=new Uint8Array(8),l=0;c[0]=Math.floor(Math.random()*256)&248|o,l=1;for(let g=0;g<o;g++)c[l]=Math.floor(Math.random()*256)&255,l+=1;for(let g=0;g<Mn;)if(l<8&&(c[l]=Math.floor(Math.random()*256)&255,l+=1,g+=1),l===8){Kh(c,t,d,m,n,a),a+=8,l=0;for(let T=0;T<8;T++)m[T]=n[a-8+T]}let f=0;for(;f<e;)if(l<8&&(c[l]=i[f],l+=1,f+=1),l===8){Kh(c,t,d,m,n,a),a+=8,l=0;for(let g=0;g<8;g++)m[g]=n[a-8+g]}for(let g=0;g<xn;)if(l<8&&(c[l]=0,l+=1,g+=1),l===8){Kh(c,t,d,m,n,a),a+=8,l=0;for(let T=0;T<8;T++)m[T]=n[a-8+T]}return n}function Kh(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];ZS(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function ZS(i,t,e,r){let o=wr(i,0),s=wr(i,4),n=[];for(let c=0;c<4;c++)n[c]=wr(t,c*4);let a=0;for(let c=0;c<qd;c++)a+=jd,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;Qh(e,o,r),Qh(e,s,r+4)}var Ug=function(){return new URLSearchParams(location.search).get("trtc_env")||""},si=i=>Number(i)<14e8,oo=function(i,t){let e;ka?e=ka:e=si(i)?Bh:Vh;let r=Math.floor(Math.random()*ki(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Vg="unknown";function kn(){eI();let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r?Bg(r,o):Vg}function KS(){se.warn("netType changed",kn())}var Lg=!1;function eI(){var i;Lg||(Lg=!0,(i=navigator.connection)==null||i.addEventListener("typechange",KS))}function Bg(i,t){if(Rs[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function $g(i){Vg=Bg(i)}function Jd(){return Rs[kn()]}function Fg(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function Hg(i,t=48e3){return tm(i/4,t)}function tm(i,t=48e3){return i*1e3/t}function Wg(i,t=48e3){return rm(i,t)*4}function rm(i,t=48e3){return i*t/1e3}var $a=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},_i=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Nr=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function Ds(i,t=1,e=1){return i<=1?e:Ds(i-1,e,t+e)}function Gg(i){return i>8?30*1e3:Ds(i)*1e3}function Xt(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Rt=i=>typeof i=="function",z=i=>typeof i=="undefined",nt=i=>typeof i=="string",ft=i=>typeof i=="number",Nt=i=>typeof i=="boolean",Xr=i=>Xt(i)==="object",Gt=i=>Xt(i)==="array",zg=i=>Xt(i)==="MediaStreamTrack".toLowerCase(),jg=i=>i.isRemote,$o=i=>Xt(i)==="promise",Os=i=>Rt(i)&&i.prototype.constructor===i,Ln=i=>Os(i)?i.prototype.constructor.name:"",qg=typeof AudioWorkletNode!="undefined",Xg=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function Fa(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function Xe(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Pg=i=>+i<10?`0${i}`:i,Jg=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Pg(e[1])+Pg(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},tI=Object.prototype.hasOwnProperty,{toString:K0}=Object.prototype;function Pn(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Nr(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(tI.call(i,t))return!1;return!0}}return!1}function Ms(i,t){return{userId:t,hasAudio:!!(i&Nn),hasVideo:!!(i&wn),hasAuxiliary:!!(i&Pa),hasSmall:!!(i&Hh),audioMuted:!!(i&Fd),videoMuted:!!(i&Hd),audioAvailable:!!(i&Nn)&&!(i&Fd),videoAvailable:!!(i&wn)&&!(i&Hd)}}function Qg(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!z(i.username)&&!z(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",z(i.credentialType)||(t.credentialType=i.credentialType)),t}function Un(i,t=!0){if(!nt(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Ei=function(i,t,e,r){if(!(Xr(i)&&Xr(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,c=s.length;a<c;a++)if(n=s[a],!(z(t[n])||e&&e.includes(n)))if(Xr(i[n])&&Xr(t[n]))o+=Ei(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Ns(t[n]),o+=1)}return o};function Ns(i){if(Gt(i)){let t=[];return i.forEach((e,r)=>{t[r]=Ns(e)}),t}if(Xr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Ns(i[e])}),t}return i}var Vn=i=>{let t=[];if(Gt(i))t=[...i];else if(nt(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},Yg=i=>nt(i)?document.getElementById(i):i,rI=i=>{let t=c=>c<10?`0${c}`:`${c}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},Qd=()=>rI(new Date);function oi(i,{keysToInclude:t,keysToExclude:e}){try{if(Gt(i))return`[${i.map(n=>oi(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Nr(i)||!Gt(t)&&!Gt(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Nr(i[n])||Gt(i[n])?JSON.parse(oi(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function Ha(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),oi(i,{keysToInclude:e})}function Zg(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var im=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},Bn=i=>D(void 0,null,function*(){return new Promise((t,e)=>{let r;if(nt(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new Me({code:Te.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Yd=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Wa=i=>(Object.keys(i).forEach(t=>{ft(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Nr(i[t])||Gt(i[t]))&&Wa(i[t])}),i);function Ti(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function Zd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function xs(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function Kd(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),c=i.kind===j.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,d=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${c}${d}`}catch(e){return""}}function eu(i,t){return i.width*i.height===t.width*t.height?1:im()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function Jr(i){return i===90||i===270}function Kg(i){return D(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function Xd(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=Xd(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=Xd(i[r],t)}),e}return i}var $n=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))($n||{});function iI(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return z(r)||(o=qe(be({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function so(i,t,e,r){try{let o=iI(i,t,e,r),s=zd(o);return kg(s,e)}catch(o){return JSON.stringify(i)}}function e_(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function t_(i){return(i&65535)>>>0}function r_(i){return(i&4294901760)>>>0}function i_(i){let t=oI(i);return t==null?void 0:t.busiBuff}function oI(i){try{let t={},e=0;t.totalLength=wr(i,e),e+=4,t.version=wr(i,e),e+=4,t.encryption=Yh(i,e),e+=1,t.uinType=Yh(i,e),e+=1,t.uinLength=wr(i,e),e+=4,t.uin=t.uinLength>4?On(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=sI(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=wr(i,e),e+=4,t.seqNo=wr(i,e),e+=4,t.retCode=wr(i,e),e+=4,t.retStrLength=wr(i,e),e+=4,t.retStr=t.retStrLength?On(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=wr(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?On(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=wr(i,e),e+=4,t.cookie=t.cookieLength?On(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=wr(i,e),e+=4,t.busiBuffLength=wr(i,e),e+=4,t.busiBuff=t.busiBuffLength?On(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function o_(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=jd*qd>>>0;for(let s=0;s<qd;s++)r-=(e<<em)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<em)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=jd,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function sI(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=o_(o,t),n=s[0]&7,a=i.length-1-n-Mn-xn,c=new Uint8Array(a),d=0,m=r,l=i.slice(0,8);e=8;let f=1;f+=n;for(let T=1;T<=Mn;)if(f<8)f++,T++;else if(f===8){let E=om(i,e,m,l,s,t);m=E.ivPreCrypt,l=E.ivCurCrypt,s=E.debiBuf,e=E.bufPos,f=0}let g=a;for(;g>0;)if(f<8)c[d++]=s[f]^m[f],f++,g--;else if(f===8){let T=om(i,e,m,l,s,t);m=T.ivPreCrypt,l=T.ivCurCrypt,s=T.debiBuf,e=T.bufPos,f=0}for(let T=1;T<=xn;)if(f<8)s[f]^m[f],f++,T++;else if(f===8){if(e>=i.length)break;let E=om(i,e,m,l,s,t);if(!E.success)break;m=E.ivPreCrypt,l=E.ivCurCrypt,s=E.debiBuf,e=E.bufPos,f=0}return c}function om(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),c=new Uint8Array(8);for(let m=0;m<8;m++)c[m]=o[m]^a[m];let d=o_(c,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:d,bufPos:t+8}}var s_=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function no({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(c=>c.clone().json().then(d=>({data:d}),()=>c.arrayBuffer().then(d=>({data:i_(new Uint8Array(d))||(s_?s_.decode(d):d)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let c=JSON.parse(a.response);s({data:c})}catch(c){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function sm(i){return D(this,null,function*(){let t=Xe(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return se.debug(`compressJSON ${e.length} -> ${a.byteLength} ${Xe()-t}ms`),a}catch(r){return e}})}var nI=Object.prototype.hasOwnProperty;var Fo=i=>typeof i=="function",ks=i=>typeof i=="undefined";var n_=i=>typeof i=="boolean";var nm=i=>i.isRemote;var am=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function a_(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(am(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(nI.call(i,t))return!1;return!0}}return!1}var aI=0,cI=1,c_=2;function dI({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:c=5,timeout:d=1e3}=t,m=0,l=-1,f=aI,g=(T,E)=>D(this,null,function*(){let y=n||this;try{let v=yield i.apply(y,a);m>0&&s&&s.call(this,m),m=0,T(v)}catch(v){let M=()=>{clearTimeout(l),m=0,f=c_,E(v)},w=()=>{f!==c_&&m<(Fo(c)?c():c)?(m++,f=cI,Fo(r)&&r.call(this,m,M),l=window.setTimeout(()=>{l=-1,g(T,E)},Fo(d)?d(m):d)):(M(),Fo(o)&&o.call(this,v))};Fo(e)?e.call(this,{error:v,retry:w,reject:E,retryFuncArgs:a,retriedCount:m}):w()}});return new Promise(g)}}var Ho=dI;var Wo=class i{constructor(t){p(this,"_parentPath");p(this,"userId");p(this,"remoteUserId");p(this,"id");p(this,"sdkAppId");p(this,"type");p(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=n_(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new i({id:t.id,userId:ks(t.userId)?this.userId:t.userId,sdkAppId:ks(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:ks(t.type)?this.type:t.type,isLocal:ks(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:ks(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),se.log(t,e,ks(this.userId)||a_(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var Qn={};eo(Qn,{ANDROID_VERSION:()=>ru,CHROME_MAJOR_VERSION:()=>Fr,CHROME_VERSION:()=>Su,EDGE_VERSION:()=>su,EDG_MAJOR_VERSION:()=>dm,EDG_VERSION:()=>nu,ELECTRON_MAJOR_VERSION:()=>pm,FIREFOX_MAJOR_VERSION:()=>ou,FIREFOX_VERSION:()=>iu,HUAWEI_VERSION:()=>gu,IE_VERSION:()=>pI,IOS_MAIN_VERSION:()=>Tr,IOS_VERSION:()=>ai,IPADQQB_VERSION:()=>pu,IS_ANDROID:()=>Bt,IS_ANDROID_WEBVIEW:()=>EI,IS_ANY_SAFARI:()=>ni,IS_CHROME:()=>Xn,IS_CHROME_OS:()=>um,IS_CHROMIUM_BASE:()=>Qr,IS_DESKTOP_IOS_CHROME:()=>Tm,IS_EDG:()=>Wn,IS_EDGE:()=>Ls,IS_ELECTRON:()=>gI,IS_FIREFOX:()=>zt,IS_HEADLESS_CHROME:()=>mm,IS_HONOR:()=>hm,IS_HUAWEI:()=>Ka,IS_HUAWEIBROWSER:()=>Za,IS_IE:()=>h_,IS_IE8:()=>mI,IS_IOS:()=>Ut,IS_IOS_13_OR_14:()=>Em,IS_IOS_15_1:()=>_m,IS_IOS_CHROME:()=>Ga,IS_IPAD:()=>Hn,IS_IPADQQB:()=>Ja,IS_IPAD_PRO:()=>cm,IS_IPHONE:()=>Go,IS_IPOD:()=>l_,IS_LINUX:()=>Qa,IS_LOCAL:()=>bi,IS_MAC:()=>Ii,IS_MACQQB:()=>Xa,IS_MIBROWSER:()=>Ya,IS_MQQB:()=>zn,IS_NATIVE_ANDROID:()=>hI,IS_OLD_ANDROID:()=>lI,IS_OPENHARMONY:()=>qn,IS_OPPOBROWSER:()=>jn,IS_SAFARI:()=>Zt,IS_SAFARI_15_1:()=>TI,IS_SAMSUNGBROWSER:()=>ec,IS_SOGOU:()=>ja,IS_SOGOUM:()=>za,IS_TBS:()=>Si,IS_UCBROWSER:()=>lm,IS_VIVOBROWSER:()=>tc,IS_WECHAT:()=>co,IS_WIN:()=>Ps,IS_WQQB:()=>qa,IS_WX:()=>fI,IS_X5MQQB:()=>Gn,IS_XWEB:()=>ao,MACQQB_VERSION:()=>mu,MI_VERSION:()=>fu,MQQB_VERSION:()=>Fn,OPENHARMONY_VERSION:()=>_I,OPPO_VERSION:()=>Eu,SAFARI_VERSION:()=>uo,SAMSUNG_VERSION:()=>_u,SOGOUM_VERSION:()=>au,SOGOU_VERSION:()=>cu,TBS_VERSION:()=>du,UA_DATA_STRING:()=>yi,USER_AGENT:()=>$r,VIVO_VERSION:()=>Tu,WECHAT_VERSION:()=>lu,WQQB_VERSION:()=>hu,XWEB_VERSION:()=>uu,browserInfo:()=>Bi,getBrowserCoreNumber:()=>Sm,getBrowserInfo:()=>m_,getChromeMajorVersion:()=>yu,getDeviceModel:()=>Vs,getDeviceModelFromUA:()=>Iu,getGPUInfo:()=>ym,getOSName:()=>Jn,getOSNumber:()=>Bs,getOSString:()=>ho,getOSType:()=>bm,getTerminalType:()=>Im,getUserAgentData:()=>Us,isLocalStorageEnabled:()=>lo,isMobile:()=>rc,isVersionLargerThan:()=>gm,isVersionSmallerThan:()=>fm});var $r=typeof navigator=="undefined"?"":navigator.userAgent,et=i=>new RegExp(i,"i").test($r),er=i=>{if(et(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=$r.match(t);if(e&&e[1])return e[1]}return""},tu=i=>{if(et(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=$r.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},d_=/AppleWebKit\/([\d.]+)/i.exec($r),uI=d_?parseFloat(d_[1]):NaN,Hn=et("iPad"),cm=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&et("Macintosh"),Go=et("iPhone")&&!Hn,l_=et("iPod"),Ut=Go||Hn||l_||cm,Bt=et("Android"),ru=function(){if(Bt){let i=$r.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),lI=Bt&&et("webkit")&&ru<2.3,hI=Bt&&ru<5&&uI<537,zt=et("Firefox"),iu=er("Firefox"),ou=tu("Firefox"),Ls=et("Edge"),su=er("Edge"),Wn=et("Edg"),nu=er("Edg"),dm=tu("Edg"),za=et("SogouMobileBrowser"),au=er("SogouMobileBrowser"),ja=et("MetaSr\\s"),cu=er("MetaSr\\s"),Si=et("TBS"),du=er("TBS"),ao=et("XWEB"),uu=er("XWEB"),mI=et("MSIE\\s8\\.0"),h_=et("MSIE\\/\\d+"),pI=function(){if(h_){let i=/MSIE\s(\d+)\.\d/.exec($r),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test($r)&&/rv:11.0/.test($r)&&(t=11),t}return NaN}(),co=et("(micromessenger|webbrowser)"),lu=er("MicroMessenger"),Gn=!Si&&et("MQQBrowser")&&et("COVC"),zn=!Si&&et("MQQBrowser")&&!et("COVC"),Fn=zn||Gn?er("MQQBrowser"):"",qa=!Si&&et(" QQBrowser"),hu=er(" QQBrowser"),Xa=!Si&&et("QQBrowserLite"),mu=er("QQBrowserLite"),Ja=!Si&&et("MQBHD"),pu=er("MQBHD"),Ps=et("Windows"),Ii=!Ut&&et("MAC OS X"),Qa=!Bt&&et("Linux"),um=et("CrOS"),fI=et("MicroMessenger"),lm=et("UCBrowser"),gI=et("Electron"),Ya=et("MiuiBrowser"),fu=er("MiuiBrowser"),Za=et("HuaweiBrowser"),Ka=et("Huawei")||et("HUAWEI"),hm=et("Honor")||et("HONOR"),gu=er("HuaweiBrowser"),ec=et("SamsungBrowser"),_u=er("SamsungBrowser"),jn=et("HeyTapBrowser"),Eu=er("HeyTapBrowser"),tc=et("VivoBrowser"),Tu=er("VivoBrowser"),qn=et("OpenHarmony"),_I=er("OpenHarmony"),yu=()=>tu("Chrome"),Ga=et("CriOS"),Qr=et("Chrome"),Xn=!Ls&&!ja&&!za&&!Si&&!ao&&!Wn&&!qa&&!Ya&&!Za&&!ec&&!jn&&!tc&&Qr,mm=et("HeadlessChrome"),Fr=yu(),Su=er("Chrome"),pm=tu("Electron"),Zt=!Qr&&!zn&&!Gn&&!Xa&&!Ja&&et("Safari"),ni=Zt||Ut,uo=er("Version"),EI=/Android.*(wv|.0.0.0)/.test($r),ai=(()=>{if(cm)return uo;if(Ut){let i=$r.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function fm(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function gm(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var Tr=Number(ai.split(".")[0]),TI=uo==="15.1",_m=ai==="15.1",Em=(()=>{let i=Number(ai.split(".")[0]);return i===14||i===13})(),Tm=Ga&&uo==="11.1.1",bi=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",lo=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Bi=m_();function m_(){let i=new Map([[zt,["Firefox",iu]],[Wn,["Edg",nu]],[Xn,["Chrome",Su]],[Ga,["ChiOS",er("CriOS")]],[Zt&&!Ga,["Safari",uo]],[Si,["TBS",du]],[ao,["XWEB",uu]],[co&&Go,["WeChat",lu]],[qa,["QQ(Win)",hu]],[zn,["QQ(Mobile)",Fn]],[Gn,["QQ(Mobile X5)",Fn]],[Xa,["QQ(Mac)",mu]],[Ja,["QQ(iPad)",pu]],[Ya,["MI",fu]],[Za,["HW",gu]],[ec,["Samsung",_u]],[jn,["OPPO",Eu]],[tc,["VIVO",Tu]],[Ls,["EDGE",su]],[za,["SogouMobile",au]],[ja,["Sogou",cu]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Ct=null;function rc(){return Ct&&typeof Ct.mobile=="boolean"?Ct.mobile:Bt||Ut||Go||Hn||qn}var yi="";function Us(){return D(this,null,function*(){if(Ct)return Ct;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Ct=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Ct&&!yi&&(yi=`UAData: ${Ct.platform}/${Ct.platformVersion}`,Ct.architecture&&Ct.bitness&&(yi+=` ${Ct.architecture}/${Ct.bitness}`),Ct.mobile&&(yi+=" mobile"),Ct.model&&(yi+=` model: ${Ct.model.replace(/\s+/g,"/")}`),Ct.fullVersionList&&(yi+=` ${Ct.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Ct}catch(i){return null}})}function ym(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function Vs(){return(Ct==null?void 0:Ct.model)||Iu()||""}function Iu(){let i=/;\s*([^;)]+)\s+Build\//,t=$r.match(i);return t!=null&&t[1]?t[1].trim():null}var u_=new Map([[Bt,"Android"],[Ut,"iOS"],[Ps,"Windows"],[Ii,"MacOS"],[Qa,"Linux"],[um,"ChromeOS"]]),Jn=function(){return u_.get(!0)?u_.get(!0):Ct?Ct.platform:"unknown"};function Bs(){return Ps?1:Bt?2:Ii?3:Ut?4:Qa?5:um?6:qn?7:0}function Sm(){return co||ao?4:Qr?1:Zt?2:zt?3:0}var ho=()=>{let i=Jn();return Ct!=null&&Ct.platformVersion?i+=`/${Ct.platformVersion}`:Ut?i+=`/${ai}`:Bt&&(i+=`/${ru}`),i+=`/${Bi.name}/${Zt&&!Ga?Bi.version:Bi.version.split(".")[0]}`,Ct!=null&&Ct.architecture&&(i+=`/${Ct.architecture}`),i};function Im(){return Bt?4:Go?2:Hn?3:Ii?12:Ps?5:Qa?13:qn?22:1}function bm(){return Bt?"Android":Go?"iPhone":Hn?"iPad":Ii?"Mac":Ps?"Windows":Qa?"Linux":"unknown"}var f_=Li(mo(),1),II=new f_.default,ee=II;var Hr=(Z=>(Z.ROOM_DESTROY="1",Z.JOIN_START="21",Z.JOIN_SCHEDULE_SUCCESS="22",Z.JOIN_SIGNAL_CONNECTION_START="23",Z.JOIN_SIGNAL_CONNECTION_END="24",Z.JOIN_SEND_CMD="25",Z.JOIN_RECEIVED_CMD_RES="26",Z.JOIN_SUCCESS="27",Z.JOIN_FAILED="28",Z.LEAVE_START="51",Z.LEAVE_SEND_CMD="52",Z.LEAVE_SUCCESS="53",Z.PUBLISH_START="61",Z.SEND_FIRST_VIDEO_FRAME="62",Z.PUBLISH_FAILED="63",Z.SUBSCRIBE_START="81",Z.SUBSCRIBE_SUCCESS="82",Z.SUBSCRIBE_FAILED="84",Z.UNSUBSCRIBE_SUCCESS="83",Z.LOCAL_TRACK_CAPTURE_START="101",Z.LOCAL_TRACK_CAPTURE_SUCCESS="102",Z.LOCAL_TRACK_CAPTURE_FAILED="103",Z.LOCAL_TRACK_PUBLISHED="104",Z.LOCAL_TRACK_UNPUBLISHED="105",Z.LOCAL_TRACK_REPLACED="106",Z.SWITCH_DEVICE_SUCCESS="107",Z.TRACK_MUTED="108",Z.TRACK_UNMUTED="109",Z.REMOTE_TRACK_SUBSCRIBED="110",Z.REMOTE_TRACK_UNSUBSCRIBED="111",Z.LOCAL_TRACK_RECAPTURE="112",Z.LOCAL_AUDIO_STARTED="113",Z.LOCAL_AUDIO_STOPPED="114",Z.REMOTE_AUDIO_STARTED="115",Z.REMOTE_AUDIO_STOPPED="116",Z.PLAY_TRACK_START="151",Z.PLAYER_STATE_CHANGED="152",Z.VIDEO_LOADED_DATA="153",Z.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",Z.AUDIO_CONTEXT_LONG_SUSPENDED="155",Z.REMOTE_VIDEO_PLAY_START="156",Z.REMOTE_VIDEO_PLAY_FINISH="157",Z.SIGNAL_CONNECTION_STATE_CHANGED="201",Z.PEER_CONNECTION_STATE_CHANGED="202",Z.SINGLE_CONNECTION_STAT="203",Z.SPC_RECONNECTED="204",Z.HEARTBEAT_REPORT="251",Z.RECEIVED_PUBLISHED_USER_LIST="252",Z.REMOTE_PUBLISH_STATE_CHANGED="253",Z.AUDIO_LEVEL_INTERVAL="260",Z.NETWORK_QUALITY="261",Z.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",Z.QUALITY_LIMITATION_CHANGED="263",Z.LOG="264",Z.AUDIO_PROCESSOR_DEBUG="265",Z.SSO_SWITCH="266",Z.SWITCH_ROOM_START="401",Z.SWITCH_ROOM_SUCCESS="407",Z.SWITCH_ROOM_FAILED="408",Z))(Hr||{});var ce=Hr;var vm=class{constructor(){p(this,"enable",!1);p(this,"ssoFailCount",0);ee.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&ee.emit("266",{enable:!0})}),ee.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&ee.emit("266",{enable:!1})}},zo=new vm;var bI="%cTRTC%c%s",AI="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",vI="display: inline",Au=class Au{constructor(){p(this,"_isEnableUploadLog",!0);p(this,"_localJoinedUser",new Map);p(this,"_queue",[]);p(this,"_timeoutId",-1);p(this,"_logLevel",1);p(this,"_logLevelToUpload",2);!Cn&&!xa&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){ee.on(ce.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&ri[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),ee.on(ce.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),ee.on(ce.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(nt(r.userId)&&ft(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return D(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:c}=o[s],d={timestamp:kd(),sdkAppId:String(a),userId:n,version:qt,log:c.map(f=>f.log).join(`
5
- `)},m=JSON.stringify(d),l=zo.enable?so(d,2002,a):m;yield this.uploadLogWithRetry(l,a,l instanceof Uint8Array,m),c.forEach(f=>f.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Ho({retryFunction:()=>no({url:oo(e,Bo.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(zo.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(to()),`[${Rn(e)}] <${ri[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){z(ri[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(nt(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,c)=>`${a} ${this.logChunkToString(c)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};ee.emit(ce.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=ri[t])==null?void 0:a.toLowerCase())||"info";Au.PRINT_LOG_TAG?console[n](bI,AI,vI,...e):console[n](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof Wo){let e=t,{parent:r}=e,o=Rg(e,["parent"]),s=new Wo(o);return s.bindParent(r),s}return new Wo(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;ri[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};p(Au,"PRINT_LOG_TAG",!(Ut||Bt||mm));var Rm=Au,se=new Rm;var RI=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},oc=RI;var Cm=class{constructor(){p(this,"_prefix","TRTC");p(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!lo())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(lo())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){se.warn(t)}}getItem(t){if(!lo())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){se.warn(e)}}setItem(t,e){if(lo())try{let r={expiresIn:Date.now()+Ud,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){se.warn(r)}}deleteItem(t){if(!lo())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return se.warn(e),!1}}clear(){if(lo())try{localStorage.clear()}catch(t){se.warn(t)}}},Yn=new Cm;var Jo={};eo(Jo,{HTTPS_API:()=>XI,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>Ym,IS_GET_CAPABILITIES_SUPPORTED:()=>Qm,IS_GET_SETTINGS_SUPPORTED:()=>ea,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>ib,IS_INSERTABLE_STREAM_SUPPORTED:()=>zs,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>nb,IS_RTC_RTP_SENDER_SUPPORTED:()=>pc,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>q_,IS_SEI_SUPPORTED:()=>fc,IS_SPC_SUPPORTED:()=>KI,basis:()=>ob,capabilityCheck:()=>ep,checkSystemRequirementsInternal:()=>Vu,decodeSupportStatus:()=>B_,detectVideoCodecCapabilities:()=>tp,detectVideoDecoderCapabilities:()=>Z_,detectVideoEncoderCapabilities:()=>Y_,encodeSupportStatus:()=>Jm,getBrowserInfo:()=>Pu,getDisplayResolution:()=>$_,getH264ProfileLevelIds:()=>K_,isAddTransceiverSupported:()=>$u,isBrowserSupported:()=>jm,isCanvasCaptureStreamAPISupported:()=>W_,isCanvasSmallStreamSupported:()=>G_,isGetReceiversSupported:()=>YI,isGetSendersSupported:()=>j_,isGetTransceiversSupported:()=>ZI,isGetUserMediaSupported:()=>F_,isMediaDevicesSupported:()=>Uu,isMediaSessionSupported:()=>X_,isMediaStreamTrackGeneratorSupported:()=>HI,isMediaStreamTrackProcessorSupported:()=>Xm,isReplaceTrackSupported:()=>tb,isRequestVideoFrameCallbackSupported:()=>Ri,isSIMDSupported:()=>Km,isScaleResolutionDownBySupported:()=>z_,isScreenCaptureApiAvailable:()=>mc,isSelectedCandidatePair:()=>JI,isSetParametersSupported:()=>rb,isSetSinkIdSupported:()=>zI,isSmallStreamSupported:()=>Bu,isStopTransceiverSupported:()=>eb,isTRTCSupported:()=>GI,isUnifiedPlanDefault:()=>QI,isUsedInHttpProtocol:()=>Eo,isWebAudioSupported:()=>H_,isWebCodecSupported:()=>Fu,isWebCodecsSupported:()=>qm,isWebRTCSupported:()=>Zm,isWebTransportSupported:()=>J_});var $m={};eo($m,{AUDIO_LEVEL_SCALE:()=>fo,AlphaStitchingType:()=>lc,AudioCodecPipelineType:()=>Hs,AudioDecoderDowngradeState:()=>Dm,AudioPlayerMode:()=>km,AudioType:()=>Mm,BASIC_TYPE:()=>go,BannedReason:()=>Lm,CONNECTION_CLOSED_REASON:()=>__,CheckPermissionType:()=>Bm,ClientEvent:()=>wm,CodecType:()=>A_,ConnectionEvent:()=>g_,ConnectionState:()=>Ru,DECODE_FAILED_ERROR_CODE:()=>Vm,DenoiserMode:()=>Um,DeviceType:()=>Du,FacingMode:()=>Cu,FrameWorkType:()=>vu,LeaveReason:()=>Pm,LocalTrackEvent:()=>jo,MULTI_VIDEO_DATA_TYPE:()=>po,MediaType:()=>dr,MediaTypeLabel:()=>CI,MonitorEventId:()=>ac,MutedFlag:()=>T_,NetworkQualityValue:()=>I_,PlayerState:()=>qo,ReceiveMode:()=>b_,RemoteStreamType:()=>vi,RemoteTrackEvent:()=>$s,RoomEvent:()=>$i,SMALL_MODE:()=>Nu,SceneNumber:()=>Nm,StreamEvent:()=>E_,StreamType:()=>S_,SubscribeMediaType:()=>sc,TIMER_TYPE:()=>Xo,TRACK_ACTION:()=>y_,TRACK_KIND:()=>Om,TrackEvent:()=>Ai,UserRole:()=>Pr,UserRoleNumber:()=>Fs,VideoCodec:()=>wu,VideoCodecPipelineType:()=>dc,VideoContentHint:()=>uc,VideoDecoderDowngradeState:()=>nc,VideoPlayerMode:()=>cc,VideoType:()=>xm});var vu=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(vu||{}),g_=(E=>(E.TRACK_ADDED="track-added",E.TRACK_UPDATED="track-updated",E.TRACK_SUBSCRIBED="track-subscribed",E.STREAM_ADDED="stream-added",E.STREAM_REMOVED="stream-removed",E.STREAM_UPDATED="stream-updated",E.STREAM_PUBLISHED="stream-published",E.STREAM_SUBSCRIBED="stream-subscribed",E.STREAM_UNSUBSCRIBED="stream-unsubscribed",E.STATE_CHANGED="state-changed",E.ERROR="error",E.CONNECTION_STATE_CHANGED="connection-state-changed",E.FIREWALL_RESTRICTION="firewall-restriction",E.SEI_MESSAGE="sei-message",E.CLOSED="closed",E))(g_||{}),__=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(__||{}),wm=(y=>(y.STREAM_ADDED="stream-added",y.STREAM_REMOVED="stream-removed",y.STREAM_UPDATED="stream-updated",y.STREAM_SUBSCRIBED="stream-subscribed",y.CONNECTION_STATE_CHANGED="connection-state-changed",y.PEER_JOIN="peer-join",y.PEER_LEAVE="peer-leave",y.MUTE_AUDIO="mute-audio",y.MUTE_VIDEO="mute-video",y.UNMUTE_AUDIO="unmute-audio",y.UNMUTE_VIDEO="unmute-video",y.CLIENT_BANNED="client-banned",y.NETWORK_QUALITY="network-quality",y.AUDIO_VOLUME="audio-volume",y.SEI_MESSAGE="sei-message",y.ERROR="error",y))(wm||{}),E_=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(E_||{}),jo=(c=>(c.DEVICE_AUTO_RECOVERED="1",c.DEVICE_RECOVER_FAILED="5",c.DEVICE_CHANGED="2",c.ERROR="3",c.PUBLISH_STATE_CHANGED="4",c.ENCODE_FAILED="6",c.TRACK_ENDED="7",c.RENDER="render",c))(jo||{}),qo=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(qo||{}),$i=(P=>(P.PEER_JOIN="peer-join",P.PEER_LEAVE="peer-leave",P.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",P.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",P.BANNED="banned",P.NETWORK_QUALITY="network-quality",P.AUDIO_VOLUME="audio-volume",P.SEI_MESSAGE="sei-message",P.ERROR="error",P.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",P.REMOTE_PUBLISHED="remote-published",P.REMOTE_UNPUBLISHED="remote-unpublished",P.FIREWALL_RESTRICTION="firewall-restriction",P.HEARTBEAT_REPORT="heartbeat-report",P.CUSTOM_MESSAGE="custom-message",P.LAYER_DATA="layerData",P.FIRST_VIDEO_FRAME="first-video-frame",P.DUMP="dump",P.AUDIO_FRAME="audio-frame",P.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",P.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",P.NTP_TIME_UPDATED="ntp-time-updated",P))($i||{}),Ai=(c=>(c.PLAYER_STATE_CHANGED="player-state-changed",c.MUTE="mute",c.UNMUTE="unmute",c.ERROR="error",c.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",c.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",c.FIRST_VIDEO_FRAME="first-video-frame",c.VIDEO_SIZE_CHANGED="video-size-changed",c))(Ai||{}),$s=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))($s||{}),T_=(a=>(a[a.VIDEO=1]="VIDEO",a[a.SMALL=2]="SMALL",a[a.AUX=4]="AUX",a[a.AUDIO=8]="AUDIO",a[a.VIDEO_MUTE=16]="VIDEO_MUTE",a[a.AUX_MUTE=32]="AUX_MUTE",a[a.AUDIO_MUTE=64]="AUDIO_MUTE",a))(T_||{}),Nm=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Nm||{}),Fs=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Fs||{}),Pr=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Pr||{}),Ru=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Ru||{}),Dm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Dm||{}),nc=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(nc||{}),Om=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Om||{}),y_=(e=>(e.ADD="add",e.REMOVE="remove",e))(y_||{}),dr=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(dr||{}),CI={1:"audio",2:"auxVideo",4:"video"},Mm=(t=>(t[t.opus=111]="opus",t))(Mm||{}),xm=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(xm||{}),S_=(e=>(e.Big="big",e.Small="small",e))(S_||{}),vi=(e=>(e.Main="main",e.Aux="auxiliary",e))(vi||{}),po=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(po||{}),ac=(ae=>(ae[ae.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",ae[ae.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",ae[ae.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",ae[ae.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",ae[ae.MUTE_AUDIO=32772]="MUTE_AUDIO",ae[ae.MUTE_VIDEO=32773]="MUTE_VIDEO",ae[ae.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",ae[ae.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",ae[ae.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",ae[ae.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",ae[ae.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",ae[ae.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",ae[ae.SWITCH_CAMERA=32780]="SWITCH_CAMERA",ae[ae.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",ae[ae.REPLACE_VIDEO=32782]="REPLACE_VIDEO",ae[ae.REPLACE_AUDIO=32783]="REPLACE_AUDIO",ae[ae.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",ae[ae.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",ae[ae.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",ae[ae.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",ae[ae.JOIN=32788]="JOIN",ae[ae.LEAVE=32789]="LEAVE",ae[ae.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",ae[ae.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",ae[ae.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",ae[ae.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",ae[ae.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",ae[ae.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",ae[ae.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",ae[ae.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",ae[ae.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",ae[ae.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",ae[ae.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",ae[ae.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",ae[ae.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",ae[ae.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",ae[ae.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",ae[ae.PUBLISH_AUX=32805]="PUBLISH_AUX",ae[ae.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",ae[ae.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",ae[ae.VIDEO_ENCODER=4004]="VIDEO_ENCODER",ae[ae.VIDEO_DECODER=4005]="VIDEO_DECODER",ae))(ac||{}),I_=(a=>(a[a.UNKNOWN=0]="UNKNOWN",a[a.EXCELLENT=1]="EXCELLENT",a[a.GOOD=2]="GOOD",a[a.POOR=3]="POOR",a[a.BAD=4]="BAD",a[a.VERY_BAD=5]="VERY_BAD",a[a.DISCONNECTED=6]="DISCONNECTED",a))(I_||{}),b_=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(b_||{}),Cu=(e=>(e.user="user",e.environment="environment",e))(Cu||{}),cc=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(cc||{}),km=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(km||{}),Lm=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(Lm||{}),Pm=(d=>(d[d.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",d[d.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",d[d.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",d[d.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",d[d.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",d[d.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",d[d.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",d[d.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",d[d.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",d))(Pm||{}),fo=1e8,Um=(e=>(e[e.NORMAL=0]="NORMAL",e[e.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",e))(Um||{}),sc=class{constructor(){p(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},go=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(go||{}),wu=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(wu||{}),dc=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(dc||{}),Hs=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Hs||{}),A_=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(A_||{}),Vm=(f=>(f[f.SUCCESS=0]="SUCCESS",f[f.FAILED=1]="FAILED",f[f.WEBCODEC_INIT=2]="WEBCODEC_INIT",f[f.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",f[f.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",f[f.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",f[f.WASM_INIT=6]="WASM_INIT",f[f.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",f[f.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",f[f.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",f[f.TEST=10]="TEST",f[f.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",f))(Vm||{}),uc=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(uc||{}),Xo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(Xo||{}),Nu=(e=>(e.CANVAS="canvas",e.API="api",e))(Nu||{}),Bm=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(Bm||{}),Du=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(Du||{}),lc=(r=>(r[r.none=0]="none",r[r.horizontal=1]="horizontal",r[r.vertical=2]="vertical",r))(lc||{});var _t={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},Wr={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${Xt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${Xt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var v_=(i,t)=>t?`${Br}/${i}/${t}`:`${Br}/${i}/index.html`;var wI=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem($h);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function Et(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Rt(Wr[t])?s=Wr[t](e):nt(Wr[t])&&(s=Wr[t]);let{TRTC_ERROR_INFO:c,TRTC_ERROR_LINK:d}=wI();r?a=`${r.className}.html#${r.fnName}`:d&&d[t]&&(Rt(d[t])?a=d[t](e):nt(d[t])&&(a=d[t]));let m=s;return _i()&&(c&&c[t]&&(Rt(c[t])?n=c[t](e):nt(c[t])&&(n=c[t])),n&&(o?m=`${n}
6
- \u8BF7\u67E5\u770B\u6587\u6863: ${v_("zh-cn",a)}
3
+ `}});var Wg=ua(ci=>{"use strict";var _s=Bg(),wS=Hg(),OS=cu();ci.grammar=OS;ci.write=wS;ci.parse=_s.parse;ci.parseParams=_s.parseParams;ci.parseFmtpConfig=_s.parseFmtpConfig;ci.parsePayloads=_s.parsePayloads;ci.parseRemoteCandidates=_s.parseRemoteCandidates;ci.parseImageAttributes=_s.parseImageAttributes;ci.parseSimulcastStreamList=_s.parseSimulcastStreamList});var Uf=(re=>(re[re.INVALID_PARAMETER=4096]="INVALID_PARAMETER",re[re.INVALID_OPERATION=4097]="INVALID_OPERATION",re[re.NOT_SUPPORTED=4098]="NOT_SUPPORTED",re[re.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",re[re.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",re[re.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",re[re.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",re[re.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",re[re.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",re[re.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",re[re.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",re[re.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",re[re.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",re[re.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",re[re.CLIENT_BANNED=16448]="CLIENT_BANNED",re[re.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",re[re.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",re[re.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",re[re.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",re[re.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",re[re.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",re[re.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",re[re.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",re[re.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",re[re.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",re[re.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",re[re.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",re[re.API_CALL_ABORTED=16461]="API_CALL_ABORTED",re[re.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",re[re.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",re[re.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",re[re.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",re[re.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",re[re.UNKNOWN=65535]="UNKNOWN",re))(Uf||{}),q=Uf;var eI=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},la=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${eI(o)} 0x${o.toString(16)}>`,d=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(d);m(this,"code");m(this,"extraCode");m(this,"message");m(this,"originMessage");m(this,"name");m(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=d,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},se=la;var Vf=0;var Ff=function(){return Vf},Ri=function(){return Date.now()+Vf},ud=function(){let i=new Date;return i.setTime(Ri()),i.toLocaleString()},Ks=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var si={};yi(si,{REPORT_TYPE:()=>pn,buildSSOPackage:()=>Di,bytes2ms:()=>Zf,calculateScaleResolutionDownNumber:()=>wd,concatArrayBuffers:()=>ug,convertObjectNumberToInt:()=>Aa,copyProperties:()=>Yf,deepClone:()=>ss,deepCloneBasic:()=>bd,deepMerge:()=>Br,delay:()=>$r,fibonacci:()=>ns,formatedTime:()=>vd,getConstructorName:()=>dn,getContainerFromElement:()=>ag,getEnv:()=>zf,getFirst16Bits:()=>mg,getInternalVersion:()=>sg,getLast16Bits:()=>lg,getLoggerUrl:()=>Ni,getMediaStreamTrackInfo:()=>Dd,getMuteStateFromFlag:()=>cs,getNetworkType:()=>cn,getNumNetworkType:()=>Rd,getReconnectionTimeout:()=>eg,getStringByteLength:()=>cg,getTurnServer:()=>ng,getUint32Version:()=>Cd,getValueType:()=>ft,getViewListFromView:()=>mn,glog:()=>Ta,ipv4ToUint32:()=>ln,isArray:()=>mt,isAudioWorkletSupported:()=>ig,isBoolean:()=>Ye,isConstructor:()=>as,isEmpty:()=>un,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>tg,isNumber:()=>Fe,isObject:()=>pr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Jt,isPortrait:()=>bm,isPromise:()=>fo,isRemoteTrack:()=>rg,isRotate90Or270:()=>fr,isSetSinkIdSupported:()=>og,isString:()=>Oe,isUndefined:()=>O,loadImage:()=>hn,loadVideo:()=>dg,ms2bytes:()=>Kf,ms2samples:()=>ym,normalizeUrl:()=>ds,performanceNow:()=>Te,promiseAny:()=>Ia,samples2ms:()=>Am,setNetworkTypeFromWebRTC:()=>Qf,stringify:()=>br,stringifyIncludeValue:()=>Sa,throttlePromise:()=>Nd});var mm={};yi(mm,{AUDIO_MUTE_BIT:()=>Ed,AUDIO_STAT_BIT:()=>rn,AUX_STAT_BIT:()=>fa,AUX_STREAM_MSID:()=>mI,BACKEND_ENV:()=>gd,BASE_DOC_URL:()=>or,BASE_HOST:()=>Bf,CAPABILITIES_KEYS:()=>Id,CLASS_NAME:()=>kI,CLOUD_CONSOLE_URL:()=>oI,CROSS_ROOM_BIT:()=>uI,DATA_FREEZE_TIMING:()=>Td,DOC_BILLING_CN:()=>ld,DOC_BILLING_OVERSEA:()=>md,DOC_URL:()=>sI,DTLS_STATE_UNKNOWN:()=>AI,ENV_NAME:()=>vi,EXCHANGE_SDP_TIMEOUT:()=>NI,IS_WORKER:()=>en,IS_WORKLET:()=>ma,KIBANA_EVENT:()=>yr,LOCAL_STREAM_PUBLISH_STATE:()=>Hf,LOGGER_CMD_TYPE:()=>po,LOGGER_DOMAIN:()=>sm,LOGGER_DOMAIN_OVERSEA:()=>nm,LOG_LEVEL:()=>Ur,LOG_LEVEL_NAME:()=>VI,MAIN_STREAM_MSID:()=>lI,MAX_RTT:()=>Ea,MICROPHONE_COMMUNICATIONS:()=>UI,MICROPHONE_DEFAULT:()=>os,MUTE_ALL_BIT:()=>dI,NAME:()=>M,NETWORK_TYPE:()=>rs,NOT_SUPPORTED_H264:()=>wI,PAUSED_RETRY_COUNT:()=>is,PEERCONNECTION_CONNECTING_TIMEOUT:()=>PI,PEER_CONNECTION_STATE:()=>yI,PEER_LEAVE_REASON:()=>Wf,RECOVER_CAPTURE_INTERVAL:()=>on,REMOTE_STREAM_TYPE_AUX:()=>pI,REMOTE_STREAM_TYPE_MAIN:()=>hI,RENDER_FREEZE_TIMING:()=>OI,SCHEDULE_DOMAIN:()=>Ci,SCHEDULE_TIMEOUT:()=>LI,SDP_SEMANTICS_PLAN_B:()=>DI,SDP_SEMANTICS_UNIFIED_PLAN:()=>lm,SECOND_HOST:()=>rI,SIGNAL_PING_PONG_INTERVAL:()=>aI,SIGNAL_PING_TIMEOUT:()=>nI,SIGNAL_RECONNECTION_COUNT:()=>RI,SMALL_STAT_BIT:()=>dm,SPEAKER_DEFAULT:()=>ga,STORAGE_EXPIRES_TIME:()=>hd,STREAM_TYPE_BIG:()=>MI,STREAM_TYPE_SMALL:()=>xI,SUBSCRIBE_SMALL_RETRY_COUNT:()=>FI,SYNC_USER_LIST_INTERVAL:()=>vI,Scene:()=>ii,THIRD_HOST:()=>iI,TRANSPORT_DIRECTION:()=>cI,TRTC_ERROR_ASSISTANCE:()=>am,TRTC_QUALITY_BAD:()=>TI,TRTC_QUALITY_DISCONNECTED:()=>SI,TRTC_QUALITY_EXCELLENT:()=>gI,TRTC_QUALITY_GOOD:()=>EI,TRTC_QUALITY_POOR:()=>_I,TRTC_QUALITY_UNKNOWN:()=>fI,TRTC_QUALITY_VERY_BAD:()=>II,UPDATE_OFFER_TIMEOUT:()=>CI,VIDEO_MUTE_BIT:()=>_d,VIDEO_STAT_BIT:()=>tn,audioProfileMap:()=>pd,defaultBigVideoProfile:()=>pa,defaultSmallVideoProfile:()=>cm,getRetryCount:()=>bI,getScriptDir:()=>tI,innerVersion:()=>im,loggerProxy:()=>ha,screenProfileMap:()=>fd,setLoggerProxy:()=>ts,setRetryCount:()=>um,setVersion:()=>om,version:()=>pt,videoProfileMap:()=>Vr});var im="4.15.00.1600",pt="5.0.0";function om(i){pt=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));im=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var en=typeof importScripts!="undefined",ma=typeof registerProcessor!="undefined",tI=()=>{let i=en?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},ha="",ts=i=>ha=i,Bf="web.sdk.qcloud.com",rI="web.sdk.tencent.cn",iI="web.sdk.cloud.tencent.cn",oI="https://console.cloud.tencent.com/trtc",or=`https://${Bf}/trtc/webrtc/doc`,sI=`${or}/zh-cn/`,ld="https://cloud.tencent.com/document/product/647/85386",md="https://trtc.io/document/56025",sm="https://yun.tim.qq.com",nm="https://apisgp.my-imcloud.com",am="trtc_error_assistance",po={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},vi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Ur=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(Ur||{}),nI=18e3,aI=2e3,rs={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},hd=7*24*3600*1e3,pd={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},Vr={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},pa=Vr["480p_2"],cm=Vr["120p_2"],fd={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},M={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},cI={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},gd={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},ii=(e=>(e.LIVE="live",e.RTC="rtc",e))(ii||{}),tn=1,dm=2,fa=4,rn=8,Ed=64,_d=16,dI=112,uI=128,lI="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",mI="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",hI=M.MAIN,pI=M.AUXILIARY,fI=0,gI=1,EI=2,_I=3,TI=4,II=5,SI=6,AI="unknown",yI={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},$f=1/0;function um(i){$f=i}function bI(){return $f}var RI=30,yr={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},vI=1e4,CI=1e4,NI=1e4,lm="unified-plan",DI="plan-b",wI=1028,Hf=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Hf||{}),Td=500,OI=1e3,MI=M.BIG,xI=M.SMALL,PI=10*1e3,Ci={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},LI=2e3,kI={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},is=5,os="default",ga=os,UI="communications",VI=Object.keys(Ur),Wf=["normal leave","timeout leave","kick","role change"],FI=10,on=2e3,Id=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Ea=10*1e3;var BI=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})},hm=Symbol(32),pm=Symbol(16),fm=Symbol(8),oi=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return BI(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(hm)}readU16(){return this.read(pm)}readU8(){return this.read(fm)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===hm){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===pm){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===fm){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};oi.U32=hm;oi.U16=pm;oi.U8=fm;var $I=128,HI=127,Mv=~HI,xv=Math.pow(2,31);function gm(i){let t=new oi;for(;i>=128;)t.malloc(1)[0]=i&255|$I,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function Sd(i,t=0){let e=new oi,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(gm(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(gm(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new oi;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=Sd(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=Sd(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(gm(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var _a=class{constructor(){m(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function Em(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function zt(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function _m(i,t){return i[t]}function sn(i,t,e){return new TextDecoder().decode(WI(i,t,e))}function WI(i,t,e){return i.slice(t,t+e)}var Tm=0,Ad=2654435769,yd=16,Sm=4,nn=2,an=7;function GI(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function Gf(i,t){let e=new _a,r=GI(t,i,Tm);Tm=Tm+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new _a;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let z=4;z<16;z++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let A=n.length;n.data[0]=A>>>24&255,n.data[1]=A>>>16&255,n.data[2]=A>>>8&255,n.data[3]=A&255,Oe(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(R=jI(R,N)),e.writeBytes(R);let C=new Uint8Array(e.data),P=C.length;return C[0]=P>>>24&255,C[1]=P>>>16&255,C[2]=P>>>8&255,C[3]=P&255,C}function jI(i,t){let e=i.length,o=(e+1+nn+an)%8;o&&(o=8-o);let s=e+1+nn+an+o,n=new Uint8Array(s),a=0,d=new Uint8Array(8),l=new Uint8Array(8),p=new Uint8Array(8),f=0;d[0]=Math.floor(Math.random()*256)&248|o,f=1;for(let A=0;A<o;A++)d[f]=Math.floor(Math.random()*256)&255,f+=1;for(let A=0;A<nn;)if(f<8&&(d[f]=Math.floor(Math.random()*256)&255,f+=1,A+=1),f===8){Im(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}let g=0;for(;g<e;)if(f<8&&(d[f]=i[g],f+=1,g+=1),f===8){Im(d,t,l,p,n,a),a+=8,f=0;for(let A=0;A<8;A++)p[A]=n[a-8+A]}for(let A=0;A<an;)if(f<8&&(d[f]=0,f+=1,A+=1),f===8){Im(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}return n}function Im(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];qI(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function qI(i,t,e,r){let o=zt(i,0),s=zt(i,4),n=[];for(let d=0;d<4;d++)n[d]=zt(t,d*4);let a=0;for(let d=0;d<yd;d++)a+=Ad,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;Em(e,o,r),Em(e,s,r+4)}var zf=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Rr=i=>Number(i)<14e8,Ni=function(i,t){let e;ha?e=ha:e=Rr(i)?nm:sm;let r=Math.floor(Math.random()*ri(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Jf="unknown";function cn(){JI();let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r?Xf(r,o):Jf}function zI(){F.warn("netType changed",cn())}var jf=!1;function JI(){var i;jf||(jf=!0,(i=navigator.connection)==null||i.addEventListener("typechange",zI))}function Xf(i,t){if(rs[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Qf(i){Jf=Xf(i)}function Rd(){return rs[cn()]}function Yf(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function Zf(i,t=48e3){return Am(i/4,t)}function Am(i,t=48e3){return i*1e3/t}function Kf(i,t=48e3){return ym(i,t)*4}function ym(i,t=48e3){return i*t/1e3}var Ta=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Fr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Jt=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function ns(i,t=1,e=1){return i<=1?e:ns(i-1,e,t+e)}function eg(i){return i>8?30*1e3:ns(i)*1e3}function ft(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Xe=i=>typeof i=="function",O=i=>typeof i=="undefined",Oe=i=>typeof i=="string",Fe=i=>typeof i=="number",Ye=i=>typeof i=="boolean",pr=i=>ft(i)==="object",mt=i=>ft(i)==="array",tg=i=>ft(i)==="MediaStreamTrack".toLowerCase(),rg=i=>i.isRemote,fo=i=>ft(i)==="promise",as=i=>Xe(i)&&i.prototype.constructor===i,dn=i=>as(i)?i.prototype.constructor.name:"",ig=typeof AudioWorkletNode!="undefined",og=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function Ia(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function Te(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var qf=i=>+i<10?`0${i}`:i,sg=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=qf(e[1])+qf(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},XI=Object.prototype.hasOwnProperty,{toString:qv}=Object.prototype;function un(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Jt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(XI.call(i,t))return!1;return!0}}return!1}function cs(i,t){return{userId:t,hasAudio:!!(i&rn),hasVideo:!!(i&tn),hasAuxiliary:!!(i&fa),hasSmall:!!(i&dm),audioMuted:!!(i&Ed),videoMuted:!!(i&_d),audioAvailable:!!(i&rn)&&!(i&Ed),videoAvailable:!!(i&tn)&&!(i&_d)}}function ng(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!O(i.username)&&!O(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",O(i.credentialType)||(t.credentialType=i.credentialType)),t}function ln(i,t=!0){if(!Oe(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Br=function(i,t,e,r){if(!(pr(i)&&pr(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,d=s.length;a<d;a++)if(n=s[a],!(O(t[n])||e&&e.includes(n)))if(pr(i[n])&&pr(t[n]))o+=Br(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=ss(t[n]),o+=1)}return o};function ss(i){if(mt(i)){let t=[];return i.forEach((e,r)=>{t[r]=ss(e)}),t}if(pr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=ss(i[e])}),t}return i}var mn=i=>{let t=[];if(mt(i))t=[...i];else if(Oe(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},ag=i=>Oe(i)?document.getElementById(i):i,QI=i=>{let t=d=>d<10?`0${d}`:`${d}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},vd=()=>QI(new Date);function br(i,{keysToInclude:t,keysToExclude:e}){try{if(mt(i))return`[${i.map(n=>br(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Jt(i)||!mt(t)&&!mt(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Jt(i[n])||mt(i[n])?JSON.parse(br(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function Sa(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),br(i,{keysToInclude:e})}function cg(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var bm=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},hn=i=>y(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Oe(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new se({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Cd=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Aa=i=>(Object.keys(i).forEach(t=>{Fe(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Jt(i[t])||mt(i[t]))&&Aa(i[t])}),i);function $r(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function Nd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function ds(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function Dd(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),d=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,l=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${d}${l}`}catch(e){return""}}function wd(i,t){return i.width*i.height===t.width*t.height?1:bm()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function fr(i){return i===90||i===270}function dg(i){return y(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function bd(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=bd(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=bd(i[r],t)}),e}return i}var pn=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(pn||{});function YI(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return O(r)||(o=_e(Y({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function Di(i,t,e,r){try{let o=YI(i,t,e,r),s=Sd(o);return Gf(s,e)}catch(o){return JSON.stringify(i)}}function ug(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function lg(i){return(i&65535)>>>0}function mg(i){return(i&4294901760)>>>0}function hg(i){let t=ZI(i);return t==null?void 0:t.busiBuff}function ZI(i){try{let t={},e=0;t.totalLength=zt(i,e),e+=4,t.version=zt(i,e),e+=4,t.encryption=_m(i,e),e+=1,t.uinType=_m(i,e),e+=1,t.uinLength=zt(i,e),e+=4,t.uin=t.uinLength>4?sn(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=KI(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=zt(i,e),e+=4,t.seqNo=zt(i,e),e+=4,t.retCode=zt(i,e),e+=4,t.retStrLength=zt(i,e),e+=4,t.retStr=t.retStrLength?sn(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=zt(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?sn(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=zt(i,e),e+=4,t.cookie=t.cookieLength?sn(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=zt(i,e),e+=4,t.busiBuffLength=zt(i,e),e+=4,t.busiBuff=t.busiBuffLength?sn(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function pg(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=Ad*yd>>>0;for(let s=0;s<yd;s++)r-=(e<<Sm)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<Sm)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=Ad,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function KI(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=pg(o,t),n=s[0]&7,a=i.length-1-n-nn-an,d=new Uint8Array(a),l=0,p=r,f=i.slice(0,8);e=8;let g=1;g+=n;for(let R=1;R<=nn;)if(g<8)g++,R++;else if(g===8){let N=Rm(i,e,p,f,s,t);p=N.ivPreCrypt,f=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,g=0}let A=a;for(;A>0;)if(g<8)d[l++]=s[g]^p[g],g++,A--;else if(g===8){let R=Rm(i,e,p,f,s,t);p=R.ivPreCrypt,f=R.ivCurCrypt,s=R.debiBuf,e=R.bufPos,g=0}for(let R=1;R<=an;)if(g<8)s[g]^p[g],g++,R++;else if(g===8){if(e>=i.length)break;let N=Rm(i,e,p,f,s,t);if(!N.success)break;p=N.ivPreCrypt,f=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,g=0}return d}function Rm(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let p=0;p<8;p++)d[p]=o[p]^a[p];let l=pg(d,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:l,bufPos:t+8}}var fg=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function wi({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:hg(new Uint8Array(l))||(fg?fg.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function vm(i){return y(this,null,function*(){let t=Te(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return F.debug(`compressJSON ${e.length} -> ${a.byteLength} ${Te()-t}ms`),a}catch(r){return e}})}var eS=Object.prototype.hasOwnProperty;var go=i=>typeof i=="function",us=i=>typeof i=="undefined";var gg=i=>typeof i=="boolean";var Cm=i=>i.isRemote;var Nm=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function Eg(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Nm(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(eS.call(i,t))return!1;return!0}}return!1}var tS=0,rS=1,_g=2;function iS({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=tS,A=(R,N)=>y(this,null,function*(){let C=n||this;try{let P=yield i.apply(C,a);p>0&&s&&s.call(this,p),p=0,R(P)}catch(P){let z=()=>{clearTimeout(f),p=0,g=_g,N(P)},H=()=>{g!==_g&&p<(go(d)?d():d)?(p++,g=rS,go(r)&&r.call(this,p,z),f=window.setTimeout(()=>{f=-1,A(R,N)},go(l)?l(p):l)):(z(),go(o)&&o.call(this,P))};go(e)?e.call(this,{error:P,retry:H,reject:N,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(A)}}var Eo=iS;var _o=class i{constructor(t){m(this,"_parentPath");m(this,"userId");m(this,"remoteUserId");m(this,"id");m(this,"sdkAppId");m(this,"type");m(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=gg(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new i({id:t.id,userId:us(t.userId)?this.userId:t.userId,sdkAppId:us(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:us(t.type)?this.type:t.type,isLocal:us(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:us(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),F.log(t,e,us(this.userId)||Eg(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var bn={};yi(bn,{ANDROID_VERSION:()=>Md,CHROME_MAJOR_VERSION:()=>Yt,CHROME_VERSION:()=>Yd,EDGE_VERSION:()=>Ld,EDG_MAJOR_VERSION:()=>wm,EDG_VERSION:()=>kd,ELECTRON_MAJOR_VERSION:()=>Lm,FIREFOX_MAJOR_VERSION:()=>Pd,FIREFOX_VERSION:()=>xd,HUAWEI_VERSION:()=>qd,IE_VERSION:()=>cS,IOS_MAIN_VERSION:()=>Vt,IOS_VERSION:()=>Cr,IPADQQB_VERSION:()=>Gd,IS_ANDROID:()=>at,IS_ANDROID_WEBVIEW:()=>mS,IS_ANY_SAFARI:()=>vr,IS_CHROME:()=>An,IS_CHROME_OS:()=>Om,IS_CHROMIUM_BASE:()=>nr,IS_DESKTOP_IOS_CHROME:()=>Bm,IS_EDG:()=>En,IS_EDGE:()=>ls,IS_ELECTRON:()=>uS,IS_FIREFOX:()=>ot,IS_HEADLESS_CHROME:()=>Pm,IS_HONOR:()=>xm,IS_HUAWEI:()=>Ma,IS_HUAWEIBROWSER:()=>Oa,IS_IE:()=>Ag,IS_IE8:()=>aS,IS_IOS:()=>st,IS_IOS_13_OR_14:()=>Fm,IS_IOS_15_1:()=>Vm,IS_IOS_CHROME:()=>ya,IS_IPAD:()=>gn,IS_IPADQQB:()=>Na,IS_IPAD_PRO:()=>Dm,IS_IPHONE:()=>To,IS_IPOD:()=>Sg,IS_LINUX:()=>Da,IS_LOCAL:()=>jr,IS_MAC:()=>Gr,IS_MACQQB:()=>Ca,IS_MIBROWSER:()=>wa,IS_MQQB:()=>Tn,IS_NATIVE_ANDROID:()=>nS,IS_OLD_ANDROID:()=>sS,IS_OPENHARMONY:()=>Sn,IS_OPPOBROWSER:()=>In,IS_SAFARI:()=>ct,IS_SAFARI_15_1:()=>hS,IS_SAMSUNGBROWSER:()=>xa,IS_SOGOU:()=>Ra,IS_SOGOUM:()=>ba,IS_TBS:()=>Wr,IS_UCBROWSER:()=>Mm,IS_VIVOBROWSER:()=>Pa,IS_WECHAT:()=>Mi,IS_WIN:()=>ms,IS_WQQB:()=>va,IS_WX:()=>dS,IS_X5MQQB:()=>_n,IS_XWEB:()=>Oi,MACQQB_VERSION:()=>Wd,MI_VERSION:()=>jd,MQQB_VERSION:()=>fn,OPENHARMONY_VERSION:()=>lS,OPPO_VERSION:()=>Jd,SAFARI_VERSION:()=>xi,SAMSUNG_VERSION:()=>zd,SOGOUM_VERSION:()=>Ud,SOGOU_VERSION:()=>Vd,TBS_VERSION:()=>Fd,UA_DATA_STRING:()=>Hr,USER_AGENT:()=>sr,VIVO_VERSION:()=>Xd,WECHAT_VERSION:()=>$d,WQQB_VERSION:()=>Hd,XWEB_VERSION:()=>Bd,browserInfo:()=>ni,getBrowserCoreNumber:()=>Hm,getBrowserInfo:()=>yg,getChromeMajorVersion:()=>Qd,getDeviceModel:()=>ps,getDeviceModelFromUA:()=>Zd,getGPUInfo:()=>$m,getOSName:()=>yn,getOSNumber:()=>fs,getOSString:()=>Li,getOSType:()=>Gm,getTerminalType:()=>Wm,getUserAgentData:()=>hs,isLocalStorageEnabled:()=>Pi,isMobile:()=>La,isVersionLargerThan:()=>Um,isVersionSmallerThan:()=>km});var sr=typeof navigator=="undefined"?"":navigator.userAgent,be=i=>new RegExp(i,"i").test(sr),St=i=>{if(be(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=sr.match(t);if(e&&e[1])return e[1]}return""},Od=i=>{if(be(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=sr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},Tg=/AppleWebKit\/([\d.]+)/i.exec(sr),oS=Tg?parseFloat(Tg[1]):NaN,gn=be("iPad"),Dm=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&be("Macintosh"),To=be("iPhone")&&!gn,Sg=be("iPod"),st=To||gn||Sg||Dm,at=be("Android"),Md=function(){if(at){let i=sr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),sS=at&&be("webkit")&&Md<2.3,nS=at&&Md<5&&oS<537,ot=be("Firefox"),xd=St("Firefox"),Pd=Od("Firefox"),ls=be("Edge"),Ld=St("Edge"),En=be("Edg"),kd=St("Edg"),wm=Od("Edg"),ba=be("SogouMobileBrowser"),Ud=St("SogouMobileBrowser"),Ra=be("MetaSr\\s"),Vd=St("MetaSr\\s"),Wr=be("TBS"),Fd=St("TBS"),Oi=be("XWEB"),Bd=St("XWEB"),aS=be("MSIE\\s8\\.0"),Ag=be("MSIE\\/\\d+"),cS=function(){if(Ag){let i=/MSIE\s(\d+)\.\d/.exec(sr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(sr)&&/rv:11.0/.test(sr)&&(t=11),t}return NaN}(),Mi=be("(micromessenger|webbrowser)"),$d=St("MicroMessenger"),_n=!Wr&&be("MQQBrowser")&&be("COVC"),Tn=!Wr&&be("MQQBrowser")&&!be("COVC"),fn=Tn||_n?St("MQQBrowser"):"",va=!Wr&&be(" QQBrowser"),Hd=St(" QQBrowser"),Ca=!Wr&&be("QQBrowserLite"),Wd=St("QQBrowserLite"),Na=!Wr&&be("MQBHD"),Gd=St("MQBHD"),ms=be("Windows"),Gr=!st&&be("MAC OS X"),Da=!at&&be("Linux"),Om=be("CrOS"),dS=be("MicroMessenger"),Mm=be("UCBrowser"),uS=be("Electron"),wa=be("MiuiBrowser"),jd=St("MiuiBrowser"),Oa=be("HuaweiBrowser"),Ma=be("Huawei")||be("HUAWEI"),xm=be("Honor")||be("HONOR"),qd=St("HuaweiBrowser"),xa=be("SamsungBrowser"),zd=St("SamsungBrowser"),In=be("HeyTapBrowser"),Jd=St("HeyTapBrowser"),Pa=be("VivoBrowser"),Xd=St("VivoBrowser"),Sn=be("OpenHarmony"),lS=St("OpenHarmony"),Qd=()=>Od("Chrome"),ya=be("CriOS"),nr=be("Chrome"),An=!ls&&!Ra&&!ba&&!Wr&&!Oi&&!En&&!va&&!wa&&!Oa&&!xa&&!In&&!Pa&&nr,Pm=be("HeadlessChrome"),Yt=Qd(),Yd=St("Chrome"),Lm=Od("Electron"),ct=!nr&&!Tn&&!_n&&!Ca&&!Na&&be("Safari"),vr=ct||st,xi=St("Version"),mS=/Android.*(wv|.0.0.0)/.test(sr),Cr=(()=>{if(Dm)return xi;if(st){let i=sr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function km(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function Um(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var Vt=Number(Cr.split(".")[0]),hS=xi==="15.1",Vm=Cr==="15.1",Fm=(()=>{let i=Number(Cr.split(".")[0]);return i===14||i===13})(),Bm=ya&&xi==="11.1.1",jr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Pi=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),ni=yg();function yg(){let i=new Map([[ot,["Firefox",xd]],[En,["Edg",kd]],[An,["Chrome",Yd]],[ya,["ChiOS",St("CriOS")]],[ct&&!ya,["Safari",xi]],[Wr,["TBS",Fd]],[Oi,["XWEB",Bd]],[Mi&&To,["WeChat",$d]],[va,["QQ(Win)",Hd]],[Tn,["QQ(Mobile)",fn]],[_n,["QQ(Mobile X5)",fn]],[Ca,["QQ(Mac)",Wd]],[Na,["QQ(iPad)",Gd]],[wa,["MI",jd]],[Oa,["HW",qd]],[xa,["Samsung",zd]],[In,["OPPO",Jd]],[Pa,["VIVO",Xd]],[ls,["EDGE",Ld]],[ba,["SogouMobile",Ud]],[Ra,["Sogou",Vd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Qe=null;function La(){return Qe&&typeof Qe.mobile=="boolean"?Qe.mobile:at||st||To||gn||Sn}var Hr="";function hs(){return y(this,null,function*(){if(Qe)return Qe;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Qe=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Qe&&!Hr&&(Hr=`UAData: ${Qe.platform}/${Qe.platformVersion}`,Qe.architecture&&Qe.bitness&&(Hr+=` ${Qe.architecture}/${Qe.bitness}`),Qe.mobile&&(Hr+=" mobile"),Qe.model&&(Hr+=` model: ${Qe.model.replace(/\s+/g,"/")}`),Qe.fullVersionList&&(Hr+=` ${Qe.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Qe}catch(i){return null}})}function $m(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function ps(){return(Qe==null?void 0:Qe.model)||Zd()||""}function Zd(){let i=/;\s*([^;)]+)\s+Build\//,t=sr.match(i);return t!=null&&t[1]?t[1].trim():null}var Ig=new Map([[at,"Android"],[st,"iOS"],[ms,"Windows"],[Gr,"MacOS"],[Da,"Linux"],[Om,"ChromeOS"]]),yn=function(){return Ig.get(!0)?Ig.get(!0):Qe?Qe.platform:"unknown"};function fs(){return ms?1:at?2:Gr?3:st?4:Da?5:Om?6:Sn?7:0}function Hm(){return Mi||Oi?4:nr?1:ct?2:ot?3:0}var Li=()=>{let i=yn();return Qe!=null&&Qe.platformVersion?i+=`/${Qe.platformVersion}`:st?i+=`/${Cr}`:at&&(i+=`/${Md}`),i+=`/${ni.name}/${ct&&!ya?ni.version:ni.version.split(".")[0]}`,Qe!=null&&Qe.architecture&&(i+=`/${Qe.architecture}`),i};function Wm(){return at?4:To?2:gn?3:Gr?12:ms?5:Da?13:Sn?22:1}function Gm(){return at?"Android":To?"iPhone":gn?"iPad":Gr?"Mac":ms?"Windows":Da?"Linux":"unknown"}var Rg=bi(ki(),1),gS=new Rg.default,U=gS;var gr=(le=>(le.ROOM_DESTROY="1",le.JOIN_START="21",le.JOIN_SCHEDULE_SUCCESS="22",le.JOIN_SIGNAL_CONNECTION_START="23",le.JOIN_SIGNAL_CONNECTION_END="24",le.JOIN_SEND_CMD="25",le.JOIN_RECEIVED_CMD_RES="26",le.JOIN_SUCCESS="27",le.JOIN_FAILED="28",le.LEAVE_START="51",le.LEAVE_SEND_CMD="52",le.LEAVE_SUCCESS="53",le.PUBLISH_START="61",le.SEND_FIRST_VIDEO_FRAME="62",le.PUBLISH_FAILED="63",le.SUBSCRIBE_START="81",le.SUBSCRIBE_SUCCESS="82",le.SUBSCRIBE_FAILED="84",le.UNSUBSCRIBE_SUCCESS="83",le.LOCAL_TRACK_CAPTURE_START="101",le.LOCAL_TRACK_CAPTURE_SUCCESS="102",le.LOCAL_TRACK_CAPTURE_FAILED="103",le.LOCAL_TRACK_PUBLISHED="104",le.LOCAL_TRACK_UNPUBLISHED="105",le.LOCAL_TRACK_REPLACED="106",le.SWITCH_DEVICE_SUCCESS="107",le.TRACK_MUTED="108",le.TRACK_UNMUTED="109",le.REMOTE_TRACK_SUBSCRIBED="110",le.REMOTE_TRACK_UNSUBSCRIBED="111",le.LOCAL_TRACK_RECAPTURE="112",le.LOCAL_AUDIO_STARTED="113",le.LOCAL_AUDIO_STOPPED="114",le.REMOTE_AUDIO_STARTED="115",le.REMOTE_AUDIO_STOPPED="116",le.PLAY_TRACK_START="151",le.PLAYER_STATE_CHANGED="152",le.VIDEO_LOADED_DATA="153",le.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",le.AUDIO_CONTEXT_LONG_SUSPENDED="155",le.REMOTE_VIDEO_PLAY_START="156",le.REMOTE_VIDEO_PLAY_FINISH="157",le.SIGNAL_CONNECTION_STATE_CHANGED="201",le.PEER_CONNECTION_STATE_CHANGED="202",le.SINGLE_CONNECTION_STAT="203",le.SPC_RECONNECTED="204",le.HEARTBEAT_REPORT="251",le.RECEIVED_PUBLISHED_USER_LIST="252",le.REMOTE_PUBLISH_STATE_CHANGED="253",le.AUDIO_LEVEL_INTERVAL="260",le.NETWORK_QUALITY="261",le.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",le.QUALITY_LIMITATION_CHANGED="263",le.LOG="264",le.AUDIO_PROCESSOR_DEBUG="265",le.SSO_SWITCH="266",le.SWITCH_ROOM_START="401",le.SWITCH_ROOM_SUCCESS="407",le.SWITCH_ROOM_FAILED="408",le))(gr||{});var B=gr;var qm=class{constructor(){m(this,"enable",!1);m(this,"ssoFailCount",0);U.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&U.emit("266",{enable:!0})}),U.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&U.emit("266",{enable:!1})}},Io=new qm;var ES="%cTRTC%c%s",_S="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",TS="display: inline",eu=class eu{constructor(){m(this,"_isEnableUploadLog",!0);m(this,"_localJoinedUser",new Map);m(this,"_queue",[]);m(this,"_timeoutId",-1);m(this,"_logLevel",1);m(this,"_logLevelToUpload",2);!en&&!ma&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){U.on(B.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Ur[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),U.on(B.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),U.on(B.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Oe(r.userId)&&Fe(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return y(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:d}=o[s],l={timestamp:ud(),sdkAppId:String(a),userId:n,version:pt,log:d.map(g=>g.log).join(`
4
+ `)},p=JSON.stringify(l),f=Io.enable?Di(l,2002,a):p;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,p),d.forEach(g=>g.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Eo({retryFunction:()=>wi({url:Ni(e,po.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(Io.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(Ri()),`[${Ks(e)}] <${Ur[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){O(Ur[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Oe(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,d)=>`${a} ${this.logChunkToString(d)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};U.emit(B.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=Ur[t])==null?void 0:a.toLowerCase())||"info";eu.PRINT_LOG_TAG?console[n](ES,_S,TS,...e):console[n](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof _o){let e=t,{parent:r}=e,o=kf(e,["parent"]),s=new _o(o);return s.bindParent(r),s}return new _o(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Ur[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};m(eu,"PRINT_LOG_TAG",!(st||at||Pm));var zm=eu,F=new zm;var IS=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},Ua=IS;var Jm=class{constructor(){m(this,"_prefix","TRTC");m(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Pi())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(Pi())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){F.warn(t)}}getItem(t){if(!Pi())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){F.warn(e)}}setItem(t,e){if(Pi())try{let r={expiresIn:Date.now()+hd,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){F.warn(r)}}deleteItem(t){if(!Pi())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return F.warn(e),!1}}clear(){if(Pi())try{localStorage.clear()}catch(t){F.warn(t)}}},Rn=new Jm;var bo={};yi(bo,{HTTPS_API:()=>HS,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>_h,IS_GET_CAPABILITIES_SUPPORTED:()=>Eh,IS_GET_SETTINGS_SUPPORTED:()=>Nn,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>YS,IS_INSERTABLE_STREAM_SUPPORTED:()=>Is,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>eA,IS_RTC_RTP_SENDER_SUPPORTED:()=>za,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>iE,IS_SEI_SUPPORTED:()=>Ja,IS_SPC_SUPPORTED:()=>zS,basis:()=>ZS,capabilityCheck:()=>Sh,checkSystemRequirementsInternal:()=>fu,decodeSupportStatus:()=>Xg,detectVideoCodecCapabilities:()=>Ah,detectVideoDecoderCapabilities:()=>cE,detectVideoEncoderCapabilities:()=>aE,encodeSupportStatus:()=>gh,getBrowserInfo:()=>hu,getDisplayResolution:()=>Qg,getH264ProfileLevelIds:()=>dE,isAddTransceiverSupported:()=>Eu,isBrowserSupported:()=>hh,isCanvasCaptureStreamAPISupported:()=>Kg,isCanvasSmallStreamSupported:()=>eE,isGetReceiversSupported:()=>jS,isGetSendersSupported:()=>rE,isGetTransceiversSupported:()=>qS,isGetUserMediaSupported:()=>Yg,isMediaDevicesSupported:()=>pu,isMediaSessionSupported:()=>oE,isMediaStreamTrackGeneratorSupported:()=>kS,isMediaStreamTrackProcessorSupported:()=>fh,isReplaceTrackSupported:()=>XS,isRequestVideoFrameCallbackSupported:()=>zr,isSIMDSupported:()=>Ih,isScaleResolutionDownBySupported:()=>tE,isScreenCaptureApiAvailable:()=>qa,isSelectedCandidatePair:()=>WS,isSetParametersSupported:()=>QS,isSetSinkIdSupported:()=>FS,isSmallStreamSupported:()=>gu,isStopTransceiverSupported:()=>JS,isTRTCSupported:()=>VS,isUnifiedPlanDefault:()=>GS,isUsedInHttpProtocol:()=>Hi,isWebAudioSupported:()=>Zg,isWebCodecSupported:()=>_u,isWebCodecsSupported:()=>ph,isWebRTCSupported:()=>Th,isWebTransportSupported:()=>sE});var ah={};yi(ah,{AUDIO_LEVEL_SCALE:()=>Fi,AlphaStitchingType:()=>Ga,AudioCodecPipelineType:()=>Ha,AudioDecoderDowngradeState:()=>Ym,AudioPlayerMode:()=>th,AudioType:()=>Km,BASIC_TYPE:()=>Bi,BannedReason:()=>rh,CONNECTION_CLOSED_REASON:()=>Cg,CheckPermissionType:()=>nh,ClientEvent:()=>Xm,CodecType:()=>Pg,ConnectionEvent:()=>vg,ConnectionState:()=>ru,DECODE_FAILED_ERROR_CODE:()=>sh,DenoiserMode:()=>oh,DeviceType:()=>au,FacingMode:()=>iu,FrameWorkType:()=>tu,LeaveReason:()=>ih,LocalTrackEvent:()=>So,MULTI_VIDEO_DATA_TYPE:()=>Vi,MediaType:()=>Pt,MediaTypeLabel:()=>SS,MonitorEventId:()=>Ba,MutedFlag:()=>Dg,NetworkQualityValue:()=>Mg,PlayerState:()=>Ao,ReceiveMode:()=>xg,RemoteStreamType:()=>ai,RemoteTrackEvent:()=>gs,RoomEvent:()=>Ui,SMALL_MODE:()=>nu,SceneNumber:()=>Qm,StreamEvent:()=>Ng,StreamType:()=>Og,SubscribeMediaType:()=>Va,TIMER_TYPE:()=>yo,TRACK_ACTION:()=>wg,TRACK_KIND:()=>Zm,TrackEvent:()=>qr,UserRole:()=>Kt,UserRoleNumber:()=>Es,VideoCodec:()=>ou,VideoCodecPipelineType:()=>su,VideoContentHint:()=>Wa,VideoDecoderDowngradeState:()=>Fa,VideoPlayerMode:()=>$a,VideoType:()=>eh});var tu=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(tu||{}),vg=(N=>(N.TRACK_ADDED="track-added",N.TRACK_UPDATED="track-updated",N.TRACK_SUBSCRIBED="track-subscribed",N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_PUBLISHED="stream-published",N.STREAM_SUBSCRIBED="stream-subscribed",N.STREAM_UNSUBSCRIBED="stream-unsubscribed",N.STATE_CHANGED="state-changed",N.ERROR="error",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.FIREWALL_RESTRICTION="firewall-restriction",N.SEI_MESSAGE="sei-message",N.CLOSED="closed",N))(vg||{}),Cg=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(Cg||{}),Xm=(C=>(C.STREAM_ADDED="stream-added",C.STREAM_REMOVED="stream-removed",C.STREAM_UPDATED="stream-updated",C.STREAM_SUBSCRIBED="stream-subscribed",C.CONNECTION_STATE_CHANGED="connection-state-changed",C.PEER_JOIN="peer-join",C.PEER_LEAVE="peer-leave",C.MUTE_AUDIO="mute-audio",C.MUTE_VIDEO="mute-video",C.UNMUTE_AUDIO="unmute-audio",C.UNMUTE_VIDEO="unmute-video",C.CLIENT_BANNED="client-banned",C.NETWORK_QUALITY="network-quality",C.AUDIO_VOLUME="audio-volume",C.SEI_MESSAGE="sei-message",C.ERROR="error",C))(Xm||{}),Ng=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(Ng||{}),So=(d=>(d.DEVICE_AUTO_RECOVERED="1",d.DEVICE_RECOVER_FAILED="5",d.DEVICE_CHANGED="2",d.ERROR="3",d.PUBLISH_STATE_CHANGED="4",d.ENCODE_FAILED="6",d.TRACK_ENDED="7",d.RENDER="render",d))(So||{}),Ao=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Ao||{}),Ui=(W=>(W.PEER_JOIN="peer-join",W.PEER_LEAVE="peer-leave",W.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",W.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",W.BANNED="banned",W.NETWORK_QUALITY="network-quality",W.AUDIO_VOLUME="audio-volume",W.SEI_MESSAGE="sei-message",W.ERROR="error",W.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",W.REMOTE_PUBLISHED="remote-published",W.REMOTE_UNPUBLISHED="remote-unpublished",W.FIREWALL_RESTRICTION="firewall-restriction",W.HEARTBEAT_REPORT="heartbeat-report",W.CUSTOM_MESSAGE="custom-message",W.LAYER_DATA="layerData",W.FIRST_VIDEO_FRAME="first-video-frame",W.DUMP="dump",W.AUDIO_FRAME="audio-frame",W.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",W.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",W.NTP_TIME_UPDATED="ntp-time-updated",W))(Ui||{}),qr=(d=>(d.PLAYER_STATE_CHANGED="player-state-changed",d.MUTE="mute",d.UNMUTE="unmute",d.ERROR="error",d.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",d.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",d.FIRST_VIDEO_FRAME="first-video-frame",d.VIDEO_SIZE_CHANGED="video-size-changed",d))(qr||{}),gs=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))(gs||{}),Dg=(a=>(a[a.VIDEO=1]="VIDEO",a[a.SMALL=2]="SMALL",a[a.AUX=4]="AUX",a[a.AUDIO=8]="AUDIO",a[a.VIDEO_MUTE=16]="VIDEO_MUTE",a[a.AUX_MUTE=32]="AUX_MUTE",a[a.AUDIO_MUTE=64]="AUDIO_MUTE",a))(Dg||{}),Qm=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Qm||{}),Es=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Es||{}),Kt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Kt||{}),ru=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(ru||{}),Ym=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Ym||{}),Fa=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Fa||{}),Zm=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Zm||{}),wg=(e=>(e.ADD="add",e.REMOVE="remove",e))(wg||{}),Pt=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(Pt||{}),SS={1:"audio",2:"auxVideo",4:"video"},Km=(t=>(t[t.opus=111]="opus",t))(Km||{}),eh=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(eh||{}),Og=(e=>(e.Big="big",e.Small="small",e))(Og||{}),ai=(e=>(e.Main="main",e.Aux="auxiliary",e))(ai||{}),Vi=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(Vi||{}),Ba=(Q=>(Q[Q.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",Q[Q.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",Q[Q.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",Q[Q.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",Q[Q.MUTE_AUDIO=32772]="MUTE_AUDIO",Q[Q.MUTE_VIDEO=32773]="MUTE_VIDEO",Q[Q.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",Q[Q.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",Q[Q.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",Q[Q.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",Q[Q.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",Q[Q.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",Q[Q.SWITCH_CAMERA=32780]="SWITCH_CAMERA",Q[Q.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",Q[Q.REPLACE_VIDEO=32782]="REPLACE_VIDEO",Q[Q.REPLACE_AUDIO=32783]="REPLACE_AUDIO",Q[Q.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",Q[Q.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",Q[Q.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",Q[Q.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",Q[Q.JOIN=32788]="JOIN",Q[Q.LEAVE=32789]="LEAVE",Q[Q.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",Q[Q.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",Q[Q.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",Q[Q.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",Q[Q.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",Q[Q.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",Q[Q.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",Q[Q.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",Q[Q.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",Q[Q.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",Q[Q.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",Q[Q.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",Q[Q.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",Q[Q.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",Q[Q.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",Q[Q.PUBLISH_AUX=32805]="PUBLISH_AUX",Q[Q.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",Q[Q.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",Q[Q.VIDEO_ENCODER=4004]="VIDEO_ENCODER",Q[Q.VIDEO_DECODER=4005]="VIDEO_DECODER",Q))(Ba||{}),Mg=(a=>(a[a.UNKNOWN=0]="UNKNOWN",a[a.EXCELLENT=1]="EXCELLENT",a[a.GOOD=2]="GOOD",a[a.POOR=3]="POOR",a[a.BAD=4]="BAD",a[a.VERY_BAD=5]="VERY_BAD",a[a.DISCONNECTED=6]="DISCONNECTED",a))(Mg||{}),xg=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(xg||{}),iu=(e=>(e.user="user",e.environment="environment",e))(iu||{}),$a=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))($a||{}),th=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(th||{}),rh=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(rh||{}),ih=(l=>(l[l.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",l[l.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",l[l.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",l[l.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",l[l.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",l[l.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",l[l.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",l[l.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",l[l.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",l))(ih||{}),Fi=1e8,oh=(e=>(e[e.NORMAL=0]="NORMAL",e[e.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",e))(oh||{}),Va=class{constructor(){m(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},Bi=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Bi||{}),ou=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(ou||{}),su=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(su||{}),Ha=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Ha||{}),Pg=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Pg||{}),sh=(g=>(g[g.SUCCESS=0]="SUCCESS",g[g.FAILED=1]="FAILED",g[g.WEBCODEC_INIT=2]="WEBCODEC_INIT",g[g.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",g[g.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",g[g.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",g[g.WASM_INIT=6]="WASM_INIT",g[g.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",g[g.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",g[g.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",g[g.TEST=10]="TEST",g[g.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",g))(sh||{}),Wa=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Wa||{}),yo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(yo||{}),nu=(e=>(e.CANVAS="canvas",e.API="api",e))(nu||{}),nh=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(nh||{}),au=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(au||{}),Ga=(r=>(r[r.none=0]="none",r[r.horizontal=1]="horizontal",r[r.vertical=2]="vertical",r))(Ga||{});var He={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},ar={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ft(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ft(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var Lg=(i,t)=>t?`${or}/${i}/${t}`:`${or}/${i}/index.html`;var AS=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(am);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function We(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Xe(ar[t])?s=ar[t](e):Oe(ar[t])&&(s=ar[t]);let{TRTC_ERROR_INFO:d,TRTC_ERROR_LINK:l}=AS();r?a=`${r.className}.html#${r.fnName}`:l&&l[t]&&(Xe(l[t])?a=l[t](e):Oe(l[t])&&(a=l[t]));let p=s;return Fr()&&(d&&d[t]&&(Xe(d[t])?n=d[t](e):Oe(d[t])&&(n=d[t])),n&&(o?p=`${n}
5
+ \u8BF7\u67E5\u770B\u6587\u6863: ${Lg("zh-cn",a)}
7
6
 
8
- `:m=`${n}
7
+ `:p=`${n}
9
8
 
10
- `,m+=s)),o&&(m+=`
11
- Refer to: ${v_("en",a)}
12
- `),m}var zm=Li(x_(),1);var VI=1,BI=0,Mu=class{constructor(t=!0){p(this,"countMap",new Map);p(this,"distributionMap",new Map);p(this,"version");p(this,"log",se.createLogger({id:"kv"}));t&&(ee.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===j.AUDIO?501700:511700,cost:r})}),ee.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===j.AUDIO?501700:511700,error:r})}),ee.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(t,e){let r={msg_sdk_basic_info:{uint32_sdk_version:Yd(this.version||qt),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([o,s])=>({uint32_key:o,uint32_count:s})),stats_distribution:[...this.distributionMap.entries()].map(([o,s])=>({uint32_key:o,distribution_items:[...s.entries()].map(([n,a])=>({uint32_item_key:n,uint32_item_value:a}))})),str_user_sig:t,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),r}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1,max:s=5e3}){var c;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((c=this.distributionMap)==null?void 0:c.get(t))||new Map,a=0;if(ft(r))a=Math.floor(e/r);else for(let d=r.length-1;d>0;d--)if(e>r[d]){a=d;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:VI,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=Te.UNKNOWN;e&&(ft(e)?r=e:(!z(e.extraCode)||!z(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:BI,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},xu=(P=>(P[P.enterRoom=500700]="enterRoom",P[P.exitRoom=500701]="exitRoom",P[P.switchRole=500702]="switchRole",P[P.destroy=500703]="destroy",P[P.startLocalAudio=500704]="startLocalAudio",P[P.updateLocalAudio=500705]="updateLocalAudio",P[P.stopLocalAudio=500706]="stopLocalAudio",P[P.startLocalVideo=500707]="startLocalVideo",P[P.updateLocalVideo=500708]="updateLocalVideo",P[P.stopLocalVideo=500709]="stopLocalVideo",P[P.startScreenShare=500710]="startScreenShare",P[P.updateScreenShare=500711]="updateScreenShare",P[P.stopScreenShare=500712]="stopScreenShare",P[P.startRemoteVideo=500713]="startRemoteVideo",P[P.updateRemoteVideo=500714]="updateRemoteVideo",P[P.stopRemoteVideo=500715]="stopRemoteVideo",P[P.muteRemoteAudio=500716]="muteRemoteAudio",P[P.setRemoteAudioVolume=500717]="setRemoteAudioVolume",P[P.use=500718]="use",P[P.switchRoom=500719]="switchRoom",P[P.sendSEIMessage=5e5]="sendSEIMessage",P[P.sendCustomMessage=500001]="sendCustomMessage",P))(xu||{}),Hm=(f=>(f[f.AudioMixer=550700]="AudioMixer",f[f.AIDenoiser=551700]="AIDenoiser",f[f.VirtualBackground=570700]="VirtualBackground",f[f.Beauty=571700]="Beauty",f[f.Watermark=572700]="Watermark",f[f.BasicBeauty=574700]="BasicBeauty",f[f.CDNStreaming=590700]="CDNStreaming",f[f.DeviceDetector=591700]="DeviceDetector",f[f.Debug=592700]="Debug",f[f.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",f[f.VideoMixer=594700]="VideoMixer",f[f.AudioProcessor=595700]="AudioProcessor",f))(Hm||{}),Wm=(f=>(f[f.AudioMixer=550701]="AudioMixer",f[f.AIDenoiser=551701]="AIDenoiser",f[f.VirtualBackground=570701]="VirtualBackground",f[f.Beauty=571701]="Beauty",f[f.Watermark=572701]="Watermark",f[f.BasicBeauty=574701]="BasicBeauty",f[f.CDNStreaming=590701]="CDNStreaming",f[f.DeviceDetector=591701]="DeviceDetector",f[f.Debug=592701]="Debug",f[f.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",f[f.VideoMixer=594701]="VideoMixer",f[f.AudioProcessor=595701]="AudioProcessor",f))(Wm||{}),Gm=(f=>(f[f.AudioMixer=550702]="AudioMixer",f[f.AIDenoiser=551702]="AIDenoiser",f[f.VirtualBackground=570702]="VirtualBackground",f[f.Beauty=571702]="Beauty",f[f.Watermark=572702]="Watermark",f[f.BasicBeauty=574702]="BasicBeauty",f[f.CDNStreaming=590702]="CDNStreaming",f[f.DeviceDetector=591702]="DeviceDetector",f[f.Debug=592702]="Debug",f[f.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",f[f.VideoMixer=594702]="VideoMixer",f[f.AudioProcessor=595702]="AudioProcessor",f))(Gm||{});var Kn=(w=>(w[w.DECODER_TYPE=514700]="DECODER_TYPE",w[w.DECODER_HW_SW=514701]="DECODER_HW_SW",w[w.DECODE_RESULT=514702]="DECODE_RESULT",w[w.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",w[w.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",w[w.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",w[w.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",w[w.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",w[w.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",w[w.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",w[w.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",w[w.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",w[w.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",w[w.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",w[w.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",w[w.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",w[w.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",w[w.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",w[w.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",w))(Kn||{});var $I=new Mu(!0),Gs=new Mu(!1);var Se=$I;var rt={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},FI=new Map([[zt,["Firefox",iu]],[Wn,["Edg",nu]],[Xn,["Chrome",Su]],[Zt,["Safari",uo]],[Si,["TBS",du]],[ao,["XWEB",uu]],[co&&Go,["WeChat",lu]],[qa,["QQ(Win)",hu]],[zn,["QQ(Mobile)",Fn]],[Gn,["QQ(Mobile X5)",Fn]],[Xa,["QQ(Mac)",mu]],[Ja,["QQ(iPad)",pu]],[Ya,["MI",fu]],[Za,["HW",gu]],[ec,["Samsung",_u]],[jn,["OPPO",Eu]],[tc,["VIVO",Tu]],[Ls,["EDGE",su]],[za,["SogouMobile",au]],[ja,["Sogou",cu]]]);function Pu(){let i=FI.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var jm=function(){return!(lm||Ls||Wn&&dm<80||zt&&ou<56)},qm=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},Uu=function(){if(!navigator.mediaDevices)return Eo()||se.error(Wr.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},k_=!1;function Eo(){return location.protocol==="http:"&&!bi?(k_||se.error(Et({key:_t.NOT_SUPPORTED_HTTP})),k_=!0,!0):!1}var Xm=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},HI=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Jm=function(){return D(this,null,function*(){var o,s,n;if(rt.detail.isH264EncodeSupported&&rt.detail.isVp8EncodeSupported)return{isH264EncodeSupported:rt.detail.isH264EncodeSupported,isVp8EncodeSupported:rt.detail.isVp8EncodeSupported,isH265EncodeSupported:rt.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,c=document.createElement(j.CANVAS);c.getContext("2d");let d=c.captureStream(0);return a.addTrack(d.getVideoTracks()[0],d),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},B_=function(){return D(this,null,function*(){var r;if(rt.detail.isH264DecodeSupported&&rt.detail.isVp8DecodeSupported)return{isH264DecodeSupported:rt.detail.isH264DecodeSupported,isVp8DecodeSupported:rt.detail.isVp8DecodeSupported,isH265DecodeSupported:rt.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;$u()?(o.addTransceiver(j.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function WI(){return D(this,null,function*(){let[i,t]=yield Promise.all([Jm(),B_()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var Vu=Zd(i=>D(void 0,null,function*(){let t=Date.now(),e=Zm(),r=Uu(),o=qm();if(rt.detail.isWebRTCSupported=e,rt.detail.isMediaDevicesSupported=r,rt.detail.isWebCodecsSupported=o,rt.detail.isScreenShareSupported=mc(),rt.detail.isSmallStreamSupported=Bu(),i===37)return Object.assign(rt.detail,yield qI()),rt.detail.isBrowserSupported=o,rt.result=r&&o,rt.result||se.error(`${navigator.userAgent} ${Ha(rt.detail,!1)}`),L_(i),Se.addNumber({key:523800,value:Date.now()-t}),rt;if(rt.result&&rt.detail.isH264EncodeSupported&&rt.detail.isVp8EncodeSupported&&rt.detail.isH265EncodeSupported&&rt.detail.isH264DecodeSupported&&rt.detail.isVp8DecodeSupported&&rt.detail.isH265DecodeSupported)return rt;let s=jm(),{encode:n,decode:a}=yield WI(),{h264:c,vp8:d}=n,{h264:m}=a,{h265:l}=n,{vp8:f,h265:g}=a;if(!c||!d){let T=yield Jm();se.warn(`detect encode again h264:${c} vp8:${d} result: ${JSON.stringify(T)}`),c=T.isH264EncodeSupported,d=T.isVp8EncodeSupported}if(c&&m&&Bt&&Qr&&!ao&&!Si&&!(jn&&Fr===115)){let{encode:T,decode:E}=yield jI();c=T,m=E}return rt.result=s&&e&&r&&(c||d)&&(m||f),rt.detail.isBrowserSupported=s,rt.detail.isWebRTCSupported=e,rt.detail.isH264EncodeSupported=c,rt.detail.isVp8EncodeSupported=d,rt.detail.isH265EncodeSupported=l,rt.detail.isH264DecodeSupported=m,rt.detail.isVp8DecodeSupported=f,rt.detail.isH265DecodeSupported=g,rt.result||se.error(`${navigator.userAgent} ${Ha(rt.detail,!1)}`),L_(),Se.addNumber({key:523800,value:Date.now()-t}),rt})),GI=function(){return rt.result},mc=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},zI=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,ku=null;function jI(){return D(this,null,function*(){return ku||(ku=new Promise(i=>D(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=640,r.height=480;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*640),Math.floor(Math.random()*480))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),d.close(),m.close(),c.getTracks().forEach(E=>E.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let c=r.captureStream(),d=new RTCPeerConnection({}),m=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});d.addEventListener("icecandidate",E=>m.addIceCandidate(E.candidate)),m.addEventListener("icecandidate",E=>d.addIceCandidate(E.candidate)),d.addTrack(c.getVideoTracks()[0],c);let l=yield d.createOffer();yield d.setLocalDescription(l),yield m.setRemoteDescription(l);let f=yield m.createAnswer(),g=zm.default.parse(f.sdp),T=g.media[0].rtp.findIndex(E=>E.codec==="H264");g.media[0].rtp=[g.media[0].rtp[T]],g.media[0].fmtp=g.media[0].fmtp.filter(E=>E.payload===g.media[0].rtp[0].payload),g.media[0].rtcpFb&&(g.media[0].rtcpFb=g.media[0].rtcpFb.filter(E=>E.payload===g.media[0].rtp[0].payload)),f.sdp=zm.default.write(g),yield m.setLocalDescription(f),yield d.setRemoteDescription(f),n=setInterval(()=>D(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[E,y]=yield Promise.all([d.getSenders()[0].getStats(),m.getReceivers()[0].getStats()]);t.encode||E.forEach(v=>{v.type==="outbound-rtp"&&v.mediaType===j.VIDEO&&v.bytesSent>0&&(t.encode=!0)}),t.decode||y.forEach(v=>{v.type==="inbound-rtp"&&v.mediaType===j.VIDEO&&v.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),se.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&se.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${yi}`),i)),ku)})}var Lu=null;function qI(){return D(this,null,function*(){return Lu||(Lu=new Promise(i=>D(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!qm()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let c=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(c.map(m=>D(this,null,function*(){let l={type:m.type,encodeSupported:!1,decodeSupported:!1},f;try{f=yield new Promise((g,T)=>D(this,null,function*(){try{let E=new VideoEncoder({output:v=>{g(v),l.encodeSupported=!0},error:T});E.configure(m.encodeConfig),a();let y=new VideoFrame(e,{timestamp:0});E.encode(y,{keyFrame:!0}),y.close(),yield E.flush(),E.close()}catch(E){T(E)}}))}catch(g){return se.warn(`${m.type} encoder error:`,g),l}try{yield new Promise((g,T)=>D(this,null,function*(){try{let E=new VideoDecoder({output:y=>{l.decodeSupported=!0,g(0),y.close()},error:T});E.configure(m.decodeConfig),E.decode(f),yield E.flush(),E.close()}catch(E){T(E)}}))}catch(g){se.warn(`${m.type} decoder error:`,g)}return l})))).forEach(m=>{m.type==="h264"?(t.isH264EncodeSupported=m.encodeSupported,t.isH264DecodeSupported=m.decodeSupported):m.type==="vp8"&&(t.isVp8EncodeSupported=m.encodeSupported,t.isVp8DecodeSupported=m.decodeSupported)}),s(),i(t)}catch(n){s(),se.warn("detectWebCodecsSupported failed:",n),i(t)}})),Lu)})}var XI=(i,t,e)=>{location.protocol==="http:"&&!bi&&(i[t]=()=>{throw new Me({code:Te.INVALID_OPERATION,message:Wr.NOT_SUPPORTED_HTTP})})},JI=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Nt(i.selected)&&!i.selected):!1};function $_(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function F_(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function H_(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function W_(){return"captureStream"in HTMLCanvasElement.prototype}function G_(){return co||Ut||Fr&&Fr<63?!1:!!(jm()&&W_())}function z_(){return!(Fr<74||Ls||Tr<11||ou<46)}function Bu(){return G_()||z_()}var QI=function(){if(z(window.RTCRtpTransceiver)||!$u()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Gh}),i.addTransceiver(j.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function YI(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function j_(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function ZI(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function $u(){return Tr===11&&!Tm?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var KI=!(!$u()||Qr&&Fr<86);function eb(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var pc="RTCRtpSender"in window;function tb(){return pc&&"replaceTrack"in window.RTCRtpSender.prototype}function rb(){return pc&&"setParameters"in window.RTCRtpSender.prototype&&j_()}var ib="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,ea=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Qm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Ym=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,zs=pc&&"createEncodedStreams"in window.RTCRtpSender.prototype&&yu()>=86,q_="RTCRtpScriptTransform"in window,fc=pc&&(zs||q_),Zm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Fu(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return z(window.AudioDecoder)||(i.AudioDecoder=!0),z(window.AudioEncoder)||(i.AudioEncoder=!0),z(window.VideoDecoder)||(i.VideoDecoder=!0),z(window.VideoEncoder)||(i.VideoEncoder=!0),z(window.ImageDecoder)||(i.ImageDecoder=!0),i}function X_(){return"mediaSession"in navigator&&!z(navigator.mediaSession.setActionHandler)}function J_(){return!z(window.WebTransport)}function Km(){return typeof WebAssembly=="undefined"?!1:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}function ob(){let i={browser:`${Bi.name}/${Bi.version}`,os:Jn(),displayResolution:$_(),isScreenShareSupported:mc(),isWebRTCSupported:Zm(),isGetUserMediaSupported:F_(),isWebAudioSupported:H_(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Fu(),isMediaSessionSupported:X_(),isWebTransportSupported:J_()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var Q_="checkResult";function L_(i=30){Yn.setItem(Q_+i,{ua:navigator.userAgent,checkResult:rt})}function ep(i){Eo();let t=Yn.getItem(Q_+i);t&&t.ua===navigator.userAgent&&t.checkResult&&sb(t.checkResult.detail,rt.detail)&&(rt=t.checkResult),Vu(i)}function sb(i,t){return Xr(i)?Object.keys(t).every(e=>e in i):!1}function Ri(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var nb="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function P_(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var U_=!1;function tp(){return D(this,null,function*(){var i;try{if(U_||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=Bs(),e=Sm();if(t===0||e===0)return;U_=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([Y_(r),Z_(r)]);o&&Object.keys(o).forEach(c=>{let d=P_(c.toLowerCase());Se.addEnum({key:513707,value:+`${d}${+o[c].supported}${+o[c].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(c=>{let d=P_(c.toLowerCase());Se.addEnum({key:514713,value:+`${d}${+s[c].supported}${+s[c].powerEfficient}${t}${e}`,useUV:!1})});let{sender:n,receiver:a}=K_();Se.addEnum({key:513708,value:+`${t}${e}${+n.high}`,useUV:!1}),Se.addEnum({key:513709,value:+`${t}${e}${+n.main}`,useUV:!1}),Se.addEnum({key:514714,value:+`${t}${e}${+a.high}`,useUV:!1}),Se.addEnum({key:514715,value:+`${t}${e}${+a.main}`,useUV:!1})}catch(t){se.info("detectVideoCodecCapabilities failed",t)}})}function Y_(i,t=1920,e=1080,r=30,o=3e3){return D(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function Z_(i,t=1920,e=1080,r=30,o=3e3){return D(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function K_(){let i={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let t=RTCRtpSender.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.sender.base=!0;break;case"4d":i.sender.main=!0;break;case"64":i.sender.high=!0;break}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let t=RTCRtpReceiver.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.receiver.base=!0;break;case"4d":i.receiver.main=!0;break;case"64":i.receiver.high=!0;break}}})}}catch(t){se.warn("get H264 profile levelId failed",t)}return i}var tE=Li(mo(),1);var eE=Symbol("instance"),Nw=Symbol("abortCtrl"),Hu=Symbol("cacheResult"),gc=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Tc.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},_c=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function ab(i){return typeof i=="object"&&i&&"then"in i}var Ec=new Map;function Mt(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let c=Ec.get(r)||[];Ec.has(r)||Ec.set(r,c),c.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...c){let d=this;if(e.context&&(d=Ve.get(typeof e.context=="function"?e.context.call(this,...c):e.context)),d.state===t)return e.sync?d[Hu]:Promise.resolve(d[Hu]);d.state instanceof gc&&d.state.action==e.abortAction&&d.state.abort(d);let m=null;Array.isArray(i)?i.length==0?d.state instanceof gc&&d.state.abort(d):(typeof d.state!="string"||!i.includes(d.state))&&(m=new _c(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i.join("|")}`)):i!==d.state&&(m=new _c(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i}`));let l=y=>{if(e.fail&&e.fail.call(this,y),e.sync){if(e.ignoreError)return y;throw y}else return e.ignoreError?Promise.resolve(y):Promise.reject(y)};if(m)return l(m);let f=d.state,g=new gc(f,t,n);Tc.call(d,g);let T=y=>{var v;return d[Hu]=y,g.aborted||(Tc.call(d,t),(v=e.success)===null||v===void 0||v.call(this,d[Hu])),y},E=y=>(Tc.call(d,f,y),l(y));try{let y=a.apply(this,c);return ab(y)?y.then(T).catch(E):e.sync?T(y):Promise.resolve(T(y))}catch(y){return E(new _c(d._state,`${d.name} ${n} from ${i} to ${t} failed: ${y}`,y instanceof Error?y:new Error(String(y))))}}}}var cb=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function Tc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Ve.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Ve=class i extends tE.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[eE];o?this.name=o.name+"-"+o.count++:r[eE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Ec.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Ec.has(a)&&(a.stateDiagram.forEach(d=>r.add(d)),a.allStates.forEach(d=>n.add(d))),e.forEach(({from:d,to:m,action:l})=>{typeof d=="string"?o.push({from:d,to:m,action:l}):d.length?d.forEach(f=>{o.push({from:f,to:m,action:l})}):s.push({to:m,action:l})}),o.forEach(({from:d,to:m,action:l})=>{n.add(d),n.add(m),n.add(l+"ing"),r.add(`${d} --> ${l}ing : ${l}`),r.add(`${l}ing --> ${m} : ${l} \u{1F7E2}`),r.add(`${l}ing --> ${d} : ${l} \u{1F534}`)}),s.forEach(({to:d,action:m})=>{r.add(`${m}ing --> ${d} : ${m} \u{1F7E2}`),n.forEach(l=>{l!==d&&r.add(`${l} --> ${m}ing : ${m}`)})});let c=[...r];return Object.defineProperties(t,{stateDiagram:{value:c},allStates:{value:n}}),c}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){cb(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Tc.call(this,t)}};Ve.STATECHANGED="stateChanged";Ve.UPDATEAFSM="updateAFSM";Ve.INIT="[*]";Ve.ON="on";Ve.OFF="off";Ve.instances=new Map;Ve.instances2=new WeakMap;var ip=typeof window!="undefined",rE=ip&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},db=ip&&window.cancelIdleCallback||function(i){clearTimeout(i)},iE=ip&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),ar=class ar{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=be({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=be({delay:1e4,count:0},r):t==="raf"?r=be({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=be({delay:2e3,count:0,backgroundTask:!0},r);let o=qe(be({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,ar.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){ar.sharedWorker||(ar.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
9
+ `,p+=s)),o&&(p+=`
10
+ Refer to: ${Lg("en",a)}
11
+ `),p}var mh=bi(Wg(),1);var MS=1,xS=0,du=class{constructor(t=!0){m(this,"countMap",new Map);m(this,"distributionMap",new Map);m(this,"version");m(this,"log",F.createLogger({id:"kv"}));t&&(U.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===M.AUDIO?501700:511700,cost:r})}),U.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===M.AUDIO?501700:511700,error:r})}),U.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(t,e){let r={msg_sdk_basic_info:{uint32_sdk_version:Cd(this.version||pt),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([o,s])=>({uint32_key:o,uint32_count:s})),stats_distribution:[...this.distributionMap.entries()].map(([o,s])=>({uint32_key:o,distribution_items:[...s.entries()].map(([n,a])=>({uint32_item_key:n,uint32_item_value:a}))})),str_user_sig:t,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),r}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1,max:s=5e3}){var d;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((d=this.distributionMap)==null?void 0:d.get(t))||new Map,a=0;if(Fe(r))a=Math.floor(e/r);else for(let l=r.length-1;l>0;l--)if(e>r[l]){a=l;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:MS,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=q.UNKNOWN;e&&(Fe(e)?r=e:(!O(e.extraCode)||!O(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:xS,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},uu=(W=>(W[W.enterRoom=500700]="enterRoom",W[W.exitRoom=500701]="exitRoom",W[W.switchRole=500702]="switchRole",W[W.destroy=500703]="destroy",W[W.startLocalAudio=500704]="startLocalAudio",W[W.updateLocalAudio=500705]="updateLocalAudio",W[W.stopLocalAudio=500706]="stopLocalAudio",W[W.startLocalVideo=500707]="startLocalVideo",W[W.updateLocalVideo=500708]="updateLocalVideo",W[W.stopLocalVideo=500709]="stopLocalVideo",W[W.startScreenShare=500710]="startScreenShare",W[W.updateScreenShare=500711]="updateScreenShare",W[W.stopScreenShare=500712]="stopScreenShare",W[W.startRemoteVideo=500713]="startRemoteVideo",W[W.updateRemoteVideo=500714]="updateRemoteVideo",W[W.stopRemoteVideo=500715]="stopRemoteVideo",W[W.muteRemoteAudio=500716]="muteRemoteAudio",W[W.setRemoteAudioVolume=500717]="setRemoteAudioVolume",W[W.use=500718]="use",W[W.switchRoom=500719]="switchRoom",W[W.sendSEIMessage=5e5]="sendSEIMessage",W[W.sendCustomMessage=500001]="sendCustomMessage",W))(uu||{}),dh=(g=>(g[g.AudioMixer=550700]="AudioMixer",g[g.AIDenoiser=551700]="AIDenoiser",g[g.VirtualBackground=570700]="VirtualBackground",g[g.Beauty=571700]="Beauty",g[g.Watermark=572700]="Watermark",g[g.BasicBeauty=574700]="BasicBeauty",g[g.CDNStreaming=590700]="CDNStreaming",g[g.DeviceDetector=591700]="DeviceDetector",g[g.Debug=592700]="Debug",g[g.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",g[g.VideoMixer=594700]="VideoMixer",g[g.AudioProcessor=595700]="AudioProcessor",g))(dh||{}),uh=(g=>(g[g.AudioMixer=550701]="AudioMixer",g[g.AIDenoiser=551701]="AIDenoiser",g[g.VirtualBackground=570701]="VirtualBackground",g[g.Beauty=571701]="Beauty",g[g.Watermark=572701]="Watermark",g[g.BasicBeauty=574701]="BasicBeauty",g[g.CDNStreaming=590701]="CDNStreaming",g[g.DeviceDetector=591701]="DeviceDetector",g[g.Debug=592701]="Debug",g[g.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",g[g.VideoMixer=594701]="VideoMixer",g[g.AudioProcessor=595701]="AudioProcessor",g))(uh||{}),lh=(g=>(g[g.AudioMixer=550702]="AudioMixer",g[g.AIDenoiser=551702]="AIDenoiser",g[g.VirtualBackground=570702]="VirtualBackground",g[g.Beauty=571702]="Beauty",g[g.Watermark=572702]="Watermark",g[g.BasicBeauty=574702]="BasicBeauty",g[g.CDNStreaming=590702]="CDNStreaming",g[g.DeviceDetector=591702]="DeviceDetector",g[g.Debug=592702]="Debug",g[g.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",g[g.VideoMixer=594702]="VideoMixer",g[g.AudioProcessor=595702]="AudioProcessor",g))(lh||{});var Cn=(H=>(H[H.DECODER_TYPE=514700]="DECODER_TYPE",H[H.DECODER_HW_SW=514701]="DECODER_HW_SW",H[H.DECODE_RESULT=514702]="DECODE_RESULT",H[H.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",H[H.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",H[H.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",H[H.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",H[H.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",H[H.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",H[H.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",H[H.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",H[H.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",H[H.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",H[H.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",H[H.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",H[H.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",H[H.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",H[H.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",H[H.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",H))(Cn||{});var PS=new du(!0),Ts=new du(!1);var X=PS;var Ce={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},LS=new Map([[ot,["Firefox",xd]],[En,["Edg",kd]],[An,["Chrome",Yd]],[ct,["Safari",xi]],[Wr,["TBS",Fd]],[Oi,["XWEB",Bd]],[Mi&&To,["WeChat",$d]],[va,["QQ(Win)",Hd]],[Tn,["QQ(Mobile)",fn]],[_n,["QQ(Mobile X5)",fn]],[Ca,["QQ(Mac)",Wd]],[Na,["QQ(iPad)",Gd]],[wa,["MI",jd]],[Oa,["HW",qd]],[xa,["Samsung",zd]],[In,["OPPO",Jd]],[Pa,["VIVO",Xd]],[ls,["EDGE",Ld]],[ba,["SogouMobile",Ud]],[Ra,["Sogou",Vd]]]);function hu(){let i=LS.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var hh=function(){return!(Mm||ls||En&&wm<80||ot&&Pd<56)},ph=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},pu=function(){if(!navigator.mediaDevices)return Hi()||F.error(ar.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Gg=!1;function Hi(){return location.protocol==="http:"&&!jr?(Gg||F.error(We({key:He.NOT_SUPPORTED_HTTP})),Gg=!0,!0):!1}var fh=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},kS=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},gh=function(){return y(this,null,function*(){var o,s,n;if(Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Ce.detail.isH264EncodeSupported,isVp8EncodeSupported:Ce.detail.isVp8EncodeSupported,isH265EncodeSupported:Ce.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,d=document.createElement(M.CANVAS);d.getContext("2d");let l=d.captureStream(0);return a.addTrack(l.getVideoTracks()[0],l),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},Xg=function(){return y(this,null,function*(){var r;if(Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Ce.detail.isH264DecodeSupported,isVp8DecodeSupported:Ce.detail.isVp8DecodeSupported,isH265DecodeSupported:Ce.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;Eu()?(o.addTransceiver(M.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function US(){return y(this,null,function*(){let[i,t]=yield Promise.all([gh(),Xg()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var fu=Nd(i=>y(void 0,null,function*(){let t=Date.now(),e=Th(),r=pu(),o=ph();if(Ce.detail.isWebRTCSupported=e,Ce.detail.isMediaDevicesSupported=r,Ce.detail.isWebCodecsSupported=o,Ce.detail.isScreenShareSupported=qa(),Ce.detail.isSmallStreamSupported=gu(),i===37)return Object.assign(Ce.detail,yield $S()),Ce.detail.isBrowserSupported=o,Ce.result=r&&o,Ce.result||F.error(`${navigator.userAgent} ${Sa(Ce.detail,!1)}`),jg(i),X.addNumber({key:523800,value:Date.now()-t}),Ce;if(Ce.result&&Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported&&Ce.detail.isH265EncodeSupported&&Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported&&Ce.detail.isH265DecodeSupported)return Ce;let s=hh(),{encode:n,decode:a}=yield US(),{h264:d,vp8:l}=n,{h264:p}=a,{h265:f}=n,{vp8:g,h265:A}=a;if(!d||!l){let R=yield gh();F.warn(`detect encode again h264:${d} vp8:${l} result: ${JSON.stringify(R)}`),d=R.isH264EncodeSupported,l=R.isVp8EncodeSupported}if(d&&p&&at&&nr&&!Oi&&!Wr&&!(In&&Yt===115)){let{encode:R,decode:N}=yield BS();d=R,p=N}return Ce.result=s&&e&&r&&(d||l)&&(p||g),Ce.detail.isBrowserSupported=s,Ce.detail.isWebRTCSupported=e,Ce.detail.isH264EncodeSupported=d,Ce.detail.isVp8EncodeSupported=l,Ce.detail.isH265EncodeSupported=f,Ce.detail.isH264DecodeSupported=p,Ce.detail.isVp8DecodeSupported=g,Ce.detail.isH265DecodeSupported=A,Ce.result||F.error(`${navigator.userAgent} ${Sa(Ce.detail,!1)}`),jg(),X.addNumber({key:523800,value:Date.now()-t}),Ce})),VS=function(){return Ce.result},qa=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},FS=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,lu=null;function BS(){return y(this,null,function*(){return lu||(lu=new Promise(i=>y(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=640,r.height=480;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*640),Math.floor(Math.random()*480))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),l.close(),p.close(),d.getTracks().forEach(N=>N.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let d=r.captureStream(),l=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",N=>p.addIceCandidate(N.candidate)),p.addEventListener("icecandidate",N=>l.addIceCandidate(N.candidate)),l.addTrack(d.getVideoTracks()[0],d);let f=yield l.createOffer();yield l.setLocalDescription(f),yield p.setRemoteDescription(f);let g=yield p.createAnswer(),A=mh.default.parse(g.sdp),R=A.media[0].rtp.findIndex(N=>N.codec==="H264");A.media[0].rtp=[A.media[0].rtp[R]],A.media[0].fmtp=A.media[0].fmtp.filter(N=>N.payload===A.media[0].rtp[0].payload),A.media[0].rtcpFb&&(A.media[0].rtcpFb=A.media[0].rtcpFb.filter(N=>N.payload===A.media[0].rtp[0].payload)),g.sdp=mh.default.write(A),yield p.setLocalDescription(g),yield l.setRemoteDescription(g),n=setInterval(()=>y(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[N,C]=yield Promise.all([l.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||N.forEach(P=>{P.type==="outbound-rtp"&&P.mediaType===M.VIDEO&&P.bytesSent>0&&(t.encode=!0)}),t.decode||C.forEach(P=>{P.type==="inbound-rtp"&&P.mediaType===M.VIDEO&&P.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),F.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&F.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Hr}`),i)),lu)})}var mu=null;function $S(){return y(this,null,function*(){return mu||(mu=new Promise(i=>y(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!ph()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let d=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(d.map(p=>y(this,null,function*(){let f={type:p.type,encodeSupported:!1,decodeSupported:!1},g;try{g=yield new Promise((A,R)=>y(this,null,function*(){try{let N=new VideoEncoder({output:P=>{A(P),f.encodeSupported=!0},error:R});N.configure(p.encodeConfig),a();let C=new VideoFrame(e,{timestamp:0});N.encode(C,{keyFrame:!0}),C.close(),yield N.flush(),N.close()}catch(N){R(N)}}))}catch(A){return F.warn(`${p.type} encoder error:`,A),f}try{yield new Promise((A,R)=>y(this,null,function*(){try{let N=new VideoDecoder({output:C=>{f.decodeSupported=!0,A(0),C.close()},error:R});N.configure(p.decodeConfig),N.decode(g),yield N.flush(),N.close()}catch(N){R(N)}}))}catch(A){F.warn(`${p.type} decoder error:`,A)}return f})))).forEach(p=>{p.type==="h264"?(t.isH264EncodeSupported=p.encodeSupported,t.isH264DecodeSupported=p.decodeSupported):p.type==="vp8"&&(t.isVp8EncodeSupported=p.encodeSupported,t.isVp8DecodeSupported=p.decodeSupported)}),s(),i(t)}catch(n){s(),F.warn("detectWebCodecsSupported failed:",n),i(t)}})),mu)})}var HS=(i,t,e)=>{location.protocol==="http:"&&!jr&&(i[t]=()=>{throw new se({code:q.INVALID_OPERATION,message:ar.NOT_SUPPORTED_HTTP})})},WS=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Ye(i.selected)&&!i.selected):!1};function Qg(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function Yg(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function Zg(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function Kg(){return"captureStream"in HTMLCanvasElement.prototype}function eE(){return Mi||st||Yt&&Yt<63?!1:!!(hh()&&Kg())}function tE(){return!(Yt<74||ls||Vt<11||Pd<46)}function gu(){return eE()||tE()}var GS=function(){if(O(window.RTCRtpTransceiver)||!Eu()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:lm}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function jS(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function rE(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function qS(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Eu(){return Vt===11&&!Bm?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var zS=!(!Eu()||nr&&Yt<86);function JS(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var za="RTCRtpSender"in window;function XS(){return za&&"replaceTrack"in window.RTCRtpSender.prototype}function QS(){return za&&"setParameters"in window.RTCRtpSender.prototype&&rE()}var YS="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Nn=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Eh=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,_h=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,Is=za&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Qd()>=86,iE="RTCRtpScriptTransform"in window,Ja=za&&(Is||iE),Th=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function _u(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return O(window.AudioDecoder)||(i.AudioDecoder=!0),O(window.AudioEncoder)||(i.AudioEncoder=!0),O(window.VideoDecoder)||(i.VideoDecoder=!0),O(window.VideoEncoder)||(i.VideoEncoder=!0),O(window.ImageDecoder)||(i.ImageDecoder=!0),i}function oE(){return"mediaSession"in navigator&&!O(navigator.mediaSession.setActionHandler)}function sE(){return!O(window.WebTransport)}function Ih(){return typeof WebAssembly=="undefined"?!1:WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}function ZS(){let i={browser:`${ni.name}/${ni.version}`,os:yn(),displayResolution:Qg(),isScreenShareSupported:qa(),isWebRTCSupported:Th(),isGetUserMediaSupported:Yg(),isWebAudioSupported:Zg(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:_u(),isMediaSessionSupported:oE(),isWebTransportSupported:sE()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var nE="checkResult";function jg(i=30){Rn.setItem(nE+i,{ua:navigator.userAgent,checkResult:Ce})}function Sh(i){Hi();let t=Rn.getItem(nE+i);t&&t.ua===navigator.userAgent&&t.checkResult&&KS(t.checkResult.detail,Ce.detail)&&(Ce=t.checkResult),fu(i)}function KS(i,t){return pr(i)?Object.keys(t).every(e=>e in i):!1}function zr(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var eA="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function qg(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var zg=!1;function Ah(){return y(this,null,function*(){var i;try{if(zg||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=fs(),e=Hm();if(t===0||e===0)return;zg=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([aE(r),cE(r)]);o&&Object.keys(o).forEach(d=>{let l=qg(d.toLowerCase());X.addEnum({key:513707,value:+`${l}${+o[d].supported}${+o[d].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(d=>{let l=qg(d.toLowerCase());X.addEnum({key:514713,value:+`${l}${+s[d].supported}${+s[d].powerEfficient}${t}${e}`,useUV:!1})});let{sender:n,receiver:a}=dE();X.addEnum({key:513708,value:+`${t}${e}${+n.high}`,useUV:!1}),X.addEnum({key:513709,value:+`${t}${e}${+n.main}`,useUV:!1}),X.addEnum({key:514714,value:+`${t}${e}${+a.high}`,useUV:!1}),X.addEnum({key:514715,value:+`${t}${e}${+a.main}`,useUV:!1})}catch(t){F.info("detectVideoCodecCapabilities failed",t)}})}function aE(i,t=1920,e=1080,r=30,o=3e3){return y(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function cE(i,t=1920,e=1080,r=30,o=3e3){return y(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function dE(){let i={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let t=RTCRtpSender.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.sender.base=!0;break;case"4d":i.sender.main=!0;break;case"64":i.sender.high=!0;break}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let t=RTCRtpReceiver.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.receiver.base=!0;break;case"4d":i.receiver.main=!0;break;case"64":i.receiver.high=!0;break}}})}}catch(t){F.warn("get H264 profile levelId failed",t)}return i}var lE=bi(ki(),1);var uE=Symbol("instance"),AN=Symbol("abortCtrl"),Tu=Symbol("cacheResult"),Xa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Za.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Qa=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function tA(i){return typeof i=="object"&&i&&"then"in i}var Ya=new Map;function et(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=Ya.get(r)||[];Ya.has(r)||Ya.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=ue.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[Tu]:Promise.resolve(l[Tu]);l.state instanceof Xa&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Xa&&l.state.abort(l):(typeof l.state!="string"||!i.includes(l.state))&&(p=new Qa(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new Qa(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=C=>{if(e.fail&&e.fail.call(this,C),e.sync){if(e.ignoreError)return C;throw C}else return e.ignoreError?Promise.resolve(C):Promise.reject(C)};if(p)return f(p);let g=l.state,A=new Xa(g,t,n);Za.call(l,A);let R=C=>{var P;return l[Tu]=C,A.aborted||(Za.call(l,t),(P=e.success)===null||P===void 0||P.call(this,l[Tu])),C},N=C=>(Za.call(l,g,C),f(C));try{let C=a.apply(this,d);return tA(C)?C.then(R).catch(N):e.sync?R(C):Promise.resolve(R(C))}catch(C){return N(new Qa(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${C}`,C instanceof Error?C:new Error(String(C))))}}}}var rA=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function Za(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(ue.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var ue=class i extends lE.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[uE];o?this.name=o.name+"-"+o.count++:r[uE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Ya.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Ya.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){rA(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Za.call(this,t)}};ue.STATECHANGED="stateChanged";ue.UPDATEAFSM="updateAFSM";ue.INIT="[*]";ue.ON="on";ue.OFF="off";ue.instances=new Map;ue.instances2=new WeakMap;var bh=typeof window!="undefined",mE=bh&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},iA=bh&&window.cancelIdleCallback||function(i){clearTimeout(i)},hE=bh&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),Ct=class Ct{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=Y({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=Y({delay:1e4,count:0},r):t==="raf"?r=Y({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=Y({delay:2e3,count:0,backgroundTask:!0},r);let o=_e(Y({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,Ct.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){Ct.sharedWorker||(Ct.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
13
12
  const timers = new Map();
14
13
  self.onmessage = function(e) {
15
14
  const { taskId, delay, type } = e.data;
@@ -22,15 +21,15 @@ Refer to: ${v_("en",a)}
22
21
  timers.delete(taskId);
23
22
  }
24
23
  };
25
- `],{type:"application/javascript"}))),ar.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=ar.workerTasks.get(e.data.taskId);o&&(ar.isBreakLoop(o)?((r=ar.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),ar.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),ar.workerTasks.set(t.taskID,t),ar.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!ar.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=Xe(),r,o=()=>{if(r=Xe()-e,r>=t.delay&&(e=Xe()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!ar.isBreakLoop(t))return t.ricID=rE(o,{timeout:t.delay})};return t.ricID=rE(o,{timeout:t.delay})}static raf(t){let e=Xe(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=Xe()-e,e=Xe(),t.callback(),t.loopCount+=1,ar.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=Xe()-e,r>=t.delay&&(e=Xe()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!ar.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let n=Xe()-e;n>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-n)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:n}=this.taskMap.get(t);return e&&clearInterval(e),r&&clearTimeout(r),o&&iE&&iE(o),s&&db(s),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.hasTask(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};p(ar,"taskMap",new Map),p(ar,"currentTaskID",1),p(ar,"sharedWorker",null),p(ar,"workerTasks",new Map);var rp=ar,Jt=rp;var Bw={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:j.SEI_MESSAGE,ERROR:"error"};var St={LOADED_DATA:j.LOADEDDATA,LOADED_META_DATA:j.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",RESIZE:j.RESIZE,TIME_UPDATE:"time-update"};var Hi={};eo(Hi,{create:()=>yr,remove:()=>tr});var yc=new WeakMap;function yr(i,t){yc.has(i)||yc.set(i,[]);let e=yc.get(i),o={add:(s,n)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,n)),t.addEventListener(s,n)):(e.push(t.off.bind(t,s,n)),t.on(s,n)),o)};return o}function tr(i){let t=yc.get(i);t&&(t.forEach(e=>e()),yc.delete(i))}var op=class{constructor(){p(this,"_roomIdMap",new Map);p(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:qt,env:ro.QCLOUD,browserVersion:Bi.name+Bi.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){bi||!se.isAbleToUpload||this._configs.env===ro.QCLOUD&&this.uploadEventToKibana(qe(be({},t),{result:"success"}))}logFailedEvent(t){if(bi||!se.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,n={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||Te.UNKNOWN};this._configs.env===ro.QCLOUD&&this.uploadEventToKibana(qe(be({},n),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:kd(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:qt,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
26
- ${r.stack}`));let s=zo.enable?so(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(oo(this._configs.sdkAppId,Bo.LOG),s)}sendRequest(t,e){setTimeout(()=>no({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},It=new op;var js=new WeakMap;function qs({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=Ho({retryFunction:n.value,settings:i,onError({error:c,retry:d,reject:m,retryFuncArgs:l}){var f;t?t.call(this,c,()=>{var g;(g=js.get(o))!=null&&g.has(s)?d():m(c)},m,l):(f=js.get(o))!=null&&f.has(s)?d():m(c)},onRetrying(c,d){var m;Fo(e)&&e.call(this,c,d),(m=js.get(o))!=null&&m.has(s)&&(js.get(o).get(s).stopRetry=d)},onRetryFailed:r});return n.value=function(...c){let d=js.get(o);return d?d.set(s,{args:c}):js.set(o,new Map([[s,{args:c}]])),a.apply(this,c).finally(()=>{var m;return(m=js.get(o))==null?void 0:m.delete(s)})},n}}var Ci=class extends Ve{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;p(this,"id");p(this,"element",null);p(this,"track");p(this,"url");p(this,"attr");p(this,"mode");p(this,"muted");p(this,"_log");p(this,"_isPausedByUserCall",!1);p(this,"_pausedRetryCount");p(this,"_isElementPlayingFired",!1);p(this,"_interval");p(this,"_delayDestroyTimeoutId",0);p(this,"_playSuccessResolve");p(this,"_isReplayByRecreateMediaStreamCalled",!1);p(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Cs,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&((e=this.element)==null?void 0:e.paused)===!1}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return D(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=Et({key:_t.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new Me({code:Te.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){var r;this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!ni?this._delayDestroyTimeoutId||((r=this.element)==null||r.remove(),this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(j.ENDED),this._interval>0&&Jt.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this._log.info("pause"),(e=this.element)==null||e.pause(),this._isPausedByUserCall=!0,this instanceof Sr&&Qr&&Fr>=128&&this.setPoster(this.getVideoFrame())}resume(){return this._isPausedByUserCall=!1,this.doResume()}doResume(){return this._log.info("resume"),this._isPausedByUserCall||this.isPlaying?Promise.resolve():_m?this.replay():(this.element&&this.track&&Qr&&Fr>=128&&(this.element.srcObject=new MediaStream([this.track])),this.play().catch(()=>{}))}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return yr(this.element,this.element).add(j.PLAYING,e).add(j.ENDED,e).add(j.PAUSE,e).add(j.ERROR,e).add(j.LOADEDDATA,e).add(j.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Hi==null||Hi.create(e,e).add(j.ENDED,r).add(j.MUTE,r).add(j.UNMUTE,r),e.readyState===j.ENDED&&this.handleTrackEvent({type:j.ENDED}),e.muted&&this.handleTrackEvent({type:j.MUTE})}}bindAutoPlayEvent(){ee.on(ce.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&tr(e)}unbindEvents(){this.element&&tr(this.element),this.unbindTrackEvents(),ee.off(ce.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case j.PLAYING:Qo()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(j.PLAYING),this._interval&&(Jt.clearTask(this._interval),this._interval=-1);break;case j.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(j.ENDED);break;case j.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(j.PAUSE),Ut&&(this._interval=Jt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.doResume()},{delay:3e3}));break;case j.ERROR:if(this.element&&this.element.error){this.handlePaused(j.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),It.uploadEvent({log:`stat-${this.kind}-${ii.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),hm||Ka?this.emit(St.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case j.LOADEDDATA:this.kind===j.VIDEO&&this.emit(St.LOADED_DATA);break;case j.LOADEDMETADATA:this.kind===j.VIDEO&&this.emit(St.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),It.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Se.addSuccessEvent({key:this.kind===j.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),It.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Se.addFailedEvent({key:this.kind===j.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(St.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{Ti(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),Ti(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return D(this,null,function*(){switch(e.type){case j.ENDED:this.handleStopped(j.ENDED);break;case j.MUTE:this.handlePaused(j.MUTE);break;case j.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(j.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};p(Ci,"PlayerEvent",St),Ie([qs({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Ci.prototype,"doReplayByRecreateMediaStream",1),Ie([Mt([],"PLAYING",{sync:!0,success(e){this.emit(St.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Ci.prototype,"handlePlaying",1),Ie([Mt("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(St.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Ci.prototype,"handlePaused",1),Ie([Mt([],"STOPPED",{sync:!0,success(e){this.emit(St.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Ci.prototype,"handleStopped",1);var To="trtc_autoplay",sp=`${To}_mask`,Sc=`${To}_wrapper`,oE=`${To}_header`,np=`${To}_content`,Wu=`${To}_action_wrapper`,ap=`${To}_question`,cp=`${To}_collapse`,Gu=`${To}_action_confirm`,sE=`${To}_detail`,nE="#2473E8",lp="dialog",lb=`${lp}-show`,hb=`${lp}-1`,mb=`${lp}-2`,aE=!1,dp=!1,Qo=()=>dp,dE=`${Br}/${_i()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,cE=`<br><a href='${dE}' target='_blank'>${_i()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,pb=`${_i()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${cE}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${cE}`}`,up=class{constructor(){p(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");p(this,"_dialogNode",null);p(this,"_bodyPosition","");p(this,"_showDetail",!1);p(this,"_isCollapseClicked",!1);p(this,"_isQuestionClicked",!1);if(_i()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!aE){let t=document.createElement("style");t.innerHTML=`.${sp}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${sp} div:not(.${Wu}){display:block !important;}.${Sc}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${Sc} a{color:${nE};}.${oE}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${np}{margin:8px 0;}.${Wu}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${cp}{margin-right:auto;cursor:pointer}.${ap}{height:100%;line-height:16px;cursor:pointer;}.${Gu}{margin-left:8px;color:#fff;background:${nE};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Gu}:hover{opacity:0.9;}.${cp},.${Gu},.${np},.${ap}{font-size:14px;}@media screen and (max-width:750px){.${Sc}{width:80vw;}}`,document.head.appendChild(t),aE=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${sp}"><div class='${Sc}'><div class='${oE}'>${location.host}</div><div class='${np}'>${this.content}</div><div class='${sE}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${pb}</div><div class='${Wu}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Gu,e.innerText=_i()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=ap,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
24
+ `],{type:"application/javascript"}))),Ct.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=Ct.workerTasks.get(e.data.taskId);o&&(Ct.isBreakLoop(o)?((r=Ct.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),Ct.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),Ct.workerTasks.set(t.taskID,t),Ct.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!Ct.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=Te(),r,o=()=>{if(r=Te()-e,r>=t.delay&&(e=Te()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!Ct.isBreakLoop(t))return t.ricID=mE(o,{timeout:t.delay})};return t.ricID=mE(o,{timeout:t.delay})}static raf(t){let e=Te(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=Te()-e,e=Te(),t.callback(),t.loopCount+=1,Ct.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=Te()-e,r>=t.delay&&(e=Te()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!Ct.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let n=Te()-e;n>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-n)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:n}=this.taskMap.get(t);return e&&clearInterval(e),r&&clearTimeout(r),o&&hE&&hE(o),s&&iA(s),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.hasTask(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};m(Ct,"taskMap",new Map),m(Ct,"currentTaskID",1),m(Ct,"sharedWorker",null),m(Ct,"workerTasks",new Map);var yh=Ct,gt=yh;var MN={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:M.SEI_MESSAGE,ERROR:"error"};var je={LOADED_DATA:M.LOADEDDATA,LOADED_META_DATA:M.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",RESIZE:M.RESIZE,TIME_UPDATE:"time-update"};var di={};yi(di,{create:()=>Ft,remove:()=>At});var Ka=new WeakMap;function Ft(i,t){Ka.has(i)||Ka.set(i,[]);let e=Ka.get(i),o={add:(s,n)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,n)),t.addEventListener(s,n)):(e.push(t.off.bind(t,s,n)),t.on(s,n)),o)};return o}function At(i){let t=Ka.get(i);t&&(t.forEach(e=>e()),Ka.delete(i))}var Rh=class{constructor(){m(this,"_roomIdMap",new Map);m(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:pt,env:vi.QCLOUD,browserVersion:ni.name+ni.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){jr||!F.isAbleToUpload||this._configs.env===vi.QCLOUD&&this.uploadEventToKibana(_e(Y({},t),{result:"success"}))}logFailedEvent(t){if(jr||!F.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,n={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||q.UNKNOWN};this._configs.env===vi.QCLOUD&&this.uploadEventToKibana(_e(Y({},n),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:ud(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:pt,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
25
+ ${r.stack}`));let s=Io.enable?Di(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ni(this._configs.sdkAppId,po.LOG),s)}sendRequest(t,e){setTimeout(()=>wi({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},qe=new Rh;var Ss=new WeakMap;function As({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=Eo({retryFunction:n.value,settings:i,onError({error:d,retry:l,reject:p,retryFuncArgs:f}){var g;t?t.call(this,d,()=>{var A;(A=Ss.get(o))!=null&&A.has(s)?l():p(d)},p,f):(g=Ss.get(o))!=null&&g.has(s)?l():p(d)},onRetrying(d,l){var p;go(e)&&e.call(this,d,l),(p=Ss.get(o))!=null&&p.has(s)&&(Ss.get(o).get(s).stopRetry=l)},onRetryFailed:r});return n.value=function(...d){let l=Ss.get(o);return l?l.set(s,{args:d}):Ss.set(o,new Map([[s,{args:d}]])),a.apply(this,d).finally(()=>{var p;return(p=Ss.get(o))==null?void 0:p.delete(s)})},n}}var Jr=class extends ue{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;m(this,"id");m(this,"element",null);m(this,"track");m(this,"url");m(this,"attr");m(this,"mode");m(this,"muted");m(this,"_log");m(this,"_isPausedByUserCall",!1);m(this,"_pausedRetryCount");m(this,"_isElementPlayingFired",!1);m(this,"_interval");m(this,"_delayDestroyTimeoutId",0);m(this,"_playSuccessResolve");m(this,"_isReplayByRecreateMediaStreamCalled",!1);m(this,"isPlayCalled",!1);m(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=is,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&((e=this.element)==null?void 0:e.paused)===!1}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return y(this,null,function*(){if(!this.isPlaying)try{this.isPlayCalled=!0,this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=We({key:He.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new se({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){var r;this.isPlayCalled=!1,this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!vr?this._delayDestroyTimeoutId||((r=this.element)==null||r.remove(),this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&gt.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this._log.info("pause"),this._isPausedByUserCall=!0,(e=this.element)==null||e.pause()}resume(){return this._isPausedByUserCall=!1,this.doResume()}doResume(){return this._log.info("resume"),this._isPausedByUserCall||this.isPlaying?Promise.resolve():Vm?this.replay():(this.element&&this.track&&nr&&Yt>=128&&(this.element.srcObject=new MediaStream([this.track])),this.play().catch(()=>{}))}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return Ft(this.element,this.element).add(M.PLAYING,e).add(M.ENDED,e).add(M.PAUSE,e).add(M.ERROR,e).add(M.LOADEDDATA,e).add(M.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);di==null||di.create(e,e).add(M.ENDED,r).add(M.MUTE,r).add(M.UNMUTE,r),e.readyState===M.ENDED&&this.handleTrackEvent({type:M.ENDED}),e.muted&&this.handleTrackEvent({type:M.MUTE})}}bindAutoPlayEvent(){U.on(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&At(e)}unbindEvents(){this.element&&At(this.element),this.unbindTrackEvents(),U.off(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:Ro()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(gt.clearTask(this._interval),this._interval=-1);break;case M.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(M.ENDED);break;case M.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(M.PAUSE),st&&(this._interval=gt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.doResume()},{delay:3e3}));break;case M.ERROR:if(this.element&&this.element.error){this.handlePaused(M.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),qe.uploadEvent({log:`stat-${this.kind}-${yr.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),xm||Ma?this.emit(je.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(je.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(je.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),qe.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),X.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),qe.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),X.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(je.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{$r(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),$r(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return y(this,null,function*(){switch(e.type){case M.ENDED:this.handleStopped(M.ENDED);break;case M.MUTE:this.handlePaused(M.MUTE);break;case M.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),this.element&&!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(M.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};m(Jr,"PlayerEvent",je),Z([As({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Jr.prototype,"doReplayByRecreateMediaStream",1),Z([et([],"PLAYING",{sync:!0,success(e){this.emit(je.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Jr.prototype,"handlePlaying",1),Z([et("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(je.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Jr.prototype,"handlePaused",1),Z([et([],"STOPPED",{sync:!0,success(e){this.emit(je.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Jr.prototype,"handleStopped",1);var Wi="trtc_autoplay",vh=`${Wi}_mask`,ec=`${Wi}_wrapper`,pE=`${Wi}_header`,Ch=`${Wi}_content`,Iu=`${Wi}_action_wrapper`,Nh=`${Wi}_question`,Dh=`${Wi}_collapse`,Su=`${Wi}_action_confirm`,fE=`${Wi}_detail`,gE="#2473E8",Mh="dialog",sA=`${Mh}-show`,nA=`${Mh}-1`,aA=`${Mh}-2`,EE=!1,wh=!1,Ro=()=>wh,TE=`${or}/${Fr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,_E=`<br><a href='${TE}' target='_blank'>${Fr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,cA=`${Fr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${_E}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${_E}`}`,Oh=class{constructor(){m(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");m(this,"_dialogNode",null);m(this,"_bodyPosition","");m(this,"_showDetail",!1);m(this,"_isCollapseClicked",!1);m(this,"_isQuestionClicked",!1);if(Fr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!EE){let t=document.createElement("style");t.innerHTML=`.${vh}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${vh} div:not(.${Iu}){display:block !important;}.${ec}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${ec} a{color:${gE};}.${pE}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Ch}{margin:8px 0;}.${Iu}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Dh}{margin-right:auto;cursor:pointer}.${Nh}{height:100%;line-height:16px;cursor:pointer;}.${Su}{margin-left:8px;color:#fff;background:${gE};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Su}:hover{opacity:0.9;}.${Dh},.${Su},.${Ch},.${Nh}{font-size:14px;}@media screen and (max-width:750px){.${ec}{width:80vw;}}`,document.head.appendChild(t),EE=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${vh}"><div class='${ec}'><div class='${pE}'>${location.host}</div><div class='${Ch}'>${this.content}</div><div class='${fE}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${cA}</div><div class='${Iu}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Su,e.innerText=Fr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Nh,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
27
26
  <svg class="icon" width="18" height="18" p-id="2030" t="1639646523624" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
28
27
  <path d="m464 784.35c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z" p-id="2031"/>
29
28
  <path d="m512 960c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448-200.96 448-448 448zm0-831.71c-211.58 0-383.71 172.13-383.71 383.71 0 211.55 172.13 383.71 383.71 383.71 211.55 0 383.71-172.16 383.71-383.71 0-211.58-172.16-383.71-383.71-383.71z" p-id="2032"/>
30
29
  <path d="m512 673.7c-17.665 0-32.001-14.336-32.001-31.999v-54.112c0-52.353 40-92.352 75.328-127.65 25.887-25.92 52.672-52.672 52.672-74.017 0-53.343-43.072-96.735-95.999-96.735-53.823 0-95.999 41.536-95.999 94.559 0 17.665-14.336 31.999-32.001 31.999s-32.001-14.336-32.001-31.999c0-87.424 71.775-158.56 160-158.56s160 72.095 160 160.74c0 47.904-36.32 84.192-71.424 119.3-27.84 27.776-56.576 56.512-56.576 82.336v54.112c0 17.665-14.336 32.032-32.001 32.032z" p-id="2033"/>
31
30
  </svg>
32
- `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=cp,o.innerText=`${_i()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Wu}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){Qo()||(dp=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${Sc}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",se.info("show autoplay dialog"),It.uploadEvent({log:lb}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,dp=!1)}onConfirm(){se.warn("confirm clicked, try resume stream"),ee.emit(ce.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${sE}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||It.uploadEvent({log:hb}),this._isCollapseClicked=!0}onQuestionClick(){window.open(dE,"_blank"),this._isQuestionClicked||It.uploadEvent({log:mb}),this._isQuestionClicked=!0}},Ic=null;function ta(){Ic||(Ic=new up)}function uE(){Ic&&(Ic.deleteDialog(),Ic=null)}var Sr=class extends Ci{constructor(e){super(e,j.VIDEO);p(this,"stat",{});p(this,"_calculateTimeout",-1);p(this,"viewMirror",!1);p(this,"objectFit");p(this,"container");p(this,"canvas");p(this,"shouldRenderAlpha",!1);p(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,z(e.viewMirror)||(this.viewMirror=e.viewMirror),z(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(j.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,Bt&&(e.poster="noposter"),(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};${this.shouldRenderAlpha?"":"background-color: black"};`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(j.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(j.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(j.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===j.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,c,d;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===j.PAUSE&&(this.container&&!this.container.isConnected&&(this._log.warn(`${this.kind} player has been remove, element ID: ${this.container.id}`),Ti(500).then(()=>{var m;(m=this.container)!=null&&m.isConnected&&(this._pausedRetryCount=Cs,this._log.info(`view container ${this.container.id} is in dom, reset pausedRetryCount`))})),this._pausedRetryCount>0&&!Qo()&&!this._isPausedByUserCall&&(this._log.info(`[${Cs-this._pausedRetryCount+1}/${Cs}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let m=this.element.style.transform;r===j.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=m.replace("scaleX(-1)",""):r===j.LEAVE_PICTURE_IN_PICTURE&&!m.includes("scaleX")&&(this.element.style.transform=`${m} scaleX(-1)`)}r===j.RESIZE&&(this._preSize.height!==((o=this.element)==null?void 0:o.videoHeight)||this._preSize.width!==((s=this.element)==null?void 0:s.videoWidth))&&(this._log.info(`video size changed to ${(n=this.element)==null?void 0:n.videoWidth}x${(a=this.element)==null?void 0:a.videoHeight}`),this._preSize.height=((c=this.element)==null?void 0:c.videoHeight)||0,this._preSize.width=((d=this.element)==null?void 0:d.videoWidth)||0,this.emit(St.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}setPoster(e){this.element&&(this.element.poster=e)}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(St.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(Ri()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function yo(i,t){return D(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),se.info("worklet addModule success")}catch(e){throw se.info(`worklet addModule catch error. ${e.message}`),e}})}var bc;typeof AudioContext!="undefined"?bc=AudioContext:typeof webkitAudioContext!="undefined"?bc=webkitAudioContext:typeof mozAudioContext!="undefined"&&(bc=mozAudioContext);var fp=1500,Ir,lE=-1,zu=0,Ac=-1,pp=!1,hE=0,mE=-1,pE=-1;fE();function fE(){try{if(Ir)return;Ir=new bc({sampleRate:48e3}),Ir.onstatechange=()=>{se.info(`context state: ${Ir.state}${Ir.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),ra()},clearTimeout(lE)}catch(i){se.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof bc}`),lE=setTimeout(fE,1e3)}}var ra=()=>{Ir.state==="suspended"?(zu=Xe(),fb(),Yo(),document.addEventListener("click",ra)):Ir.state==="interrupted"?Yo():(zu&&(Se.addNumber({key:507800,value:Xe()-zu,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),zu=0),gb(),document.removeEventListener("visibilitychange",ra),document.removeEventListener("click",ra))},hp=0,mp=-1;function Yo(){return new Promise((i,t)=>{if(Ir.state==="running")return i();Date.now()-hp<1e3?(clearTimeout(mp),mp=setTimeout(()=>{hp=Date.now(),Ir.resume().then(i,t)},1e3)):(clearTimeout(mp),hp=Date.now(),Ir.resume().then(i,t))}).catch(i=>{se.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",ra)})}document.addEventListener("click",ra);function fb(){Ac===-1&&(Ac=setTimeout(()=>{Ir.state==="suspended"&&(pp=!0,ee.emit("155",{isSuspended:!0}))},fp))}function gb(){Ac!==-1&&(clearTimeout(Ac),Ac=-1,pp&&(pp=!1,ee.emit("155",{isSuspended:!1})))}function gE(){if(!Ut||pE!==-1)return;let i=()=>{Xe()-hE<500||(Ir&&Ir.state==="running"&&Ir.currentTime===mE&&(se.warn("context is fake running, auto resume"),Ir.suspend().catch(t=>{se.warn(`context suspend failed: ${t}`)})),mE=Ir.currentTime,hE=Xe())};pE=setInterval(()=>{i()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&i()})}var bt=i=>Ir;var rr=class{constructor(t){this.name=t;p(this,"node");p(this,"node2");p(this,"pre",new Set);p(this,"next",new Set);p(this,"context");p(this,"connectedNodes",new Set);p(this,"nextInputChannelMap",new Map);p(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){se.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),Se.addSuccessEvent({key:502701})}catch(o){se.error(o),Se.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),Se.addSuccessEvent({key:502702})}catch(e){se.error(e),Se.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},ju=class extends rr{constructor(e=256){super();this.fftSize=e;p(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},vc=class{constructor(){p(this,"source",new rr);p(this,"gain",new rr);p(this,"destination",new rr)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(bt().createGain()),this.gain.node.gain.value=t}replaceSource(t){let e=Rc(t);e&&this.source.replaceNode(e)}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},ia=class extends vc{constructor(e){super();this.context=e;p(this,"aec",new rr("aec"));p(this,"mixNode",new rr("mixNode"));p(this,"silentNode",new rr("silentNode"));p(this,"denoiser",new rr("denoiser"));p(this,"voiceChanger",new rr("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},qu=class{constructor(){p(this,"audioContext",bt("audio-mixer"));p(this,"destination",this.audioContext.createMediaStreamDestination());p(this,"inputs",new Set);p(this,"mixWeight",0);this.destination.channelCount=1}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},_E=new WeakMap;function Rc(i){try{let t=_E.get(i);if(t)return t;let e=bt();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return _E.set(i,t),t}catch(t){if(zt&&t instanceof Error&&t.name==="NotSupportedError")se.warn(t);else throw t}}var Yr=class Yr{constructor(t){p(this,"_volume",0);p(this,"_volumeDb",0);p(this,"_log");p(this,"_scriptProcessorNode",null);p(this,"_audioWorkletNode",null);p(this,"_interval",200);p(this,"ready",this.preload());let{log:e}=t;this._log=e,ee.on(ce.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Yr.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Yr.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Yr.workletReady=yo(Yr.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Yr.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Yr.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Yr.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),It.logFailedEvent({userId:this._log.userId,eventType:ii.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=bt("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Yr.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,ee.off(ce.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};p(Yr,"lastMessageTime",0),p(Yr,"audioContext",bt("volume-meter")),p(Yr,"workletReady");var Xu=Yr,Cc=class extends rr{constructor(e){super();p(this,"_volumeMeter");this._volumeMeter=new Xu(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return D(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}},Ju=Xu;var SE=Li(mo(),1);var TE=i=>t=>t.deviceId===i;var wc=class{constructor(t,e){p(this,"kind");p(this,"type");p(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&sa(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(TE(o.deviceId))){let s=`${this.kind}${this.type}Added`;se.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(TE(o.deviceId))){let s=`${this.kind}${this.type}Removed`;se.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},gp=class extends SE.EventEmitter{constructor(){super();p(this,"audioInputs",new wc(j.AUDIO,"Input"));p(this,"videoInputs",new wc(j.VIDEO,"Input"));p(this,"audioOutputs",new wc(j.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||Jt.run("interval",()=>{this.update()},{delay:1e4}))}init(){oa().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return D(this,arguments,function*(e=0){let r=yield oa(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=bt())==null?void 0:r.outputLatency)*1e3>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))||this.audioInputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},$t=xa||Cn?null:new gp;function sa(i){return i.deviceId===i.groupId&&i.groupId===""}function oa(){return D(this,arguments,function*(i=0){if(Eo()||!Uu())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{sa(r)&&(r.kind===j.AUDIO_INPUT?e.audio=!0:r.kind===j.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e),e.audio&&Yo()}catch(o){se.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&_p.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Gr(i=!1){return $t.update(i?1:0).then(t=>t.audioInputs.devices)}function zr(i=!1){return $t.update(i?2:0).then(t=>t.videoInputs.devices)}var yE=!1;function IE(){return D(this,null,function*(){try{yE||(yE=!0,se.info(`speakers:${(yield Zo()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function Zo(i=!1){return D(this,null,function*(){return(Ut||Zt)&&(i=!1),$t.update(i?1:0).then(t=>t.audioOutputs.devices)})}var _p=new Set;function bE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${j.VIDEO_INPUT}`;return!!_p.has(r)}function AE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${j.AUDIO_INPUT}`;return!!_p.has(r)}function Ep(i,t){return D(this,null,function*(){let r=(yield Gr()).find(o=>o.deviceId===ws);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function vE(s){return D(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===j.AUDIO&&i===ws?yield Ep(e,r):!0})}var Qu,Tp=class extends vc{constructor(e){super();this.log=e;p(this,"volumeMeter");p(this,"volumeMeterAfter3A");p(this,"volumeDestination");p(this,"analyser",new ju);this.volumeMeter=new Cc({log:this.log}),this.volumeMeterAfter3A=new Cc({log:this.log}),this.volumeDestination=new rr,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},na=class i extends Ci{constructor(e){super(e,j.AUDIO);p(this,"_outputDeviceId");p(this,"_volume",1);p(this,"_destination",bt("player").createMediaStreamDestination());p(this,"pipeline");p(this,"volumeMeterMode","worklet");p(this,"enableVolumeControlInIOS");this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new Tp(this._log)}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((ai==="15.2"||ai==="15.3"||ai==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Qu||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,ft(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Qu&&(Qu=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(St.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return D(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(bt("player").createAnalyser()),IE(),Er(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return D(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},Yu=class extends na{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(St.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Zu=class extends na{constructor(e){super(e);p(this,"_sourceElement");p(this,"_output",new rr);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(bt("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(St.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){if(this._volume=e,this.useDestination)this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`);else if(e<=1&&!Ut)this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element");else{if(Ut)if(this.enableVolumeControlInIOS)gE();else return;if(zt&&!this.pipeline.source.node){this._log.warn("set pipeline volume failed: no source node");return}this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),tr(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play())}}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&ni&&(Qu=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Xs=class extends Ve{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Zu:Sr}){var a;super();p(this,"id",oc());p(this,"userId","");p(this,"isRemote");p(this,"mediaType");p(this,"room");p(this,"user");p(this,"_log");p(this,"_inputTrack");p(this,"_outputTrack");p(this,"isPlayCalled");p(this,"container",null);p(this,"player");p(this,"subVideoPlayerMap");p(this,"muted",!1);p(this,"abortCtrl");p(this,"objectFit","cover");p(this,"mirror");p(this,"rotation");p(this,"isScreen",!1);p(this,"manager");p(this,"trackSettings");p(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=se.createLogger({parent:s==null?void 0:s.getLogger(),id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof wi?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof wi}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:s==null?void 0:s.enableVolumeControlInIOS}),this.player.on(St.PLAYER_STATE_CHANGED,c=>{if(ee.emit(ce.PLAYER_STATE_CHANGED,be({track:this},c)),this.emit("player-state-changed",c),c.state==="PLAYING"&&this.room){let d=!0;for(let{remoteAudioTrack:m,remoteVideoTrack:l,remoteAuxiliaryTrack:f}of[...this.room.remotePublishedUserMap.values()])if(m.isAvailable&&!m.player.isPlaying||l.isAvailable&&!l.player.isPlaying||f.isAvailable&&!f.player.isPlaying){d=!1;break}d&&Qo()&&uE()}}),this.kind===j.VIDEO&&(this.player.on(St.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(St.LOADED_DATA),ee.emit(ce.VIDEO_LOADED_DATA,{track:this})}),this.player.on(St.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(St.LOADED_META_DATA)}),this.player.on(St.MEDIA_TRACK_CHANGED,c=>{var d;(d=this.subVideoPlayerMap)==null||d.forEach(m=>m.setTrack(c))}),this.player.on(St.RESIZE,c=>{this.emitFirstVideoFrameEvent(St.RESIZE),this.emit("video-size-changed",be({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},c))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(St.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||se}get kind(){return this.mediaType===1?j.AUDIO:j.VIDEO}get isAudio(){return this.kind===j.AUDIO}get strMediaType(){return this.mediaType===4?j.VIDEO:this.mediaType===2?j.SCREEN:j.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return D(this,null,function*(){let o=Gt(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!z(r.muted)&&this.setPlayerMute(r.muted),r&&!z(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Sr&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),Gt(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!z(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===j.VIDEO)&&this.setPlayerMute(!0),r&&!z(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Sr&&(this.player.setObjectFit(this.objectFit),r&&!z(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof Sr&&this.player.setContainer(o)),ee.emit(ce.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),Gt(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==j.VIDEO||z(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Nt(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return D(this,null,function*(){if(!this._outputTrack||this.kind===j.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(c=>n===c)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(z(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new Sr({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(nm(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return D(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),ee.emit(e?ce.TRACK_MUTED:ce.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){yr(e,e).add(j.MUTE,this.onTrackMuted).add(j.UNMUTE,this.onTrackUnmuted).add(j.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===j.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){tr(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(nm(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){return D(this,null,function*(){var o;this.log.warn("handleAutoPlayFailed",e);let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((ao||co)&&(yield Ti(100),(o=this.player)!=null&&o.isPlaying))return;ta()}else document.addEventListener("click",r,!0);ee.once(ce.LOCAL_TRACK_CAPTURE_SUCCESS,({track:s})=>{s.kind==="audio"&&Qo()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",e)})}getVideoFrame(){return this.player instanceof Sr?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,c;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((c=this.player.element)==null?void 0:c.videoHeight)||0;e===St.RESIZE&&!o&&!s||e===St.LOADED_META_DATA&&!o&&!s||(e===St.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,Jr(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};Ie([Mt([],Ve.INIT,{sync:!0})],Xs.prototype,"close",1);var _b=Object.prototype.hasOwnProperty,{toString:IO}=Object.prototype;function Eb(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Nr(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(_b.call(i,t))return!1;return!0}}return!1}var Nc=Eb;var Tb=function(i){return D(this,null,function*(){let t=Sb(i);se.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];if(t.audio&&(e=yield Gr(),se.info(`microphones: ${oi(e.map(s=>qe(be({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield zr(),se.info(`cameras: ${oi(r,{keysToInclude:o})}`),!Nt(t.video)&&t.video.facingMode==="user"&&!t.video.deviceId)){let n=r.filter(a=>!a.label.includes("infrared")).find(a=>a.label.includes("facing front"));n&&(t.video.deviceId=n.deviceId,se.info(`exclude infrared camera: ${JSON.stringify(t)}`))}try{let s=yield navigator.mediaDevices.getUserMedia(t);return Qm&&s.getTracks().forEach(n=>{var c;let a=n.getCapabilities();se.info(`${n.kind} capabilities: ${oi(a,{keysToInclude:Gd})}`),!z(i.echoCancellation)&&((c=a.echoCancellation)==null?void 0:c.indexOf(i.echoCancellation))===-1&&se.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(a.echoCancellation)}], but received '${i.echoCancellation}'`)}),t.audio&&Yo(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=Et({key:_t.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=Et({key:_t.MICROPHONE_NOT_FOUND}))),new Me({code:Te.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},yb=Ho({retryFunction:Tb,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"||i.name==="AbortError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!Zt||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&RE(r[0].microphoneId,!1),r[0].cameraId&&RE(r[0].cameraId,!0)},onRetrying:i=>{se.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{It.logFailedEvent({eventType:ii.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{It.logSuccessEvent({eventType:ii.GET_USER_MEDIA_RETRY}),It.uploadEvent({log:`stat-${ii.GET_USER_MEDIA_RETRY}-success-${i}`})}});function RE(i,t){return D(this,null,function*(){let r=(t?yield zr():yield Gr()).find(o=>o.deviceId===i);r&&Rt(r.getCapabilities)&&se.warn(oi(r.getCapabilities(),{keysToInclude:Gd}))})}function Sb(i){return{audio:Ib(i),video:bb(i)}}function Ib(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!Nc(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(ft(i.channelCount)&&(t.channelCount=i.channelCount),(Nt(i.echoCancellation)||i.echoCancellation==="remote-only"||i.echoCancellation==="all")&&(t.echoCancellation=i.echoCancellation),Nt(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Nt(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),Nc(t)?!0:t)}function bb(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!Nc(e)?e:(i.width&&(e.width={ideal:i.width},t&&!zt&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!zt&&(e.height.max=i.height)),zt&&Ii&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),Nc(e)?!0:e)}var CE=yb;function Ko(i){return ut((t,e)=>function(...r){return D(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function wE(i){return ut((t,e)=>function(...r){return D(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function ut(i){return function(t,e,r){return r.value=i(r.value,e),r}}var NE=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&se.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{se.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var Ab=0,Ku=class{constructor(){p(this,"log",se.createLogger({id:`fq${++Ab}`}));p(this,"isRunning",!1);p(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,n;let r=be({},t),o=new Promise((a,c)=>{r.resolve=a,r.reject=c});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},DE=new WeakMap,OE=new WeakMap;function el(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=DE.get(this)||new Ku;return DE.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function tl(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=OE.get(this)||new Map,c=a.get(s(n))||new Ku;return a.set(s(n),c),OE.set(this,a),c.push({fn:o,args:n,context:this})},r}}function rl(i,t){return ut((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=Xe();return $o(n)?n.then(c=>(t?Se.addSuccessEvent({key:s,cost:Xe()-a}):Se.addSuccessEvent({key:s}),c)).catch(c=>{throw Se.addFailedEvent({key:s,error:c}),c}):(Se.addSuccessEvent({key:s}),n)}catch(n){throw Se.addFailedEvent({key:s,error:n}),n}})}var af={};eo(af,{Events:()=>Qt,Inspect:()=>ci,LastSink:()=>Js,Sink:()=>Ge,Subscribe:()=>Qs,TimeoutError:()=>Dc,audit:()=>aA,bindCallback:()=>jb,bindNodeCallback:()=>qb,buffer:()=>xb,bufferCount:()=>Mb,bufferTime:()=>RA,call:()=>ME,catchError:()=>rf,combineLatest:()=>kE,concat:()=>Cb,concatMap:()=>EA,concatMapTo:()=>TA,count:()=>Qb,create:()=>mt,debounce:()=>cA,debounceTime:()=>dA,defer:()=>LE,delay:()=>CA,deliver:()=>Je,dispose:()=>il,elementAt:()=>uA,empty:()=>kc,every:()=>fA,exhaustMap:()=>IA,exhaustMapTo:()=>bA,expand:()=>wA,filter:()=>Ur,find:()=>lA,findIndex:()=>hA,first:()=>mA,fromAnimationFrame:()=>Gb,fromArray:()=>Vb,fromEvent:()=>Qe,fromEventPattern:()=>Bb,fromFetch:()=>$b,fromIterable:()=>Fb,fromPromise:()=>VE,fromReadableStream:()=>Wb,fromReader:()=>Hb,groupBy:()=>AA,identity:()=>vb,ignoreElements:()=>eA,iif:()=>Nb,inspect:()=>xE,interval:()=>Rp,last:()=>pA,map:()=>ts,mapTo:()=>_A,max:()=>Yb,merge:()=>Oc,mergeMap:()=>yA,mergeMapTo:()=>SA,min:()=>Zb,never:()=>Xb,nothing:()=>Tt,of:()=>Ub,pairwise:()=>gA,pipe:()=>Ye,race:()=>Ap,range:()=>zb,reduce:()=>Cp,retry:()=>OA,scan:()=>tf,setAsapScheduler:()=>Pb,share:()=>So,shareReplay:()=>wb,skip:()=>rA,skipUntil:()=>iA,skipWhile:()=>cl,startWith:()=>Mc,subject:()=>ir,subscribe:()=>lt,sum:()=>Kb,switchMap:()=>Wi,switchMapTo:()=>Io,take:()=>Ni,takeLast:()=>tA,takeUntil:()=>At,takeWhile:()=>BE,tap:()=>en,throttle:()=>sA,throwError:()=>Jb,timeInterval:()=>vA,timeout:()=>nf,timer:()=>xc,toPromise:()=>NA,toReadableStream:()=>DA,withLatestFrom:()=>Ob,zip:()=>Db});function Tt(...i){}var ME=i=>i(),vb=i=>i;function il(){this.dispose()}var xE=()=>typeof __FASTRX_DEVTOOLS__!="undefined",Rb=1,ci=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new yp(t,this,this.streamId++);return Qt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},Js=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=Tt,this.error=Tt,this.next=Tt,this.dispose=Tt,this.subscribe=Tt,this.doDefer()}subscribe(t){return t instanceof ci?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(ME),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},Ge=class extends Js{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},Qs=class extends Js{constructor(t,e=Tt,r=Tt,o=Tt){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Tt,t instanceof ci){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{Qt.defer(s,0)}),Qt.create(s),Qt.pipe(s),this.sourceId=s.id,this.subscribe(t),Qt.subscribe({id:s.id,end:!0}),e==Tt?this._next=n=>Qt.next(s,0,n):this.next=n=>{Qt.next(s,0,n),e(n)},o==Tt?this._complete=()=>Qt.complete(s,0):this.complete=()=>{this.dispose(),Qt.complete(s,0),o()},r==Tt?this._error=n=>Qt.complete(s,0,n):this.error=n=>{this.dispose(),Qt.complete(s,0,n),r(n)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ye(i,...t){return t.reduce((e,r)=>r(e),i)}function mt(i,t,e){if(xE()){let r=Object.defineProperties(Object.setPrototypeOf(i,ci.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});Qt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof ci&&Qt.addSource(r,s)}return r}return i}function Je(i,t){return function(...e){return r=>{if(r instanceof ci){let o=mt(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,Qt.pipe(o),o}else return o=>r(new i(o,...e))}}}function es(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var yp=class extends Ge{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{Qt.defer(this.source,this.id)})}next(t){Qt.next(this.source,this.id,t),this.sink.next(t)}complete(){Qt.complete(this.source,this.id),this.sink.complete()}error(t){Qt.complete(this.source,this.id,t),this.sink.error(t)}},Qt={addSource(i,t){es("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){es("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){es("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){es("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){es("defer",{id:i.id,streamId:t})},pipe(i){es("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){es("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=Rb++),es("create",{name:i.toString(),id:i.id})}},Dc=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var ol=class extends Js{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function So(){return i=>{let t=new ol(i);if(i instanceof ci){let e=mt(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,Qt.pipe(e),e}return mt(t.add.bind(t),"share",arguments)}}function Oc(...i){return mt(t=>{let e=new Ge(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function Ap(...i){return mt(t=>{let e=new Map;i.forEach(r=>{let o=new Ge(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function Cb(...i){return mt(t=>{let e=0,r=i.length,o=new Ge(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function wb(i){return t=>{let e=new ol(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},mt(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function Nb(i,t,e){return mt(r=>i()?t(r):e(r),"iif",arguments)}function kE(...i){return mt(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(c,d)=>{let m=new Ge(t);m.next=l=>{r--,m.next=f=>{s[d]=f,r===0&&t.next(s)},m.next(l)},m.complete=n,m.subscribe(c)};i.forEach(a)},"combineLatest",arguments)}function Db(...i){return mt(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,c)=>{let d=new Ge(t),m=[];o[c]=m,d.next=l=>{m.push(l),o.every(f=>f.length)&&t.next(o.map(f=>f.shift()))},d.complete=s,d.subscribe(a)};i.forEach(n)},"zip",arguments)}function Mc(...i){return t=>mt((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var Sp=class extends Ge{constructor(t,...e){super(t);let r=new Ge(this.sink);r.next=o=>this.buffer=o,r.complete=Tt,r.subscribe(kE(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},Ob=Je(Sp,"withLatestFrom"),Ip=class extends Ge{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},Mb=Je(Ip,"bufferCount"),bp=class extends Ge{constructor(t,e){super(t),this.buffer=[];let r=new Ge(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Tt,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},xb=Je(bp,"buffer");var kb=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(m){try{d(r.next(m))}catch(l){n(l)}}function c(m){try{d(r.throw(m))}catch(l){n(l)}}function d(m){m.done?s(m.value):o(m.value).then(a,c)}d((r=r.apply(i,t||[])).next())})};function ir(i){let t=arguments,e=So()(mt(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=Tt,e.complete=Tt,e.error=Tt,e}function LE(i){return mt(t=>t.subscribe(i()),"defer",arguments)}var aa={promise:i=>{Promise.resolve().then(i)},setImmediate:typeof setImmediate!="undefined"?i=>setImmediate(i):null,setTimeout:i=>setTimeout(i,0)},Lb=()=>typeof Promise!="undefined"?aa.promise:aa.setImmediate?aa.setImmediate:aa.setTimeout,vp=Lb(),PE=i=>t=>{vp(()=>i(t))},Pb=i=>{typeof i=="function"?vp=i:aa[i]&&(vp=aa[i])};var UE=i=>PE(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function Ub(...i){return mt(UE(i),"of",arguments)}function Vb(i){return mt(UE(i),"fromArray",arguments)}function Rp(i){return mt(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function xc(i,t){return mt(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>clearTimeout(o);e.defer(s)},"timer",arguments)}function sl(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function Bb(i,t){return mt(sl(i,t),"fromEventPattern",arguments)}function Qe(i,t){if("on"in i&&"off"in i)return mt(sl(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return mt(sl(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return mt(sl(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function VE(i){return mt(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function $b(i,t){return mt(LE(()=>VE(fetch(i,t))),"fromFetch",arguments)}function Fb(i){return mt(PE(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function Hb(i){let t=e=>kb(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return mt(e=>{t(e)},"fromReader",arguments)}function Wb(i){return mt(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function Gb(){return mt(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function zb(i,t){return mt((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function jb(i,t,...e){return mt(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function qb(i,t,...e){return mt(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function Xb(){return mt(()=>{},"never",arguments)}function Jb(i){return mt(t=>t.error(i),"throwError",arguments)}function kc(){return mt(i=>i.complete(),"empty",arguments)}var Ys=class extends Ge{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},Cp=Je(Ys,"reduce"),Qb=i=>Je(Ys,"count")((t,e)=>i(e)?t+1:t,0),Yb=()=>Je(Ys,"max")(Math.max),Zb=()=>Je(Ys,"min")(Math.min),Kb=()=>Je(Ys,"sum")((i,t)=>i+t,0);var wp=class extends Ge{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},Ur=Je(wp,"filter"),Np=class extends Ge{next(t){}},eA=Je(Np,"ignoreElements"),Dp=class extends Ge{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},Ni=Je(Dp,"take"),Op=class extends Ge{constructor(t,e){super(t);let r=new Ge(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=il,r.subscribe(e)}},At=Je(Op,"takeUntil"),Mp=class extends Ge{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):(this.doDefer(),this.complete())}},BE=Je(Mp,"takeWhile"),tA=i=>Cp((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),xp=class extends Ge{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},rA=Je(xp,"skip"),kp=class extends Ge{constructor(t,e){super(t),t.next=Tt;let r=new Ge(t);r.next=()=>{r.doDefer(),t.resetNext()},r.complete=il,r.subscribe(e)}},iA=Je(kp,"skipUntil"),Lp=class extends Ge{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},cl=Je(Lp,"skipWhile"),oA={leading:!0,trailing:!1},Pp=class extends Ge{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},nl=class extends Ge{constructor(t,e,r=oA){super(t),this.durationSelector=e,this.config=r,this._throttle=new Pp(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=Tt,this._throttle.complete(),super.complete()}},sA=Je(nl,"throttle"),nA={leading:!1,trailing:!0},aA=i=>Je(nl,"audit")(i,nA),Up=class extends Ge{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},al=class extends Ge{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Up(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},cA=Je(al,"debounce"),dA=i=>Je(al,"debounceTime")(t=>xc(i)),Vp=class extends Ge{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},uA=Je(Vp,"elementAt"),lA=i=>t=>Ni(1)(cl(e=>!i(e))(t)),Bp=class extends Ge{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},hA=Je(Bp,"findIndex"),$p=class extends Ge{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},mA=Je($p,"first"),Fp=class extends Ge{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},pA=Je(Fp,"last"),Hp=class extends Ge{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.doDefer(),this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},fA=Je(Hp,"every");var Wp=class extends Ge{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},tf=Je(Wp,"scan"),Gp=class extends Ge{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},gA=Je(Gp,"pairwise"),dl=class extends Ge{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},ts=Je(dl,"map"),_A=i=>Je(dl,"mapTo")(t=>i),Zs=class extends Ge{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},Ks=class i extends Ge{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete===i.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},ul=class extends Zs{},ll=class extends Ks{next(t){this.subInner(t,ul),this.next=e=>{this.currentSink.dispose(),this.subInner(e,ul)}}},Wi=Je(ll,"switchMap");function fl(i){return(t,e)=>i(()=>t,e)}var Io=fl(Je(ll,"switchMapTo")),zp=class extends Zs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},hl=class extends Ks{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),zp),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},EA=Je(hl,"concatMap"),TA=fl(Je(hl,"concatMapTo")),jp=class extends Zs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},ml=class extends Ks{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,jp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},yA=Je(ml,"mergeMap"),SA=fl(Je(ml,"mergeMapTo")),qp=class extends Zs{dispose(){this.context.resetNext(),super.dispose()}},pl=class extends Ks{next(t){this.next=Tt,this.subInner(t,qp)}},IA=Je(pl,"exhaustMap"),bA=fl(Je(pl,"exhaustMapTo")),Xp=class extends Ge{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=ir(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},AA=Je(Xp,"groupBy"),Jp=class extends Ge{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},vA=Je(Jp,"timeInterval"),Qp=class extends Ge{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},RA=Je(Qp,"bufferTime"),Yp=class extends Ge{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},CA=Je(Yp,"delay"),Zp=class extends Ge{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},rf=Je(Zp,"catchError"),Kp=class extends Zs{tryComplete(){let t=this.context.inners.delete(this);super.dispose(),t&&this.context.checkComplete()}next(t){this.sink.next(t),this.context.expandValue(t)}},ef=class extends Ks{constructor(t,e){super(t,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(t){this.sink.next(t),this.expandValue(t)}expandValue(t){let e=new Kp(this.sink,t,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(t,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},wA=Je(ef,"expand");var NA=()=>i=>new Promise((t,e)=>{let r;new Qs(i,o=>r=o,e,()=>t(r))}),DA=()=>i=>{let t;return new ReadableStream({start(e){t=new Qs(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},lt=(i=Tt,t=Tt,e=Tt)=>r=>new Qs(r,i,t,e),of=class extends Ge{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},en=Je(of,"tap"),sf=class extends Ge{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Dc(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},nf=Je(sf,"timeout"),OA=(i=1/0)=>t=>{if(t instanceof ci){let e=mt(r=>{let o=i,s=new Ge(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,Qt.pipe(e),e}else return e=>{let r=i,o=new Ge(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var ca=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(ca||{}),tn=class tn extends Xs{constructor(e,r){super({mediaType:e,PlayerClass:r});p(this,"isRemote",!1);p(this,"deviceId");p(this,"groupId","");p(this,"label","");p(this,"sourceTrack");p(this,"enableAutoSwitchWhenRecapturing",!0);p(this,"_isRecapturing",!1);p(this,"_lastRecaptureTime",0);p(this,"_onMuteTimeoutId",-1);p(this,"_encodeCheckTimeoutId",-1);p(this,"recaptureMode",0);p(this,"profile");p(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(j.MUTE,this.onTrackMuted),e.addEventListener(j.UNMUTE,this.onTrackUnmuted),e.addEventListener(j.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===j.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(j.MUTE,this.onTrackMuted),e.removeEventListener(j.UNMUTE,this.onTrackUnmuted),e.removeEventListener(j.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e,r=!1){return D(this,null,function*(){var s;let o=this.sourceTrack;try{let n=Xe();ee.emit(ce.LOCAL_TRACK_CAPTURE_START,{track:this});let a;e.customSource?(a=new MediaStream,a.addTrack(e.customSource)):(r||(s=this.sourceTrack)==null||s.stop(),a=yield CE(e));let c=a.getTracks()[0];return yield this.setInputMediaStreamTrack(c),e.customSource||(this.sourceTrack=c,this.updateDeviceIdInUse(),this.listenDeviceChange()),ee.emit(ce.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Xe()-n}),a}catch(n){throw ee.emit(ce.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:n}),this.log.error(`getUserMedia error observed ${n}`),n}finally{r&&(o==null||o.stop())}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=Ms(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}publish(e,r){return D(this,null,function*(){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),yield r,this._checkPublishFlag(e)})}_checkPublishFlag(e){return new Promise((r,o)=>D(this,null,function*(){var d,m,l,f;let s=()=>o(new Me({code:Te.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?r():((this.state===Ve.INIT||this.state==="ready")&&s(),Ye(Qe(e,"local-publish-flag-changed"),Ur(()=>this.hasFlag),At(Oc(Qe(this,Ve.INIT),Qe(this,"ready"))),lt(r,o,s))),(((m=(d=this.room)==null?void 0:d.networkQuality)==null?void 0:m.uplinkNetworkQuality)||0)>3)return r();let a=e.heartbeatCount,c=((f=(l=this.mediaTrack)==null?void 0:l.stats)==null?void 0:f.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(()=>D(this,null,function*(){var T,E,y,v,M,w,H;if((((E=(T=this.room)==null?void 0:T.networkQuality)==null?void 0:E.uplinkNetworkQuality)||0)>3||e.heartbeatCount-a<3)return r();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((y=this.mediaTrack)!=null&&y.stats){let $=this.mediaTrack.stats.totalFrames||0;$-c===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",$)}let B=this.kind===j.AUDIO,P=this.stat.bytesSent>0;if(Se[P?"addSuccessEvent":"addFailedEvent"]({key:B?503700:513702}),!B){let $=((M=(v=this.room)==null?void 0:v.videoCodec)==null?void 0:M.toUpperCase())||"H264",de={H264:513704,H265:513705,VP8:513706}[$];de&&Se[P?"addSuccessEvent":"addFailedEvent"]({key:de})}if(!P){if(Se.addEnum({key:B?503701:513703,value:Bs()}),It.uploadEvent({log:`stat-encode-failed-${this.kind}-${Vs()||ho()}`,userId:this.userId}),this.log.warn(B?"encode failed":`${(H=(w=this.room)==null?void 0:w.videoCodec)==null?void 0:H.toUpperCase()} encode failed`),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield Ti(5e3),this.stat.bytesSent>0||this.hasFlag)))return r();this.emit("6",this),o(new Me({message:`${this.strMediaType} encode failed`,code:B?Te.AUDIO_ENCODE_FAILED:Te.VIDEO_ENCODE_FAILED}))}}}),1e4)}))}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),ee.emit(ce.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return D(this,null,function*(){if(this.sourceTrack&&ea){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield vE({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),oa().then(n=>{let a=n.find(c=>{let d=c.deviceId===e;return r&&(d=d&&c.groupId===r),d});a&&this.emit("2",a)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===j.AUDIO&&!AE(this.sourceTrack)||this.kind===j.VIDEO&&!bE(this.sourceTrack)||this._isRecapturing||e&&Ii&&Zt)}onTrackMuted(){if(super.onTrackMuted(),NE(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Dn){setTimeout(()=>this.onTrackMuted(),Dn);return}this._onMuteTimeoutId=setTimeout(()=>D(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((Ut||Bt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return D(this,null,function*(){if(Er(tn.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Dn){setTimeout(()=>this.onTrackEnded(),Dn);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e,r=!1){return D(this,null,function*(){var n;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let o=this.sourceTrack;r||(n=this.sourceTrack)==null||n.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let s={useExactDeviceId:!0};if(e==="user"||e==="environment")s.facingMode=e;else{let a;(this.kind==="audio"?yield Gr():yield zr()).find(d=>d.deviceId===e)&&(a=e),s.deviceId=a}return this.capture(s,r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),ee.emit(ce.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(a=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${a.message}`),this.emit("5",a),ee.emit(ce.LOCAL_TRACK_RECAPTURE,{track:this,error:a})}).finally(()=>{r&&(o==null||o.stop())})})}getRecoverCaptureDeviceId(){return D(this,null,function*(){let e=this instanceof Zr;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Lc.get(r)||0)+1;if(Lc.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield zr()).find(n=>!Lc.has(n.deviceId)):(yield Gr()).find(n=>!Lc.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Ie([Mt(Ve.INIT,"ready",{ignoreError:!0,sync:!0})],tn.prototype,"setStateToReady",1),Ie([el()],tn.prototype,"capture",1),Ie([Mt("ready","publish",{ignoreError:!0,success(){ee.emit(ce.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(e){var n;(n=this.room)==null||n.localTracks.delete(this);let r="error",o=e instanceof Me?e:e.cause instanceof Me?e.cause:e,s=!1;o instanceof Me&&(o.message.includes("timeout")?r="timeout":o.code===Te.API_CALL_ABORTED&&(s=!0,r="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:o}),this.log[s?"info":"error"]("publish failed",o)}}),rl(521714,!1)],tn.prototype,"publish",1),Ie([ut(e=>function(){return D(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),Mt([],"ready",{sync:!0})],tn.prototype,"unpublish",1);var wi=tn,Lc=new Map;ee.on(ce.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Lc.delete(i.track.deviceId)});var Gi=class i extends wi{constructor(e){super(1,Yu);p(this,"mediaType",1);p(this,"volume",0);p(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});p(this,"playerMuted",!0);p(this,"pipeline");p(this,"earMonitorGainNode",new rr);p(this,"_output",new rr);p(this,"codecPipeline",[]);p(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});p(this,"mixedAudioReferenceMap",new Map);p(this,"isAudioContextLongSuspended",!1);p(this,"after3aSilenceStartTime",0);this.manager=e,this.pipeline=new ia(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),ee.on(ce.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return Ju.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){z(e)||(e===0&&!this.after3aSilenceStartTime?this.after3aSilenceStartTime=Xe():e>0&&(this.after3aSilenceStartTime=0))}setInputMediaStreamTrack(e){return D(this,null,function*(){let r=this.trackSettings||{};Se.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),Se.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),Se.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield Er(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(a){return D(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s},n=!1){let c=yield Er(i.prototype,this,"capture").call(this,{video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r},n);return Yo(),c})}switchDevice(e){return D(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===ws){if(yield Ep(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),ee.emit(ce.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){$t&&!$t.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&$t.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return D(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${ca[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){jt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield Gr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&$t.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||($t.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return D(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),c=!1;!z(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,c=!0),!z(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,c=!0),!z(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,c=!0),c&&(zt||Zt?yield n.applyConstraints(a).catch(d=>this._log.warn("update3A failed: ",d)):this.deviceId&&(yield this.recapture(this.deviceId,!0)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&Se.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),Ut&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(bt().createGain()),this._output.setNode(bt().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(Zt||Ut))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Fr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}Se.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=Rc(e);if(!o)return;let s=new rr,n=bt().createGain();n.gain.value=1;let a=new rr;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),$t.off("audioInputAdded",this.handleMicrophoneAdded,this),$t.off("audioInputRemoved",this.handleMicrophoneRemoved,this),ee.off(ce.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e,r=!1){return D(this,null,function*(){try{yield Er(i.prototype,this,"recapture").call(this,e,r)}catch(o){let s=(yield Gr()).find(n=>n.deviceId!==e);if(s)yield Er(i.prototype,this,"recapture").call(this,s.deviceId);else throw o}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:to()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${fp/1e3} seconds, change to source audio${ni?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var rn=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var gl=class{constructor(){p(this,"_seiMessageList",[]);p(this,"_smallSeiMessageList",[]);p(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new rn(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((f,g)=>f+g.dataView.byteLength,0),c=new ArrayBuffer(a+t.data.byteLength),d=new DataView(c),m=new DataView(t.data),l=0;for(let f=0;f<n.length;f++)for(let g=0;g<n[f].dataView.byteLength;g++)d.setInt8(l++,n[f].dataView.getInt8(g));for(let f=0;f<t.data.byteLength;f++)d.setInt8(l++,m.getInt8(f));return t.data=c,n.length}return 0}};var rs=class rs extends wi{constructor(e,r=4){super(r,Sr);p(this,"profile",be({},La));p(this,"avoidCropping",!1);p(this,"_scaleResolutionDownBy");p(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});p(this,"small");p(this,"isNeedToSetBandwidth");p(this,"muteImage");p(this,"manager");p(this,"_seiCodec",new gl);this.manager=e;let o=()=>{var s;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let n=si(((s=this.room)==null?void 0:s.sdkAppId)||0)?Pd:Ld;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${n}`),this.setProfile(qe(be({},this.profile),{width:1920,height:1080})),this.applyProfile()}};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!ea||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!!((e=this.manager)!=null&&e.hasSmall)}setMute(e){return D(this,null,function*(){var r,o,s;if(nt(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e,fillVideo:!0}),this.muteImage=e,Er(rs.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Er(rs.prototype,this,"setMute").call(this,e)})}capture(a){return D(this,arguments,function*({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){let c={audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:n,customSource:s};if(c.facingMode==="environment"){let d=yield this.getDeviceIdWhenUsingBackCamera();d&&(c.cameraId=d)}return Er(rs.prototype,this,"capture").call(this,c)})}setProfile(e){var o;let r=this.fallbackProfile(e);if(r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(r);else{let s=si(((o=this.room)==null?void 0:o.sdkAppId)||0)?Pd:Ld;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${s}`),super.setProfile(qe(be({},this.profile),{width:1920,height:1080}))}}applyProfile(){return D(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Tr===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:c=0,height:d=0}=(this.sourceTrack||this.mediaTrack).getSettings(),m=c*d;if(n&&m&&o&&m===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:j.VIDEO,videoType:j.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return ea&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:eu(this.settings,this.profile)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return D(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),ee.emit(ce.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}getDeviceIdWhenUsingBackCamera(){return D(this,null,function*(){let e;try{if(Ka&&!qn&&Ym){let o=(yield zr(!0)).map(n=>{var a;return qe(be({},n),{capabilities:(a=n.getCapabilities)==null?void 0:a.call(n)})}).filter(n=>{var a,c;return(c=(a=n.capabilities)==null?void 0:a.facingMode)==null?void 0:c.includes("environment")}),s=o[0];o.forEach(n=>{var m,l,f,g;let{capabilities:a}=n,c=(m=a.width)!=null&&m.max&&((l=a.height)!=null&&l.max)?a.width.max*a.height.max:0,d=(f=s.capabilities.width)!=null&&f.max&&((g=s.capabilities.height)!=null&&g.max)?s.capabilities.width.max*s.capabilities.height.max:0;c>d&&(s=n)}),s!=null&&s.capabilities&&(this._log.info("use max resolution back camera",s),e=s.deviceId)}}catch(r){this._log.warn("get max res camera failed",r)}return e})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=be({},e);return e.width*e.height<=160*120&&Bt&&Qr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Em&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),fm(ai,"14.3")&&gm(ai,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(Qr||zt)&&!rc()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){$t&&!$t.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&$t.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return D(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${ca[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){jt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield zr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&$t.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return D(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||($t.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return z(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){$t.off("videoInputAdded",this.handleCameraAdded,this),$t.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return D(this,null,function*(){try{yield Er(rs.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield zr()).find(s=>s.deviceId!==e);if(o)yield Er(rs.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||z(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Ie([Ko(function(e){this.setContentHint(e.contentHint||"motion")})],rs.prototype,"capture",1);var Zr=rs;var uf={};eo(uf,{REPORT_TYPE:()=>$n,buildSSOPackage:()=>so,bytes2ms:()=>Hg,calculateScaleResolutionDownNumber:()=>eu,concatArrayBuffers:()=>e_,convertObjectNumberToInt:()=>Wa,copyProperties:()=>Fg,deepClone:()=>Ns,deepCloneBasic:()=>Xd,deepMerge:()=>Ei,delay:()=>Ti,fibonacci:()=>Ds,formatedTime:()=>Qd,getConstructorName:()=>Ln,getContainerFromElement:()=>Yg,getEnv:()=>Ug,getFirst16Bits:()=>r_,getInternalVersion:()=>Jg,getLast16Bits:()=>t_,getLoggerUrl:()=>oo,getMediaStreamTrackInfo:()=>Kd,getMuteStateFromFlag:()=>Ms,getNetworkType:()=>kn,getNumNetworkType:()=>Jd,getReconnectionTimeout:()=>Gg,getStringByteLength:()=>Zg,getTurnServer:()=>Qg,getUint32Version:()=>Yd,getValueType:()=>Xt,getViewListFromView:()=>Vn,glog:()=>$a,ipv4ToUint32:()=>Un,isArray:()=>Gt,isAudioWorkletSupported:()=>qg,isBoolean:()=>Nt,isConstructor:()=>Os,isEmpty:()=>Pn,isFunction:()=>Rt,isLangChinese:()=>_i,isMediaStreamTrack:()=>zg,isNumber:()=>ft,isObject:()=>Xr,isOverseaSdkAppId:()=>si,isPlainObject:()=>Nr,isPortrait:()=>im,isPromise:()=>$o,isRemoteTrack:()=>jg,isRotate90Or270:()=>Jr,isSetSinkIdSupported:()=>Xg,isString:()=>nt,isUndefined:()=>z,loadImage:()=>Bn,loadVideo:()=>Kg,ms2bytes:()=>Wg,ms2samples:()=>rm,normalizeUrl:()=>xs,performanceNow:()=>Xe,promiseAny:()=>Fa,samples2ms:()=>tm,setNetworkTypeFromWebRTC:()=>$g,stringify:()=>oi,stringifyIncludeValue:()=>Ha,throttlePromise:()=>Zd});var xA=[-1,-1,1,-1,-1,1,1,1],kA=[0,0,1,0,0,1,1,1];var is=class is extends Ve{constructor(e,r){super();this.context=e;p(this,"name");p(this,"input");p(this,"output");p(this,"texture");p(this,"ctx2d",null);p(this,"fbo");p(this,"width",0);p(this,"height",0);p(this,"x",0);p(this,"y",0);p(this,"program");p(this,"vertexShader");p(this,"fragmentShader");p(this,"totalFrames",0);p(this,"dropFrames",0);p(this,"matchInputSize",!0);p(this,"texCoordBuffer");p(this,"positionBuffer");p(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});p(this,"cost",0);p(this,"_canvas",null);p(this,"_image");p(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof mr){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Tr!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(kA),this.positionBuffer=this.createBuffer(xA),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof cr&&this.render(e)||this.context instanceof mr&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof cr){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,n,a,c,d,m){let l=!z(a)&&!z(c)&&!z(d)&&!z(m);return this.ctx2d&&e?(e instanceof ImageData?(l?this.ctx2d.putImageData(e,r,o,a,c,d,m):this.ctx2d.putImageData(e,r,o),this.emit(is.RENDER,this.ctx2d.canvas)):(l?this.ctx2d.drawImage(e,a,c,d,m,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(is.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var l;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:c}=this,d=Date.now(),m=(e-this.lastInfo.totalFrames)/((d-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:d,fps:m,name:a,cost:c},be({parent:(l=this.input)==null?void 0:l.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};p(is,"RENDER","render"),Ie([Mt(Ve.INIT,"connected",{sync:!0})],is.prototype,"connect",1),Ie([Mt("connected",Ve.INIT,{ignoreError:!0,sync:!0})],is.prototype,"disconnect",1),Ie([Mt([],"closed",{sync:!0})],is.prototype,"close",1);var or=is;var FE=Ye(Rp(250),ts(()=>performance.now()),So()),HE=i=>t=>{let e=0,r=performance.now();Ye(FE,ts(o=>(o-r)/i>>0),Ur(o=>o!=e?(e=o,!0):!1))(t)},_l=i=>t=>{let e=performance.now();Ye(FE,cl(r=>r-e<i),Ni(1))(t)};var PA=[0,1,1,1,0,0,1,0],on=class extends or{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));p(this,"_intervalId",0);p(this,"_sequence",0);p(this,"checkGLError",!1);p(this,"checkVisibilityChange");e instanceof mr?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(PA)}start(e){this.log.info(`${this.name} start render ${e} fps`),Jt.clearTask(this._intervalId),this._intervalId=Jt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(Jt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof cr){let o=this.context.ctx.getError();o&&this.context.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(or.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this.state!=="closed"&&(this._intervalId&&(Jt.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(e){super.removeInput(e),Jt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),Jt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},da=class extends on{constructor(e,r){super(e,r);p(this,"_videoTrack");p(this,"_muteOb");p(this,"_closedOb",Qe(this,"closed"));p(this,"_subscription");p(this,"_canvasContainer");Number(uo)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e.canvas.captureStream().getVideoTracks(),this._muteOb=Qe(this._videoTrack,"mute"),Ye(Qe(this._videoTrack,"ended"),At(this._closedOb),lt(()=>{this.context.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ye(this._muteOb,At(this._closedOb),Io(_l(5e3)),Ur(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),lt(()=>{this.context.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},El=class extends da{render(t){var r;let e=!!((r=this.input)!=null&&r.requestFrame(t));if(this.context._canvas2d){let o=this.context._canvas2d.getContext("2d");o.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),o.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height)}return e}};var Tl=class extends da{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var Pc=class extends or{constructor(e,r){super(e,be({name:"imageSource"},r));p(this,"_lastImage");p(this,"_totalFrames",0);p(this,"_autoResize",!1);p(this,"_canvasRendered");p(this,"videoCallbackId",0);p(this,"waitingFirstFrame",!0);p(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Tr===16&&(this._canvasRendered=ir(),Ye(this._canvasRendered,Mc(this._image),Wi(o=>o instanceof HTMLCanvasElement?Qe(o,"rendered"):kc()),At(Qe(this,"closed")),lt(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),Ri()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let c=this.context.ctx;c.texSubImage2D(c.TEXTURE_2D,0,0,0,c.RGBA,c.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let c=this.context.ctx;c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,n)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Uc=class extends Pc{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ye(Qe(this._player,St.PLAYER_STATE_CHANGED),At(Qe(this,"closed")),Ur(({state:s})=>s==="PLAYING"),lt(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},di=class extends Uc{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new Sr({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},yl=class extends or{constructor(e,r,o){super(e,qe(be({name:"textSource"},o),{create2d:!0}));p(this,"hasChange",!0);p(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),c=(n?parseInt(n[1],10):16)*o,d=this.content.split(`
33
- `);for(let m=0;m<d.length;m++)this.ctx2d.fillText(d[m],e,r+m*c)}};var VA=`
31
+ `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=Dh,o.innerText=`${Fr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Iu}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){Ro()||(wh=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${ec}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",F.info("show autoplay dialog"),qe.uploadEvent({log:sA}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,wh=!1)}onConfirm(){F.warn("confirm clicked, try resume stream"),U.emit(B.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${fE}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||qe.uploadEvent({log:nA}),this._isCollapseClicked=!0}onQuestionClick(){window.open(TE,"_blank"),this._isQuestionClicked||qe.uploadEvent({log:aA}),this._isQuestionClicked=!0}},tc=null;function Dn(){tc||(tc=new Oh)}function IE(){tc&&(tc.deleteDialog(),tc=null)}var er=class i extends Jr{constructor(e){super(e,M.VIDEO);m(this,"stat",{});m(this,"_calculateTimeout",-1);m(this,"viewMirror",!1);m(this,"objectFit");m(this,"container");m(this,"canvas");m(this,"shouldRenderAlpha",!1);m(this,"_preSize",{width:0,height:0});m(this,"posterImg");this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,O(e.viewMirror)||(this.viewMirror=e.viewMirror),O(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(M.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,at&&(e.poster="noposter"),(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};${this.shouldRenderAlpha?"":"background-color: black"};`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(M.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===M.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,d,l;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===M.PAUSE&&(this.container&&!this.container.isConnected&&(this._log.warn(`${this.kind} player has been remove, element ID: ${this.container.id}`),$r(500).then(()=>{var p;(p=this.container)!=null&&p.isConnected&&(this._pausedRetryCount=is,this._log.info(`view container ${this.container.id} is in dom, reset pausedRetryCount`))})),this._pausedRetryCount>0&&!Ro()&&!this._isPausedByUserCall&&(this._log.info(`[${is-this._pausedRetryCount+1}/${is}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let p=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=p.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!p.includes("scaleX")&&(this.element.style.transform=`${p} scaleX(-1)`)}r===M.RESIZE&&(this._preSize.height!==((o=this.element)==null?void 0:o.videoHeight)||this._preSize.width!==((s=this.element)==null?void 0:s.videoWidth))&&(this._log.info(`video size changed to ${(n=this.element)==null?void 0:n.videoWidth}x${(a=this.element)==null?void 0:a.videoHeight}`),this._preSize.height=((d=this.element)==null?void 0:d.videoHeight)||0,this._preSize.width=((l=this.element)==null?void 0:l.videoWidth)||0,this.emit(je.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}setPoster(e,r=!1){return new Promise(o=>{if(this.element)if(this._log.info("setPoster",e.slice(0,10)),this.element.poster=e,r&&(ct||ot)){if(e==="")this.removePosterImg();else if(!this.posterImg){let s=document.createElement("img");s.src=e,s.style=`position:absolute;top:0;left:0;${this.styleAttribute}`,s.onload=()=>y(this,null,function*(){var n;s.decode&&(yield s.decode()),this.posterImg=s,(n=this.container)==null||n.appendChild(s),o()})}}else o()})}removePosterImg(){this.posterImg&&(this.posterImg.remove(),URL.revokeObjectURL(this.posterImg.src),delete this.posterImg)}pause(){return y(this,null,function*(){return(nr&&Yt>=128||ot||ct)&&(yield this.setPoster(this.getVideoFrame(),!0)),wt(i.prototype,this,"pause").call(this)})}resume(){return this.posterImg&&this.setPoster("",!0),super.resume()}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove(),this.removePosterImg()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(je.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(zr()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Gi(i,t){return y(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),F.info("worklet addModule success")}catch(e){throw F.info(`worklet addModule catch error. ${e.message}`),e}})}var rc;typeof AudioContext!="undefined"?rc=AudioContext:typeof webkitAudioContext!="undefined"?rc=webkitAudioContext:typeof mozAudioContext!="undefined"&&(rc=mozAudioContext);var kh=1500,Bt,SE=-1,Au=0,ic=-1,Lh=!1,AE=0,yE=-1,bE=-1;RE();function RE(){try{if(Bt)return;Bt=new rc({sampleRate:48e3}),Bt.onstatechange=()=>{F.info(`context state: ${Bt.state}${Bt.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),wn()},clearTimeout(SE)}catch(i){F.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof rc}`),SE=setTimeout(RE,1e3)}}var wn=()=>{Bt.state==="suspended"?(Au=Te(),dA(),vo(),document.addEventListener("click",wn)):Bt.state==="interrupted"?vo():(Au&&(X.addNumber({key:507800,value:Te()-Au,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),Au=0),uA(),document.removeEventListener("visibilitychange",wn),document.removeEventListener("click",wn))},xh=0,Ph=-1;function vo(){return new Promise((i,t)=>{if(Bt.state==="running")return i();Date.now()-xh<1e3?(clearTimeout(Ph),Ph=setTimeout(()=>{xh=Date.now(),Bt.resume().then(i,t)},1e3)):(clearTimeout(Ph),xh=Date.now(),Bt.resume().then(i,t))}).catch(i=>{F.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",wn)})}document.addEventListener("click",wn);function dA(){ic===-1&&(ic=setTimeout(()=>{Bt.state==="suspended"&&(Lh=!0,U.emit("155",{isSuspended:!0}))},kh))}function uA(){ic!==-1&&(clearTimeout(ic),ic=-1,Lh&&(Lh=!1,U.emit("155",{isSuspended:!1})))}function vE(){if(!st||bE!==-1)return;let i=()=>{Te()-AE<500||(Bt&&Bt.state==="running"&&Bt.currentTime===yE&&(F.warn("context is fake running, auto resume"),Bt.suspend().catch(t=>{F.warn(`context suspend failed: ${t}`)})),yE=Bt.currentTime,AE=Te())};bE=setInterval(()=>{i()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&i()})}var ze=i=>Bt;var yt=class{constructor(t){this.name=t;m(this,"node");m(this,"node2");m(this,"pre",new Set);m(this,"next",new Set);m(this,"context");m(this,"connectedNodes",new Set);m(this,"nextInputChannelMap",new Map);m(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){F.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),X.addSuccessEvent({key:502701})}catch(o){F.error(o),X.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),X.addSuccessEvent({key:502702})}catch(e){F.error(e),X.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},yu=class extends yt{constructor(e=256){super();this.fftSize=e;m(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},oc=class{constructor(){m(this,"source",new yt);m(this,"gain",new yt);m(this,"destination",new yt)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(ze().createGain()),this.gain.node.gain.value=t}replaceSource(t){let e=sc(t);e&&this.source.replaceNode(e)}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},On=class extends oc{constructor(e){super();this.context=e;m(this,"aec",new yt("aec"));m(this,"mixNode",new yt("mixNode"));m(this,"silentNode",new yt("silentNode"));m(this,"denoiser",new yt("denoiser"));m(this,"voiceChanger",new yt("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},bu=class{constructor(){m(this,"audioContext",ze("audio-mixer"));m(this,"destination",this.audioContext.createMediaStreamDestination());m(this,"inputs",new Set);m(this,"mixWeight",0);this.destination.channelCount=1}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},CE=new WeakMap;function sc(i){try{let t=CE.get(i);if(t)return t;let e=ze();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return CE.set(i,t),t}catch(t){if(ot&&t instanceof Error&&t.name==="NotSupportedError")F.warn(t);else throw t}}var Er=class Er{constructor(t){m(this,"_volume",0);m(this,"_volumeDb",0);m(this,"_log");m(this,"_scriptProcessorNode",null);m(this,"_audioWorkletNode",null);m(this,"_interval",200);m(this,"ready",this.preload());let{log:e}=t;this._log=e,U.on(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Er.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Er.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Er.workletReady=Gi(Er.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Er.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Er.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Er.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),qe.logFailedEvent({userId:this._log.userId,eventType:yr.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=ze("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Er.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,U.off(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};m(Er,"lastMessageTime",0),m(Er,"audioContext",ze("volume-meter")),m(Er,"workletReady");var Ru=Er,nc=class extends yt{constructor(e){super();m(this,"_volumeMeter");this._volumeMeter=new Ru(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return y(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}},vu=Ru;var OE=bi(ki(),1);var DE=i=>t=>t.deviceId===i;var ac=class{constructor(t,e){m(this,"kind");m(this,"type");m(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&xn(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(DE(o.deviceId))){let s=`${this.kind}${this.type}Added`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(DE(o.deviceId))){let s=`${this.kind}${this.type}Removed`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},Uh=class extends OE.EventEmitter{constructor(){super();m(this,"audioInputs",new ac(M.AUDIO,"Input"));m(this,"videoInputs",new ac(M.VIDEO,"Input"));m(this,"audioOutputs",new ac(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||gt.run("interval",()=>{this.update()},{delay:1e4}))}init(){Mn().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return y(this,arguments,function*(e=0){let r=yield Mn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=ze())==null?void 0:r.outputLatency)*1e3>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))||this.audioInputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},dt=ma||en?null:new Uh;function xn(i){return i.deviceId===i.groupId&&i.groupId===""}function Mn(){return y(this,arguments,function*(i=0){if(Hi()||!pu())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{xn(r)&&(r.kind===M.AUDIO_INPUT?e.audio=!0:r.kind===M.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e),e.audio&&vo()}catch(o){F.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&Vh.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function cr(i=!1){return dt.update(i?1:0).then(t=>t.audioInputs.devices)}function dr(i=!1){return dt.update(i?2:0).then(t=>t.videoInputs.devices)}var wE=!1;function ME(){return y(this,null,function*(){try{wE||(wE=!0,F.info(`speakers:${(yield Co()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function Co(i=!1){return y(this,null,function*(){return(st||ct)&&(i=!1),dt.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Vh=new Set;function xE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${M.VIDEO_INPUT}`;return!!Vh.has(r)}function PE(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${M.AUDIO_INPUT}`;return!!Vh.has(r)}function Fh(i,t){return y(this,null,function*(){let r=(yield cr()).find(o=>o.deviceId===os);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function LE(s){return y(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===os?yield Fh(e,r):!0})}var Cu,Bh=class extends oc{constructor(e){super();this.log=e;m(this,"volumeMeter");m(this,"volumeMeterAfter3A");m(this,"volumeDestination");m(this,"analyser",new yu);this.volumeMeter=new nc({log:this.log}),this.volumeMeterAfter3A=new nc({log:this.log}),this.volumeDestination=new yt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},Pn=class i extends Jr{constructor(e){super(e,M.AUDIO);m(this,"_outputDeviceId");m(this,"_volume",1);m(this,"_destination",ze("player").createMediaStreamDestination());m(this,"pipeline");m(this,"volumeMeterMode","worklet");m(this,"enableVolumeControlInIOS");this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new Bh(this._log)}setTrack(e){}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Cr==="15.2"||Cr==="15.3"||Cr==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Cu||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,Fe(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Cu&&(Cu=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(je.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return y(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?(this.pipeline.volumeMeter.init(),this.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(ze("player").createAnalyser()),ME(),wt(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return y(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},Nu=class extends Pn{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(je.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Du=class extends Pn{constructor(e){super(e);m(this,"_sourceElement");m(this,"_output",new yt);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(ze("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(je.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){if(this._volume=e,this.useDestination)this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`);else if(e<=1&&!st)this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element");else{if(st)if(this.enableVolumeControlInIOS)vE();else return;if(ot&&!this.pipeline.source.node){this._log.warn("set pipeline volume failed: no source node");return}this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),At(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play())}}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&vr&&(Cu=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var ys=class extends ue{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Du:er}){var a;super();m(this,"id",Ua());m(this,"userId","");m(this,"isRemote");m(this,"mediaType");m(this,"room");m(this,"user");m(this,"_log");m(this,"_inputTrack");m(this,"_outputTrack");m(this,"isPlayCalled");m(this,"container",null);m(this,"player");m(this,"subVideoPlayerMap");m(this,"muted",!1);m(this,"abortCtrl");m(this,"objectFit","cover");m(this,"mirror");m(this,"rotation");m(this,"isScreen",!1);m(this,"manager");m(this,"trackSettings");m(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=F.createLogger({parent:s==null?void 0:s.getLogger(),id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Xr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Xr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:s==null?void 0:s.enableVolumeControlInIOS}),this.player.on(je.PLAYER_STATE_CHANGED,d=>{if(U.emit(B.PLAYER_STATE_CHANGED,Y({track:this},d)),this.emit("player-state-changed",d),d.state==="PLAYING"&&this.room){let l=!0;for(let{remoteAudioTrack:p,remoteVideoTrack:f,remoteAuxiliaryTrack:g}of[...this.room.remotePublishedUserMap.values()])if(p.isAvailable&&!p.player.isPlaying||f.isAvailable&&!f.player.isPlaying||g.isAvailable&&!g.player.isPlaying){l=!1;break}l&&Ro()&&IE()}}),this.kind===M.VIDEO&&(this.player.on(je.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(je.LOADED_DATA),U.emit(B.VIDEO_LOADED_DATA,{track:this})}),this.player.on(je.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(je.LOADED_META_DATA)}),this.player.on(je.MEDIA_TRACK_CHANGED,d=>{var l;(l=this.subVideoPlayerMap)==null||l.forEach(p=>p.setTrack(d))}),this.player.on(je.RESIZE,d=>{this.emitFirstVideoFrameEvent(je.RESIZE),this.emit("video-size-changed",Y({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},d))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(je.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||F}get kind(){return this.mediaType===1?M.AUDIO:M.VIDEO}get isAudio(){return this.kind===M.AUDIO}get strMediaType(){return this.mediaType===4?M.VIDEO:this.mediaType===2?M.SCREEN:M.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return y(this,null,function*(){let o=mt(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!O(r.muted)&&this.setPlayerMute(r.muted),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof er&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),mt(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!O(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof er&&(this.player.setObjectFit(this.objectFit),r&&!O(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof er&&this.player.setContainer(o)),U.emit(B.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),mt(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==M.VIDEO||O(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Ye(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return y(this,null,function*(){if(!this._outputTrack||this.kind===M.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(d=>n===d)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(O(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new er({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.isFirstVideoFrameEmitted=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(Cm(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return y(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),U.emit(e?B.TRACK_MUTED:B.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){Ft(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){At(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(Cm(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){return y(this,null,function*(){var o;this.log.warn("handleAutoPlayFailed",e);let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((Oi||Mi)&&(yield $r(100),(o=this.player)!=null&&o.isPlaying))return;Dn()}else document.addEventListener("click",r,!0);U.once(B.LOCAL_TRACK_CAPTURE_SUCCESS,({track:s})=>{s.kind==="audio"&&Ro()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",e)})}getVideoFrame(){return this.player instanceof er?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,d;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((d=this.player.element)==null?void 0:d.videoHeight)||0;e===je.RESIZE&&!o&&!s||e===je.LOADED_META_DATA&&!o&&!s||(e===je.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,fr(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};Z([et([],ue.INIT,{sync:!0})],ys.prototype,"close",1);var lA=Object.prototype.hasOwnProperty,{toString:_w}=Object.prototype;function mA(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Jt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(lA.call(i,t))return!1;return!0}}return!1}var cc=mA;var hA=function(i){return y(this,null,function*(){let t=fA(i);F.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];if(t.audio&&(e=yield cr(),F.info(`microphones: ${br(e.map(s=>_e(Y({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield dr(),F.info(`cameras: ${br(r,{keysToInclude:o})}`),!Ye(t.video)&&t.video.facingMode==="user"&&!t.video.deviceId)){let n=r.filter(a=>!a.label.includes("infrared")).find(a=>a.label.includes("facing front"));n&&(t.video.deviceId=n.deviceId,F.info(`exclude infrared camera: ${JSON.stringify(t)}`))}try{let s=yield navigator.mediaDevices.getUserMedia(t);return Eh&&s.getTracks().forEach(n=>{var d;let a=n.getCapabilities();F.info(`${n.kind} capabilities: ${br(a,{keysToInclude:Id})}`),!O(i.echoCancellation)&&((d=a.echoCancellation)==null?void 0:d.indexOf(i.echoCancellation))===-1&&F.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(a.echoCancellation)}], but received '${i.echoCancellation}'`)}),t.audio&&vo(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=We({key:He.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=We({key:He.MICROPHONE_NOT_FOUND}))),new se({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},pA=Eo({retryFunction:hA,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"||i.name==="AbortError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!ct||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&kE(r[0].microphoneId,!1),r[0].cameraId&&kE(r[0].cameraId,!0)},onRetrying:i=>{F.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{qe.logFailedEvent({eventType:yr.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{qe.logSuccessEvent({eventType:yr.GET_USER_MEDIA_RETRY}),qe.uploadEvent({log:`stat-${yr.GET_USER_MEDIA_RETRY}-success-${i}`})}});function kE(i,t){return y(this,null,function*(){let r=(t?yield dr():yield cr()).find(o=>o.deviceId===i);r&&Xe(r.getCapabilities)&&F.warn(br(r.getCapabilities(),{keysToInclude:Id}))})}function fA(i){return{audio:gA(i),video:EA(i)}}function gA(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!cc(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(Fe(i.channelCount)&&(t.channelCount=i.channelCount),(Ye(i.echoCancellation)||i.echoCancellation==="remote-only"||i.echoCancellation==="all")&&(t.echoCancellation=i.echoCancellation),Ye(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Ye(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),cc(t)?!0:t)}function EA(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!cc(e)?e:(i.width&&(e.width={ideal:i.width},t&&!ot&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!ot&&(e.height.max=i.height)),ot&&Gr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),cc(e)?!0:e)}var UE=pA;function No(i){return Pe((t,e)=>function(...r){return y(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function VE(i){return Pe((t,e)=>function(...r){return y(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Pe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var FE=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&F.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{F.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var _A=0,wu=class{constructor(){m(this,"log",F.createLogger({id:`fq${++_A}`}));m(this,"isRunning",!1);m(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,n;let r=Y({},t),o=new Promise((a,d)=>{r.resolve=a,r.reject=d});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},BE=new WeakMap,$E=new WeakMap;function Ou(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=BE.get(this)||new wu;return BE.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function Mu(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=$E.get(this)||new Map,d=a.get(s(n))||new wu;return a.set(s(n),d),$E.set(this,a),d.push({fn:o,args:n,context:this})},r}}function xu(i,t){return Pe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=Te();return fo(n)?n.then(d=>(t?X.addSuccessEvent({key:s,cost:Te()-a}):X.addSuccessEvent({key:s}),d)).catch(d=>{throw X.addFailedEvent({key:s,error:d}),d}):(X.addSuccessEvent({key:s}),n)}catch(n){throw X.addFailedEvent({key:s,error:n}),n}})}var Cp={};yi(Cp,{Events:()=>Et,Inspect:()=>Nr,LastSink:()=>bs,Sink:()=>fe,Subscribe:()=>Rs,TimeoutError:()=>dc,audit:()=>ty,bindCallback:()=>BA,bindNodeCallback:()=>$A,buffer:()=>CA,bufferCount:()=>vA,bufferTime:()=>Iy,call:()=>HE,catchError:()=>yp,combineLatest:()=>GE,concat:()=>SA,concatMap:()=>my,concatMapTo:()=>hy,count:()=>GA,create:()=>Ve,debounce:()=>ry,debounceTime:()=>iy,defer:()=>jE,delay:()=>Sy,deliver:()=>Ie,dispose:()=>Pu,elementAt:()=>oy,empty:()=>hc,every:()=>dy,exhaustMap:()=>gy,exhaustMapTo:()=>Ey,expand:()=>Ay,filter:()=>tr,find:()=>sy,findIndex:()=>ny,first:()=>ay,fromAnimationFrame:()=>VA,fromArray:()=>MA,fromEvent:()=>Ae,fromEventPattern:()=>xA,fromFetch:()=>PA,fromIterable:()=>LA,fromPromise:()=>JE,fromReadableStream:()=>UA,fromReader:()=>kA,groupBy:()=>_y,identity:()=>TA,ignoreElements:()=>JA,iif:()=>yA,inspect:()=>WE,interval:()=>zh,last:()=>cy,map:()=>wo,mapTo:()=>ly,max:()=>jA,merge:()=>uc,mergeMap:()=>py,mergeMapTo:()=>fy,min:()=>qA,never:()=>HA,nothing:()=>Ge,of:()=>OA,pairwise:()=>uy,pipe:()=>ye,race:()=>jh,range:()=>FA,reduce:()=>Jh,retry:()=>Ry,scan:()=>Ap,setAsapScheduler:()=>wA,share:()=>ji,shareReplay:()=>AA,skip:()=>QA,skipUntil:()=>YA,skipWhile:()=>Fu,startWith:()=>lc,subject:()=>bt,subscribe:()=>Le,sum:()=>zA,switchMap:()=>ui,switchMapTo:()=>qi,take:()=>Qr,takeLast:()=>XA,takeUntil:()=>Je,takeWhile:()=>XE,tap:()=>Ds,throttle:()=>KA,throwError:()=>WA,timeInterval:()=>Ty,timeout:()=>vp,timer:()=>mc,toPromise:()=>yy,toReadableStream:()=>by,withLatestFrom:()=>RA,zip:()=>bA});function Ge(...i){}var HE=i=>i(),TA=i=>i;function Pu(){this.dispose()}var WE=()=>typeof __FASTRX_DEVTOOLS__!="undefined",IA=1,Nr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new $h(t,this,this.streamId++);return Et.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},bs=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=Ge,this.error=Ge,this.next=Ge,this.dispose=Ge,this.subscribe=Ge,this.doDefer()}subscribe(t){return t instanceof Nr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(HE),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},fe=class extends bs{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},Rs=class extends bs{constructor(t,e=Ge,r=Ge,o=Ge){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Ge,t instanceof Nr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{Et.defer(s,0)}),Et.create(s),Et.pipe(s),this.sourceId=s.id,this.subscribe(t),Et.subscribe({id:s.id,end:!0}),e==Ge?this._next=n=>Et.next(s,0,n):this.next=n=>{Et.next(s,0,n),e(n)},o==Ge?this._complete=()=>Et.complete(s,0):this.complete=()=>{this.dispose(),Et.complete(s,0),o()},r==Ge?this._error=n=>Et.complete(s,0,n):this.error=n=>{this.dispose(),Et.complete(s,0,n),r(n)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function ye(i,...t){return t.reduce((e,r)=>r(e),i)}function Ve(i,t,e){if(WE()){let r=Object.defineProperties(Object.setPrototypeOf(i,Nr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});Et.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof Nr&&Et.addSource(r,s)}return r}return i}function Ie(i,t){return function(...e){return r=>{if(r instanceof Nr){let o=Ve(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,Et.pipe(o),o}else return o=>r(new i(o,...e))}}}function Do(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var $h=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{Et.defer(this.source,this.id)})}next(t){Et.next(this.source,this.id,t),this.sink.next(t)}complete(){Et.complete(this.source,this.id),this.sink.complete()}error(t){Et.complete(this.source,this.id,t),this.sink.error(t)}},Et={addSource(i,t){Do("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){Do("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){Do("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){Do("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){Do("defer",{id:i.id,streamId:t})},pipe(i){Do("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){Do("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=IA++),Do("create",{name:i.toString(),id:i.id})}},dc=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var Lu=class extends bs{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function ji(){return i=>{let t=new Lu(i);if(i instanceof Nr){let e=Ve(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,Et.pipe(e),e}return Ve(t.add.bind(t),"share",arguments)}}function uc(...i){return Ve(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function jh(...i){return Ve(t=>{let e=new Map;i.forEach(r=>{let o=new fe(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function SA(...i){return Ve(t=>{let e=0,r=i.length,o=new fe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function AA(i){return t=>{let e=new Lu(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},Ve(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function yA(i,t,e){return Ve(r=>i()?t(r):e(r),"iif",arguments)}function GE(...i){return Ve(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(d,l)=>{let p=new fe(t);p.next=f=>{r--,p.next=g=>{s[l]=g,r===0&&t.next(s)},p.next(f)},p.complete=n,p.subscribe(d)};i.forEach(a)},"combineLatest",arguments)}function bA(...i){return Ve(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,d)=>{let l=new fe(t),p=[];o[d]=p,l.next=f=>{p.push(f),o.every(g=>g.length)&&t.next(o.map(g=>g.shift()))},l.complete=s,l.subscribe(a)};i.forEach(n)},"zip",arguments)}function lc(...i){return t=>Ve((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var Hh=class extends fe{constructor(t,...e){super(t);let r=new fe(this.sink);r.next=o=>this.buffer=o,r.complete=Ge,r.subscribe(GE(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},RA=Ie(Hh,"withLatestFrom"),Wh=class extends fe{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},vA=Ie(Wh,"bufferCount"),Gh=class extends fe{constructor(t,e){super(t),this.buffer=[];let r=new fe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Ge,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},CA=Ie(Gh,"buffer");var NA=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})};function bt(i){let t=arguments,e=ji()(Ve(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=Ge,e.complete=Ge,e.error=Ge,e}function jE(i){return Ve(t=>t.subscribe(i()),"defer",arguments)}var Ln={promise:i=>{Promise.resolve().then(i)},setImmediate:typeof setImmediate!="undefined"?i=>setImmediate(i):null,setTimeout:i=>setTimeout(i,0)},DA=()=>typeof Promise!="undefined"?Ln.promise:Ln.setImmediate?Ln.setImmediate:Ln.setTimeout,qh=DA(),qE=i=>t=>{qh(()=>i(t))},wA=i=>{typeof i=="function"?qh=i:Ln[i]&&(qh=Ln[i])};var zE=i=>qE(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function OA(...i){return Ve(zE(i),"of",arguments)}function MA(i){return Ve(zE(i),"fromArray",arguments)}function zh(i){return Ve(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function mc(i,t){return Ve(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>clearTimeout(o);e.defer(s)},"timer",arguments)}function ku(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function xA(i,t){return Ve(ku(i,t),"fromEventPattern",arguments)}function Ae(i,t){if("on"in i&&"off"in i)return Ve(ku(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return Ve(ku(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return Ve(ku(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function JE(i){return Ve(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function PA(i,t){return Ve(jE(()=>JE(fetch(i,t))),"fromFetch",arguments)}function LA(i){return Ve(qE(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function kA(i){let t=e=>NA(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return Ve(e=>{t(e)},"fromReader",arguments)}function UA(i){return Ve(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function VA(){return Ve(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function FA(i,t){return Ve((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function BA(i,t,...e){return Ve(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function $A(i,t,...e){return Ve(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function HA(){return Ve(()=>{},"never",arguments)}function WA(i){return Ve(t=>t.error(i),"throwError",arguments)}function hc(){return Ve(i=>i.complete(),"empty",arguments)}var vs=class extends fe{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},Jh=Ie(vs,"reduce"),GA=i=>Ie(vs,"count")((t,e)=>i(e)?t+1:t,0),jA=()=>Ie(vs,"max")(Math.max),qA=()=>Ie(vs,"min")(Math.min),zA=()=>Ie(vs,"sum")((i,t)=>i+t,0);var Xh=class extends fe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},tr=Ie(Xh,"filter"),Qh=class extends fe{next(t){}},JA=Ie(Qh,"ignoreElements"),Yh=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},Qr=Ie(Yh,"take"),Zh=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=Pu,r.subscribe(e)}},Je=Ie(Zh,"takeUntil"),Kh=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):(this.doDefer(),this.complete())}},XE=Ie(Kh,"takeWhile"),XA=i=>Jh((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),ep=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},QA=Ie(ep,"skip"),tp=class extends fe{constructor(t,e){super(t),t.next=Ge;let r=new fe(t);r.next=()=>{r.doDefer(),t.resetNext()},r.complete=Pu,r.subscribe(e)}},YA=Ie(tp,"skipUntil"),rp=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Fu=Ie(rp,"skipWhile"),ZA={leading:!0,trailing:!1},ip=class extends fe{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},Uu=class extends fe{constructor(t,e,r=ZA){super(t),this.durationSelector=e,this.config=r,this._throttle=new ip(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=Ge,this._throttle.complete(),super.complete()}},KA=Ie(Uu,"throttle"),ey={leading:!1,trailing:!0},ty=i=>Ie(Uu,"audit")(i,ey),op=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Vu=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new op(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},ry=Ie(Vu,"debounce"),iy=i=>Ie(Vu,"debounceTime")(t=>mc(i)),sp=class extends fe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},oy=Ie(sp,"elementAt"),sy=i=>t=>Qr(1)(Fu(e=>!i(e))(t)),np=class extends fe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},ny=Ie(np,"findIndex"),ap=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.doDefer(),this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},ay=Ie(ap,"first"),cp=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},cy=Ie(cp,"last"),dp=class extends fe{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.doDefer(),this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},dy=Ie(dp,"every");var up=class extends fe{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},Ap=Ie(up,"scan"),lp=class extends fe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},uy=Ie(lp,"pairwise"),Bu=class extends fe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},wo=Ie(Bu,"map"),ly=i=>Ie(Bu,"mapTo")(t=>i),Cs=class extends fe{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},Ns=class i extends fe{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete===i.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},$u=class extends Cs{},Hu=class extends Ns{next(t){this.subInner(t,$u),this.next=e=>{this.currentSink.dispose(),this.subInner(e,$u)}}},ui=Ie(Hu,"switchMap");function qu(i){return(t,e)=>i(()=>t,e)}var qi=qu(Ie(Hu,"switchMapTo")),mp=class extends Cs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Wu=class extends Ns{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),mp),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},my=Ie(Wu,"concatMap"),hy=qu(Ie(Wu,"concatMapTo")),hp=class extends Cs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Gu=class extends Ns{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,hp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},py=Ie(Gu,"mergeMap"),fy=qu(Ie(Gu,"mergeMapTo")),pp=class extends Cs{dispose(){this.context.resetNext(),super.dispose()}},ju=class extends Ns{next(t){this.next=Ge,this.subInner(t,pp)}},gy=Ie(ju,"exhaustMap"),Ey=qu(Ie(ju,"exhaustMapTo")),fp=class extends fe{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=bt(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},_y=Ie(fp,"groupBy"),gp=class extends fe{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},Ty=Ie(gp,"timeInterval"),Ep=class extends fe{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},Iy=Ie(Ep,"bufferTime"),_p=class extends fe{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},Sy=Ie(_p,"delay"),Tp=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},yp=Ie(Tp,"catchError"),Ip=class extends Cs{tryComplete(){let t=this.context.inners.delete(this);super.dispose(),t&&this.context.checkComplete()}next(t){this.sink.next(t),this.context.expandValue(t)}},Sp=class extends Ns{constructor(t,e){super(t,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(t){this.sink.next(t),this.expandValue(t)}expandValue(t){let e=new Ip(this.sink,t,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(t,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},Ay=Ie(Sp,"expand");var yy=()=>i=>new Promise((t,e)=>{let r;new Rs(i,o=>r=o,e,()=>t(r))}),by=()=>i=>{let t;return new ReadableStream({start(e){t=new Rs(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=Ge,t=Ge,e=Ge)=>r=>new Rs(r,i,t,e),bp=class extends fe{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},Ds=Ie(bp,"tap"),Rp=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new dc(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},vp=Ie(Rp,"timeout"),Ry=(i=1/0)=>t=>{if(t instanceof Nr){let e=Ve(r=>{let o=i,s=new fe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,Et.pipe(e),e}else return e=>{let r=i,o=new fe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var kn=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(kn||{}),ws=class ws extends ys{constructor(e,r){super({mediaType:e,PlayerClass:r});m(this,"isRemote",!1);m(this,"deviceId");m(this,"groupId","");m(this,"label","");m(this,"sourceTrack");m(this,"enableAutoSwitchWhenRecapturing",!0);m(this,"_isRecapturing",!1);m(this,"_lastRecaptureTime",0);m(this,"_onMuteTimeoutId",-1);m(this,"_encodeCheckTimeoutId",-1);m(this,"recaptureMode",0);m(this,"profile");m(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(M.MUTE,this.onTrackMuted),e.addEventListener(M.UNMUTE,this.onTrackUnmuted),e.addEventListener(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(M.MUTE,this.onTrackMuted),e.removeEventListener(M.UNMUTE,this.onTrackUnmuted),e.removeEventListener(M.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e,r=!1){return y(this,null,function*(){var s;let o=this.sourceTrack;try{let n=Te();U.emit(B.LOCAL_TRACK_CAPTURE_START,{track:this});let a;e.customSource?(a=new MediaStream,a.addTrack(e.customSource)):(r||(s=this.sourceTrack)==null||s.stop(),a=yield UE(e));let d=a.getTracks()[0];return yield this.setInputMediaStreamTrack(d),e.customSource||(this.sourceTrack=d,this.updateDeviceIdInUse(),this.listenDeviceChange()),U.emit(B.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Te()-n}),a}catch(n){throw U.emit(B.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:n}),this.log.error(`getUserMedia error observed ${n}`),n}finally{r&&(o==null||o.stop())}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=cs(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}publish(e,r){return y(this,null,function*(){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),yield r,this._checkPublishFlag(e)})}_checkPublishFlag(e){return new Promise((r,o)=>y(this,null,function*(){var l,p,f,g;let s=()=>o(new se({code:q.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?r():((this.state===ue.INIT||this.state==="ready")&&s(),ye(Ae(e,"local-publish-flag-changed"),tr(()=>this.hasFlag),Je(uc(Ae(this,ue.INIT),Ae(this,"ready"))),Le(r,o,s))),(((p=(l=this.room)==null?void 0:l.networkQuality)==null?void 0:p.uplinkNetworkQuality)||0)>3)return r();let a=e.heartbeatCount,d=((g=(f=this.mediaTrack)==null?void 0:f.stats)==null?void 0:g.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(()=>y(this,null,function*(){var R,N,C,P,z,H,ge;if((((N=(R=this.room)==null?void 0:R.networkQuality)==null?void 0:N.uplinkNetworkQuality)||0)>3||e.heartbeatCount-a<3)return r();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((C=this.mediaTrack)!=null&&C.stats){let we=this.mediaTrack.stats.totalFrames||0;we-d===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",we)}let Ue=this.kind===M.AUDIO,W=this.stat.bytesSent>0;if(X[W?"addSuccessEvent":"addFailedEvent"]({key:Ue?503700:513702}),!Ue){let we=((z=(P=this.room)==null?void 0:P.videoCodec)==null?void 0:z.toUpperCase())||"H264",Ki={H264:513704,H265:513705,VP8:513706}[we];Ki&&X[W?"addSuccessEvent":"addFailedEvent"]({key:Ki})}if(!W){if(X.addEnum({key:Ue?503701:513703,value:fs()}),qe.uploadEvent({log:`stat-encode-failed-${this.kind}-${ps()||Li()}`,userId:this.userId}),this.log.warn(Ue?"encode failed":`${(ge=(H=this.room)==null?void 0:H.videoCodec)==null?void 0:ge.toUpperCase()} encode failed`),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield $r(5e3),this.stat.bytesSent>0||this.hasFlag)))return r();this.emit("6",this),o(new se({message:`${this.strMediaType} encode failed`,code:Ue?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED}))}}}),1e4)}))}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),U.emit(B.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return y(this,null,function*(){if(this.sourceTrack&&Nn){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield LE({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Mn().then(n=>{let a=n.find(d=>{let l=d.deviceId===e;return r&&(l=l&&d.groupId===r),l});a&&this.emit("2",a)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===M.AUDIO&&!PE(this.sourceTrack)||this.kind===M.VIDEO&&!xE(this.sourceTrack)||this._isRecapturing||e&&Gr&&ct)}onTrackMuted(){if(super.onTrackMuted(),FE(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<on){setTimeout(()=>this.onTrackMuted(),on);return}this._onMuteTimeoutId=setTimeout(()=>y(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((st||at)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return y(this,null,function*(){if(wt(ws.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<on){setTimeout(()=>this.onTrackEnded(),on);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e,r=!1){return y(this,null,function*(){var n;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let o=this.sourceTrack;r||(n=this.sourceTrack)==null||n.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let s={useExactDeviceId:!0};if(e==="user"||e==="environment")s.facingMode=e;else{let a;(this.kind==="audio"?yield cr():yield dr()).find(l=>l.deviceId===e)&&(a=e),s.deviceId=a}return this.capture(s,r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(a=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${a.message}`),this.emit("5",a),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this,error:a})}).finally(()=>{r&&(o==null||o.stop())})})}getRecoverCaptureDeviceId(){return y(this,null,function*(){let e=this instanceof _r;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(pc.get(r)||0)+1;if(pc.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield dr()).find(n=>!pc.has(n.deviceId)):(yield cr()).find(n=>!pc.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Z([et(ue.INIT,"ready",{ignoreError:!0,sync:!0})],ws.prototype,"setStateToReady",1),Z([Ou()],ws.prototype,"capture",1),Z([et("ready","publish",{ignoreError:!0,success(){U.emit(B.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(e){var n;(n=this.room)==null||n.localTracks.delete(this);let r="error",o=e instanceof se?e:e.cause instanceof se?e.cause:e,s=!1;o instanceof se&&(o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(s=!0,r="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:o}),this.log[s?"info":"error"]("publish failed",o)}}),xu(521714,!1)],ws.prototype,"publish",1),Z([Pe(e=>function(){return y(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),et([],"ready",{sync:!0})],ws.prototype,"unpublish",1);var Xr=ws,pc=new Map;U.on(B.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&pc.delete(i.track.deviceId)});var li=class i extends Xr{constructor(e){super(1,Nu);m(this,"mediaType",1);m(this,"volume",0);m(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});m(this,"playerMuted",!0);m(this,"pipeline");m(this,"earMonitorGainNode",new yt);m(this,"_output",new yt);m(this,"codecPipeline",[]);m(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});m(this,"mixedAudioReferenceMap",new Map);m(this,"isAudioContextLongSuspended",!1);m(this,"after3aSilenceStartTime",0);this.manager=e,this.pipeline=new On(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),U.on(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return vu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.isProcessEnabled)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){O(e)||(e===0&&!this.after3aSilenceStartTime?this.after3aSilenceStartTime=Te():e>0&&(this.after3aSilenceStartTime=0))}setInputMediaStreamTrack(e){return y(this,null,function*(){let r=this.trackSettings||{};X.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),X.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),X.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield wt(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(a){return y(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s},n=!1){let d=yield wt(i.prototype,this,"capture").call(this,{video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r},n);return vo(),d})}switchDevice(e){return y(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===os){if(yield Fh(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),U.emit(B.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){dt&&!dt.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&dt.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${kn[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){ht(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield cr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&dt.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(dt.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return y(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),d=!1;!O(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,d=!0),!O(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,d=!0),!O(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,d=!0),d&&(ot||ct?yield n.applyConstraints(a).catch(l=>this._log.warn("update3A failed: ",l)):this.deviceId&&(yield this.recapture(this.deviceId,!0)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&X.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),st&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(ze().createGain()),this._output.setNode(ze().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(ct||st))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Yt<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}X.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=sc(e);if(!o)return;let s=new yt,n=ze().createGain();n.gain.value=1;let a=new yt;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),dt.off("audioInputAdded",this.handleMicrophoneAdded,this),dt.off("audioInputRemoved",this.handleMicrophoneRemoved,this),U.off(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e,r=!1){return y(this,null,function*(){try{yield wt(i.prototype,this,"recapture").call(this,e,r)}catch(o){let s=(yield cr()).find(n=>n.deviceId!==e);if(s)yield wt(i.prototype,this,"recapture").call(this,s.deviceId);else throw o}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:Ri()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${kh/1e3} seconds, change to source audio${vr?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var Os=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var zu=class{constructor(){m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Os(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((g,A)=>g+A.dataView.byteLength,0),d=new ArrayBuffer(a+t.data.byteLength),l=new DataView(d),p=new DataView(t.data),f=0;for(let g=0;g<n.length;g++)for(let A=0;A<n[g].dataView.byteLength;A++)l.setInt8(f++,n[g].dataView.getInt8(A));for(let g=0;g<t.data.byteLength;g++)l.setInt8(f++,p.getInt8(g));return t.data=d,n.length}return 0}};var Oo=class Oo extends Xr{constructor(e,r=4){super(r,er);m(this,"profile",Y({},pa));m(this,"avoidCropping",!1);m(this,"_scaleResolutionDownBy");m(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});m(this,"small");m(this,"isNeedToSetBandwidth");m(this,"muteImage");m(this,"manager");m(this,"_seiCodec",new zu);this.manager=e;let o=()=>{var s;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let n=Rr(((s=this.room)==null?void 0:s.sdkAppId)||0)?md:ld;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${n}`),this.setProfile(_e(Y({},this.profile),{width:1920,height:1080})),this.applyProfile()}};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!Nn||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!!((e=this.manager)!=null&&e.hasSmall)}setMute(e){return y(this,null,function*(){var r,o,s;if(Oe(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e,fillVideo:!0}),this.muteImage=e,wt(Oo.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),wt(Oo.prototype,this,"setMute").call(this,e)})}capture(a){return y(this,arguments,function*({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){let d={audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:n,customSource:s};if(d.facingMode==="environment"){let l=yield this.getDeviceIdWhenUsingBackCamera();l&&(d.cameraId=l)}return wt(Oo.prototype,this,"capture").call(this,d)})}setProfile(e){var o;let r=this.fallbackProfile(e);if(r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(r);else{let s=Rr(((o=this.room)==null?void 0:o.sdkAppId)||0)?md:ld;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${s}`),super.setProfile(_e(Y({},this.profile),{width:1920,height:1080}))}}applyProfile(){return y(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Vt===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:d=0,height:l=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=d*l;if(n&&p&&o&&p===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:M.VIDEO,videoType:M.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return Nn&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:wd(this.settings,this.profile)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return y(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),U.emit(B.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}getDeviceIdWhenUsingBackCamera(){return y(this,null,function*(){let e;try{if(Ma&&!Sn&&_h){let o=(yield dr(!0)).map(n=>{var a;return _e(Y({},n),{capabilities:(a=n.getCapabilities)==null?void 0:a.call(n)})}).filter(n=>{var a,d;return(d=(a=n.capabilities)==null?void 0:a.facingMode)==null?void 0:d.includes("environment")}),s=o[0];o.forEach(n=>{var p,f,g,A;let{capabilities:a}=n,d=(p=a.width)!=null&&p.max&&((f=a.height)!=null&&f.max)?a.width.max*a.height.max:0,l=(g=s.capabilities.width)!=null&&g.max&&((A=s.capabilities.height)!=null&&A.max)?s.capabilities.width.max*s.capabilities.height.max:0;d>l&&(s=n)}),s!=null&&s.capabilities&&(this._log.info("use max resolution back camera",s),e=s.deviceId)}}catch(r){this._log.warn("get max res camera failed",r)}return e})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=Y({},e);return e.width*e.height<=160*120&&at&&nr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Fm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),km(Cr,"14.3")&&Um(Cr,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(nr||ot)&&!La()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){dt&&!dt.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&dt.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${kn[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){ht(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield dr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&dt.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return y(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(dt.off("videoInputAdded",this.handleCameraAdded,this),this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return O(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){dt.off("videoInputAdded",this.handleCameraAdded,this),dt.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield wt(Oo.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield dr()).find(s=>s.deviceId!==e);if(o)yield wt(Oo.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||O(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Z([No(function(e){this.setContentHint(e.contentHint||"motion")})],Oo.prototype,"capture",1);var _r=Oo;var wp={};yi(wp,{REPORT_TYPE:()=>pn,buildSSOPackage:()=>Di,bytes2ms:()=>Zf,calculateScaleResolutionDownNumber:()=>wd,concatArrayBuffers:()=>ug,convertObjectNumberToInt:()=>Aa,copyProperties:()=>Yf,deepClone:()=>ss,deepCloneBasic:()=>bd,deepMerge:()=>Br,delay:()=>$r,fibonacci:()=>ns,formatedTime:()=>vd,getConstructorName:()=>dn,getContainerFromElement:()=>ag,getEnv:()=>zf,getFirst16Bits:()=>mg,getInternalVersion:()=>sg,getLast16Bits:()=>lg,getLoggerUrl:()=>Ni,getMediaStreamTrackInfo:()=>Dd,getMuteStateFromFlag:()=>cs,getNetworkType:()=>cn,getNumNetworkType:()=>Rd,getReconnectionTimeout:()=>eg,getStringByteLength:()=>cg,getTurnServer:()=>ng,getUint32Version:()=>Cd,getValueType:()=>ft,getViewListFromView:()=>mn,glog:()=>Ta,ipv4ToUint32:()=>ln,isArray:()=>mt,isAudioWorkletSupported:()=>ig,isBoolean:()=>Ye,isConstructor:()=>as,isEmpty:()=>un,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>tg,isNumber:()=>Fe,isObject:()=>pr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Jt,isPortrait:()=>bm,isPromise:()=>fo,isRemoteTrack:()=>rg,isRotate90Or270:()=>fr,isSetSinkIdSupported:()=>og,isString:()=>Oe,isUndefined:()=>O,loadImage:()=>hn,loadVideo:()=>dg,ms2bytes:()=>Kf,ms2samples:()=>ym,normalizeUrl:()=>ds,performanceNow:()=>Te,promiseAny:()=>Ia,samples2ms:()=>Am,setNetworkTypeFromWebRTC:()=>Qf,stringify:()=>br,stringifyIncludeValue:()=>Sa,throttlePromise:()=>Nd});var Cy=[-1,-1,1,-1,-1,1,1,1],Ny=[0,0,1,0,0,1,1,1];var Mo=class Mo extends ue{constructor(e,r){super();this.context=e;m(this,"name");m(this,"input");m(this,"output");m(this,"texture");m(this,"ctx2d",null);m(this,"fbo");m(this,"width",0);m(this,"height",0);m(this,"x",0);m(this,"y",0);m(this,"program");m(this,"vertexShader");m(this,"fragmentShader");m(this,"totalFrames",0);m(this,"dropFrames",0);m(this,"matchInputSize",!0);m(this,"texCoordBuffer");m(this,"positionBuffer");m(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});m(this,"cost",0);m(this,"_canvas",null);m(this,"_image");m(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Lt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Vt!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(Ny),this.positionBuffer=this.createBuffer(Cy),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof Nt&&this.render(e)||this.context instanceof Lt&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof Nt){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,n,a,d,l,p){let f=!O(a)&&!O(d)&&!O(l)&&!O(p);return this.ctx2d&&e?(e instanceof ImageData?(f?this.ctx2d.putImageData(e,r,o,a,d,l,p):this.ctx2d.putImageData(e,r,o),this.emit(Mo.RENDER,this.ctx2d.canvas)):(f?this.ctx2d.drawImage(e,a,d,l,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(Mo.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var f;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:d}=this,l=Date.now(),p=(e-this.lastInfo.totalFrames)/((l-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:l,fps:p,name:a,cost:d},Y({parent:(f=this.input)==null?void 0:f.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};m(Mo,"RENDER","render"),Z([et(ue.INIT,"connected",{sync:!0})],Mo.prototype,"connect",1),Z([et("connected",ue.INIT,{ignoreError:!0,sync:!0})],Mo.prototype,"disconnect",1),Z([et([],"closed",{sync:!0})],Mo.prototype,"close",1);var _t=Mo;var YE=ye(zh(250),wo(()=>performance.now()),ji()),ZE=i=>t=>{let e=0,r=performance.now();ye(YE,wo(o=>(o-r)/i>>0),tr(o=>o!=e?(e=o,!0):!1))(t)},Ju=i=>t=>{let e=performance.now();ye(YE,Fu(r=>r-e<i),Qr(1))(t)};var wy=[0,1,1,1,0,0,1,0],Ms=class extends _t{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));m(this,"_intervalId",0);m(this,"_sequence",0);m(this,"checkGLError",!1);m(this,"checkVisibilityChange");e instanceof Lt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(wy)}start(e){this.log.info(`${this.name} start render ${e} fps`),gt.clearTask(this._intervalId),this._intervalId=gt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(gt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof Nt){let o=this.context.ctx.getError();o&&this.context.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit(_t.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this.state!=="closed"&&(this._intervalId&&(gt.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(e){super.removeInput(e),gt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),gt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Un=class extends Ms{constructor(e,r){super(e,r);m(this,"_videoTrack");m(this,"_muteOb");m(this,"_closedOb",Ae(this,"closed"));m(this,"_subscription");m(this,"_canvasContainer");Number(xi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e.canvas.captureStream().getVideoTracks(),this._muteOb=Ae(this._videoTrack,"mute"),ye(Ae(this._videoTrack,"ended"),Je(this._closedOb),Le(()=>{this.context.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=ye(this._muteOb,Je(this._closedOb),qi(Ju(5e3)),tr(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},Xu=class extends Un{render(t){var r;let e=!!((r=this.input)!=null&&r.requestFrame(t));if(this.context._canvas2d){let o=this.context._canvas2d.getContext("2d");o.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),o.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height),this.emit(_t.RENDER,this.context._canvas2d)}else this.emit(_t.RENDER,this.context._canvas);return e}};var Qu=class extends Un{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var fc=class extends _t{constructor(e,r){super(e,Y({name:"imageSource"},r));m(this,"_lastImage");m(this,"_totalFrames",0);m(this,"_autoResize",!1);m(this,"_canvasRendered");m(this,"videoCallbackId",0);m(this,"waitingFirstFrame",!0);m(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Vt===16&&(this._canvasRendered=bt(),ye(this._canvasRendered,lc(this._image),ui(o=>o instanceof HTMLCanvasElement?Ae(o,"rendered"):hc()),Je(Ae(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),zr()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let d=this.context.ctx;d.texSubImage2D(d.TEXTURE_2D,0,0,0,d.RGBA,d.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let d=this.context.ctx;d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,n)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},gc=class extends fc{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",ye(Ae(this._player,je.PLAYER_STATE_CHANGED),Je(Ae(this,"closed")),tr(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},Dr=class extends gc{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new er({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},Yu=class extends _t{constructor(e,r,o){super(e,_e(Y({name:"textSource"},o),{create2d:!0}));m(this,"hasChange",!0);m(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),d=(n?parseInt(n[1],10):16)*o,l=this.content.split(`
32
+ `);for(let p=0;p<l.length;p++)this.ctx2d.fillText(l[p],e,r+p*d)}};var My=`
34
33
  // \u9876\u70B9\u7740\u8272\u5668
35
34
  attribute vec4 a_position;
36
35
  attribute vec2 a_texCoord;
@@ -40,7 +39,7 @@ void main() {
40
39
  gl_Position = a_position;
41
40
  v_texCoord = a_texCoord;
42
41
  }
43
- `,BA=`
42
+ `,xy=`
44
43
  // \u7247\u5143\u7740\u8272\u5668
45
44
  precision mediump float;
46
45
  varying vec2 v_texCoord;
@@ -48,88 +47,63 @@ uniform sampler2D u_texture;
48
47
 
49
48
  void main() {
50
49
  gl_FragColor = texture2D(u_texture, v_texCoord);
51
- } `;var sn=class extends Ve{constructor(e){super();p(this,"frameRate");p(this,"_canvas");p(this,"log");p(this,"hasAlpha",!1);p(this,"name");p(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}get canvas(){return this._canvas}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new di(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new da(this,e)}createVideoImageSource(e,r){return new Pc(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Uc(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new yl(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};p(sn,"_ids",0);var $A={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},ua=class ua extends sn{constructor(){super(...arguments);p(this,"defaultProgam");p(this,"defaultVShader");p(this,"defaultFShader");p(this,"ctx");p(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(e=!1){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${sn._ids++}`),e&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",$A),!this.ctx)throw new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,VA),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,BA),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,Se.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e,this._canvas2d&&(this._canvas2d.width=e)}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e,this._canvas2d&&(this._canvas2d.height=e)}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r),this._canvas2d&&(this._canvas2d.width=e,this._canvas2d.height=r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};p(ua,"UNAVAILABLE","unavailable"),Ie([Mt(Ve.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),Se.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),Se.addSuccessEvent({key:512700})}})],ua.prototype,"create",1),Ie([Mt("created",Ve.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(ua.UNAVAILABLE,e),this.removeAllListeners()}})],ua.prototype,"destroy",1);var cr=ua,mr=class extends sn{constructor(){super(...arguments);p(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${sn._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha,willReadFrequently:e.willReadFrequently}),!this.ctx)throw new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,Se.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),Se.addSuccessEvent({key:512703})}};Ie([Mt(Ve.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),Se.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),Se.addSuccessEvent({key:512701})}})],mr.prototype,"create",1),Ie([Mt("created",Ve.INIT,{ignoreError:!0,sync:!0})],mr.prototype,"destroy",1);function FA(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),c=e/a,d=r/a;n.sx=(i-c)/2,n.sy=(t-d)/2,n.sWidth=c,n.sHeight=d;break}}return n}var hf=class{constructor(t,e){this.node=t;this.layout=e;p(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},la=class extends or{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});p(this,"inputs",[]);p(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new hf(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(T=>T.node===e);if(o<0)return;let{x:s,y:n,width:a,height:c,zIndex:d,fillMode:m,rotation:l,hidden:f}=r;if(!z(d)&&this.inputs.some(T=>T.layout.zIndex===d&&T.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let g=this.inputs[o];z(s)||(g.layout.x=s),z(n)||(g.layout.y=n),z(a)||(g.layout.width=a),z(c)||(g.layout.height=c),z(l)||(g.layout.rotation=l),z(f)||(g.layout.hidden=f),m&&(g.layout.fillMode=m),!z(d)&&d!==g.layout.zIndex&&(g.layout.zIndex=d,this.inputs.sort((T,E)=>T.layout.zIndex-E.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof cr&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=FA(o.node.width,o.node.height,o.width,o.height,o.fillMode,Jr(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,c=Date.now(),d=(e-this.lastInfo.totalFrames)/((c-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:c,fps:d,name:a},be({parent:this.inputs.filter(m=>m).map(m=>m.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof cr)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var HA=[1,0,0,0,1,1,0,1],ui=class extends or{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});p(this,"mirror",!1);p(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof cr)try{this.setTexBuffer(HA)}catch(n){e.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){Jr(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var nn=class extends wi{constructor(e,r=4){super(r,Sr);p(this,"inputLocalVideoTracks",new Map);p(this,"inputLocalScreenTracks",new Map);p(this,"cameraNodeMap",new Map);p(this,"screenNodeMap",new Map);p(this,"textNodeMap",new Map);p(this,"imageNodeMap",new Map);p(this,"videoNodeMap",new Map);p(this,"endedIds",new Set);p(this,"videoContext");p(this,"mixNode");p(this,"destination");p(this,"manager");p(this,"stat");p(this,"_checkId",0);p(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(or.RENDER,o=>{this.emit("render",o)}),this.mixNode=new la(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=Jt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new mr({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let c=this.cameraNodeMap.get(n);c&&c.image.cancelVideoFrameCallback(c.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let c=this.screenNodeMap.get(n);c&&c.image.cancelVideoFrameCallback(c.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return D(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),ni&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,yr(this,$t).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;Tr===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let c=this.videoContext.createTextSource({content:o,font:s,color:n});c.resize(a.width,a.height),this._connectMix(c,a),this.textNodeMap.set(r,c)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(Tr===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof di){let d=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(d),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof di)n.replaceTrack(o);else{let d=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(d),this.cameraNodeMap.set(e,n)}let{width:a,height:c}=o.getSettings();a&&c&&n.resize(a,c)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,c=this.textNodeMap.get(r);c&&(z(o)||(c.content=o),z(s)||(c.font=s),z(n)||(c.color=n),c.resize(a.width,a.height),this._changeMixLayout(c,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new ui(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof ui&&(z(o)||(n.mirror=o),z(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof ui&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof ui&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof ui&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof ui&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof ui&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),Jt.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),tr(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var Sl=oc();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Sl,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var WA=function(i){return D(this,null,function*(){let t=null,e=jA(i);se.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Xn&&Fr<74||Zt||zt)&&se.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){se.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield GA(o,i.captureElement))}if(i.audio){let s=zA(i);se.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function GA(i,t){return D(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Rt(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Sl))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){se.warn(`cropTo target failed ${r}`)}})}function zA(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return z(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function jA(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:Zt?{max:i.width}:{ideal:i.width,max:i.width},height:Zt?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var WE=WA;var zi=class extends Zr{constructor(e){super(e,2);p(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});p(this,"objectFit","contain");p(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Sl===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(m){return D(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:c,preferDisplaySurface:d}){try{let l;return a||n?(l=new MediaStream,a&&l.addTrack(a),n&&l.addTrack(n)):(l=yield WE({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:c,preferDisplaySurface:d}),this.sourceTrack=l.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(l.getVideoTracks()[0]),l}catch(l){throw this.log.error(`getDisplayMedia error observed ${l}`),l instanceof Me?l:new Me({code:Te.INITIALIZE_FAILED,name:l.name,message:l.message})}})}switchDevice(e){return D(this,null,function*(){throw new Error("Method not implemented.")})}};Ie([Ko(function(e){this.setContentHint(e.contentHint||"detail")})],zi.prototype,"capture",1);var an=class extends Gi{constructor(t){super(t),this._log.id=`s-${this._log.id}`,this.isScreen=!0}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var qA='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',mf;function Vc(i,t=48e3,e=1,r){return D(this,null,function*(){let o=bt("dump");mf||(mf=yo(o,URL.createObjectURL(new Blob([qA],{type:"application/javascript"})))),yield mf;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,c)=>a.connect(n,0,c)),new ReadableStream({start(a){n.port.onmessage=c=>{a.enqueue(c.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var Il=class extends qu{constructor(e){super();this.room=e;p(this,"_localAudioTrack");p(this,"_localScreenAudioTrack");p(this,"log");p(this,"denoiser");p(this,"voiceChanger");p(this,"mixChangedDebounce");p(this,"audioProcessor");p(this,"encodePipeline",[]);p(this,"decodePipeline",[]);p(this,"getPCMAbortCtrlMap",new Map);p(this,"audioFrameEventConfigMap",new Map);p(this,"audioReferenceMap",new Map);p(this,"isLocalAudioNeedAudioProcess",!1);p(this,"isScreenAudioNeedAudioProcess",!1);this.log=se.createLogger({parent:e==null?void 0:e.getLogger(),id:"am",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var m,l;if(!this._localAudioTrack)return;let r=[],o=[];(m=this._localAudioPipline)!=null&&m.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(l=this._localAudioPipline)!=null&&l.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),c=()=>{for(let f=0;f<o.length;f++){let g=URL.createObjectURL(new Blob(n[f])),T=document.createElement("a");T.href=g,T.download=`${o[f]}.pcm`,T.style.display="none",document.body.appendChild(T),T.click(),URL.revokeObjectURL(g),T.remove()}clearTimeout(a),s.abort("download")},d=Vc(r).then(f=>f.pipeTo(new WritableStream({write(g){g.forEach((T,E)=>n[E]=n[E]?n[E].concat(T[0]):[T[0]])}}),s).catch(g=>c));return{then:d.then.bind(d),download:c}}getPCM(e,r){var v,M,w;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let c=Math.floor(s*.04),d=new Float32Array(c),m=new Float32Array(c),l,f,g=0,T=new AbortController,E=r===""?(v=this._localAudioTrack)==null?void 0:v.mediaTrack:(w=(M=this.room)==null?void 0:M.remotePublishedUserMap.get(r))==null?void 0:w.remoteAudioTrack.mediaTrack;if(!E){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let y=bt().createMediaStreamSource(new MediaStream([E]));return Vc([y],s,n,a).then(H=>H.pipeTo(new WritableStream({write(B){B[0][0]&&(g+B[0][0].length>c?(d.set(B[0][0].subarray(0,c-g),g),l=B[0][0].subarray(c-g),B[0][1]&&(m.set(B[0][1].subarray(0,c-g),g),f=B[0][1].subarray(c-g)),g+=c-g):(l&&(d.set(l,g),g+=l.length,l=void 0),f&&(m.set(f,g),f=void 0),d.set(B[0][0],g),B[0][1]&&m.set(B[0][1],g),g+=B[0][0].length),g>=c&&(g=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?d:[d,m]}),d=new Float32Array(c),m=new Float32Array(c)))}}),T).catch(B=>this.log.warn(`stop getPCM reason:${B}`))),T}get hasScreenAudioTrack(){return!z(this._localScreenAudioTrack)}get hasAudioTrack(){return!z(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof an)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof Gi)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof bo)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof an?delete this._localScreenAudioTrack:e instanceof Gi?delete this._localAudioTrack:e instanceof bo}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,c)=>{var d;(d=this._localAudioTrack)==null||d.mixAudioReference(a,c)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,c)=>{var d;(d=this._localScreenAudioTrack)==null||d.mixAudioReference(a,c)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var c;(c=this.room)==null||c.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){ee.on("113",this.handleLocalTrackStarted,this),ee.on("114",this.handleLocalTrackStopped,this),ee.on("115",this.handleRemoteTrackStarted,this),ee.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){ee.off("113",this.handleLocalTrackStarted),ee.off("114",this.handleLocalTrackStopped),ee.off("115",this.handleRemoteTrackStarted),ee.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||z(s))return;this.setAudioReferenceVolume(o,s)}}};function GE(i=30,t=2){return ut((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let c=new Me({code:Te.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||se).warn(c),t===2?n(c):t===1&&s()},i*1e3);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(a),e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a),this._checkPendingPromiseSet&&a&&this._checkPendingPromiseSet.delete(a)})})})}var ji=class ji extends Xs{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;p(this,"tinyId");p(this,"isRemote",!0);p(this,"jitterBufferDelay",0);p(this,"availableState");p(this,"remotePublishState");p(this,"_triggerCheckDecodeSubject",ir(Qe(this,ji.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new Ve(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new Ve(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ye(Oc(Qe(this,Ve.STATECHANGED),Qe(this.remotePublishState,Ve.STATECHANGED)),ts(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),lt(c=>{this.availableState.state!==(c?Ve.ON:Ve.OFF)&&(this.availableState.state=c?Ve.ON:Ve.OFF),this.updatePlayingState(c)}));let s=Ye(Qe(this.player,St.ERROR),Ur(c=>c.code===MediaError.MEDIA_ERR_DECODE)),n=Ye(xc(5e3),Ur(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===j.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=Ye(Ap(s,n),At(Qe(this,Ve.INIT)));Ye(this._triggerCheckDecodeSubject,Ur(()=>!this.ignoreDecodeError),Io(a),lt(c=>{this.reportDecodeResult(!1,c)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===ji.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Ve.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){var s,n;let o=this.kind===j.AUDIO;if(Se[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";Se[e?"addSuccessEvent":"addFailedEvent"]({key:Kn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(Se.addEnum({key:o?504701:514703,value:Bs()}),It.uploadEvent({log:`stat-decode-failed-${this.kind}-${Vs()||ho()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===j.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?Ve.ON:Ve.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};p(ji,"STATE_SUBSCRIBE","subscribe"),Ie([GE(5,1)],ji.prototype,"waitHasMediaTrack",1),Ie([Mt(Ve.INIT,ji.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),ee.emit(ce.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),rl(521716,!1)],ji.prototype,"subscribe",1),Ie([Mt(ji.STATE_SUBSCRIBE,Ve.INIT,{sync:!0,success(){this.log.info("unsubscribed"),ee.emit(ce.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ji.prototype,"unsubscribe",1);var ha=ji;var bo=class extends ha{constructor(e,r){super(e,r,1);p(this,"volume",0);p(this,"mediaType",1);p(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return Ju.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&Fu().AudioDecoder&&zs:!1}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:c,hasLeavingTag:d})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:c,hasLeavingTag:d})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var bl=class extends or{constructor(e,r,o,s,n){super(e,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:r});this.setContainer=s;p(this,"initStat",{alphaStitchingType:1});p(this,"end",ir());p(this,"minSize",320);p(this,"maxSize",1280);p(this,"draggable",!1);p(this,"startDragX",0);p(this,"startDragY",0);p(this,"left",0);p(this,"top",0);p(this,"baseWidth",320);p(this,"baseRatio");p(this,"container");this.initStat=n,this.draggable=o,this.bindDragEvents()}bindDragEvents(){let e=this.context._canvas;if(e)if(this.draggable){let r=At(this.end);Ye(Qe(e,"mousedown"),en(this.startDrag.bind(this)),Wi(()=>Ye(Qe(window,"mousemove"),At(Qe(window,"mouseup")))),r,lt(this.doDrag.bind(this))),Ye(Qe(e,"dblclick"),r,lt(this.resetPosition.bind(this))),Ye(Qe(e,"wheel"),r,lt(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}startDrag(e){e.preventDefault(),e.button===0&&(this.startDragX=e.clientX-this.left,this.startDragY=e.clientY-this.top)}renderCanvas(){let{container:e}=this;e||this.setContainer(),!(!e||!this.baseRatio||!this.draggable)&&(e.style.setProperty("width",`${this.baseWidth}px`),e.style.setProperty("height",`${this.baseWidth/this.baseRatio}px`),e.style.setProperty("position","fixed"),e.style.setProperty("left",`${this.left}px`),e.style.setProperty("top",`${this.top}px`))}doDrag(e){e.preventDefault(),this.left=e.clientX-this.startDragX,this.top=e.clientY-this.startDragY,this.renderCanvas()}handleZoom(e){e.preventDefault();let r=.1,o=e.deltaY,s=this.context._canvas;s&&(this.baseWidth||(this.baseWidth=s.offsetWidth),o<0?this.baseWidth=Math.min(this.baseWidth*(1+r),this.maxSize):this.baseWidth=Math.max(this.baseWidth*(1-r),this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(e,r,o,s,n){var g;let{ctx2d:a}=this,c=this.context._canvas;if(!a||!c)return!1;let d=super.draw2d(e,r,o,s,n),m=a.getImageData(0,0,s,n),{data:l}=m,f=!1;if(this.initStat.alphaStitchingType===1){let T=Math.floor(s/2);for(let E=0;E<n;E++)for(let y=0;y<T;y++){let v=(E*s+y)*4,M=y+T,w=(E*s+M)*4,H=l[w];l[w+3]=0;let B=H>=100;l[v+3]=B?255:0}f=super.draw2d(m,0,0,0,0,T,n),c.width=T}else if(this.initStat.alphaStitchingType===2){let T=Math.floor(n/2);for(let E=0;E<T;E++)for(let y=0;y<s;y++){let v=(E*s+y)*4,w=((E+T)*s+y)*4,H=l[w];l[w+3]=0;let B=H>=100;l[v+3]=B?255:0}f=super.draw2d(m,0,0,0,0,s,T),c.height=T}return(g=this.context.ctx)==null||g.clearRect(0,0,s,n),d&&f}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}};function JA(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var qi=class extends ha{constructor(e,r,o=4){super(e,r,o);p(this,"mediaType",4);p(this,"source");p(this,"shouldRenderAlpha",!1);p(this,"alphaNode");p(this,"shouldBeDraggable",!0);p(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}isAlphaSei(e){if(this.userId!==e.userId||e.seiPayloadType!==50)return!1;let r=new Uint8Array(e.data);return r.length%3!==0||r[0]!==0||r[1]!==1?!1:r}play(e,r){return(Nt(r==null?void 0:r.canvasRender)?r.canvasRender:Tr===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat(),ee.emit("156",{track:this,player:this.player})})}updateAlphaRenderInfo(e){let r=this.isAlphaSei(e);if(r)if(!this.alphaNode)this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(r[2]);else{let o=r[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===o)return;this.alphaNode.initStat={alphaStitchingType:o};let s=this.player.getElement();if(s){let n=s.videoWidth/s.videoHeight;n&&(this.alphaNode.baseRatio=n*(o===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(o))}}generateAlphaCanvasName(e){let r="alpha",o=lc[e];return`${r}_${o}_${this.userId}`}useCanvasPlayer(e){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let r=new mr({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&e?this.generateAlphaCanvasName(e):this.userId});r.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let o=new on(r,{name:"remotePlayer",logger:this.log});if(this.source=r.createVideoPlayerSource(this.player),this.player.setCanvas(r._canvas),this.shouldRenderAlpha&&e){let s=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},n=new bl(r,this.log,this.shouldBeDraggable,s,{alphaStitchingType:e});this.source.connect(n),n.connect(o),this.alphaNode=n}else this.source.connect(o);Ri()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,r),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=JA(r);if(!ft(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(a=>a.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(a=>a.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),ee.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}setDraggable(e){this.shouldBeDraggable=e,this.alphaNode&&(this.alphaNode.draggable=e,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},Al=class extends qi{constructor(e,r){super(e,r,2);p(this,"mediaType",2);p(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var ma=new Map;ee.on(ce.JOIN_SUCCESS,({room:i})=>{jt(i.userId,{eventId:32788})});ee.on(ce.LEAVE_START,({room:i})=>{jt(i.userId,{eventId:32789})});ee.on(ce.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),jt(i.room.userId,{eventId:t})}});ee.on(ce.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),jt(i.room.userId,{eventId:t})}});ee.on(ce.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===j.AUDIO?jt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):jt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});ee.on(ce.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===j.AUDIO?jt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):jt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});ee.on(ce.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&jt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&jt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&jt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});ee.on(ce.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&jt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&jt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&jt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});ee.on(ce.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&jt(i.room.userId,{eventId:i.kind===j.VIDEO?32780:32781})});ee.on(ce.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&jt(i.room.userId,{eventId:i.kind===j.VIDEO?32782:32783})});ee.on(ce.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&jt(i.userId,{eventId:r})});ee.on(ce.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&jt(i.userId,{eventId:s,remoteUserId:r})});ee.on(ce.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let c={H264:0,H265:1,VP8:2}[r.toUpperCase()],d={eventId:4004,param1:a,param2:c,streamType:n||2};e&&(d.remoteUserId=e,d.eventId=4005),jt(t,d),Se.addEnum({key:e?514701:513701,value:a}),Se.addEnum({key:e?514700:513700,value:c})});ee.on(ce.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===j.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),jt(i.userId,e)}});function jt(i,t){let e=qe(be({},t),{timestamp:to()});ma.has(i)?ma.get(i).push(e):ma.set(i,[e])}function zE(i){if(ma.has(i)){let t=ma.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return ma.delete(i),t}return[]}function jE(...i){return ut((t,e)=>function(...r){return QA.call(this,i,r,e,this._name),t.apply(this,r)})}function QA(i,t,e,r){try{if(Gt(i))for(let o=0;o<i.length;o++)vl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else vl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw se.error(o),o}}function vl({rule:i,value:t,key:e,fnName:r,className:o}){if(z(t)){if(i.required)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(z(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let c=0;c<i.type.length;c++)i.type[c]===null&&t===null&&(a=!0),Rt(i.type[c])&&t instanceof i.type[c]&&(a=!0),nt(i.type[c])&&Xt(t)===i.type[c].toLowerCase()&&(a=!0);if(!a)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(c=>Os(c)?Ln(c):nt(c)?c:Xt(c))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!z(i.type)&&Xt(t)!==i.type)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=ft(t)&&(t===0||Number.isNaN(t)),c=nt(t)&&t.trim()==="";if(a||c)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&ft(t)&&t<0)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!z(i.min)&&ft(t)&&t<i.min)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!z(i.max)&&ft(t)&&t>i.max)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(nt(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Rt(i.instanceOf)&&!(t instanceof i.instanceOf))throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Nr(s)&&Xr(t)&&Object.keys(s).forEach(a=>{vl.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Nr(n)&&Gt(t)&&t.forEach((a,c)=>{vl.call(this,{rule:n,value:a,key:`${e}[${c}]`,fnName:r,className:o})}),Rt(i.validate)&&i.validate.call(this,t,e,r,o,this)}var YA=Li(mo(),1);var ZA=Object.create,Dl=Object.defineProperty,KA=Object.defineProperties,oT=Object.getOwnPropertyDescriptor,ev=Object.getOwnPropertyDescriptors,sT=Object.getOwnPropertyNames,Nl=Object.getOwnPropertySymbols,tv=Object.getPrototypeOf,wf=Object.prototype.hasOwnProperty,nT=Object.prototype.propertyIsEnumerable,yf=(i,t,e)=>t in i?Dl(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Hc=(i,t)=>{for(var e in t||(t={}))wf.call(t,e)&&yf(i,e,t[e]);if(Nl)for(var e of Nl(t))nT.call(t,e)&&yf(i,e,t[e]);return i},Wc=(i,t)=>KA(i,ev(t)),rv=(i,t)=>{var e={};for(var r in i)wf.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&Nl)for(var r of Nl(i))t.indexOf(r)<0&&nT.call(i,r)&&(e[r]=i[r]);return e},iv=(i,t)=>function(){return t||(0,i[sT(i)[0]])((t={exports:{}}).exports,t),t.exports},ov=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of sT(t))wf.call(i,o)||o===e||Dl(i,o,{get:()=>t[o],enumerable:!(r=oT(t,o))||r.enumerable});return i},aT=(i,t,e)=>(e=i!=null?ZA(tv(i)):{},ov(!t&&i&&i.__esModule?e:Dl(e,"default",{value:i,enumerable:!0}),i)),Ao=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?oT(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&Dl(t,e,s),s},xt=(i,t,e)=>yf(i,typeof t!="symbol"?t+"":t,e),cT=iv({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(d,m,l){this.fn=d,this.context=m,this.once=l||!1}function n(d,m,l,f,g){if(typeof l!="function")throw new TypeError("The listener must be a function");var T=new s(l,f||d,g),E=r?r+m:m;return d._events[E]?d._events[E].fn?d._events[E]=[d._events[E],T]:d._events[E].push(T):(d._events[E]=T,d._eventsCount++),d}function a(d,m){--d._eventsCount==0?d._events=new o:delete d._events[m]}function c(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),c.prototype.eventNames=function(){var d,m,l=[];if(this._eventsCount===0)return l;for(m in d=this._events)e.call(d,m)&&l.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(d)):l},c.prototype.listeners=function(d){var m=r?r+d:d,l=this._events[m];if(!l)return[];if(l.fn)return[l.fn];for(var f=0,g=l.length,T=new Array(g);f<g;f++)T[f]=l[f].fn;return T},c.prototype.listenerCount=function(d){var m=r?r+d:d,l=this._events[m];return l?l.fn?1:l.length:0},c.prototype.emit=function(d,m,l,f,g,T){var E=r?r+d:d;if(!this._events[E])return!1;var y,v,M=this._events[E],w=arguments.length;if(M.fn){switch(M.once&&this.removeListener(d,M.fn,void 0,!0),w){case 1:return M.fn.call(M.context),!0;case 2:return M.fn.call(M.context,m),!0;case 3:return M.fn.call(M.context,m,l),!0;case 4:return M.fn.call(M.context,m,l,f),!0;case 5:return M.fn.call(M.context,m,l,f,g),!0;case 6:return M.fn.call(M.context,m,l,f,g,T),!0}for(v=1,y=new Array(w-1);v<w;v++)y[v-1]=arguments[v];M.fn.apply(M.context,y)}else{var H,B=M.length;for(v=0;v<B;v++)switch(M[v].once&&this.removeListener(d,M[v].fn,void 0,!0),w){case 1:M[v].fn.call(M[v].context);break;case 2:M[v].fn.call(M[v].context,m);break;case 3:M[v].fn.call(M[v].context,m,l);break;case 4:M[v].fn.call(M[v].context,m,l,f);break;default:if(!y)for(H=1,y=new Array(w-1);H<w;H++)y[H-1]=arguments[H];M[v].fn.apply(M[v].context,y)}}return!0},c.prototype.on=function(d,m,l){return n(this,d,m,l,!1)},c.prototype.once=function(d,m,l){return n(this,d,m,l,!0)},c.prototype.removeListener=function(d,m,l,f){var g=r?r+d:d;if(!this._events[g])return this;if(!m)return a(this,g),this;var T=this._events[g];if(T.fn)T.fn!==m||f&&!T.once||l&&T.context!==l||a(this,g);else{for(var E=0,y=[],v=T.length;E<v;E++)(T[E].fn!==m||f&&!T[E].once||l&&T[E].context!==l)&&y.push(T[E]);y.length?this._events[g]=y.length===1?y[0]:y:a(this,g)}return this},c.prototype.removeAllListeners=function(d){var m;return d?(m=r?r+d:d,this._events[m]&&a(this,m)):(this._events=new o,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}}),sv=aT(cT(),1),qE=Symbol("instance"),A2=Symbol("abortCtrl"),Rl=Symbol("cacheResult"),pf=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,zc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},wl=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function nv(i){return typeof i=="object"&&i&&"then"in i}var Gc=new Map;function os(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let c=Gc.get(r)||[];Gc.has(r)||Gc.set(r,c),c.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...c){let d=this;if(e.context&&(d=Vr.get(typeof e.context=="function"?e.context.call(this,...c):e.context)),d.state===t)return e.sync?d[Rl]:Promise.resolve(d[Rl]);d.state instanceof pf&&d.state.action==e.abortAction&&d.state.abort(d);let m=null;Array.isArray(i)?i.length==0?d.state instanceof pf&&d.state.abort(d):typeof d.state=="string"&&i.includes(d.state)||(m=new wl(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i.join("|")}`)):i!==d.state&&(m=new wl(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i}`));let l=y=>{if(e.fail&&e.fail.call(this,y),e.sync){if(e.ignoreError)return y;throw y}return e.ignoreError?Promise.resolve(y):Promise.reject(y)};if(m)return l(m);let f=d.state,g=new pf(f,t,n);zc.call(d,g);let T=y=>{var v;return d[Rl]=y,g.aborted||(zc.call(d,t),(v=e.success)===null||v===void 0||v.call(this,d[Rl])),y},E=y=>(zc.call(d,f,y),l(y));try{let y=a.apply(this,c);return nv(y)?y.then(T).catch(E):e.sync?T(y):Promise.resolve(T(y))}catch(y){return E(new wl(d._state,`${d.name} ${n} from ${i} to ${t} failed: ${y}`,y instanceof Error?y:new Error(String(y))))}}}}function av(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new wl(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var cv=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function zc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Vr.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Vr=class li extends sv.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=li.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[qE];o?this.name=o.name+"-"+o.count++:r[qE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Gc.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Gc.has(a)&&(a.stateDiagram.forEach(d=>r.add(d)),a.allStates.forEach(d=>n.add(d))),e.forEach(({from:d,to:m,action:l})=>{typeof d=="string"?o.push({from:d,to:m,action:l}):d.length?d.forEach(f=>{o.push({from:f,to:m,action:l})}):s.push({to:m,action:l})}),o.forEach(({from:d,to:m,action:l})=>{n.add(d),n.add(m),n.add(l+"ing"),r.add(`${d} --> ${l}ing : ${l}`),r.add(`${l}ing --> ${m} : ${l} \u{1F7E2}`),r.add(`${l}ing --> ${d} : ${l} \u{1F534}`)}),s.forEach(({to:d,action:m})=>{r.add(`${m}ing --> ${d} : ${m} \u{1F7E2}`),n.forEach(l=>{l!==d&&r.add(`${l} --> ${m}ing : ${m}`)})});let c=[...r];return Object.defineProperties(t,{stateDiagram:{value:c},allStates:{value:n}}),c}static get(t){let e;return typeof t=="string"?(e=li.instances.get(t),e||li.instances.set(t,e=new li(t,void 0,Object.create(li.prototype)))):(e=li.instances2.get(t),e||li.instances2.set(t,e=new li(t.constructor.name,void 0,Object.create(li.prototype)))),e}static getState(t){var e;return(e=li.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){cv(li.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){zc.call(this,t)}};Vr.STATECHANGED="stateChanged",Vr.UPDATEAFSM="updateAFSM",Vr.INIT="[*]",Vr.ON="on",Vr.OFF="off",Vr.instances=new Map,Vr.instances2=new WeakMap;var fa=class extends Vr{constructor(){super(...arguments),xt(this,"decoder"),xt(this,"config")}initialize(){return D(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(Wc(Hc({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function dv(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),n=0,a=0,c={wasmBinary:o,postRun:()=>{i=new c.VideoDecoder({videoInfo(d,m){n=d,a=m,console.log("video info",d,m)},yuvData(d,m){let l=n*a,f=l>>2,g=c.HEAPU32[d>>2],T=c.HEAPU32[1+(d>>2)],E=c.HEAPU32[2+(d>>2)],y=c.HEAPU8.subarray(g,g+l),v=c.HEAPU8.subarray(T,T+f),M=c.HEAPU8.subarray(E,E+f),w=new Uint8Array(l+f+f);w.set(y),w.set(v,l),w.set(M,l+f);let H=new VideoFrame(w,{codedWidth:n,codedHeight:a,format:"I420",timestamp:m});e?(s==null||s.drawImage(H,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:H},[H])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(c)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}Ao([os([Vr.INIT,"closed"],"initialized")],fa.prototype,"initialize",1),Ao([os("initialized","configured",{sync:!0})],fa.prototype,"configure",1),Ao([av("configured")],fa.prototype,"decode",1),Ao([os([],Vr.INIT,{sync:!0})],fa.prototype,"reset",1),Ao([os([],"closed",{ignoreError:!0,sync:!0})],fa.prototype,"close",1);var Fc=class extends Vr{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,xt(this,"worker"),xt(this,"decoder"),xt(this,"config"),xt(this,"module",{}),xt(this,"width",0),xt(this,"height",0)}initialize(i){return D(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(dv.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:c}=a.data;this.emit("videoFrame",c)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),c=this.module.HEAPU8.subarray(s,s+r),d=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u:c,v:d,timestamp:t});let m=new Uint8Array(e+r+r);m.set(a),m.set(c,e),m.set(d,e+r),this.emit("videoFrame",new VideoFrame(m,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ao([os([Vr.INIT,"closed"],"initialized")],Fc.prototype,"initialize",1),Ao([os("initialized","configured",{sync:!0})],Fc.prototype,"configure",1),Ao([os([],Vr.INIT,{sync:!0})],Fc.prototype,"reset",1),Ao([os([],"closed",{sync:!0})],Fc.prototype,"close",1);var uv=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((u,h)=>{e=u,r=h});var s,n,a,c=Object.assign({},o),d="./this.program",m=typeof window=="object",l=typeof importScripts=="function",f=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(m||l)&&(l?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),i&&(f=i),f=f.indexOf("blob:")!==0?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=u=>{var h=new XMLHttpRequest;return h.open("GET",u,!1),h.send(null),h.responseText},l&&(a=u=>{var h=new XMLHttpRequest;return h.open("GET",u,!1),h.responseType="arraybuffer",h.send(null),new Uint8Array(h.response)}),n=(u,h,_)=>{var I=new XMLHttpRequest;I.open("GET",u,!0),I.responseType="arraybuffer",I.onload=()=>{I.status==200||I.status==0&&I.response?h(I.response):_()},I.onerror=_,I.send(null)});var g,T=o.print||console.log.bind(console),E=o.printErr||console.error.bind(console);Object.assign(o,c),c=null,o.arguments&&o.arguments,o.thisProgram&&(d=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(g=o.wasmBinary);var y,v;o.noExitRuntime,typeof WebAssembly!="object"&&q("no native wasm support detected");var M,w,H,B,P,$,de,Ae,L,te=!1,A=[],le=[],He=[],ge=0,ze=null,me=null;function re(u){ge++,o.monitorRunDependencies&&o.monitorRunDependencies(ge)}function Q(u){if(ge--,o.monitorRunDependencies&&o.monitorRunDependencies(ge),ge==0&&(ze!==null&&(clearInterval(ze),ze=null),me)){var h=me;me=null,h()}}function q(u){o.onAbort&&o.onAbort(u),E(u="Aborted("+u+")"),te=!0,u+=". Build with -sASSERTIONS for more info.";var h=new WebAssembly.RuntimeError(u);throw r(h),h}var Be,De,ne,Ze;function yt(u){return u.startsWith("data:application/octet-stream;base64,")}function ae(u){if(u==Be&&g)return new Uint8Array(g);if(a)return a(u);throw"both async and sync fetching of the wasm failed"}function at(u,h,_){return function(I){return g||!m&&!l||typeof fetch!="function"?Promise.resolve().then(()=>ae(I)):fetch(I,{credentials:"same-origin"}).then(C=>{if(!C.ok)throw"failed to load wasm binary file at '"+I+"'";return C.arrayBuffer()}).catch(()=>ae(I))}(u).then(I=>WebAssembly.instantiate(I,h)).then(I=>I).then(_,I=>{E("failed to asynchronously prepare wasm: "+I),q(I)})}yt(Be="videodec.wasm")||(De=Be,Be=o.locateFile?o.locateFile(De,f):f+De);var Lt=u=>{for(;u.length>0;)u.shift()(o)};function wt(u){this.excPtr=u,this.ptr=u-24,this.set_type=function(h){$[this.ptr+4>>2]=h},this.get_type=function(){return $[this.ptr+4>>2]},this.set_destructor=function(h){$[this.ptr+8>>2]=h},this.get_destructor=function(){return $[this.ptr+8>>2]},this.set_caught=function(h){h=h?1:0,M[this.ptr+12|0]=h},this.get_caught=function(){return M[this.ptr+12|0]!=0},this.set_rethrown=function(h){h=h?1:0,M[this.ptr+13|0]=h},this.get_rethrown=function(){return M[this.ptr+13|0]!=0},this.init=function(h,_){this.set_adjusted_ptr(0),this.set_type(h),this.set_destructor(_)},this.set_adjusted_ptr=function(h){$[this.ptr+16>>2]=h},this.get_adjusted_ptr=function(){return $[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Na(this.get_type()))return $[this.excPtr>>2];var h=this.get_adjusted_ptr();return h!==0?h:this.excPtr}}var we={isAbs:u=>u.charAt(0)==="/",splitPath:u=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(u).slice(1),normalizeArray:(u,h)=>{for(var _=0,I=u.length-1;I>=0;I--){var C=u[I];C==="."?u.splice(I,1):C===".."?(u.splice(I,1),_++):_&&(u.splice(I,1),_--)}if(h)for(;_;_--)u.unshift("..");return u},normalize:u=>{var h=we.isAbs(u),_=u.substr(-1)==="/";return(u=we.normalizeArray(u.split("/").filter(I=>!!I),!h).join("/"))||h||(u="."),u&&_&&(u+="/"),(h?"/":"")+u},dirname:u=>{var h=we.splitPath(u),_=h[0],I=h[1];return _||I?(I&&(I=I.substr(0,I.length-1)),_+I):"."},basename:u=>{if(u==="/")return"/";var h=(u=(u=we.normalize(u)).replace(/\/$/,"")).lastIndexOf("/");return h===-1?u:u.substr(h+1)},join:function(){var u=Array.prototype.slice.call(arguments);return we.normalize(u.join("/"))},join2:(u,h)=>we.normalize(u+"/"+h)},fr=u=>(fr=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return h=>crypto.getRandomValues(h);q("initRandomDevice")})())(u),S={resolve:function(){for(var u="",h=!1,_=arguments.length-1;_>=-1&&!h;_--){var I=_>=0?arguments[_]:b.cwd();if(typeof I!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!I)return"";u=I+"/"+u,h=we.isAbs(I)}return(h?"/":"")+(u=we.normalizeArray(u.split("/").filter(C=>!!C),!h).join("/"))||"."},relative:(u,h)=>{function _(K){for(var Re=0;Re<K.length&&K[Re]==="";Re++);for(var Pe=K.length-1;Pe>=0&&K[Pe]==="";Pe--);return Re>Pe?[]:K.slice(Re,Pe-Re+1)}u=S.resolve(u).substr(1),h=S.resolve(h).substr(1);for(var I=_(u.split("/")),C=_(h.split("/")),k=Math.min(I.length,C.length),U=k,V=0;V<k;V++)if(I[V]!==C[V]){U=V;break}var ie=[];for(V=U;V<I.length;V++)ie.push("..");return(ie=ie.concat(C.slice(U))).join("/")}},ue=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Y=(u,h,_)=>{for(var I=h+_,C=h;u[C]&&!(C>=I);)++C;if(C-h>16&&u.buffer&&ue)return ue.decode(u.subarray(h,C));for(var k="";h<C;){var U=u[h++];if(128&U){var V=63&u[h++];if((224&U)!=192){var ie=63&u[h++];if((U=(240&U)==224?(15&U)<<12|V<<6|ie:(7&U)<<18|V<<12|ie<<6|63&u[h++])<65536)k+=String.fromCharCode(U);else{var K=U-65536;k+=String.fromCharCode(55296|K>>10,56320|1023&K)}}else k+=String.fromCharCode((31&U)<<6|V)}else k+=String.fromCharCode(U)}return k},x=[],O=u=>{for(var h=0,_=0;_<u.length;++_){var I=u.charCodeAt(_);I<=127?h++:I<=2047?h+=2:I>=55296&&I<=57343?(h+=4,++_):h+=3}return h},F=(u,h,_,I)=>{if(!(I>0))return 0;for(var C=_,k=_+I-1,U=0;U<u.length;++U){var V=u.charCodeAt(U);if(V>=55296&&V<=57343&&(V=65536+((1023&V)<<10)|1023&u.charCodeAt(++U)),V<=127){if(_>=k)break;h[_++]=V}else if(V<=2047){if(_+1>=k)break;h[_++]=192|V>>6,h[_++]=128|63&V}else if(V<=65535){if(_+2>=k)break;h[_++]=224|V>>12,h[_++]=128|V>>6&63,h[_++]=128|63&V}else{if(_+3>=k)break;h[_++]=240|V>>18,h[_++]=128|V>>12&63,h[_++]=128|V>>6&63,h[_++]=128|63&V}}return h[_]=0,_-C};function pe(u,h,_){var I=_>0?_:O(u)+1,C=new Array(I),k=F(u,C,0,C.length);return h&&(C.length=k),C}var fe={ttys:[],init:function(){},shutdown:function(){},register:function(u,h){fe.ttys[u]={input:[],output:[],ops:h},b.registerDevice(u,fe.stream_ops)},stream_ops:{open:function(u){var h=fe.ttys[u.node.rdev];if(!h)throw new b.ErrnoError(43);u.tty=h,u.seekable=!1},close:function(u){u.tty.ops.fsync(u.tty)},fsync:function(u){u.tty.ops.fsync(u.tty)},read:function(u,h,_,I,C){if(!u.tty||!u.tty.ops.get_char)throw new b.ErrnoError(60);for(var k=0,U=0;U<I;U++){var V;try{V=u.tty.ops.get_char(u.tty)}catch(ie){throw new b.ErrnoError(29)}if(V===void 0&&k===0)throw new b.ErrnoError(6);if(V==null)break;k++,h[_+U]=V}return k&&(u.node.timestamp=Date.now()),k},write:function(u,h,_,I,C){if(!u.tty||!u.tty.ops.put_char)throw new b.ErrnoError(60);try{for(var k=0;k<I;k++)u.tty.ops.put_char(u.tty,h[_+k])}catch(U){throw new b.ErrnoError(29)}return I&&(u.node.timestamp=Date.now()),k}},default_tty_ops:{get_char:function(u){return(()=>{if(!x.length){var h=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(h=window.prompt("Input: "))!==null&&(h+=`
52
- `):typeof readline=="function"&&(h=readline())!==null&&(h+=`
53
- `),!h)return null;x=pe(h,!0)}return x.shift()})()},put_char:function(u,h){h===null||h===10?(T(Y(u.output,0)),u.output=[]):h!=0&&u.output.push(h)},fsync:function(u){u.output&&u.output.length>0&&(T(Y(u.output,0)),u.output=[])},ioctl_tcgets:function(u){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(u,h,_){return 0},ioctl_tiocgwinsz:function(u){return[24,80]}},default_tty1_ops:{put_char:function(u,h){h===null||h===10?(E(Y(u.output,0)),u.output=[]):h!=0&&u.output.push(h)},fsync:function(u){u.output&&u.output.length>0&&(E(Y(u.output,0)),u.output=[])}}},X=u=>{q()},oe={ops_table:null,mount:u=>oe.createNode(null,"/",16895,0),createNode(u,h,_,I){if(b.isBlkdev(_)||b.isFIFO(_))throw new b.ErrnoError(63);oe.ops_table||(oe.ops_table={dir:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr,lookup:oe.node_ops.lookup,mknod:oe.node_ops.mknod,rename:oe.node_ops.rename,unlink:oe.node_ops.unlink,rmdir:oe.node_ops.rmdir,readdir:oe.node_ops.readdir,symlink:oe.node_ops.symlink},stream:{llseek:oe.stream_ops.llseek}},file:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr},stream:{llseek:oe.stream_ops.llseek,read:oe.stream_ops.read,write:oe.stream_ops.write,allocate:oe.stream_ops.allocate,mmap:oe.stream_ops.mmap,msync:oe.stream_ops.msync}},link:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr,readlink:oe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr},stream:b.chrdev_stream_ops}});var C=b.createNode(u,h,_,I);return b.isDir(C.mode)?(C.node_ops=oe.ops_table.dir.node,C.stream_ops=oe.ops_table.dir.stream,C.contents={}):b.isFile(C.mode)?(C.node_ops=oe.ops_table.file.node,C.stream_ops=oe.ops_table.file.stream,C.usedBytes=0,C.contents=null):b.isLink(C.mode)?(C.node_ops=oe.ops_table.link.node,C.stream_ops=oe.ops_table.link.stream):b.isChrdev(C.mode)&&(C.node_ops=oe.ops_table.chrdev.node,C.stream_ops=oe.ops_table.chrdev.stream),C.timestamp=Date.now(),u&&(u.contents[h]=C,u.timestamp=C.timestamp),C},getFileDataAsTypedArray:u=>u.contents?u.contents.subarray?u.contents.subarray(0,u.usedBytes):new Uint8Array(u.contents):new Uint8Array(0),expandFileStorage(u,h){var _=u.contents?u.contents.length:0;if(!(_>=h)){h=Math.max(h,_*(_<1048576?2:1.125)>>>0),_!=0&&(h=Math.max(h,256));var I=u.contents;u.contents=new Uint8Array(h),u.usedBytes>0&&u.contents.set(I.subarray(0,u.usedBytes),0)}},resizeFileStorage(u,h){if(u.usedBytes!=h)if(h==0)u.contents=null,u.usedBytes=0;else{var _=u.contents;u.contents=new Uint8Array(h),_&&u.contents.set(_.subarray(0,Math.min(h,u.usedBytes))),u.usedBytes=h}},node_ops:{getattr(u){var h={};return h.dev=b.isChrdev(u.mode)?u.id:1,h.ino=u.id,h.mode=u.mode,h.nlink=1,h.uid=0,h.gid=0,h.rdev=u.rdev,b.isDir(u.mode)?h.size=4096:b.isFile(u.mode)?h.size=u.usedBytes:b.isLink(u.mode)?h.size=u.link.length:h.size=0,h.atime=new Date(u.timestamp),h.mtime=new Date(u.timestamp),h.ctime=new Date(u.timestamp),h.blksize=4096,h.blocks=Math.ceil(h.size/h.blksize),h},setattr(u,h){h.mode!==void 0&&(u.mode=h.mode),h.timestamp!==void 0&&(u.timestamp=h.timestamp),h.size!==void 0&&oe.resizeFileStorage(u,h.size)},lookup(u,h){throw b.genericErrors[44]},mknod:(u,h,_,I)=>oe.createNode(u,h,_,I),rename(u,h,_){if(b.isDir(u.mode)){var I;try{I=b.lookupNode(h,_)}catch(k){}if(I)for(var C in I.contents)throw new b.ErrnoError(55)}delete u.parent.contents[u.name],u.parent.timestamp=Date.now(),u.name=_,h.contents[_]=u,h.timestamp=u.parent.timestamp,u.parent=h},unlink(u,h){delete u.contents[h],u.timestamp=Date.now()},rmdir(u,h){var _=b.lookupNode(u,h);for(var I in _.contents)throw new b.ErrnoError(55);delete u.contents[h],u.timestamp=Date.now()},readdir(u){var h=[".",".."];for(var _ in u.contents)u.contents.hasOwnProperty(_)&&h.push(_);return h},symlink(u,h,_){var I=oe.createNode(u,h,41471,0);return I.link=_,I},readlink(u){if(!b.isLink(u.mode))throw new b.ErrnoError(28);return u.link}},stream_ops:{read(u,h,_,I,C){var k=u.node.contents;if(C>=u.node.usedBytes)return 0;var U=Math.min(u.node.usedBytes-C,I);if(U>8&&k.subarray)h.set(k.subarray(C,C+U),_);else for(var V=0;V<U;V++)h[_+V]=k[C+V];return U},write(u,h,_,I,C,k){if(!I)return 0;var U=u.node;if(U.timestamp=Date.now(),h.subarray&&(!U.contents||U.contents.subarray)){if(k)return U.contents=h.subarray(_,_+I),U.usedBytes=I,I;if(U.usedBytes===0&&C===0)return U.contents=h.slice(_,_+I),U.usedBytes=I,I;if(C+I<=U.usedBytes)return U.contents.set(h.subarray(_,_+I),C),I}if(oe.expandFileStorage(U,C+I),U.contents.subarray&&h.subarray)U.contents.set(h.subarray(_,_+I),C);else for(var V=0;V<I;V++)U.contents[C+V]=h[_+V];return U.usedBytes=Math.max(U.usedBytes,C+I),I},llseek(u,h,_){var I=h;if(_===1?I+=u.position:_===2&&b.isFile(u.node.mode)&&(I+=u.node.usedBytes),I<0)throw new b.ErrnoError(28);return I},allocate(u,h,_){oe.expandFileStorage(u.node,h+_),u.node.usedBytes=Math.max(u.node.usedBytes,h+_)},mmap(u,h,_,I,C){if(!b.isFile(u.node.mode))throw new b.ErrnoError(43);var k,U,V=u.node.contents;if(2&C||V.buffer!==M.buffer){if((_>0||_+h<V.length)&&(V=V.subarray?V.subarray(_,_+h):Array.prototype.slice.call(V,_,_+h)),U=!0,!(k=X()))throw new b.ErrnoError(48);M.set(V,k)}else U=!1,k=V.byteOffset;return{ptr:k,allocated:U}},msync:(u,h,_,I,C)=>(oe.stream_ops.write(u,h,0,I,_,!1),0)}},xe=(u,h,_,I)=>{var C=I?"":`al ${u}`;n(u,k=>{var U;U=`Loading data file "${u}" failed (no arrayBuffer).`,k||q(U),h(new Uint8Array(k)),C&&Q()},k=>{if(!_)throw`Loading data file "${u}" failed.`;_()}),C&&re()},Z=o.preloadPlugins||[];function $e(u,h){var _=0;return u&&(_|=365),h&&(_|=146),_}var b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(u,h={})=>{if(!(u=S.resolve(u)))return{path:"",node:null};if((h=Object.assign({follow_mount:!0,recurse_count:0},h)).recurse_count>8)throw new b.ErrnoError(32);for(var _=u.split("/").filter(K=>!!K),I=b.root,C="/",k=0;k<_.length;k++){var U=k===_.length-1;if(U&&h.parent)break;if(I=b.lookupNode(I,_[k]),C=we.join2(C,_[k]),b.isMountpoint(I)&&(!U||U&&h.follow_mount)&&(I=I.mounted.root),!U||h.follow)for(var V=0;b.isLink(I.mode);){var ie=b.readlink(C);if(C=S.resolve(we.dirname(C),ie),I=b.lookupPath(C,{recurse_count:h.recurse_count+1}).node,V++>40)throw new b.ErrnoError(32)}}return{path:C,node:I}},getPath:u=>{for(var h;;){if(b.isRoot(u)){var _=u.mount.mountpoint;return h?_[_.length-1]!=="/"?`${_}/${h}`:_+h:_}h=h?`${u.name}/${h}`:u.name,u=u.parent}},hashName:(u,h)=>{for(var _=0,I=0;I<h.length;I++)_=(_<<5)-_+h.charCodeAt(I)|0;return(u+_>>>0)%b.nameTable.length},hashAddNode:u=>{var h=b.hashName(u.parent.id,u.name);u.name_next=b.nameTable[h],b.nameTable[h]=u},hashRemoveNode:u=>{var h=b.hashName(u.parent.id,u.name);if(b.nameTable[h]===u)b.nameTable[h]=u.name_next;else for(var _=b.nameTable[h];_;){if(_.name_next===u){_.name_next=u.name_next;break}_=_.name_next}},lookupNode:(u,h)=>{var _=b.mayLookup(u);if(_)throw new b.ErrnoError(_,u);for(var I=b.hashName(u.id,h),C=b.nameTable[I];C;C=C.name_next){var k=C.name;if(C.parent.id===u.id&&k===h)return C}return b.lookup(u,h)},createNode:(u,h,_,I)=>{var C=new b.FSNode(u,h,_,I);return b.hashAddNode(C),C},destroyNode:u=>{b.hashRemoveNode(u)},isRoot:u=>u===u.parent,isMountpoint:u=>!!u.mounted,isFile:u=>(61440&u)==32768,isDir:u=>(61440&u)==16384,isLink:u=>(61440&u)==40960,isChrdev:u=>(61440&u)==8192,isBlkdev:u=>(61440&u)==24576,isFIFO:u=>(61440&u)==4096,isSocket:u=>!(49152&~u),flagsToPermissionString:u=>{var h=["r","w","rw"][3&u];return 512&u&&(h+="w"),h},nodePermissions:(u,h)=>b.ignorePermissions||(!h.includes("r")||292&u.mode)&&(!h.includes("w")||146&u.mode)&&(!h.includes("x")||73&u.mode)?0:2,mayLookup:u=>{var h=b.nodePermissions(u,"x");return h||(u.node_ops.lookup?0:2)},mayCreate:(u,h)=>{try{return b.lookupNode(u,h),20}catch(_){}return b.nodePermissions(u,"wx")},mayDelete:(u,h,_)=>{var I;try{I=b.lookupNode(u,h)}catch(k){return k.errno}var C=b.nodePermissions(u,"wx");if(C)return C;if(_){if(!b.isDir(I.mode))return 54;if(b.isRoot(I)||b.getPath(I)===b.cwd())return 10}else if(b.isDir(I.mode))return 31;return 0},mayOpen:(u,h)=>u?b.isLink(u.mode)?32:b.isDir(u.mode)&&(b.flagsToPermissionString(h)!=="r"||512&h)?31:b.nodePermissions(u,b.flagsToPermissionString(h)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var u=0;u<=b.MAX_OPEN_FDS;u++)if(!b.streams[u])return u;throw new b.ErrnoError(33)},getStreamChecked:u=>{var h=b.getStream(u);if(!h)throw new b.ErrnoError(8);return h},getStream:u=>b.streams[u],createStream:(u,h=-1)=>(b.FSStream||(b.FSStream=function(){this.shared={}},b.FSStream.prototype={},Object.defineProperties(b.FSStream.prototype,{object:{get(){return this.node},set(_){this.node=_}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(_){this.shared.flags=_}},position:{get(){return this.shared.position},set(_){this.shared.position=_}}})),u=Object.assign(new b.FSStream,u),h==-1&&(h=b.nextfd()),u.fd=h,b.streams[h]=u,u),closeStream:u=>{b.streams[u]=null},chrdev_stream_ops:{open:u=>{var h=b.getDevice(u.node.rdev);u.stream_ops=h.stream_ops,u.stream_ops.open&&u.stream_ops.open(u)},llseek:()=>{throw new b.ErrnoError(70)}},major:u=>u>>8,minor:u=>255&u,makedev:(u,h)=>u<<8|h,registerDevice:(u,h)=>{b.devices[u]={stream_ops:h}},getDevice:u=>b.devices[u],getMounts:u=>{for(var h=[],_=[u];_.length;){var I=_.pop();h.push(I),_.push.apply(_,I.mounts)}return h},syncfs:(u,h)=>{typeof u=="function"&&(h=u,u=!1),b.syncFSRequests++,b.syncFSRequests>1&&E(`warning: ${b.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var _=b.getMounts(b.root.mount),I=0;function C(U){return b.syncFSRequests--,h(U)}function k(U){if(U)return k.errored?void 0:(k.errored=!0,C(U));++I>=_.length&&C(null)}_.forEach(U=>{if(!U.type.syncfs)return k(null);U.type.syncfs(U,u,k)})},mount:(u,h,_)=>{var I,C=_==="/",k=!_;if(C&&b.root)throw new b.ErrnoError(10);if(!C&&!k){var U=b.lookupPath(_,{follow_mount:!1});if(_=U.path,I=U.node,b.isMountpoint(I))throw new b.ErrnoError(10);if(!b.isDir(I.mode))throw new b.ErrnoError(54)}var V={type:u,opts:h,mountpoint:_,mounts:[]},ie=u.mount(V);return ie.mount=V,V.root=ie,C?b.root=ie:I&&(I.mounted=V,I.mount&&I.mount.mounts.push(V)),ie},unmount:u=>{var h=b.lookupPath(u,{follow_mount:!1});if(!b.isMountpoint(h.node))throw new b.ErrnoError(28);var _=h.node,I=_.mounted,C=b.getMounts(I);Object.keys(b.nameTable).forEach(U=>{for(var V=b.nameTable[U];V;){var ie=V.name_next;C.includes(V.mount)&&b.destroyNode(V),V=ie}}),_.mounted=null;var k=_.mount.mounts.indexOf(I);_.mount.mounts.splice(k,1)},lookup:(u,h)=>u.node_ops.lookup(u,h),mknod:(u,h,_)=>{var I=b.lookupPath(u,{parent:!0}).node,C=we.basename(u);if(!C||C==="."||C==="..")throw new b.ErrnoError(28);var k=b.mayCreate(I,C);if(k)throw new b.ErrnoError(k);if(!I.node_ops.mknod)throw new b.ErrnoError(63);return I.node_ops.mknod(I,C,h,_)},create:(u,h)=>(h=h!==void 0?h:438,h&=4095,h|=32768,b.mknod(u,h,0)),mkdir:(u,h)=>(h=h!==void 0?h:511,h&=1023,h|=16384,b.mknod(u,h,0)),mkdirTree:(u,h)=>{for(var _=u.split("/"),I="",C=0;C<_.length;++C)if(_[C]){I+="/"+_[C];try{b.mkdir(I,h)}catch(k){if(k.errno!=20)throw k}}},mkdev:(u,h,_)=>(_===void 0&&(_=h,h=438),h|=8192,b.mknod(u,h,_)),symlink:(u,h)=>{if(!S.resolve(u))throw new b.ErrnoError(44);var _=b.lookupPath(h,{parent:!0}).node;if(!_)throw new b.ErrnoError(44);var I=we.basename(h),C=b.mayCreate(_,I);if(C)throw new b.ErrnoError(C);if(!_.node_ops.symlink)throw new b.ErrnoError(63);return _.node_ops.symlink(_,I,u)},rename:(u,h)=>{var _,I,C=we.dirname(u),k=we.dirname(h),U=we.basename(u),V=we.basename(h);if(_=b.lookupPath(u,{parent:!0}).node,I=b.lookupPath(h,{parent:!0}).node,!_||!I)throw new b.ErrnoError(44);if(_.mount!==I.mount)throw new b.ErrnoError(75);var ie,K=b.lookupNode(_,U),Re=S.relative(u,k);if(Re.charAt(0)!==".")throw new b.ErrnoError(28);if((Re=S.relative(h,C)).charAt(0)!==".")throw new b.ErrnoError(55);try{ie=b.lookupNode(I,V)}catch(Le){}if(K!==ie){var Pe=b.isDir(K.mode),Ue=b.mayDelete(_,U,Pe);if(Ue)throw new b.ErrnoError(Ue);if(Ue=ie?b.mayDelete(I,V,Pe):b.mayCreate(I,V))throw new b.ErrnoError(Ue);if(!_.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(K)||ie&&b.isMountpoint(ie))throw new b.ErrnoError(10);if(I!==_&&(Ue=b.nodePermissions(_,"w")))throw new b.ErrnoError(Ue);b.hashRemoveNode(K);try{_.node_ops.rename(K,I,V)}catch(Le){throw Le}finally{b.hashAddNode(K)}}},rmdir:u=>{var h=b.lookupPath(u,{parent:!0}).node,_=we.basename(u),I=b.lookupNode(h,_),C=b.mayDelete(h,_,!0);if(C)throw new b.ErrnoError(C);if(!h.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(I))throw new b.ErrnoError(10);h.node_ops.rmdir(h,_),b.destroyNode(I)},readdir:u=>{var h=b.lookupPath(u,{follow:!0}).node;if(!h.node_ops.readdir)throw new b.ErrnoError(54);return h.node_ops.readdir(h)},unlink:u=>{var h=b.lookupPath(u,{parent:!0}).node;if(!h)throw new b.ErrnoError(44);var _=we.basename(u),I=b.lookupNode(h,_),C=b.mayDelete(h,_,!1);if(C)throw new b.ErrnoError(C);if(!h.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(I))throw new b.ErrnoError(10);h.node_ops.unlink(h,_),b.destroyNode(I)},readlink:u=>{var h=b.lookupPath(u).node;if(!h)throw new b.ErrnoError(44);if(!h.node_ops.readlink)throw new b.ErrnoError(28);return S.resolve(b.getPath(h.parent),h.node_ops.readlink(h))},stat:(u,h)=>{var _=b.lookupPath(u,{follow:!h}).node;if(!_)throw new b.ErrnoError(44);if(!_.node_ops.getattr)throw new b.ErrnoError(63);return _.node_ops.getattr(_)},lstat:u=>b.stat(u,!0),chmod:(u,h,_)=>{var I;if(typeof u=="string"?I=b.lookupPath(u,{follow:!_}).node:I=u,!I.node_ops.setattr)throw new b.ErrnoError(63);I.node_ops.setattr(I,{mode:4095&h|-4096&I.mode,timestamp:Date.now()})},lchmod:(u,h)=>{b.chmod(u,h,!0)},fchmod:(u,h)=>{var _=b.getStreamChecked(u);b.chmod(_.node,h)},chown:(u,h,_,I)=>{var C;if(typeof u=="string"?C=b.lookupPath(u,{follow:!I}).node:C=u,!C.node_ops.setattr)throw new b.ErrnoError(63);C.node_ops.setattr(C,{timestamp:Date.now()})},lchown:(u,h,_)=>{b.chown(u,h,_,!0)},fchown:(u,h,_)=>{var I=b.getStreamChecked(u);b.chown(I.node,h,_)},truncate:(u,h)=>{if(h<0)throw new b.ErrnoError(28);var _;if(typeof u=="string"?_=b.lookupPath(u,{follow:!0}).node:_=u,!_.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(_.mode))throw new b.ErrnoError(31);if(!b.isFile(_.mode))throw new b.ErrnoError(28);var I=b.nodePermissions(_,"w");if(I)throw new b.ErrnoError(I);_.node_ops.setattr(_,{size:h,timestamp:Date.now()})},ftruncate:(u,h)=>{var _=b.getStreamChecked(u);if(!(2097155&_.flags))throw new b.ErrnoError(28);b.truncate(_.node,h)},utime:(u,h,_)=>{var I=b.lookupPath(u,{follow:!0}).node;I.node_ops.setattr(I,{timestamp:Math.max(h,_)})},open:(u,h,_)=>{if(u==="")throw new b.ErrnoError(44);var I;if(_=_===void 0?438:_,_=64&(h=typeof h=="string"?function(V){var ie={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[V];if(ie===void 0)throw new Error(`Unknown file open mode: ${V}`);return ie}(h):h)?4095&_|32768:0,typeof u=="object")I=u;else{u=we.normalize(u);try{I=b.lookupPath(u,{follow:!(131072&h)}).node}catch(V){}}var C=!1;if(64&h)if(I){if(128&h)throw new b.ErrnoError(20)}else I=b.mknod(u,_,0),C=!0;if(!I)throw new b.ErrnoError(44);if(b.isChrdev(I.mode)&&(h&=-513),65536&h&&!b.isDir(I.mode))throw new b.ErrnoError(54);if(!C){var k=b.mayOpen(I,h);if(k)throw new b.ErrnoError(k)}512&h&&!C&&b.truncate(I,0),h&=-131713;var U=b.createStream({node:I,path:b.getPath(I),flags:h,seekable:!0,position:0,stream_ops:I.stream_ops,ungotten:[],error:!1});return U.stream_ops.open&&U.stream_ops.open(U),!o.logReadFiles||1&h||(b.readFiles||(b.readFiles={}),u in b.readFiles||(b.readFiles[u]=1)),U},close:u=>{if(b.isClosed(u))throw new b.ErrnoError(8);u.getdents&&(u.getdents=null);try{u.stream_ops.close&&u.stream_ops.close(u)}catch(h){throw h}finally{b.closeStream(u.fd)}u.fd=null},isClosed:u=>u.fd===null,llseek:(u,h,_)=>{if(b.isClosed(u))throw new b.ErrnoError(8);if(!u.seekable||!u.stream_ops.llseek)throw new b.ErrnoError(70);if(_!=0&&_!=1&&_!=2)throw new b.ErrnoError(28);return u.position=u.stream_ops.llseek(u,h,_),u.ungotten=[],u.position},read:(u,h,_,I,C)=>{if(I<0||C<0)throw new b.ErrnoError(28);if(b.isClosed(u))throw new b.ErrnoError(8);if((2097155&u.flags)==1)throw new b.ErrnoError(8);if(b.isDir(u.node.mode))throw new b.ErrnoError(31);if(!u.stream_ops.read)throw new b.ErrnoError(28);var k=C!==void 0;if(k){if(!u.seekable)throw new b.ErrnoError(70)}else C=u.position;var U=u.stream_ops.read(u,h,_,I,C);return k||(u.position+=U),U},write:(u,h,_,I,C,k)=>{if(I<0||C<0)throw new b.ErrnoError(28);if(b.isClosed(u))throw new b.ErrnoError(8);if(!(2097155&u.flags))throw new b.ErrnoError(8);if(b.isDir(u.node.mode))throw new b.ErrnoError(31);if(!u.stream_ops.write)throw new b.ErrnoError(28);u.seekable&&1024&u.flags&&b.llseek(u,0,2);var U=C!==void 0;if(U){if(!u.seekable)throw new b.ErrnoError(70)}else C=u.position;var V=u.stream_ops.write(u,h,_,I,C,k);return U||(u.position+=V),V},allocate:(u,h,_)=>{if(b.isClosed(u))throw new b.ErrnoError(8);if(h<0||_<=0)throw new b.ErrnoError(28);if(!(2097155&u.flags))throw new b.ErrnoError(8);if(!b.isFile(u.node.mode)&&!b.isDir(u.node.mode))throw new b.ErrnoError(43);if(!u.stream_ops.allocate)throw new b.ErrnoError(138);u.stream_ops.allocate(u,h,_)},mmap:(u,h,_,I,C)=>{if(2&I&&!(2&C)&&(2097155&u.flags)!=2)throw new b.ErrnoError(2);if((2097155&u.flags)==1)throw new b.ErrnoError(2);if(!u.stream_ops.mmap)throw new b.ErrnoError(43);return u.stream_ops.mmap(u,h,_,I,C)},msync:(u,h,_,I,C)=>u.stream_ops.msync?u.stream_ops.msync(u,h,_,I,C):0,munmap:u=>0,ioctl:(u,h,_)=>{if(!u.stream_ops.ioctl)throw new b.ErrnoError(59);return u.stream_ops.ioctl(u,h,_)},readFile:(u,h={})=>{if(h.flags=h.flags||0,h.encoding=h.encoding||"binary",h.encoding!=="utf8"&&h.encoding!=="binary")throw new Error(`Invalid encoding type "${h.encoding}"`);var _,I=b.open(u,h.flags),C=b.stat(u).size,k=new Uint8Array(C);return b.read(I,k,0,C,0),h.encoding==="utf8"?_=Y(k,0):h.encoding==="binary"&&(_=k),b.close(I),_},writeFile:(u,h,_={})=>{_.flags=_.flags||577;var I=b.open(u,_.flags,_.mode);if(typeof h=="string"){var C=new Uint8Array(O(h)+1),k=F(h,C,0,C.length);b.write(I,C,0,k,void 0,_.canOwn)}else{if(!ArrayBuffer.isView(h))throw new Error("Unsupported data type");b.write(I,h,0,h.byteLength,void 0,_.canOwn)}b.close(I)},cwd:()=>b.currentPath,chdir:u=>{var h=b.lookupPath(u,{follow:!0});if(h.node===null)throw new b.ErrnoError(44);if(!b.isDir(h.node.mode))throw new b.ErrnoError(54);var _=b.nodePermissions(h.node,"x");if(_)throw new b.ErrnoError(_);b.currentPath=h.path},createDefaultDirectories:()=>{b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:()=>{b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:()=>0,write:(I,C,k,U,V)=>U}),b.mkdev("/dev/null",b.makedev(1,3)),fe.register(b.makedev(5,0),fe.default_tty_ops),fe.register(b.makedev(6,0),fe.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var u=new Uint8Array(1024),h=0,_=()=>(h===0&&(h=fr(u).byteLength),u[--h]);b.createDevice("/dev","random",_),b.createDevice("/dev","urandom",_),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{b.mkdir("/proc");var u=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:()=>{var h=b.createNode(u,"fd",16895,73);return h.node_ops={lookup:(_,I)=>{var C=+I,k=b.getStreamChecked(C),U={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>k.path}};return U.parent=U,U}},h}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?b.createDevice("/dev","stdin",o.stdin):b.symlink("/dev/tty","/dev/stdin"),o.stdout?b.createDevice("/dev","stdout",null,o.stdout):b.symlink("/dev/tty","/dev/stdout"),o.stderr?b.createDevice("/dev","stderr",null,o.stderr):b.symlink("/dev/tty1","/dev/stderr"),b.open("/dev/stdin",0),b.open("/dev/stdout",1),b.open("/dev/stderr",1)},ensureErrnoError:()=>{b.ErrnoError||(b.ErrnoError=function(u,h){this.name="ErrnoError",this.node=h,this.setErrno=function(_){this.errno=_},this.setErrno(u),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(u=>{b.genericErrors[u]=new b.ErrnoError(u),b.genericErrors[u].stack="<generic error, no stack>"}))},staticInit:()=>{b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(oe,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:oe}},init:(u,h,_)=>{b.init.initialized=!0,b.ensureErrnoError(),o.stdin=u||o.stdin,o.stdout=h||o.stdout,o.stderr=_||o.stderr,b.createStandardStreams()},quit:()=>{b.init.initialized=!1;for(var u=0;u<b.streams.length;u++){var h=b.streams[u];h&&b.close(h)}},findObject:(u,h)=>{var _=b.analyzePath(u,h);return _.exists?_.object:null},analyzePath:(u,h)=>{try{u=(I=b.lookupPath(u,{follow:!h})).path}catch(C){}var _={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var I=b.lookupPath(u,{parent:!0});_.parentExists=!0,_.parentPath=I.path,_.parentObject=I.node,_.name=we.basename(u),I=b.lookupPath(u,{follow:!h}),_.exists=!0,_.path=I.path,_.object=I.node,_.name=I.node.name,_.isRoot=I.path==="/"}catch(C){_.error=C.errno}return _},createPath:(u,h,_,I)=>{u=typeof u=="string"?u:b.getPath(u);for(var C=h.split("/").reverse();C.length;){var k=C.pop();if(k){var U=we.join2(u,k);try{b.mkdir(U)}catch(V){}u=U}}return U},createFile:(u,h,_,I,C)=>{var k=we.join2(typeof u=="string"?u:b.getPath(u),h),U=$e(I,C);return b.create(k,U)},createDataFile:(u,h,_,I,C,k)=>{var U=h;u&&(u=typeof u=="string"?u:b.getPath(u),U=h?we.join2(u,h):u);var V=$e(I,C),ie=b.create(U,V);if(_){if(typeof _=="string"){for(var K=new Array(_.length),Re=0,Pe=_.length;Re<Pe;++Re)K[Re]=_.charCodeAt(Re);_=K}b.chmod(ie,146|V);var Ue=b.open(ie,577);b.write(Ue,_,0,_.length,0,k),b.close(Ue),b.chmod(ie,V)}return ie},createDevice:(u,h,_,I)=>{var C=we.join2(typeof u=="string"?u:b.getPath(u),h),k=$e(!!_,!!I);b.createDevice.major||(b.createDevice.major=64);var U=b.makedev(b.createDevice.major++,0);return b.registerDevice(U,{open:V=>{V.seekable=!1},close:V=>{I&&I.buffer&&I.buffer.length&&I(10)},read:(V,ie,K,Re,Pe)=>{for(var Ue=0,Le=0;Le<Re;Le++){var st;try{st=_()}catch(gt){throw new b.ErrnoError(29)}if(st===void 0&&Ue===0)throw new b.ErrnoError(6);if(st==null)break;Ue++,ie[K+Le]=st}return Ue&&(V.node.timestamp=Date.now()),Ue},write:(V,ie,K,Re,Pe)=>{for(var Ue=0;Ue<Re;Ue++)try{I(ie[K+Ue])}catch(Le){throw new b.ErrnoError(29)}return Re&&(V.node.timestamp=Date.now()),Ue}}),b.mkdev(C,k,U)},forceLoadFile:u=>{if(u.isDevice||u.isFolder||u.link||u.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{u.contents=pe(s(u.url),!0),u.usedBytes=u.contents.length}catch(h){throw new b.ErrnoError(29)}},createLazyFile:(u,h,_,I,C)=>{function k(){this.lengthKnown=!1,this.chunks=[]}if(k.prototype.get=function(Pe){if(!(Pe>this.length-1||Pe<0)){var Ue=Pe%this.chunkSize,Le=Pe/this.chunkSize|0;return this.getter(Le)[Ue]}},k.prototype.setDataGetter=function(Pe){this.getter=Pe},k.prototype.cacheLength=function(){var Pe=new XMLHttpRequest;if(Pe.open("HEAD",_,!1),Pe.send(null),!(Pe.status>=200&&Pe.status<300||Pe.status===304))throw new Error("Couldn't load "+_+". Status: "+Pe.status);var Ue,Le=Number(Pe.getResponseHeader("Content-length")),st=(Ue=Pe.getResponseHeader("Accept-Ranges"))&&Ue==="bytes",gt=(Ue=Pe.getResponseHeader("Content-Encoding"))&&Ue==="gzip",ht=1048576;st||(ht=Le);var Wt=this;Wt.setDataGetter(Pt=>{var nr=Pt*ht,Vo=(Pt+1)*ht-1;if(Vo=Math.min(Vo,Le-1),Wt.chunks[Pt]===void 0&&(Wt.chunks[Pt]=((ti,As)=>{if(ti>As)throw new Error("invalid range ("+ti+", "+As+") or no bytes requested!");if(As>Le-1)throw new Error("only "+Le+" bytes available! programmer error!");var Yt=new XMLHttpRequest;if(Yt.open("GET",_,!1),Le!==ht&&Yt.setRequestHeader("Range","bytes="+ti+"-"+As),Yt.responseType="arraybuffer",Yt.overrideMimeType&&Yt.overrideMimeType("text/plain; charset=x-user-defined"),Yt.send(null),!(Yt.status>=200&&Yt.status<300||Yt.status===304))throw new Error("Couldn't load "+_+". Status: "+Yt.status);return Yt.response!==void 0?new Uint8Array(Yt.response||[]):pe(Yt.responseText||"",!0)})(nr,Vo)),Wt.chunks[Pt]===void 0)throw new Error("doXHR failed!");return Wt.chunks[Pt]}),!gt&&Le||(ht=Le=1,Le=this.getter(0).length,ht=Le,T("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Le,this._chunkSize=ht,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var U=new k;Object.defineProperties(U,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var V={isDevice:!1,contents:U}}else V={isDevice:!1,url:_};var ie=b.createFile(u,h,V,I,C);V.contents?ie.contents=V.contents:V.url&&(ie.contents=null,ie.url=V.url),Object.defineProperties(ie,{usedBytes:{get:function(){return this.contents.length}}});var K={};function Re(Pe,Ue,Le,st,gt){var ht=Pe.node.contents;if(gt>=ht.length)return 0;var Wt=Math.min(ht.length-gt,st);if(ht.slice)for(var Pt=0;Pt<Wt;Pt++)Ue[Le+Pt]=ht[gt+Pt];else for(Pt=0;Pt<Wt;Pt++)Ue[Le+Pt]=ht.get(gt+Pt);return Wt}return Object.keys(ie.stream_ops).forEach(Pe=>{var Ue=ie.stream_ops[Pe];K[Pe]=function(){return b.forceLoadFile(ie),Ue.apply(null,arguments)}}),K.read=(Pe,Ue,Le,st,gt)=>(b.forceLoadFile(ie),Re(Pe,Ue,Le,st,gt)),K.mmap=(Pe,Ue,Le,st,gt)=>{b.forceLoadFile(ie);var ht=X();if(!ht)throw new b.ErrnoError(48);return Re(Pe,M,ht,Ue,Le),{ptr:ht,allocated:!0}},ie.stream_ops=K,ie}},it=(u,h)=>u?Y(w,u,h):"",vt={DEFAULT_POLLMASK:5,calculateAt:function(u,h,_){if(we.isAbs(h))return h;var I;if(u===-100?I=b.cwd():I=vt.getStreamFromFD(u).path,h.length==0){if(!_)throw new b.ErrnoError(44);return I}return we.join2(I,h)},doStat:function(u,h,_){try{var I=u(h)}catch(V){if(V&&V.node&&we.normalize(h)!==we.normalize(b.getPath(V.node)))return-54;throw V}P[_>>2]=I.dev,P[_+4>>2]=I.mode,$[_+8>>2]=I.nlink,P[_+12>>2]=I.uid,P[_+16>>2]=I.gid,P[_+20>>2]=I.rdev,Ze=[I.size>>>0,(ne=I.size,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+24>>2]=Ze[0],P[_+28>>2]=Ze[1],P[_+32>>2]=4096,P[_+36>>2]=I.blocks;var C=I.atime.getTime(),k=I.mtime.getTime(),U=I.ctime.getTime();return Ze=[Math.floor(C/1e3)>>>0,(ne=Math.floor(C/1e3),+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+40>>2]=Ze[0],P[_+44>>2]=Ze[1],$[_+48>>2]=C%1e3*1e3,Ze=[Math.floor(k/1e3)>>>0,(ne=Math.floor(k/1e3),+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+56>>2]=Ze[0],P[_+60>>2]=Ze[1],$[_+64>>2]=k%1e3*1e3,Ze=[Math.floor(U/1e3)>>>0,(ne=Math.floor(U/1e3),+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+72>>2]=Ze[0],P[_+76>>2]=Ze[1],$[_+80>>2]=U%1e3*1e3,Ze=[I.ino>>>0,(ne=I.ino,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+88>>2]=Ze[0],P[_+92>>2]=Ze[1],0},doMsync:function(u,h,_,I,C){if(!b.isFile(h.node.mode))throw new b.ErrnoError(43);if(2&I)return 0;var k=w.slice(u,u+_);b.msync(h,k,C,_,I)},varargs:void 0,get:()=>(vt.varargs+=4,P[vt.varargs-4>>2]),getStr:u=>it(u),getStreamFromFD:function(u){return b.getStreamChecked(u)}};function Mr(u){switch(u){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${u}`)}}var xr=void 0;function Ft(u){for(var h="",_=u;w[_];)h+=xr[w[_++]];return h}var G={},gr={},Di={},lr=void 0;function pt(u){throw new lr(u)}var _n=void 0;function kr(u){throw new _n(u)}function ei(u,h,_){function I(V){var ie=_(V);ie.length!==u.length&&kr("Mismatched type converter count");for(var K=0;K<u.length;++K)vr(u[K],ie[K])}u.forEach(function(V){Di[V]=h});var C=new Array(h.length),k=[],U=0;h.forEach((V,ie)=>{gr.hasOwnProperty(V)?C[ie]=gr[V]:(k.push(V),G.hasOwnProperty(V)||(G[V]=[]),G[V].push(()=>{C[ie]=gr[V],++U===k.length&&I(C)}))}),k.length===0&&I(C)}function vr(u,h,_={}){if(!("argPackAdvance"in h))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(I,C,k={}){var U=C.name;if(I||pt(`type "${U}" must have a positive integer typeid pointer`),gr.hasOwnProperty(I)){if(k.ignoreDuplicateRegistrations)return;pt(`Cannot register type '${U}' twice`)}if(gr[I]=C,delete Di[I],G.hasOwnProperty(I)){var V=G[I];delete G[I],V.forEach(ie=>ie())}}(u,h,_)}function Oi(u){if(!(this instanceof hi)||!(u instanceof hi))return!1;for(var h=this.$$.ptrType.registeredClass,_=this.$$.ptr,I=u.$$.ptrType.registeredClass,C=u.$$.ptr;h.baseClass;)_=h.upcast(_),h=h.baseClass;for(;I.baseClass;)C=I.upcast(C),I=I.baseClass;return h===I&&_===C}function Mi(u){pt(u.$$.ptrType.registeredClass.name+" instance already deleted")}var _s=!1;function fd(u){}function gd(u){u.count.value-=1,u.count.value===0&&function(h){h.smartPtr?h.smartPtrType.rawDestructor(h.smartPtr):h.ptrType.registeredClass.rawDestructor(h.ptr)}(u)}function _d(u,h,_){if(h===_)return u;if(_.baseClass===void 0)return null;var I=_d(u,h,_.baseClass);return I===null?null:_.downcast(I)}var Es={};function vh(){return Object.keys(ys).length}function Rh(){var u=[];for(var h in ys)ys.hasOwnProperty(h)&&u.push(ys[h]);return u}var Ts=[];function qr(){for(;Ts.length;){var u=Ts.pop();u.$$.deleteScheduled=!1,u.delete()}}var xi=void 0;function Ed(u){xi=u,Ts.length&&xi&&xi(qr)}var ys={};function Mo(u,h){return h=function(_,I){for(I===void 0&&pt("ptr should not be undefined");_.baseClass;)I=_.upcast(I),_=_.baseClass;return I}(u,h),ys[h]}function Ss(u,h){return h.ptrType&&h.ptr||kr("makeClassHandle requires ptr and ptrType"),!!h.smartPtrType!=!!h.smartPtr&&kr("Both smartPtrType and smartPtr must be specified"),h.count={value:1},xo(Object.create(u,{$$:{value:h}}))}function Td(u){var h=this.getPointee(u);if(!h)return this.destructor(u),null;var _=Mo(this.registeredClass,h);if(_!==void 0){if(_.$$.count.value===0)return _.$$.ptr=h,_.$$.smartPtr=u,_.clone();var I=_.clone();return this.destructor(u),I}function C(){return this.isSmartPointer?Ss(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:h,smartPtrType:this,smartPtr:u}):Ss(this.registeredClass.instancePrototype,{ptrType:this,ptr:u})}var k,U=this.registeredClass.getActualType(h),V=Es[U];if(!V)return C.call(this);k=this.isConst?V.constPointerType:V.pointerType;var ie=_d(h,this.registeredClass,k.registeredClass);return ie===null?C.call(this):this.isSmartPointer?Ss(k.registeredClass.instancePrototype,{ptrType:k,ptr:ie,smartPtrType:this,smartPtr:u}):Ss(k.registeredClass.instancePrototype,{ptrType:k,ptr:ie})}var xo=function(u){return typeof FinalizationRegistry=="undefined"?(xo=h=>h,u):(_s=new FinalizationRegistry(h=>{gd(h.$$)}),fd=h=>_s.unregister(h),(xo=h=>{var _=h.$$;if(_.smartPtr){var I={$$:_};_s.register(h,I,h)}return h})(u))};function yd(){if(this.$$.ptr||Mi(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var u,h=xo(Object.create(Object.getPrototypeOf(this),{$$:{value:(u=this.$$,{count:u.count,deleteScheduled:u.deleteScheduled,preservePointerOnDelete:u.preservePointerOnDelete,ptr:u.ptr,ptrType:u.ptrType,smartPtr:u.smartPtr,smartPtrType:u.smartPtrType})}}));return h.$$.count.value+=1,h.$$.deleteScheduled=!1,h}function Ch(){this.$$.ptr||Mi(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),fd(this),gd(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Sd(){return!this.$$.ptr}function Id(){return this.$$.ptr||Mi(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),Ts.push(this),Ts.length===1&&xi&&xi(qr),this.$$.deleteScheduled=!0,this}function hi(){}function Rr(u){if(u===void 0)return"_unknown";var h=(u=u.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return h>=48&&h<=57?`_${u}`:u}function En(u,h){return u=Rr(u),{[u]:function(){return h.apply(this,arguments)}}[u]}function bd(u,h,_){if(u[h].overloadTable===void 0){var I=u[h];u[h]=function(){return u[h].overloadTable.hasOwnProperty(arguments.length)||pt(`Function '${_}' called with an invalid number of arguments (${arguments.length}) - expects one of (${u[h].overloadTable})!`),u[h].overloadTable[arguments.length].apply(this,arguments)},u[h].overloadTable=[],u[h].overloadTable[I.argCount]=I}}function Tn(u,h,_,I,C,k,U,V){this.name=u,this.constructor=h,this.instancePrototype=_,this.rawDestructor=I,this.baseClass=C,this.getActualType=k,this.upcast=U,this.downcast=V,this.pureVirtualFunctions=[]}function Is(u,h,_){for(;h!==_;)h.upcast||pt(`Expected null or instance of ${_.name}, got an instance of ${h.name}`),u=h.upcast(u),h=h.baseClass;return u}function wh(u,h){if(h===null)return this.isReference&&pt(`null is not a valid ${this.name}`),0;h.$$||pt(`Cannot pass "${bn(h)}" as a ${this.name}`),h.$$.ptr||pt(`Cannot pass deleted object as a pointer of type ${this.name}`);var _=h.$$.ptrType.registeredClass;return Is(h.$$.ptr,_,this.registeredClass)}function Nh(u,h){var _;if(h===null)return this.isReference&&pt(`null is not a valid ${this.name}`),this.isSmartPointer?(_=this.rawConstructor(),u!==null&&u.push(this.rawDestructor,_),_):0;h.$$||pt(`Cannot pass "${bn(h)}" as a ${this.name}`),h.$$.ptr||pt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&h.$$.ptrType.isConst&&pt(`Cannot convert argument of type ${h.$$.smartPtrType?h.$$.smartPtrType.name:h.$$.ptrType.name} to parameter type ${this.name}`);var I=h.$$.ptrType.registeredClass;if(_=Is(h.$$.ptr,I,this.registeredClass),this.isSmartPointer)switch(h.$$.smartPtr===void 0&&pt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:h.$$.smartPtrType===this?_=h.$$.smartPtr:pt(`Cannot convert argument of type ${h.$$.smartPtrType?h.$$.smartPtrType.name:h.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:_=h.$$.smartPtr;break;case 2:if(h.$$.smartPtrType===this)_=h.$$.smartPtr;else{var C=h.clone();_=this.rawShare(_,Po.toHandle(function(){C.delete()})),u!==null&&u.push(this.rawDestructor,_)}break;default:pt("Unsupporting sharing policy")}return _}function Ad(u,h){if(h===null)return this.isReference&&pt(`null is not a valid ${this.name}`),0;h.$$||pt(`Cannot pass "${bn(h)}" as a ${this.name}`),h.$$.ptr||pt(`Cannot pass deleted object as a pointer of type ${this.name}`),h.$$.ptrType.isConst&&pt(`Cannot convert argument of type ${h.$$.ptrType.name} to parameter type ${this.name}`);var _=h.$$.ptrType.registeredClass;return Is(h.$$.ptr,_,this.registeredClass)}function bs(u){return this.fromWireType(P[u>>2])}function Dh(u){return this.rawGetPointee&&(u=this.rawGetPointee(u)),u}function vd(u){this.rawDestructor&&this.rawDestructor(u)}function Oh(u){u!==null&&u.delete()}function mi(u,h,_,I,C,k,U,V,ie,K,Re){this.name=u,this.registeredClass=h,this.isReference=_,this.isConst=I,this.isSmartPointer=C,this.pointeeType=k,this.sharingPolicy=U,this.rawGetPointee=V,this.rawConstructor=ie,this.rawShare=K,this.rawDestructor=Re,C||h.baseClass!==void 0?this.toWireType=Nh:I?(this.toWireType=wh,this.destructorFunction=null):(this.toWireType=Ad,this.destructorFunction=null)}var yn=[],Rd=u=>{var h=yn[u];return h||(u>=yn.length&&(yn.length=u+1),yn[u]=h=L.get(u)),h},Mh=(u,h,_)=>u.includes("j")?((I,C,k)=>{var U=o["dynCall_"+I];return k&&k.length?U.apply(null,[C].concat(k)):U.call(null,C)})(u,h,_):Rd(h).apply(null,_);function ko(u,h){var _,I,C,k=(u=Ft(u)).includes("j")?(_=u,I=h,C=[],function(){return C.length=0,Object.assign(C,arguments),Mh(_,I,C)}):Rd(h);return typeof k!="function"&&pt(`unknown function pointer with signature ${u}: ${h}`),k}var Cd=void 0;function Sn(u){var h=fi(u),_=Ft(h);return hr(h),_}function In(u,h){var _=[],I={};throw h.forEach(function C(k){I[k]||gr[k]||(Di[k]?Di[k].forEach(C):(_.push(k),I[k]=!0))}),new Cd(`${u}: `+_.map(Sn).join([", "]))}function Ra(u,h){for(var _=[],I=0;I<u;I++)_.push($[h+4*I>>2]);return _}function wd(u){for(;u.length;){var h=u.pop();u.pop()(h)}}function Ca(u,h){if(!(u instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof u} which is not a function`);var _=En(u.name||"unknownFunctionName",function(){});_.prototype=u.prototype;var I=new _,C=u.apply(I,h);return C instanceof Object?C:I}function Lo(u,h,_,I,C,k){var U=h.length;U<2&&pt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var V=h[1]!==null&&_!==null,ie=!1,K=1;K<h.length;++K)if(h[K]!==null&&h[K].destructorFunction===void 0){ie=!0;break}var Re=h[0].name!=="void",Pe="",Ue="";for(K=0;K<U-2;++K)Pe+=(K!==0?", ":"")+"arg"+K,Ue+=(K!==0?", ":"")+"arg"+K+"Wired";var Le=`
54
- return function ${Rr(u)}(${Pe}) {
55
- if (arguments.length !== ${U-2}) {
56
- throwBindingError('function ${u} called with ${arguments.length} arguments, expected ${U-2} args!');
57
- }`;ie&&(Le+=`var destructors = [];
58
- `);var st=ie?"destructors":"null",gt=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],ht=[pt,I,C,wd,h[0],h[1]];for(V&&(Le+="var thisWired = classParam.toWireType("+st+`, this);
59
- `),K=0;K<U-2;++K)Le+="var arg"+K+"Wired = argType"+K+".toWireType("+st+", arg"+K+"); // "+h[K+2].name+`
60
- `,gt.push("argType"+K),ht.push(h[K+2]);if(V&&(Ue="thisWired"+(Ue.length>0?", ":"")+Ue),Le+=(Re||k?"var rv = ":"")+"invoker(fn"+(Ue.length>0?", ":"")+Ue+`);
61
- `,ie)Le+=`runDestructors(destructors);
62
- `;else for(K=V?1:2;K<h.length;++K){var Wt=K===1?"thisWired":"arg"+(K-2)+"Wired";h[K].destructorFunction!==null&&(Le+=Wt+"_dtor("+Wt+"); // "+h[K].name+`
63
- `,gt.push(Wt+"_dtor"),ht.push(h[K].destructorFunction))}return Re&&(Le+=`var ret = retType.fromWireType(rv);
50
+ } `;var xs=class extends ue{constructor(e){super();m(this,"frameRate");m(this,"_canvas");m(this,"log");m(this,"hasAlpha",!1);m(this,"name");m(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}get canvas(){return this._canvas}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new Dr(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new Un(this,e)}createVideoImageSource(e,r){return new fc(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new gc(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new Yu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};m(xs,"_ids",0);var Py={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Vn=class Vn extends xs{constructor(){super(...arguments);m(this,"defaultProgam");m(this,"defaultVShader");m(this,"defaultFShader");m(this,"ctx");m(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(e=!1){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${xs._ids++}`),e&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",Py),!this.ctx)throw new se({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,My),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,xy),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,X.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e,this._canvas2d&&(this._canvas2d.width=e)}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e,this._canvas2d&&(this._canvas2d.height=e)}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r),this._canvas2d&&(this._canvas2d.width=e,this._canvas2d.height=r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};m(Vn,"UNAVAILABLE","unavailable"),Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),X.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),X.addSuccessEvent({key:512700})}})],Vn.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Vn.UNAVAILABLE,e),this.removeAllListeners()}})],Vn.prototype,"destroy",1);var Nt=Vn,Lt=class extends xs{constructor(){super(...arguments);m(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${xs._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha,willReadFrequently:e.willReadFrequently}),!this.ctx)throw new se({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,X.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),X.addSuccessEvent({key:512703})}};Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),X.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),X.addSuccessEvent({key:512701})}})],Lt.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0})],Lt.prototype,"destroy",1);function Ly(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),d=e/a,l=r/a;n.sx=(i-d)/2,n.sy=(t-l)/2,n.sWidth=d,n.sHeight=l;break}}return n}var Mp=class{constructor(t,e){this.node=t;this.layout=e;m(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},Fn=class extends _t{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});m(this,"inputs",[]);m(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new Mp(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(R=>R.node===e);if(o<0)return;let{x:s,y:n,width:a,height:d,zIndex:l,fillMode:p,rotation:f,hidden:g}=r;if(!O(l)&&this.inputs.some(R=>R.layout.zIndex===l&&R.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let A=this.inputs[o];O(s)||(A.layout.x=s),O(n)||(A.layout.y=n),O(a)||(A.layout.width=a),O(d)||(A.layout.height=d),O(f)||(A.layout.rotation=f),O(g)||(A.layout.hidden=g),p&&(A.layout.fillMode=p),!O(l)&&l!==A.layout.zIndex&&(A.layout.zIndex=l,this.inputs.sort((R,N)=>R.layout.zIndex-N.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof Nt&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=Ly(o.node.width,o.node.height,o.width,o.height,o.fillMode,fr(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,d=Date.now(),l=(e-this.lastInfo.totalFrames)/((d-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:d,fps:l,name:a},Y({parent:this.inputs.filter(p=>p).map(p=>p.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof Nt)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var ky=[1,0,0,0,1,1,0,1],wr=class extends _t{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});m(this,"mirror",!1);m(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof Nt)try{this.setTexBuffer(ky)}catch(n){e.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){fr(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var Ps=class extends Xr{constructor(e,r=4){super(r,er);m(this,"inputLocalVideoTracks",new Map);m(this,"inputLocalScreenTracks",new Map);m(this,"cameraNodeMap",new Map);m(this,"screenNodeMap",new Map);m(this,"textNodeMap",new Map);m(this,"imageNodeMap",new Map);m(this,"videoNodeMap",new Map);m(this,"endedIds",new Set);m(this,"videoContext");m(this,"mixNode");m(this,"destination");m(this,"manager");m(this,"stat");m(this,"_checkId",0);m(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(_t.RENDER,o=>{this.emit("render",o)}),this.mixNode=new Fn(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=gt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Lt({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.cameraNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.screenNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return y(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),vr&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,Ft(this,dt).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;Vt===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let d=this.videoContext.createTextSource({content:o,font:s,color:n});d.resize(a.width,a.height),this._connectMix(d,a),this.textNodeMap.set(r,d)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(Vt===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof Dr){let l=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(l),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof Dr)n.replaceTrack(o);else{let l=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(l),this.cameraNodeMap.set(e,n)}let{width:a,height:d}=o.getSettings();a&&d&&n.resize(a,d)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,d=this.textNodeMap.get(r);d&&(O(o)||(d.content=o),O(s)||(d.font=s),O(n)||(d.color=n),d.resize(a.width,a.height),this._changeMixLayout(d,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new wr(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof wr&&(O(o)||(n.mirror=o),O(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),gt.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),At(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var Zu=Ua();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Zu,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var Uy=function(i){return y(this,null,function*(){let t=null,e=By(i);F.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(An&&Yt<74||ct||ot)&&F.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){F.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield Vy(o,i.captureElement))}if(i.audio){let s=Fy(i);F.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function Vy(i,t){return y(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Xe(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Zu))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){F.warn(`cropTo target failed ${r}`)}})}function Fy(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return O(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function By(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:ct?{max:i.width}:{ideal:i.width,max:i.width},height:ct?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var KE=Uy;var mi=class extends _r{constructor(e){super(e,2);m(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});m(this,"objectFit","contain");m(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Zu===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return y(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:d,preferDisplaySurface:l}){try{let f;return a||n?(f=new MediaStream,a&&f.addTrack(a),n&&f.addTrack(n)):(f=yield KE({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:d,preferDisplaySurface:l}),this.sourceTrack=f.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(f.getVideoTracks()[0]),f}catch(f){throw this.log.error(`getDisplayMedia error observed ${f}`),f instanceof se?f:new se({code:q.INITIALIZE_FAILED,name:f.name,message:f.message})}})}switchDevice(e){return y(this,null,function*(){throw new Error("Method not implemented.")})}};Z([No(function(e){this.setContentHint(e.contentHint||"detail")})],mi.prototype,"capture",1);var Ls=class extends li{constructor(t){super(t),this._log.id=`s-${this._log.id}`,this.isScreen=!0}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var $y='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',xp;function Ec(i,t=48e3,e=1,r){return y(this,null,function*(){let o=ze("dump");xp||(xp=Gi(o,URL.createObjectURL(new Blob([$y],{type:"application/javascript"})))),yield xp;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,d)=>a.connect(n,0,d)),new ReadableStream({start(a){n.port.onmessage=d=>{a.enqueue(d.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var Ku=class extends bu{constructor(e){super();this.room=e;m(this,"_localAudioTrack");m(this,"_localScreenAudioTrack");m(this,"log");m(this,"denoiser");m(this,"voiceChanger");m(this,"mixChangedDebounce");m(this,"audioProcessor");m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"getPCMAbortCtrlMap",new Map);m(this,"audioFrameEventConfigMap",new Map);m(this,"audioReferenceMap",new Map);m(this,"isLocalAudioNeedAudioProcess",!1);m(this,"isScreenAudioNeedAudioProcess",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"am",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var p,f;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(f=this._localAudioPipline)!=null&&f.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),d=()=>{for(let g=0;g<o.length;g++){let A=URL.createObjectURL(new Blob(n[g])),R=document.createElement("a");R.href=A,R.download=`${o[g]}.pcm`,R.style.display="none",document.body.appendChild(R),R.click(),URL.revokeObjectURL(A),R.remove()}clearTimeout(a),s.abort("download")},l=Ec(r).then(g=>g.pipeTo(new WritableStream({write(A){A.forEach((R,N)=>n[N]=n[N]?n[N].concat(R[0]):[R[0]])}}),s).catch(A=>d));return{then:l.then.bind(l),download:d}}getPCM(e,r){var P,z,H;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let d=Math.floor(s*.04),l=new Float32Array(d),p=new Float32Array(d),f,g,A=0,R=new AbortController,N=r===""?(P=this._localAudioTrack)==null?void 0:P.mediaTrack:(H=(z=this.room)==null?void 0:z.remotePublishedUserMap.get(r))==null?void 0:H.remoteAudioTrack.mediaTrack;if(!N){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let C=ze().createMediaStreamSource(new MediaStream([N]));return Ec([C],s,n,a).then(ge=>ge.pipeTo(new WritableStream({write(Ue){Ue[0][0]&&(A+Ue[0][0].length>d?(l.set(Ue[0][0].subarray(0,d-A),A),f=Ue[0][0].subarray(d-A),Ue[0][1]&&(p.set(Ue[0][1].subarray(0,d-A),A),g=Ue[0][1].subarray(d-A)),A+=d-A):(f&&(l.set(f,A),A+=f.length,f=void 0),g&&(p.set(g,A),g=void 0),l.set(Ue[0][0],A),Ue[0][1]&&p.set(Ue[0][1],A),A+=Ue[0][0].length),A>=d&&(A=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?l:[l,p]}),l=new Float32Array(d),p=new Float32Array(d)))}}),R).catch(Ue=>this.log.warn(`stop getPCM reason:${Ue}`))),R}get hasScreenAudioTrack(){return!O(this._localScreenAudioTrack)}get hasAudioTrack(){return!O(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof Ls)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof li)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof zi)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof Ls?delete this._localScreenAudioTrack:e instanceof li?delete this._localAudioTrack:e instanceof zi}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localAudioTrack)==null||l.mixAudioReference(a,d)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localScreenAudioTrack)==null||l.mixAudioReference(a,d)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var d;(d=this.room)==null||d.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){U.on("113",this.handleLocalTrackStarted,this),U.on("114",this.handleLocalTrackStopped,this),U.on("115",this.handleRemoteTrackStarted,this),U.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){U.off("113",this.handleLocalTrackStarted),U.off("114",this.handleLocalTrackStopped),U.off("115",this.handleRemoteTrackStarted),U.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||O(s))return;this.setAudioReferenceVolume(o,s)}}};function e_(i=30,t=2){return Pe((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let d=new se({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||F).warn(d),t===2?n(d):t===1&&s()},i*1e3);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(a),e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a),this._checkPendingPromiseSet&&a&&this._checkPendingPromiseSet.delete(a)})})})}var hi=class hi extends ys{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;m(this,"tinyId");m(this,"isRemote",!0);m(this,"jitterBufferDelay",0);m(this,"availableState");m(this,"remotePublishState");m(this,"_triggerCheckDecodeSubject",bt(Ae(this,hi.STATE_SUBSCRIBE)));m(this,"ignoreUpdatePlayingState");this.tinyId=r.tinyId,this.availableState=new ue(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new ue(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),ye(uc(Ae(this,ue.STATECHANGED),Ae(this.remotePublishState,ue.STATECHANGED)),wo(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(d=>{this.availableState.state!==(d?ue.ON:ue.OFF)&&(this.availableState.state=d?ue.ON:ue.OFF),!(this.isRemotePublished&&this.ignoreUpdatePlayingState)&&this.updatePlayingState(d)}));let s=ye(Ae(this.player,je.ERROR),tr(d=>d.code===MediaError.MEDIA_ERR_DECODE)),n=ye(mc(5e3),tr(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===M.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=ye(jh(s,n),Je(Ae(this,ue.INIT)));ye(this._triggerCheckDecodeSubject,tr(()=>!this.ignoreDecodeError),qi(a),Le(d=>{this.reportDecodeResult(!1,d)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===hi.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===ue.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){var s,n;let o=this.kind===M.AUDIO;if(X[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";X[e?"addSuccessEvent":"addFailedEvent"]({key:Cn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(X.addEnum({key:o?504701:514703,value:fs()}),qe.uploadEvent({log:`stat-decode-failed-${this.kind}-${ps()||Li()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===M.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.player.isPlayCalled&&this.player.setTrack(this.playerMediaTrack),this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?ue.ON:ue.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};m(hi,"STATE_SUBSCRIBE","subscribe"),Z([e_(5,1)],hi.prototype,"waitHasMediaTrack",1),Z([et(ue.INIT,hi.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),U.emit(B.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),xu(521716,!1)],hi.prototype,"subscribe",1),Z([et(hi.STATE_SUBSCRIBE,ue.INIT,{sync:!0,success(){this.log.info("unsubscribed"),U.emit(B.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],hi.prototype,"unsubscribe",1);var Bn=hi;var zi=class extends Bn{constructor(e,r){super(e,r,1);m(this,"volume",0);m(this,"mediaType",1);m(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return vu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&_u().AudioDecoder&&Is:!1}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:d,hasLeavingTag:l})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:d,hasLeavingTag:l})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var el=class extends _t{constructor(e,r,o,s,n){super(e,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:r});this.setContainer=s;m(this,"initStat",{alphaStitchingType:1});m(this,"end",bt());m(this,"minSize",320);m(this,"maxSize",1280);m(this,"draggable",!1);m(this,"startDragX",0);m(this,"startDragY",0);m(this,"left",0);m(this,"top",0);m(this,"baseWidth",320);m(this,"baseRatio");m(this,"container");this.initStat=n,this.draggable=o,this.bindDragEvents()}bindDragEvents(){let e=this.context._canvas;if(e)if(this.draggable){let r=Je(this.end);ye(Ae(e,"mousedown"),Ds(this.startDrag.bind(this)),ui(()=>ye(Ae(window,"mousemove"),Je(Ae(window,"mouseup")))),r,Le(this.doDrag.bind(this))),ye(Ae(e,"dblclick"),r,Le(this.resetPosition.bind(this))),ye(Ae(e,"wheel"),r,Le(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}startDrag(e){e.preventDefault(),e.button===0&&(this.startDragX=e.clientX-this.left,this.startDragY=e.clientY-this.top)}renderCanvas(){let{container:e}=this;e||this.setContainer(),!(!e||!this.baseRatio||!this.draggable)&&(e.style.setProperty("width",`${this.baseWidth}px`),e.style.setProperty("height",`${this.baseWidth/this.baseRatio}px`),e.style.setProperty("position","fixed"),e.style.setProperty("left",`${this.left}px`),e.style.setProperty("top",`${this.top}px`))}doDrag(e){e.preventDefault(),this.left=e.clientX-this.startDragX,this.top=e.clientY-this.startDragY,this.renderCanvas()}handleZoom(e){e.preventDefault();let r=.1,o=e.deltaY,s=this.context._canvas;s&&(this.baseWidth||(this.baseWidth=s.offsetWidth),o<0?this.baseWidth=Math.min(this.baseWidth*(1+r),this.maxSize):this.baseWidth=Math.max(this.baseWidth*(1-r),this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(e,r,o,s,n){var A;let{ctx2d:a}=this,d=this.context._canvas;if(!a||!d)return!1;let l=super.draw2d(e,r,o,s,n),p=a.getImageData(0,0,s,n),{data:f}=p,g=!1;if(this.initStat.alphaStitchingType===1){let R=Math.floor(s/2);for(let N=0;N<n;N++)for(let C=0;C<R;C++){let P=(N*s+C)*4,z=C+R,H=(N*s+z)*4,ge=f[H];f[H+3]=0;let Ue=ge>=100;f[P+3]=Ue?255:0}g=super.draw2d(p,0,0,0,0,R,n),d.width=R}else if(this.initStat.alphaStitchingType===2){let R=Math.floor(n/2);for(let N=0;N<R;N++)for(let C=0;C<s;C++){let P=(N*s+C)*4,H=((N+R)*s+C)*4,ge=f[H];f[H+3]=0;let Ue=ge>=100;f[P+3]=Ue?255:0}g=super.draw2d(p,0,0,0,0,s,R),d.height=R}return(A=this.context.ctx)==null||A.clearRect(0,0,s,n),l&&g}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}};function Wy(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var xo=class extends Bn{constructor(e,r,o=4){super(e,r,o);m(this,"mediaType",4);m(this,"source");m(this,"shouldRenderAlpha",!1);m(this,"alphaNode");m(this,"shouldBeDraggable",!0);m(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.on("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}isAlphaSei(e){if(this.userId!==e.userId||e.seiPayloadType!==50)return!1;let r=new Uint8Array(e.data);return r.length%3!==0||r[0]!==0||r[1]!==1?!1:r}play(e,r){return(Ye(r==null?void 0:r.canvasRender)?r.canvasRender:Vt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat(),U.emit("156",{track:this,player:this.player})})}updateAlphaRenderInfo(e){let r=this.isAlphaSei(e);if(r)if(!this.alphaNode)this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(r[2]);else{let o=r[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===o)return;this.alphaNode.initStat={alphaStitchingType:o};let s=this.player.getElement();if(s){let n=s.videoWidth/s.videoHeight;n&&(this.alphaNode.baseRatio=n*(o===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(o))}}generateAlphaCanvasName(e){let r="alpha",o=Ga[e];return`${r}_${o}_${this.userId}`}useCanvasPlayer(e){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let r=new Lt({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&e?this.generateAlphaCanvasName(e):this.userId});r.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let o=new Ms(r,{name:"remotePlayer",logger:this.log});if(this.source=r.createVideoPlayerSource(this.player),this.player.setCanvas(r._canvas),this.shouldRenderAlpha&&e){let s=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},n=new el(r,this.log,this.shouldBeDraggable,s,{alphaStitchingType:e});this.source.connect(n),n.connect(o),this.alphaNode=n}else this.source.connect(o);zr()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,r),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=Wy(r);if(!Fe(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(a=>a.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(a=>a.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),U.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}setDraggable(e){this.shouldBeDraggable=e,this.alphaNode&&(this.alphaNode.draggable=e,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},tl=class extends xo{constructor(e,r){super(e,r,2);m(this,"mediaType",2);m(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var $n=new Map;U.on(B.JOIN_SUCCESS,({room:i})=>{ht(i.userId,{eventId:32788})});U.on(B.LEAVE_START,({room:i})=>{ht(i.userId,{eventId:32789})});U.on(B.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),ht(i.room.userId,{eventId:t})}});U.on(B.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),ht(i.room.userId,{eventId:t})}});U.on(B.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?ht(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):ht(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?ht(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):ht(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&ht(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&ht(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&ht(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});U.on(B.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&ht(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&ht(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&ht(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});U.on(B.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&ht(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});U.on(B.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&ht(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});U.on(B.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&ht(i.userId,{eventId:r})});U.on(B.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&ht(i.userId,{eventId:s,remoteUserId:r})});U.on(B.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let d={H264:0,H265:1,VP8:2}[r.toUpperCase()],l={eventId:4004,param1:a,param2:d,streamType:n||2};e&&(l.remoteUserId=e,l.eventId=4005),ht(t,l),X.addEnum({key:e?514701:513701,value:a}),X.addEnum({key:e?514700:513700,value:d})});U.on(B.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===M.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),ht(i.userId,e)}});function ht(i,t){let e=_e(Y({},t),{timestamp:Ri()});$n.has(i)?$n.get(i).push(e):$n.set(i,[e])}function t_(i){if($n.has(i)){let t=$n.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return $n.delete(i),t}return[]}function r_(...i){return Pe((t,e)=>function(...r){return Gy.call(this,i,r,e,this._name),t.apply(this,r)})}function Gy(i,t,e,r){try{if(mt(i))for(let o=0;o<i.length;o++)rl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else rl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw F.error(o),o}}function rl({rule:i,value:t,key:e,fnName:r,className:o}){if(O(t)){if(i.required)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(O(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let d=0;d<i.type.length;d++)i.type[d]===null&&t===null&&(a=!0),Xe(i.type[d])&&t instanceof i.type[d]&&(a=!0),Oe(i.type[d])&&ft(t)===i.type[d].toLowerCase()&&(a=!0);if(!a)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(d=>as(d)?dn(d):Oe(d)?d:ft(d))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!O(i.type)&&ft(t)!==i.type)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=Fe(t)&&(t===0||Number.isNaN(t)),d=Oe(t)&&t.trim()==="";if(a||d)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&Fe(t)&&t<0)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.min)&&Fe(t)&&t<i.min)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.max)&&Fe(t)&&t>i.max)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(Oe(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Xe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Jt(s)&&pr(t)&&Object.keys(s).forEach(a=>{rl.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Jt(n)&&mt(t)&&t.forEach((a,d)=>{rl.call(this,{rule:n,value:a,key:`${e}[${d}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}var jy=bi(ki(),1);var qy=Object.create,al=Object.defineProperty,zy=Object.defineProperties,p_=Object.getOwnPropertyDescriptor,Jy=Object.getOwnPropertyDescriptors,f_=Object.getOwnPropertyNames,nl=Object.getOwnPropertySymbols,Xy=Object.getPrototypeOf,Jp=Object.prototype.hasOwnProperty,g_=Object.prototype.propertyIsEnumerable,Bp=(i,t,e)=>t in i?al(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Sc=(i,t)=>{for(var e in t||(t={}))Jp.call(t,e)&&Bp(i,e,t[e]);if(nl)for(var e of nl(t))g_.call(t,e)&&Bp(i,e,t[e]);return i},Ac=(i,t)=>zy(i,Jy(t)),Qy=(i,t)=>{var e={};for(var r in i)Jp.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&nl)for(var r of nl(i))t.indexOf(r)<0&&g_.call(i,r)&&(e[r]=i[r]);return e},Yy=(i,t)=>function(){return t||(0,i[f_(i)[0]])((t={exports:{}}).exports,t),t.exports},Zy=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of f_(t))Jp.call(i,o)||o===e||al(i,o,{get:()=>t[o],enumerable:!(r=p_(t,o))||r.enumerable});return i},E_=(i,t,e)=>(e=i!=null?qy(Xy(i)):{},Zy(!t&&i&&i.__esModule?e:al(e,"default",{value:i,enumerable:!0}),i)),Ji=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?p_(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&al(t,e,s),s},tt=(i,t,e)=>Bp(i,typeof t!="symbol"?t+"":t,e),__=Yy({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(l,p,f){this.fn=l,this.context=p,this.once=f||!1}function n(l,p,f,g,A){if(typeof f!="function")throw new TypeError("The listener must be a function");var R=new s(f,g||l,A),N=r?r+p:p;return l._events[N]?l._events[N].fn?l._events[N]=[l._events[N],R]:l._events[N].push(R):(l._events[N]=R,l._eventsCount++),l}function a(l,p){--l._eventsCount==0?l._events=new o:delete l._events[p]}function d(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),d.prototype.eventNames=function(){var l,p,f=[];if(this._eventsCount===0)return f;for(p in l=this._events)e.call(l,p)&&f.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(l)):f},d.prototype.listeners=function(l){var p=r?r+l:l,f=this._events[p];if(!f)return[];if(f.fn)return[f.fn];for(var g=0,A=f.length,R=new Array(A);g<A;g++)R[g]=f[g].fn;return R},d.prototype.listenerCount=function(l){var p=r?r+l:l,f=this._events[p];return f?f.fn?1:f.length:0},d.prototype.emit=function(l,p,f,g,A,R){var N=r?r+l:l;if(!this._events[N])return!1;var C,P,z=this._events[N],H=arguments.length;if(z.fn){switch(z.once&&this.removeListener(l,z.fn,void 0,!0),H){case 1:return z.fn.call(z.context),!0;case 2:return z.fn.call(z.context,p),!0;case 3:return z.fn.call(z.context,p,f),!0;case 4:return z.fn.call(z.context,p,f,g),!0;case 5:return z.fn.call(z.context,p,f,g,A),!0;case 6:return z.fn.call(z.context,p,f,g,A,R),!0}for(P=1,C=new Array(H-1);P<H;P++)C[P-1]=arguments[P];z.fn.apply(z.context,C)}else{var ge,Ue=z.length;for(P=0;P<Ue;P++)switch(z[P].once&&this.removeListener(l,z[P].fn,void 0,!0),H){case 1:z[P].fn.call(z[P].context);break;case 2:z[P].fn.call(z[P].context,p);break;case 3:z[P].fn.call(z[P].context,p,f);break;case 4:z[P].fn.call(z[P].context,p,f,g);break;default:if(!C)for(ge=1,C=new Array(H-1);ge<H;ge++)C[ge-1]=arguments[ge];z[P].fn.apply(z[P].context,C)}}return!0},d.prototype.on=function(l,p,f){return n(this,l,p,f,!1)},d.prototype.once=function(l,p,f){return n(this,l,p,f,!0)},d.prototype.removeListener=function(l,p,f,g){var A=r?r+l:l;if(!this._events[A])return this;if(!p)return a(this,A),this;var R=this._events[A];if(R.fn)R.fn!==p||g&&!R.once||f&&R.context!==f||a(this,A);else{for(var N=0,C=[],P=R.length;N<P;N++)(R[N].fn!==p||g&&!R[N].once||f&&R[N].context!==f)&&C.push(R[N]);C.length?this._events[A]=C.length===1?C[0]:C:a(this,A)}return this},d.prototype.removeAllListeners=function(l){var p;return l?(p=r?r+l:l,this._events[p]&&a(this,p)):(this._events=new o,this._eventsCount=0),this},d.prototype.off=d.prototype.removeListener,d.prototype.addListener=d.prototype.on,d.prefixed=r,d.EventEmitter=d,t!==void 0&&(t.exports=d)}}),Ky=E_(__(),1),i_=Symbol("instance"),IU=Symbol("abortCtrl"),il=Symbol("cacheResult"),Pp=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,bc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},sl=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function eb(i){return typeof i=="object"&&i&&"then"in i}var yc=new Map;function Po(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=yc.get(r)||[];yc.has(r)||yc.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=rr.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[il]:Promise.resolve(l[il]);l.state instanceof Pp&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Pp&&l.state.abort(l):typeof l.state=="string"&&i.includes(l.state)||(p=new sl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new sl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=C=>{if(e.fail&&e.fail.call(this,C),e.sync){if(e.ignoreError)return C;throw C}return e.ignoreError?Promise.resolve(C):Promise.reject(C)};if(p)return f(p);let g=l.state,A=new Pp(g,t,n);bc.call(l,A);let R=C=>{var P;return l[il]=C,A.aborted||(bc.call(l,t),(P=e.success)===null||P===void 0||P.call(this,l[il])),C},N=C=>(bc.call(l,g,C),f(C));try{let C=a.apply(this,d);return eb(C)?C.then(R).catch(N):e.sync?R(C):Promise.resolve(R(C))}catch(C){return N(new sl(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${C}`,C instanceof Error?C:new Error(String(C))))}}}}function tb(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new sl(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var rb=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function bc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(rr.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var rr=class Or extends Ky.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=Or.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[i_];o?this.name=o.name+"-"+o.count++:r[i_]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=yc.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);yc.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(t){let e;return typeof t=="string"?(e=Or.instances.get(t),e||Or.instances.set(t,e=new Or(t,void 0,Object.create(Or.prototype)))):(e=Or.instances2.get(t),e||Or.instances2.set(t,e=new Or(t.constructor.name,void 0,Object.create(Or.prototype)))),e}static getState(t){var e;return(e=Or.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){rb(Or.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){bc.call(this,t)}};rr.STATECHANGED="stateChanged",rr.UPDATEAFSM="updateAFSM",rr.INIT="[*]",rr.ON="on",rr.OFF="off",rr.instances=new Map,rr.instances2=new WeakMap;var Wn=class extends rr{constructor(){super(...arguments),tt(this,"decoder"),tt(this,"config")}initialize(){return y(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(Ac(Sc({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function ib(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),n=0,a=0,d={wasmBinary:o,postRun:()=>{i=new d.VideoDecoder({videoInfo(l,p){n=l,a=p,console.log("video info",l,p)},yuvData(l,p){let f=n*a,g=f>>2,A=d.HEAPU32[l>>2],R=d.HEAPU32[1+(l>>2)],N=d.HEAPU32[2+(l>>2)],C=d.HEAPU8.subarray(A,A+f),P=d.HEAPU8.subarray(R,R+g),z=d.HEAPU8.subarray(N,N+g),H=new Uint8Array(f+g+g);H.set(C),H.set(P,f),H.set(z,f+g);let ge=new VideoFrame(H,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(ge,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:ge},[ge])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(d)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}Ji([Po([rr.INIT,"closed"],"initialized")],Wn.prototype,"initialize",1),Ji([Po("initialized","configured",{sync:!0})],Wn.prototype,"configure",1),Ji([tb("configured")],Wn.prototype,"decode",1),Ji([Po([],rr.INIT,{sync:!0})],Wn.prototype,"reset",1),Ji([Po([],"closed",{ignoreError:!0,sync:!0})],Wn.prototype,"close",1);var Ic=class extends rr{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,tt(this,"worker"),tt(this,"decoder"),tt(this,"config"),tt(this,"module",{}),tt(this,"width",0),tt(this,"height",0)}initialize(i){return y(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(ib.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:d}=a.data;this.emit("videoFrame",d)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),d=this.module.HEAPU8.subarray(s,s+r),l=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u:d,v:l,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(d,e),p.set(l,e+r),this.emit("videoFrame",new VideoFrame(p,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ji([Po([rr.INIT,"closed"],"initialized")],Ic.prototype,"initialize",1),Ji([Po("initialized","configured",{sync:!0})],Ic.prototype,"configure",1),Ji([Po([],rr.INIT,{sync:!0})],Ic.prototype,"reset",1),Ji([Po([],"closed",{sync:!0})],Ic.prototype,"close",1);var ob=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((c,u)=>{e=c,r=u});var s,n,a,d=Object.assign({},o),l="./this.program",p=typeof window=="object",f=typeof importScripts=="function",g=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||f)&&(f?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),i&&(g=i),g=g.indexOf("blob:")!==0?g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.send(null),u.responseText},f&&(a=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)}),n=(c,u,h)=>{var E=new XMLHttpRequest;E.open("GET",c,!0),E.responseType="arraybuffer",E.onload=()=>{E.status==200||E.status==0&&E.response?u(E.response):h()},E.onerror=h,E.send(null)});var A,R=o.print||console.log.bind(console),N=o.printErr||console.error.bind(console);Object.assign(o,d),d=null,o.arguments&&o.arguments,o.thisProgram&&(l=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(A=o.wasmBinary);var C,P;o.noExitRuntime,typeof WebAssembly!="object"&&Zr("no native wasm support detected");var z,H,ge,Ue,W,we,Ki,Yn,Zn,Kn=!1,Yr=[],Ws=[],eo=[],Ir=0,_i=null,Ti=null;function re(c){Ir++,o.monitorRunDependencies&&o.monitorRunDependencies(Ir)}function Go(c){if(Ir--,o.monitorRunDependencies&&o.monitorRunDependencies(Ir),Ir==0&&(_i!==null&&(clearInterval(_i),_i=null),Ti)){var u=Ti;Ti=null,u()}}function Zr(c){o.onAbort&&o.onAbort(c),N(c="Aborted("+c+")"),Kn=!0,c+=". Build with -sASSERTIONS for more info.";var u=new WebAssembly.RuntimeError(c);throw r(u),u}var Ii,ea,Se,rt;function Wt(c){return c.startsWith("data:application/octet-stream;base64,")}function Q(c){if(c==Ii&&A)return new Uint8Array(A);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Kr(c,u,h){return function(E){return A||!p&&!f||typeof fetch!="function"?Promise.resolve().then(()=>Q(E)):fetch(E,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+E+"'";return I.arrayBuffer()}).catch(()=>Q(E))}(c).then(E=>WebAssembly.instantiate(E,u)).then(E=>E).then(h,E=>{N("failed to asynchronously prepare wasm: "+E),Zr(E)})}Wt(Ii="videodec.wasm")||(ea=Ii,Ii=o.locateFile?o.locateFile(ea,g):g+ea);var to=c=>{for(;c.length>0;)c.shift()(o)};function ro(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(u){we[this.ptr+4>>2]=u},this.get_type=function(){return we[this.ptr+4>>2]},this.set_destructor=function(u){we[this.ptr+8>>2]=u},this.get_destructor=function(){return we[this.ptr+8>>2]},this.set_caught=function(u){u=u?1:0,z[this.ptr+12|0]=u},this.get_caught=function(){return z[this.ptr+12|0]!=0},this.set_rethrown=function(u){u=u?1:0,z[this.ptr+13|0]=u},this.get_rethrown=function(){return z[this.ptr+13|0]!=0},this.init=function(u,h){this.set_adjusted_ptr(0),this.set_type(u),this.set_destructor(h)},this.set_adjusted_ptr=function(u){we[this.ptr+16>>2]=u},this.get_adjusted_ptr=function(){return we[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ca(this.get_type()))return we[this.excPtr>>2];var u=this.get_adjusted_ptr();return u!==0?u:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,u)=>{for(var h=0,E=c.length-1;E>=0;E--){var I=c[E];I==="."?c.splice(E,1):I===".."?(c.splice(E,1),h++):h&&(c.splice(E,1),h--)}if(u)for(;h;h--)c.unshift("..");return c},normalize:c=>{var u=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(E=>!!E),!u).join("/"))||u||(c="."),c&&h&&(c+="/"),(u?"/":"")+c},dirname:c=>{var u=me.splitPath(c),h=u[0],E=u[1];return h||E?(E&&(E=E.substr(0,E.length-1)),h+E):"."},basename:c=>{if(c==="/")return"/";var u=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return u===-1?c:c.substr(u+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,u)=>me.normalize(c+"/"+u)},ta=c=>(ta=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return u=>crypto.getRandomValues(u);Zr("initRandomDevice")})())(c),ir={resolve:function(){for(var c="",u=!1,h=arguments.length-1;h>=-1&&!u;h--){var E=h>=0?arguments[h]:_.cwd();if(typeof E!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!E)return"";c=E+"/"+c,u=me.isAbs(E)}return(u?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!u).join("/"))||"."},relative:(c,u)=>{function h(k){for(var ee=0;ee<k.length&&k[ee]==="";ee++);for(var ce=k.length-1;ce>=0&&k[ce]==="";ce--);return ee>ce?[]:k.slice(ee,ce-ee+1)}c=ir.resolve(c).substr(1),u=ir.resolve(u).substr(1);for(var E=h(c.split("/")),I=h(u.split("/")),b=Math.min(E.length,I.length),v=b,D=0;D<b;D++)if(E[D]!==I[D]){v=D;break}var V=[];for(D=v;D<E.length;D++)V.push("..");return(V=V.concat(I.slice(v))).join("/")}},io=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Gt=(c,u,h)=>{for(var E=u+h,I=u;c[I]&&!(I>=E);)++I;if(I-u>16&&c.buffer&&io)return io.decode(c.subarray(u,I));for(var b="";u<I;){var v=c[u++];if(128&v){var D=63&c[u++];if((224&v)!=192){var V=63&c[u++];if((v=(240&v)==224?(15&v)<<12|D<<6|V:(7&v)<<18|D<<12|V<<6|63&c[u++])<65536)b+=String.fromCharCode(v);else{var k=v-65536;b+=String.fromCharCode(55296|k>>10,56320|1023&k)}}else b+=String.fromCharCode((31&v)<<6|D)}else b+=String.fromCharCode(v)}return b},ra=[],jo=c=>{for(var u=0,h=0;h<c.length;++h){var E=c.charCodeAt(h);E<=127?u++:E<=2047?u+=2:E>=55296&&E<=57343?(u+=4,++h):u+=3}return u},qo=(c,u,h,E)=>{if(!(E>0))return 0;for(var I=h,b=h+E-1,v=0;v<c.length;++v){var D=c.charCodeAt(v);if(D>=55296&&D<=57343&&(D=65536+((1023&D)<<10)|1023&c.charCodeAt(++v)),D<=127){if(h>=b)break;u[h++]=D}else if(D<=2047){if(h+1>=b)break;u[h++]=192|D>>6,u[h++]=128|63&D}else if(D<=65535){if(h+2>=b)break;u[h++]=224|D>>12,u[h++]=128|D>>6&63,u[h++]=128|63&D}else{if(h+3>=b)break;u[h++]=240|D>>18,u[h++]=128|D>>12&63,u[h++]=128|D>>6&63,u[h++]=128|63&D}}return u[h]=0,h-I};function Gs(c,u,h){var E=h>0?h:jo(c)+1,I=new Array(E),b=qo(c,I,0,I.length);return u&&(I.length=b),I}var Mr={ttys:[],init:function(){},shutdown:function(){},register:function(c,u){Mr.ttys[c]={input:[],output:[],ops:u},_.registerDevice(c,Mr.stream_ops)},stream_ops:{open:function(c){var u=Mr.ttys[c.node.rdev];if(!u)throw new _.ErrnoError(43);c.tty=u,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.get_char)throw new _.ErrnoError(60);for(var b=0,v=0;v<E;v++){var D;try{D=c.tty.ops.get_char(c.tty)}catch(V){throw new _.ErrnoError(29)}if(D===void 0&&b===0)throw new _.ErrnoError(6);if(D==null)break;b++,u[h+v]=D}return b&&(c.node.timestamp=Date.now()),b},write:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.put_char)throw new _.ErrnoError(60);try{for(var b=0;b<E;b++)c.tty.ops.put_char(c.tty,u[h+b])}catch(v){throw new _.ErrnoError(29)}return E&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!ra.length){var u=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(u=window.prompt("Input: "))!==null&&(u+=`
51
+ `):typeof readline=="function"&&(u=readline())!==null&&(u+=`
52
+ `),!u)return null;ra=Gs(u,!0)}return ra.shift()})()},put_char:function(c,u){u===null||u===10?(R(Gt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(R(Gt(c.output,0)),c.output=[])},ioctl_tcgets:function(c){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(c,u,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,u){u===null||u===10?(N(Gt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(N(Gt(c.output,0)),c.output=[])}}},ia=c=>{Zr()},ve={ops_table:null,mount:c=>ve.createNode(null,"/",16895,0),createNode(c,u,h,E){if(_.isBlkdev(h)||_.isFIFO(h))throw new _.ErrnoError(63);ve.ops_table||(ve.ops_table={dir:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,lookup:ve.node_ops.lookup,mknod:ve.node_ops.mknod,rename:ve.node_ops.rename,unlink:ve.node_ops.unlink,rmdir:ve.node_ops.rmdir,readdir:ve.node_ops.readdir,symlink:ve.node_ops.symlink},stream:{llseek:ve.stream_ops.llseek}},file:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:{llseek:ve.stream_ops.llseek,read:ve.stream_ops.read,write:ve.stream_ops.write,allocate:ve.stream_ops.allocate,mmap:ve.stream_ops.mmap,msync:ve.stream_ops.msync}},link:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,readlink:ve.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:_.chrdev_stream_ops}});var I=_.createNode(c,u,h,E);return _.isDir(I.mode)?(I.node_ops=ve.ops_table.dir.node,I.stream_ops=ve.ops_table.dir.stream,I.contents={}):_.isFile(I.mode)?(I.node_ops=ve.ops_table.file.node,I.stream_ops=ve.ops_table.file.stream,I.usedBytes=0,I.contents=null):_.isLink(I.mode)?(I.node_ops=ve.ops_table.link.node,I.stream_ops=ve.ops_table.link.stream):_.isChrdev(I.mode)&&(I.node_ops=ve.ops_table.chrdev.node,I.stream_ops=ve.ops_table.chrdev.stream),I.timestamp=Date.now(),c&&(c.contents[u]=I,c.timestamp=I.timestamp),I},getFileDataAsTypedArray:c=>c.contents?c.contents.subarray?c.contents.subarray(0,c.usedBytes):new Uint8Array(c.contents):new Uint8Array(0),expandFileStorage(c,u){var h=c.contents?c.contents.length:0;if(!(h>=u)){u=Math.max(u,h*(h<1048576?2:1.125)>>>0),h!=0&&(u=Math.max(u,256));var E=c.contents;c.contents=new Uint8Array(u),c.usedBytes>0&&c.contents.set(E.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,u){if(c.usedBytes!=u)if(u==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(u),h&&c.contents.set(h.subarray(0,Math.min(u,c.usedBytes))),c.usedBytes=u}},node_ops:{getattr(c){var u={};return u.dev=_.isChrdev(c.mode)?c.id:1,u.ino=c.id,u.mode=c.mode,u.nlink=1,u.uid=0,u.gid=0,u.rdev=c.rdev,_.isDir(c.mode)?u.size=4096:_.isFile(c.mode)?u.size=c.usedBytes:_.isLink(c.mode)?u.size=c.link.length:u.size=0,u.atime=new Date(c.timestamp),u.mtime=new Date(c.timestamp),u.ctime=new Date(c.timestamp),u.blksize=4096,u.blocks=Math.ceil(u.size/u.blksize),u},setattr(c,u){u.mode!==void 0&&(c.mode=u.mode),u.timestamp!==void 0&&(c.timestamp=u.timestamp),u.size!==void 0&&ve.resizeFileStorage(c,u.size)},lookup(c,u){throw _.genericErrors[44]},mknod:(c,u,h,E)=>ve.createNode(c,u,h,E),rename(c,u,h){if(_.isDir(c.mode)){var E;try{E=_.lookupNode(u,h)}catch(b){}if(E)for(var I in E.contents)throw new _.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,u.contents[h]=c,u.timestamp=c.parent.timestamp,c.parent=u},unlink(c,u){delete c.contents[u],c.timestamp=Date.now()},rmdir(c,u){var h=_.lookupNode(c,u);for(var E in h.contents)throw new _.ErrnoError(55);delete c.contents[u],c.timestamp=Date.now()},readdir(c){var u=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&u.push(h);return u},symlink(c,u,h){var E=ve.createNode(c,u,41471,0);return E.link=h,E},readlink(c){if(!_.isLink(c.mode))throw new _.ErrnoError(28);return c.link}},stream_ops:{read(c,u,h,E,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var v=Math.min(c.node.usedBytes-I,E);if(v>8&&b.subarray)u.set(b.subarray(I,I+v),h);else for(var D=0;D<v;D++)u[h+D]=b[I+D];return v},write(c,u,h,E,I,b){if(!E)return 0;var v=c.node;if(v.timestamp=Date.now(),u.subarray&&(!v.contents||v.contents.subarray)){if(b)return v.contents=u.subarray(h,h+E),v.usedBytes=E,E;if(v.usedBytes===0&&I===0)return v.contents=u.slice(h,h+E),v.usedBytes=E,E;if(I+E<=v.usedBytes)return v.contents.set(u.subarray(h,h+E),I),E}if(ve.expandFileStorage(v,I+E),v.contents.subarray&&u.subarray)v.contents.set(u.subarray(h,h+E),I);else for(var D=0;D<E;D++)v.contents[I+D]=u[h+D];return v.usedBytes=Math.max(v.usedBytes,I+E),E},llseek(c,u,h){var E=u;if(h===1?E+=c.position:h===2&&_.isFile(c.node.mode)&&(E+=c.node.usedBytes),E<0)throw new _.ErrnoError(28);return E},allocate(c,u,h){ve.expandFileStorage(c.node,u+h),c.node.usedBytes=Math.max(c.node.usedBytes,u+h)},mmap(c,u,h,E,I){if(!_.isFile(c.node.mode))throw new _.ErrnoError(43);var b,v,D=c.node.contents;if(2&I||D.buffer!==z.buffer){if((h>0||h+u<D.length)&&(D=D.subarray?D.subarray(h,h+u):Array.prototype.slice.call(D,h,h+u)),v=!0,!(b=ia()))throw new _.ErrnoError(48);z.set(D,b)}else v=!1,b=D.byteOffset;return{ptr:b,allocated:v}},msync:(c,u,h,E,I)=>(ve.stream_ops.write(c,u,0,E,h,!1),0)}},jl=(c,u,h,E)=>{var I=E?"":`al ${c}`;n(c,b=>{var v;v=`Loading data file "${c}" failed (no arrayBuffer).`,b||Zr(v),u(new Uint8Array(b)),I&&Go()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),I&&re()},le=o.preloadPlugins||[];function Si(c,u){var h=0;return c&&(h|=365),u&&(h|=146),h}var _={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,u={})=>{if(!(c=ir.resolve(c)))return{path:"",node:null};if((u=Object.assign({follow_mount:!0,recurse_count:0},u)).recurse_count>8)throw new _.ErrnoError(32);for(var h=c.split("/").filter(k=>!!k),E=_.root,I="/",b=0;b<h.length;b++){var v=b===h.length-1;if(v&&u.parent)break;if(E=_.lookupNode(E,h[b]),I=me.join2(I,h[b]),_.isMountpoint(E)&&(!v||v&&u.follow_mount)&&(E=E.mounted.root),!v||u.follow)for(var D=0;_.isLink(E.mode);){var V=_.readlink(I);if(I=ir.resolve(me.dirname(I),V),E=_.lookupPath(I,{recurse_count:u.recurse_count+1}).node,D++>40)throw new _.ErrnoError(32)}}return{path:I,node:E}},getPath:c=>{for(var u;;){if(_.isRoot(c)){var h=c.mount.mountpoint;return u?h[h.length-1]!=="/"?`${h}/${u}`:h+u:h}u=u?`${c.name}/${u}`:c.name,c=c.parent}},hashName:(c,u)=>{for(var h=0,E=0;E<u.length;E++)h=(h<<5)-h+u.charCodeAt(E)|0;return(c+h>>>0)%_.nameTable.length},hashAddNode:c=>{var u=_.hashName(c.parent.id,c.name);c.name_next=_.nameTable[u],_.nameTable[u]=c},hashRemoveNode:c=>{var u=_.hashName(c.parent.id,c.name);if(_.nameTable[u]===c)_.nameTable[u]=c.name_next;else for(var h=_.nameTable[u];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,u)=>{var h=_.mayLookup(c);if(h)throw new _.ErrnoError(h,c);for(var E=_.hashName(c.id,u),I=_.nameTable[E];I;I=I.name_next){var b=I.name;if(I.parent.id===c.id&&b===u)return I}return _.lookup(c,u)},createNode:(c,u,h,E)=>{var I=new _.FSNode(c,u,h,E);return _.hashAddNode(I),I},destroyNode:c=>{_.hashRemoveNode(c)},isRoot:c=>c===c.parent,isMountpoint:c=>!!c.mounted,isFile:c=>(61440&c)==32768,isDir:c=>(61440&c)==16384,isLink:c=>(61440&c)==40960,isChrdev:c=>(61440&c)==8192,isBlkdev:c=>(61440&c)==24576,isFIFO:c=>(61440&c)==4096,isSocket:c=>!(49152&~c),flagsToPermissionString:c=>{var u=["r","w","rw"][3&c];return 512&c&&(u+="w"),u},nodePermissions:(c,u)=>_.ignorePermissions||(!u.includes("r")||292&c.mode)&&(!u.includes("w")||146&c.mode)&&(!u.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var u=_.nodePermissions(c,"x");return u||(c.node_ops.lookup?0:2)},mayCreate:(c,u)=>{try{return _.lookupNode(c,u),20}catch(h){}return _.nodePermissions(c,"wx")},mayDelete:(c,u,h)=>{var E;try{E=_.lookupNode(c,u)}catch(b){return b.errno}var I=_.nodePermissions(c,"wx");if(I)return I;if(h){if(!_.isDir(E.mode))return 54;if(_.isRoot(E)||_.getPath(E)===_.cwd())return 10}else if(_.isDir(E.mode))return 31;return 0},mayOpen:(c,u)=>c?_.isLink(c.mode)?32:_.isDir(c.mode)&&(_.flagsToPermissionString(u)!=="r"||512&u)?31:_.nodePermissions(c,_.flagsToPermissionString(u)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=_.MAX_OPEN_FDS;c++)if(!_.streams[c])return c;throw new _.ErrnoError(33)},getStreamChecked:c=>{var u=_.getStream(c);if(!u)throw new _.ErrnoError(8);return u},getStream:c=>_.streams[c],createStream:(c,u=-1)=>(_.FSStream||(_.FSStream=function(){this.shared={}},_.FSStream.prototype={},Object.defineProperties(_.FSStream.prototype,{object:{get(){return this.node},set(h){this.node=h}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(h){this.shared.flags=h}},position:{get(){return this.shared.position},set(h){this.shared.position=h}}})),c=Object.assign(new _.FSStream,c),u==-1&&(u=_.nextfd()),c.fd=u,_.streams[u]=c,c),closeStream:c=>{_.streams[c]=null},chrdev_stream_ops:{open:c=>{var u=_.getDevice(c.node.rdev);c.stream_ops=u.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new _.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,u)=>c<<8|u,registerDevice:(c,u)=>{_.devices[c]={stream_ops:u}},getDevice:c=>_.devices[c],getMounts:c=>{for(var u=[],h=[c];h.length;){var E=h.pop();u.push(E),h.push.apply(h,E.mounts)}return u},syncfs:(c,u)=>{typeof c=="function"&&(u=c,c=!1),_.syncFSRequests++,_.syncFSRequests>1&&N(`warning: ${_.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=_.getMounts(_.root.mount),E=0;function I(v){return _.syncFSRequests--,u(v)}function b(v){if(v)return b.errored?void 0:(b.errored=!0,I(v));++E>=h.length&&I(null)}h.forEach(v=>{if(!v.type.syncfs)return b(null);v.type.syncfs(v,c,b)})},mount:(c,u,h)=>{var E,I=h==="/",b=!h;if(I&&_.root)throw new _.ErrnoError(10);if(!I&&!b){var v=_.lookupPath(h,{follow_mount:!1});if(h=v.path,E=v.node,_.isMountpoint(E))throw new _.ErrnoError(10);if(!_.isDir(E.mode))throw new _.ErrnoError(54)}var D={type:c,opts:u,mountpoint:h,mounts:[]},V=c.mount(D);return V.mount=D,D.root=V,I?_.root=V:E&&(E.mounted=D,E.mount&&E.mount.mounts.push(D)),V},unmount:c=>{var u=_.lookupPath(c,{follow_mount:!1});if(!_.isMountpoint(u.node))throw new _.ErrnoError(28);var h=u.node,E=h.mounted,I=_.getMounts(E);Object.keys(_.nameTable).forEach(v=>{for(var D=_.nameTable[v];D;){var V=D.name_next;I.includes(D.mount)&&_.destroyNode(D),D=V}}),h.mounted=null;var b=h.mount.mounts.indexOf(E);h.mount.mounts.splice(b,1)},lookup:(c,u)=>c.node_ops.lookup(c,u),mknod:(c,u,h)=>{var E=_.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new _.ErrnoError(28);var b=_.mayCreate(E,I);if(b)throw new _.ErrnoError(b);if(!E.node_ops.mknod)throw new _.ErrnoError(63);return E.node_ops.mknod(E,I,u,h)},create:(c,u)=>(u=u!==void 0?u:438,u&=4095,u|=32768,_.mknod(c,u,0)),mkdir:(c,u)=>(u=u!==void 0?u:511,u&=1023,u|=16384,_.mknod(c,u,0)),mkdirTree:(c,u)=>{for(var h=c.split("/"),E="",I=0;I<h.length;++I)if(h[I]){E+="/"+h[I];try{_.mkdir(E,u)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,u,h)=>(h===void 0&&(h=u,u=438),u|=8192,_.mknod(c,u,h)),symlink:(c,u)=>{if(!ir.resolve(c))throw new _.ErrnoError(44);var h=_.lookupPath(u,{parent:!0}).node;if(!h)throw new _.ErrnoError(44);var E=me.basename(u),I=_.mayCreate(h,E);if(I)throw new _.ErrnoError(I);if(!h.node_ops.symlink)throw new _.ErrnoError(63);return h.node_ops.symlink(h,E,c)},rename:(c,u)=>{var h,E,I=me.dirname(c),b=me.dirname(u),v=me.basename(c),D=me.basename(u);if(h=_.lookupPath(c,{parent:!0}).node,E=_.lookupPath(u,{parent:!0}).node,!h||!E)throw new _.ErrnoError(44);if(h.mount!==E.mount)throw new _.ErrnoError(75);var V,k=_.lookupNode(h,v),ee=ir.relative(c,b);if(ee.charAt(0)!==".")throw new _.ErrnoError(28);if((ee=ir.relative(u,I)).charAt(0)!==".")throw new _.ErrnoError(55);try{V=_.lookupNode(E,D)}catch(ae){}if(k!==V){var ce=_.isDir(k.mode),de=_.mayDelete(h,v,ce);if(de)throw new _.ErrnoError(de);if(de=V?_.mayDelete(E,D,ce):_.mayCreate(E,D))throw new _.ErrnoError(de);if(!h.node_ops.rename)throw new _.ErrnoError(63);if(_.isMountpoint(k)||V&&_.isMountpoint(V))throw new _.ErrnoError(10);if(E!==h&&(de=_.nodePermissions(h,"w")))throw new _.ErrnoError(de);_.hashRemoveNode(k);try{h.node_ops.rename(k,E,D)}catch(ae){throw ae}finally{_.hashAddNode(k)}}},rmdir:c=>{var u=_.lookupPath(c,{parent:!0}).node,h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!0);if(I)throw new _.ErrnoError(I);if(!u.node_ops.rmdir)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.rmdir(u,h),_.destroyNode(E)},readdir:c=>{var u=_.lookupPath(c,{follow:!0}).node;if(!u.node_ops.readdir)throw new _.ErrnoError(54);return u.node_ops.readdir(u)},unlink:c=>{var u=_.lookupPath(c,{parent:!0}).node;if(!u)throw new _.ErrnoError(44);var h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!1);if(I)throw new _.ErrnoError(I);if(!u.node_ops.unlink)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.unlink(u,h),_.destroyNode(E)},readlink:c=>{var u=_.lookupPath(c).node;if(!u)throw new _.ErrnoError(44);if(!u.node_ops.readlink)throw new _.ErrnoError(28);return ir.resolve(_.getPath(u.parent),u.node_ops.readlink(u))},stat:(c,u)=>{var h=_.lookupPath(c,{follow:!u}).node;if(!h)throw new _.ErrnoError(44);if(!h.node_ops.getattr)throw new _.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>_.stat(c,!0),chmod:(c,u,h)=>{var E;if(typeof c=="string"?E=_.lookupPath(c,{follow:!h}).node:E=c,!E.node_ops.setattr)throw new _.ErrnoError(63);E.node_ops.setattr(E,{mode:4095&u|-4096&E.mode,timestamp:Date.now()})},lchmod:(c,u)=>{_.chmod(c,u,!0)},fchmod:(c,u)=>{var h=_.getStreamChecked(c);_.chmod(h.node,u)},chown:(c,u,h,E)=>{var I;if(typeof c=="string"?I=_.lookupPath(c,{follow:!E}).node:I=c,!I.node_ops.setattr)throw new _.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,u,h)=>{_.chown(c,u,h,!0)},fchown:(c,u,h)=>{var E=_.getStreamChecked(c);_.chown(E.node,u,h)},truncate:(c,u)=>{if(u<0)throw new _.ErrnoError(28);var h;if(typeof c=="string"?h=_.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new _.ErrnoError(63);if(_.isDir(h.mode))throw new _.ErrnoError(31);if(!_.isFile(h.mode))throw new _.ErrnoError(28);var E=_.nodePermissions(h,"w");if(E)throw new _.ErrnoError(E);h.node_ops.setattr(h,{size:u,timestamp:Date.now()})},ftruncate:(c,u)=>{var h=_.getStreamChecked(c);if(!(2097155&h.flags))throw new _.ErrnoError(28);_.truncate(h.node,u)},utime:(c,u,h)=>{var E=_.lookupPath(c,{follow:!0}).node;E.node_ops.setattr(E,{timestamp:Math.max(u,h)})},open:(c,u,h)=>{if(c==="")throw new _.ErrnoError(44);var E;if(h=h===void 0?438:h,h=64&(u=typeof u=="string"?function(D){var V={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[D];if(V===void 0)throw new Error(`Unknown file open mode: ${D}`);return V}(u):u)?4095&h|32768:0,typeof c=="object")E=c;else{c=me.normalize(c);try{E=_.lookupPath(c,{follow:!(131072&u)}).node}catch(D){}}var I=!1;if(64&u)if(E){if(128&u)throw new _.ErrnoError(20)}else E=_.mknod(c,h,0),I=!0;if(!E)throw new _.ErrnoError(44);if(_.isChrdev(E.mode)&&(u&=-513),65536&u&&!_.isDir(E.mode))throw new _.ErrnoError(54);if(!I){var b=_.mayOpen(E,u);if(b)throw new _.ErrnoError(b)}512&u&&!I&&_.truncate(E,0),u&=-131713;var v=_.createStream({node:E,path:_.getPath(E),flags:u,seekable:!0,position:0,stream_ops:E.stream_ops,ungotten:[],error:!1});return v.stream_ops.open&&v.stream_ops.open(v),!o.logReadFiles||1&u||(_.readFiles||(_.readFiles={}),c in _.readFiles||(_.readFiles[c]=1)),v},close:c=>{if(_.isClosed(c))throw new _.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(u){throw u}finally{_.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new _.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new _.ErrnoError(28);return c.position=c.stream_ops.llseek(c,u,h),c.ungotten=[],c.position},read:(c,u,h,E,I)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if((2097155&c.flags)==1)throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.read)throw new _.ErrnoError(28);var b=I!==void 0;if(b){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var v=c.stream_ops.read(c,u,h,E,I);return b||(c.position+=v),v},write:(c,u,h,E,I,b)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.write)throw new _.ErrnoError(28);c.seekable&&1024&c.flags&&_.llseek(c,0,2);var v=I!==void 0;if(v){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var D=c.stream_ops.write(c,u,h,E,I,b);return v||(c.position+=D),D},allocate:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(u<0||h<=0)throw new _.ErrnoError(28);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(!_.isFile(c.node.mode)&&!_.isDir(c.node.mode))throw new _.ErrnoError(43);if(!c.stream_ops.allocate)throw new _.ErrnoError(138);c.stream_ops.allocate(c,u,h)},mmap:(c,u,h,E,I)=>{if(2&E&&!(2&I)&&(2097155&c.flags)!=2)throw new _.ErrnoError(2);if((2097155&c.flags)==1)throw new _.ErrnoError(2);if(!c.stream_ops.mmap)throw new _.ErrnoError(43);return c.stream_ops.mmap(c,u,h,E,I)},msync:(c,u,h,E,I)=>c.stream_ops.msync?c.stream_ops.msync(c,u,h,E,I):0,munmap:c=>0,ioctl:(c,u,h)=>{if(!c.stream_ops.ioctl)throw new _.ErrnoError(59);return c.stream_ops.ioctl(c,u,h)},readFile:(c,u={})=>{if(u.flags=u.flags||0,u.encoding=u.encoding||"binary",u.encoding!=="utf8"&&u.encoding!=="binary")throw new Error(`Invalid encoding type "${u.encoding}"`);var h,E=_.open(c,u.flags),I=_.stat(c).size,b=new Uint8Array(I);return _.read(E,b,0,I,0),u.encoding==="utf8"?h=Gt(b,0):u.encoding==="binary"&&(h=b),_.close(E),h},writeFile:(c,u,h={})=>{h.flags=h.flags||577;var E=_.open(c,h.flags,h.mode);if(typeof u=="string"){var I=new Uint8Array(jo(u)+1),b=qo(u,I,0,I.length);_.write(E,I,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(u))throw new Error("Unsupported data type");_.write(E,u,0,u.byteLength,void 0,h.canOwn)}_.close(E)},cwd:()=>_.currentPath,chdir:c=>{var u=_.lookupPath(c,{follow:!0});if(u.node===null)throw new _.ErrnoError(44);if(!_.isDir(u.node.mode))throw new _.ErrnoError(54);var h=_.nodePermissions(u.node,"x");if(h)throw new _.ErrnoError(h);_.currentPath=u.path},createDefaultDirectories:()=>{_.mkdir("/tmp"),_.mkdir("/home"),_.mkdir("/home/web_user")},createDefaultDevices:()=>{_.mkdir("/dev"),_.registerDevice(_.makedev(1,3),{read:()=>0,write:(E,I,b,v,D)=>v}),_.mkdev("/dev/null",_.makedev(1,3)),Mr.register(_.makedev(5,0),Mr.default_tty_ops),Mr.register(_.makedev(6,0),Mr.default_tty1_ops),_.mkdev("/dev/tty",_.makedev(5,0)),_.mkdev("/dev/tty1",_.makedev(6,0));var c=new Uint8Array(1024),u=0,h=()=>(u===0&&(u=ta(c).byteLength),c[--u]);_.createDevice("/dev","random",h),_.createDevice("/dev","urandom",h),_.mkdir("/dev/shm"),_.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{_.mkdir("/proc");var c=_.mkdir("/proc/self");_.mkdir("/proc/self/fd"),_.mount({mount:()=>{var u=_.createNode(c,"fd",16895,73);return u.node_ops={lookup:(h,E)=>{var I=+E,b=_.getStreamChecked(I),v={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return v.parent=v,v}},u}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?_.createDevice("/dev","stdin",o.stdin):_.symlink("/dev/tty","/dev/stdin"),o.stdout?_.createDevice("/dev","stdout",null,o.stdout):_.symlink("/dev/tty","/dev/stdout"),o.stderr?_.createDevice("/dev","stderr",null,o.stderr):_.symlink("/dev/tty1","/dev/stderr"),_.open("/dev/stdin",0),_.open("/dev/stdout",1),_.open("/dev/stderr",1)},ensureErrnoError:()=>{_.ErrnoError||(_.ErrnoError=function(c,u){this.name="ErrnoError",this.node=u,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},_.ErrnoError.prototype=new Error,_.ErrnoError.prototype.constructor=_.ErrnoError,[44].forEach(c=>{_.genericErrors[c]=new _.ErrnoError(c),_.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{_.ensureErrnoError(),_.nameTable=new Array(4096),_.mount(ve,{},"/"),_.createDefaultDirectories(),_.createDefaultDevices(),_.createSpecialDirectories(),_.filesystems={MEMFS:ve}},init:(c,u,h)=>{_.init.initialized=!0,_.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=u||o.stdout,o.stderr=h||o.stderr,_.createStandardStreams()},quit:()=>{_.init.initialized=!1;for(var c=0;c<_.streams.length;c++){var u=_.streams[c];u&&_.close(u)}},findObject:(c,u)=>{var h=_.analyzePath(c,u);return h.exists?h.object:null},analyzePath:(c,u)=>{try{c=(E=_.lookupPath(c,{follow:!u})).path}catch(I){}var h={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var E=_.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=E.path,h.parentObject=E.node,h.name=me.basename(c),E=_.lookupPath(c,{follow:!u}),h.exists=!0,h.path=E.path,h.object=E.node,h.name=E.node.name,h.isRoot=E.path==="/"}catch(I){h.error=I.errno}return h},createPath:(c,u,h,E)=>{c=typeof c=="string"?c:_.getPath(c);for(var I=u.split("/").reverse();I.length;){var b=I.pop();if(b){var v=me.join2(c,b);try{_.mkdir(v)}catch(D){}c=v}}return v},createFile:(c,u,h,E,I)=>{var b=me.join2(typeof c=="string"?c:_.getPath(c),u),v=Si(E,I);return _.create(b,v)},createDataFile:(c,u,h,E,I,b)=>{var v=u;c&&(c=typeof c=="string"?c:_.getPath(c),v=u?me.join2(c,u):c);var D=Si(E,I),V=_.create(v,D);if(h){if(typeof h=="string"){for(var k=new Array(h.length),ee=0,ce=h.length;ee<ce;++ee)k[ee]=h.charCodeAt(ee);h=k}_.chmod(V,146|D);var de=_.open(V,577);_.write(de,h,0,h.length,0,b),_.close(de),_.chmod(V,D)}return V},createDevice:(c,u,h,E)=>{var I=me.join2(typeof c=="string"?c:_.getPath(c),u),b=Si(!!h,!!E);_.createDevice.major||(_.createDevice.major=64);var v=_.makedev(_.createDevice.major++,0);return _.registerDevice(v,{open:D=>{D.seekable=!1},close:D=>{E&&E.buffer&&E.buffer.length&&E(10)},read:(D,V,k,ee,ce)=>{for(var de=0,ae=0;ae<ee;ae++){var De;try{De=h()}catch($e){throw new _.ErrnoError(29)}if(De===void 0&&de===0)throw new _.ErrnoError(6);if(De==null)break;de++,V[k+ae]=De}return de&&(D.node.timestamp=Date.now()),de},write:(D,V,k,ee,ce)=>{for(var de=0;de<ee;de++)try{E(V[k+de])}catch(ae){throw new _.ErrnoError(29)}return ee&&(D.node.timestamp=Date.now()),de}}),_.mkdev(I,b,v)},forceLoadFile:c=>{if(c.isDevice||c.isFolder||c.link||c.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{c.contents=Gs(s(c.url),!0),c.usedBytes=c.contents.length}catch(u){throw new _.ErrnoError(29)}},createLazyFile:(c,u,h,E,I)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ce){if(!(ce>this.length-1||ce<0)){var de=ce%this.chunkSize,ae=ce/this.chunkSize|0;return this.getter(ae)[de]}},b.prototype.setDataGetter=function(ce){this.getter=ce},b.prototype.cacheLength=function(){var ce=new XMLHttpRequest;if(ce.open("HEAD",h,!1),ce.send(null),!(ce.status>=200&&ce.status<300||ce.status===304))throw new Error("Couldn't load "+h+". Status: "+ce.status);var de,ae=Number(ce.getResponseHeader("Content-length")),De=(de=ce.getResponseHeader("Accept-Ranges"))&&de==="bytes",$e=(de=ce.getResponseHeader("Content-Encoding"))&&de==="gzip",ke=1048576;De||(ke=ae);var lt=this;lt.setDataGetter(it=>{var vt=it*ke,ho=(it+1)*ke-1;if(ho=Math.min(ho,ae-1),lt.chunks[it]===void 0&&(lt.chunks[it]=((Ar,es)=>{if(Ar>es)throw new Error("invalid range ("+Ar+", "+es+") or no bytes requested!");if(es>ae-1)throw new Error("only "+ae+" bytes available! programmer error!");var Tt=new XMLHttpRequest;if(Tt.open("GET",h,!1),ae!==ke&&Tt.setRequestHeader("Range","bytes="+Ar+"-"+es),Tt.responseType="arraybuffer",Tt.overrideMimeType&&Tt.overrideMimeType("text/plain; charset=x-user-defined"),Tt.send(null),!(Tt.status>=200&&Tt.status<300||Tt.status===304))throw new Error("Couldn't load "+h+". Status: "+Tt.status);return Tt.response!==void 0?new Uint8Array(Tt.response||[]):Gs(Tt.responseText||"",!0)})(vt,ho)),lt.chunks[it]===void 0)throw new Error("doXHR failed!");return lt.chunks[it]}),!$e&&ae||(ke=ae=1,ae=this.getter(0).length,ke=ae,R("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ae,this._chunkSize=ke,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!f)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var v=new b;Object.defineProperties(v,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var D={isDevice:!1,contents:v}}else D={isDevice:!1,url:h};var V=_.createFile(c,u,D,E,I);D.contents?V.contents=D.contents:D.url&&(V.contents=null,V.url=D.url),Object.defineProperties(V,{usedBytes:{get:function(){return this.contents.length}}});var k={};function ee(ce,de,ae,De,$e){var ke=ce.node.contents;if($e>=ke.length)return 0;var lt=Math.min(ke.length-$e,De);if(ke.slice)for(var it=0;it<lt;it++)de[ae+it]=ke[$e+it];else for(it=0;it<lt;it++)de[ae+it]=ke.get($e+it);return lt}return Object.keys(V.stream_ops).forEach(ce=>{var de=V.stream_ops[ce];k[ce]=function(){return _.forceLoadFile(V),de.apply(null,arguments)}}),k.read=(ce,de,ae,De,$e)=>(_.forceLoadFile(V),ee(ce,de,ae,De,$e)),k.mmap=(ce,de,ae,De,$e)=>{_.forceLoadFile(V);var ke=ia();if(!ke)throw new _.ErrnoError(48);return ee(ce,z,ke,de,ae),{ptr:ke,allocated:!0}},V.stream_ops=k,V}},oo=(c,u)=>c?Gt(H,c,u):"",Dt={DEFAULT_POLLMASK:5,calculateAt:function(c,u,h){if(me.isAbs(u))return u;var E;if(c===-100?E=_.cwd():E=Dt.getStreamFromFD(c).path,u.length==0){if(!h)throw new _.ErrnoError(44);return E}return me.join2(E,u)},doStat:function(c,u,h){try{var E=c(u)}catch(D){if(D&&D.node&&me.normalize(u)!==me.normalize(_.getPath(D.node)))return-54;throw D}W[h>>2]=E.dev,W[h+4>>2]=E.mode,we[h+8>>2]=E.nlink,W[h+12>>2]=E.uid,W[h+16>>2]=E.gid,W[h+20>>2]=E.rdev,rt=[E.size>>>0,(Se=E.size,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+24>>2]=rt[0],W[h+28>>2]=rt[1],W[h+32>>2]=4096,W[h+36>>2]=E.blocks;var I=E.atime.getTime(),b=E.mtime.getTime(),v=E.ctime.getTime();return rt=[Math.floor(I/1e3)>>>0,(Se=Math.floor(I/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+40>>2]=rt[0],W[h+44>>2]=rt[1],we[h+48>>2]=I%1e3*1e3,rt=[Math.floor(b/1e3)>>>0,(Se=Math.floor(b/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+56>>2]=rt[0],W[h+60>>2]=rt[1],we[h+64>>2]=b%1e3*1e3,rt=[Math.floor(v/1e3)>>>0,(Se=Math.floor(v/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+72>>2]=rt[0],W[h+76>>2]=rt[1],we[h+80>>2]=v%1e3*1e3,rt=[E.ino>>>0,(Se=E.ino,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+88>>2]=rt[0],W[h+92>>2]=rt[1],0},doMsync:function(c,u,h,E,I){if(!_.isFile(u.node.mode))throw new _.ErrnoError(43);if(2&E)return 0;var b=H.slice(c,c+h);_.msync(u,b,I,h,E)},varargs:void 0,get:()=>(Dt.varargs+=4,W[Dt.varargs-4>>2]),getStr:c=>oo(c),getStreamFromFD:function(c){return _.getStreamChecked(c)}};function Ai(c){switch(c){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${c}`)}}var Hc=void 0;function Mt(c){for(var u="",h=c;H[h];)u+=Hc[H[h++]];return u}var L={},Sr={},js={},so=void 0;function Be(c){throw new so(c)}var Wc=void 0;function lr(c){throw new Wc(c)}function ei(c,u,h){function E(D){var V=h(D);V.length!==c.length&&lr("Mismatched type converter count");for(var k=0;k<c.length;++k)mr(c[k],V[k])}c.forEach(function(D){js[D]=u});var I=new Array(u.length),b=[],v=0;u.forEach((D,V)=>{Sr.hasOwnProperty(D)?I[V]=Sr[D]:(b.push(D),L.hasOwnProperty(D)||(L[D]=[]),L[D].push(()=>{I[V]=Sr[D],++v===b.length&&E(I)}))}),b.length===0&&E(I)}function mr(c,u,h={}){if(!("argPackAdvance"in u))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(E,I,b={}){var v=I.name;if(E||Be(`type "${v}" must have a positive integer typeid pointer`),Sr.hasOwnProperty(E)){if(b.ignoreDuplicateRegistrations)return;Be(`Cannot register type '${v}' twice`)}if(Sr[E]=I,delete js[E],L.hasOwnProperty(E)){var D=L[E];delete L[E],D.forEach(V=>V())}}(c,u,h)}function Gc(c){if(!(this instanceof xr)||!(c instanceof xr))return!1;for(var u=this.$$.ptrType.registeredClass,h=this.$$.ptr,E=c.$$.ptrType.registeredClass,I=c.$$.ptr;u.baseClass;)h=u.upcast(h),u=u.baseClass;for(;E.baseClass;)I=E.upcast(I),E=E.baseClass;return u===E&&h===I}function oa(c){Be(c.$$.ptrType.registeredClass.name+" instance already deleted")}var zo=!1;function jc(c){}function qc(c){c.count.value-=1,c.count.value===0&&function(u){u.smartPtr?u.smartPtrType.rawDestructor(u.smartPtr):u.ptrType.registeredClass.rawDestructor(u.ptr)}(c)}function zc(c,u,h){if(u===h)return c;if(h.baseClass===void 0)return null;var E=zc(c,u,h.baseClass);return E===null?null:h.downcast(E)}var Jo={};function ql(){return Object.keys(Qo).length}function zl(){var c=[];for(var u in Qo)Qo.hasOwnProperty(u)&&c.push(Qo[u]);return c}var Xo=[];function hr(){for(;Xo.length;){var c=Xo.pop();c.$$.deleteScheduled=!1,c.delete()}}var ti=void 0;function Jc(c){ti=c,Xo.length&&ti&&ti(hr)}var Qo={};function no(c,u){return u=function(h,E){for(E===void 0&&Be("ptr should not be undefined");h.baseClass;)E=h.upcast(E),h=h.baseClass;return E}(c,u),Qo[u]}function Yo(c,u){return u.ptrType&&u.ptr||lr("makeClassHandle requires ptr and ptrType"),!!u.smartPtrType!=!!u.smartPtr&&lr("Both smartPtrType and smartPtr must be specified"),u.count={value:1},ao(Object.create(c,{$$:{value:u}}))}function Xc(c){var u=this.getPointee(c);if(!u)return this.destructor(c),null;var h=no(this.registeredClass,u);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=u,h.$$.smartPtr=c,h.clone();var E=h.clone();return this.destructor(c),E}function I(){return this.isSmartPointer?Yo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:u,smartPtrType:this,smartPtr:c}):Yo(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,v=this.registeredClass.getActualType(u),D=Jo[v];if(!D)return I.call(this);b=this.isConst?D.constPointerType:D.pointerType;var V=zc(u,this.registeredClass,b.registeredClass);return V===null?I.call(this):this.isSmartPointer?Yo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V,smartPtrType:this,smartPtr:c}):Yo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V})}var ao=function(c){return typeof FinalizationRegistry=="undefined"?(ao=u=>u,c):(zo=new FinalizationRegistry(u=>{qc(u.$$)}),jc=u=>zo.unregister(u),(ao=u=>{var h=u.$$;if(h.smartPtr){var E={$$:h};zo.register(u,E,u)}return u})(c))};function Qc(){if(this.$$.ptr||oa(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,u=ao(Object.create(Object.getPrototypeOf(this),{$$:{value:(c=this.$$,{count:c.count,deleteScheduled:c.deleteScheduled,preservePointerOnDelete:c.preservePointerOnDelete,ptr:c.ptr,ptrType:c.ptrType,smartPtr:c.smartPtr,smartPtrType:c.smartPtrType})}}));return u.$$.count.value+=1,u.$$.deleteScheduled=!1,u}function Jl(){this.$$.ptr||oa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Be("Object already scheduled for deletion"),jc(this),qc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Yc(){return!this.$$.ptr}function Zc(){return this.$$.ptr||oa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Be("Object already scheduled for deletion"),Xo.push(this),Xo.length===1&&ti&&ti(hr),this.$$.deleteScheduled=!0,this}function xr(){}function jt(c){if(c===void 0)return"_unknown";var u=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return u>=48&&u<=57?`_${c}`:c}function qs(c,u){return c=jt(c),{[c]:function(){return u.apply(this,arguments)}}[c]}function Kc(c,u,h){if(c[u].overloadTable===void 0){var E=c[u];c[u]=function(){return c[u].overloadTable.hasOwnProperty(arguments.length)||Be(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[u].overloadTable})!`),c[u].overloadTable[arguments.length].apply(this,arguments)},c[u].overloadTable=[],c[u].overloadTable[E.argCount]=E}}function zs(c,u,h,E,I,b,v,D){this.name=c,this.constructor=u,this.instancePrototype=h,this.rawDestructor=E,this.baseClass=I,this.getActualType=b,this.upcast=v,this.downcast=D,this.pureVirtualFunctions=[]}function Zo(c,u,h){for(;u!==h;)u.upcast||Be(`Expected null or instance of ${h.name}, got an instance of ${u.name}`),c=u.upcast(c),u=u.baseClass;return c}function Xl(c,u){if(u===null)return this.isReference&&Be(`null is not a valid ${this.name}`),0;u.$$||Be(`Cannot pass "${Ys(u)}" as a ${this.name}`),u.$$.ptr||Be(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Zo(u.$$.ptr,h,this.registeredClass)}function Ql(c,u){var h;if(u===null)return this.isReference&&Be(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;u.$$||Be(`Cannot pass "${Ys(u)}" as a ${this.name}`),u.$$.ptr||Be(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&u.$$.ptrType.isConst&&Be(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);var E=u.$$.ptrType.registeredClass;if(h=Zo(u.$$.ptr,E,this.registeredClass),this.isSmartPointer)switch(u.$$.smartPtr===void 0&&Be("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:u.$$.smartPtrType===this?h=u.$$.smartPtr:Be(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=u.$$.smartPtr;break;case 2:if(u.$$.smartPtrType===this)h=u.$$.smartPtr;else{var I=u.clone();h=this.rawShare(h,lo.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Be("Unsupporting sharing policy")}return h}function ed(c,u){if(u===null)return this.isReference&&Be(`null is not a valid ${this.name}`),0;u.$$||Be(`Cannot pass "${Ys(u)}" as a ${this.name}`),u.$$.ptr||Be(`Cannot pass deleted object as a pointer of type ${this.name}`),u.$$.ptrType.isConst&&Be(`Cannot convert argument of type ${u.$$.ptrType.name} to parameter type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Zo(u.$$.ptr,h,this.registeredClass)}function Ko(c){return this.fromWireType(W[c>>2])}function Yl(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function td(c){this.rawDestructor&&this.rawDestructor(c)}function Zl(c){c!==null&&c.delete()}function Pr(c,u,h,E,I,b,v,D,V,k,ee){this.name=c,this.registeredClass=u,this.isReference=h,this.isConst=E,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=v,this.rawGetPointee=D,this.rawConstructor=V,this.rawShare=k,this.rawDestructor=ee,I||u.baseClass!==void 0?this.toWireType=Ql:E?(this.toWireType=Xl,this.destructorFunction=null):(this.toWireType=ed,this.destructorFunction=null)}var Js=[],rd=c=>{var u=Js[c];return u||(c>=Js.length&&(Js.length=c+1),Js[c]=u=Zn.get(c)),u},Kl=(c,u,h)=>c.includes("j")?((E,I,b)=>{var v=o["dynCall_"+E];return b&&b.length?v.apply(null,[I].concat(b)):v.call(null,I)})(c,u,h):rd(u).apply(null,h);function co(c,u){var h,E,I,b=(c=Mt(c)).includes("j")?(h=c,E=u,I=[],function(){return I.length=0,Object.assign(I,arguments),Kl(h,E,I)}):rd(u);return typeof b!="function"&&Be(`unknown function pointer with signature ${c}: ${u}`),b}var id=void 0;function Xs(c){var u=kr(c),h=Mt(u);return xt(u),h}function Qs(c,u){var h=[],E={};throw u.forEach(function I(b){E[b]||Sr[b]||(js[b]?js[b].forEach(I):(h.push(b),E[b]=!0))}),new id(`${c}: `+h.map(Xs).join([", "]))}function sa(c,u){for(var h=[],E=0;E<c;E++)h.push(we[u+4*E>>2]);return h}function od(c){for(;c.length;){var u=c.pop();c.pop()(u)}}function na(c,u){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=qs(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var E=new h,I=c.apply(E,u);return I instanceof Object?I:E}function uo(c,u,h,E,I,b){var v=u.length;v<2&&Be("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var D=u[1]!==null&&h!==null,V=!1,k=1;k<u.length;++k)if(u[k]!==null&&u[k].destructorFunction===void 0){V=!0;break}var ee=u[0].name!=="void",ce="",de="";for(k=0;k<v-2;++k)ce+=(k!==0?", ":"")+"arg"+k,de+=(k!==0?", ":"")+"arg"+k+"Wired";var ae=`
53
+ return function ${jt(c)}(${ce}) {
54
+ if (arguments.length !== ${v-2}) {
55
+ throwBindingError('function ${c} called with ${arguments.length} arguments, expected ${v-2} args!');
56
+ }`;V&&(ae+=`var destructors = [];
57
+ `);var De=V?"destructors":"null",$e=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],ke=[Be,E,I,od,u[0],u[1]];for(D&&(ae+="var thisWired = classParam.toWireType("+De+`, this);
58
+ `),k=0;k<v-2;++k)ae+="var arg"+k+"Wired = argType"+k+".toWireType("+De+", arg"+k+"); // "+u[k+2].name+`
59
+ `,$e.push("argType"+k),ke.push(u[k+2]);if(D&&(de="thisWired"+(de.length>0?", ":"")+de),ae+=(ee||b?"var rv = ":"")+"invoker(fn"+(de.length>0?", ":"")+de+`);
60
+ `,V)ae+=`runDestructors(destructors);
61
+ `;else for(k=D?1:2;k<u.length;++k){var lt=k===1?"thisWired":"arg"+(k-2)+"Wired";u[k].destructorFunction!==null&&(ae+=lt+"_dtor("+lt+"); // "+u[k].name+`
62
+ `,$e.push(lt+"_dtor"),ke.push(u[k].destructorFunction))}return ee&&(ae+=`var ret = retType.fromWireType(rv);
64
63
  return ret;
65
- `),Le+=`}
66
- `,gt.push(Le),Ca(Function,gt).apply(null,ht)}function Nd(){this.allocated=[void 0],this.freelist=[]}var Cr=new Nd;function Dd(u){u>=Cr.reserved&&--Cr.get(u).refcount==0&&Cr.free(u)}function pi(){for(var u=0,h=Cr.reserved;h<Cr.allocated.length;++h)Cr.allocated[h]!==void 0&&++u;return u}var Po={toValue:u=>(u||pt("Cannot use deleted val. handle = "+u),Cr.get(u).value),toHandle:u=>{switch(u){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Cr.allocate({refcount:1,value:u})}}};function bn(u){if(u===null)return"null";var h=typeof u;return h==="object"||h==="array"||h==="function"?u.toString():""+u}function Od(u,h){switch(h){case 2:return function(_){return this.fromWireType(de[_>>2])};case 3:return function(_){return this.fromWireType(Ae[_>>3])};default:throw new TypeError("Unknown float type: "+u)}}function Md(u,h,_){switch(h){case 0:return _?function(I){return M[I]}:function(I){return w[I]};case 1:return _?function(I){return H[I>>1]}:function(I){return B[I>>1]};case 2:return _?function(I){return P[I>>2]}:function(I){return $[I>>2]};default:throw new TypeError("Unknown integer type: "+u)}}var N=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,R=(u,h)=>{for(var _=u,I=_>>1,C=I+h/2;!(I>=C)&&B[I];)++I;if((_=I<<1)-u>32&&N)return N.decode(w.subarray(u,_));for(var k="",U=0;!(U>=h/2);++U){var V=H[u+2*U>>1];if(V==0)break;k+=String.fromCharCode(V)}return k},W=(u,h,_)=>{if(_===void 0&&(_=2147483647),_<2)return 0;for(var I=h,C=(_-=2)<2*u.length?_/2:u.length,k=0;k<C;++k){var U=u.charCodeAt(k);H[h>>1]=U,h+=2}return H[h>>1]=0,h-I},J=u=>2*u.length,he=(u,h)=>{for(var _=0,I="";!(_>=h/4);){var C=P[u+4*_>>2];if(C==0)break;if(++_,C>=65536){var k=C-65536;I+=String.fromCharCode(55296|k>>10,56320|1023&k)}else I+=String.fromCharCode(C)}return I},_e=(u,h,_)=>{if(_===void 0&&(_=2147483647),_<4)return 0;for(var I=h,C=I+_-4,k=0;k<u.length;++k){var U=u.charCodeAt(k);if(U>=55296&&U<=57343&&(U=65536+((1023&U)<<10)|1023&u.charCodeAt(++k)),P[h>>2]=U,(h+=4)+4>C)break}return P[h>>2]=0,h-I},ye=u=>{for(var h=0,_=0;_<u.length;++_){var I=u.charCodeAt(_);I>=55296&&I<=57343&&++_,h+=4}return h},ve={},Ce=[],Ee=[],Fe={},ct=()=>{if(!ct.strings){var u={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:d||"./this.program"};for(var h in Fe)Fe[h]===void 0?delete u[h]:u[h]=Fe[h];var _=[];for(var h in u)_.push(`${h}=${u[h]}`);ct.strings=_}return ct.strings},ot,je,dt,Ht=function(u,h,_,I){u||(u=this),this.parent=u,this.mount=u.mount,this.mounted=null,this.id=b.nextInode++,this.name=h,this.mode=_,this.node_ops={},this.stream_ops={},this.rdev=I},Dt=365,Kt=146;Object.defineProperties(Ht.prototype,{read:{get:function(){return(this.mode&Dt)===Dt},set:function(u){u?this.mode|=Dt:this.mode&=-366}},write:{get:function(){return(this.mode&Kt)===Kt},set:function(u){u?this.mode|=Kt:this.mode&=-147}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ht,b.createPreloadedFile=function(u,h,_,I,C,k,U,V,ie,K){var Re=h?S.resolve(we.join2(u,h)):u;function Pe(Ue){function Le(st){K&&K(),V||b.createDataFile(u,h,st,I,C,ie),k&&k(),Q()}(function(st,gt,ht,Wt){typeof Browser!="undefined"&&Browser.init();var Pt=!1;return Z.forEach(function(nr){Pt||nr.canHandle(gt)&&(nr.handle(st,gt,ht,Wt),Pt=!0)}),Pt})(Ue,Re,Le,()=>{U&&U(),Q()})||Le(Ue)}re(),typeof _=="string"?xe(_,Ue=>Pe(Ue),U):Pe(_)},b.staticInit(),function(){for(var u=new Array(256),h=0;h<256;++h)u[h]=String.fromCharCode(h);xr=u}(),lr=o.BindingError=class extends Error{constructor(u){super(u),this.name="BindingError"}},_n=o.InternalError=class extends Error{constructor(u){super(u),this.name="InternalError"}},hi.prototype.isAliasOf=Oi,hi.prototype.clone=yd,hi.prototype.delete=Ch,hi.prototype.isDeleted=Sd,hi.prototype.deleteLater=Id,o.getInheritedInstanceCount=vh,o.getLiveInheritedInstances=Rh,o.flushPendingDeletes=qr,o.setDelayFunction=Ed,mi.prototype.getPointee=Dh,mi.prototype.destructor=vd,mi.prototype.argPackAdvance=8,mi.prototype.readValueFromPointer=bs,mi.prototype.deleteObject=Oh,mi.prototype.fromWireType=Td,Cd=o.UnboundTypeError=(ot=Error,(dt=En(je="UnboundTypeError",function(u){this.name=je,this.message=u;var h=new Error(u).stack;h!==void 0&&(this.stack=this.toString()+`
67
- `+h.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(ot.prototype),dt.prototype.constructor=dt,dt.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},dt),Object.assign(Nd.prototype,{get(u){return this.allocated[u]},has(u){return this.allocated[u]!==void 0},allocate(u){var h=this.freelist.pop()||this.allocated.length;return this.allocated[h]=u,h},free(u){this.allocated[u]=void 0,this.freelist.push(u)}}),Cr.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Cr.reserved=Cr.allocated.length,o.count_emval_handles=pi;var Ot,_r={p:function(u,h,_){throw new wt(u).init(h,_),u},C:function(u,h,_){vt.varargs=_;try{var I=vt.getStreamFromFD(u);switch(h){case 0:return(C=vt.get())<0?-28:b.createStream(I,C).fd;case 1:case 2:case 6:case 7:return 0;case 3:return I.flags;case 4:var C=vt.get();return I.flags|=C,0;case 5:return C=vt.get(),H[C+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return k=28,P[wa()>>2]=k,-1}}catch(U){if(b===void 0||U.name!=="ErrnoError")throw U;return-U.errno}var k},w:function(u,h,_,I){vt.varargs=I;try{h=vt.getStr(h),h=vt.calculateAt(u,h);var C=I?vt.get():0;return b.open(h,_,C).fd}catch(k){if(b===void 0||k.name!=="ErrnoError")throw k;return-k.errno}},t:function(u,h,_,I,C){},n:function(u,h,_,I,C){var k=Mr(_);vr(u,{name:h=Ft(h),fromWireType:function(U){return!!U},toWireType:function(U,V){return V?I:C},argPackAdvance:8,readValueFromPointer:function(U){var V;if(_===1)V=M;else if(_===2)V=H;else{if(_!==4)throw new TypeError("Unknown boolean type size: "+h);V=P}return this.fromWireType(V[U>>k])},destructorFunction:null})},r:function(u,h,_,I,C,k,U,V,ie,K,Re,Pe,Ue){Re=Ft(Re),k=ko(C,k),V&&(V=ko(U,V)),K&&(K=ko(ie,K)),Ue=ko(Pe,Ue);var Le=Rr(Re);(function(st,gt,ht){o.hasOwnProperty(st)?((ht===void 0||o[st].overloadTable!==void 0&&o[st].overloadTable[ht]!==void 0)&&pt(`Cannot register public name '${st}' twice`),bd(o,st,st),o.hasOwnProperty(ht)&&pt(`Cannot register multiple overloads of a function with the same number of arguments (${ht})!`),o[st].overloadTable[ht]=gt):(o[st]=gt,ht!==void 0&&(o[st].numArguments=ht))})(Le,function(){In(`Cannot construct ${Re} due to unbound types`,[I])}),ei([u,h,_],I?[I]:[],function(st){var gt,ht;st=st[0],ht=I?(gt=st.registeredClass).instancePrototype:hi.prototype;var Wt=En(Le,function(){if(Object.getPrototypeOf(this)!==Pt)throw new lr("Use 'new' to construct "+Re);if(nr.constructor_body===void 0)throw new lr(Re+" has no accessible constructor");var Yt=nr.constructor_body[arguments.length];if(Yt===void 0)throw new lr(`Tried to invoke ctor of ${Re} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(nr.constructor_body).toString()}) parameters instead!`);return Yt.apply(this,arguments)}),Pt=Object.create(ht,{constructor:{value:Wt}});Wt.prototype=Pt;var nr=new Tn(Re,Wt,Pt,Ue,gt,k,V,K);nr.baseClass&&(nr.baseClass.__derivedClasses===void 0&&(nr.baseClass.__derivedClasses=[]),nr.baseClass.__derivedClasses.push(nr));var Vo=new mi(Re,nr,!0,!1,!1),ti=new mi(Re+"*",nr,!1,!1,!1),As=new mi(Re+" const*",nr,!1,!0,!1);return Es[u]={pointerType:ti,constPointerType:As},function(Yt,Ig,xh){o.hasOwnProperty(Yt)||kr("Replacing nonexistant public symbol"),o[Yt].overloadTable!==void 0&&xh!==void 0?o[Yt].overloadTable[xh]=Ig:(o[Yt]=Ig,o[Yt].argCount=xh)}(Le,Wt),[Vo,ti,As]})},q:function(u,h,_,I,C,k){var U=Ra(h,_);C=ko(I,C),ei([],[u],function(V){var ie=`constructor ${(V=V[0]).name}`;if(V.registeredClass.constructor_body===void 0&&(V.registeredClass.constructor_body=[]),V.registeredClass.constructor_body[h-1]!==void 0)throw new lr(`Cannot register multiple constructors with identical number of parameters (${h-1}) for class '${V.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return V.registeredClass.constructor_body[h-1]=()=>{In(`Cannot construct ${V.name} due to unbound types`,U)},ei([],U,function(K){return K.splice(1,0,null),V.registeredClass.constructor_body[h-1]=Lo(ie,K,null,C,k),[]}),[]})},d:function(u,h,_,I,C,k,U,V,ie){var K=Ra(_,I);h=Ft(h),k=ko(C,k),ei([],[u],function(Re){var Pe=`${(Re=Re[0]).name}.${h}`;function Ue(){In(`Cannot call ${Pe} due to unbound types`,K)}h.startsWith("@@")&&(h=Symbol[h.substring(2)]),V&&Re.registeredClass.pureVirtualFunctions.push(h);var Le=Re.registeredClass.instancePrototype,st=Le[h];return st===void 0||st.overloadTable===void 0&&st.className!==Re.name&&st.argCount===_-2?(Ue.argCount=_-2,Ue.className=Re.name,Le[h]=Ue):(bd(Le,h,Pe),Le[h].overloadTable[_-2]=Ue),ei([],K,function(gt){var ht=Lo(Pe,gt,Re,k,U,ie);return Le[h].overloadTable===void 0?(ht.argCount=_-2,Le[h]=ht):Le[h].overloadTable[_-2]=ht,[]}),[]})},D:function(u,h){vr(u,{name:h=Ft(h),fromWireType:function(_){var I=Po.toValue(_);return Dd(_),I},toWireType:function(_,I){return Po.toHandle(I)},argPackAdvance:8,readValueFromPointer:bs,destructorFunction:null})},k:function(u,h,_){var I=Mr(_);vr(u,{name:h=Ft(h),fromWireType:function(C){return C},toWireType:function(C,k){return k},argPackAdvance:8,readValueFromPointer:Od(h,I),destructorFunction:null})},c:function(u,h,_,I,C){h=Ft(h),C===-1&&(C=4294967295);var k=Mr(_),U=K=>K;if(I===0){var V=32-8*_;U=K=>K<<V>>>V}var ie=h.includes("unsigned");vr(u,{name:h,fromWireType:U,toWireType:ie?function(K,Re){return this.name,Re>>>0}:function(K,Re){return this.name,Re},argPackAdvance:8,readValueFromPointer:Md(h,k,I!==0),destructorFunction:null})},b:function(u,h,_){var I=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][h];function C(k){var U=$,V=U[k>>=2],ie=U[k+1];return new I(U.buffer,ie,V)}vr(u,{name:_=Ft(_),fromWireType:C,argPackAdvance:8,readValueFromPointer:C},{ignoreDuplicateRegistrations:!0})},j:function(u,h){var _=(h=Ft(h))==="std::string";vr(u,{name:h,fromWireType:function(I){var C,k=$[I>>2],U=I+4;if(_)for(var V=U,ie=0;ie<=k;++ie){var K=U+ie;if(ie==k||w[K]==0){var Re=it(V,K-V);C===void 0?C=Re:(C+="\0",C+=Re),V=K+1}}else{var Pe=new Array(k);for(ie=0;ie<k;++ie)Pe[ie]=String.fromCharCode(w[U+ie]);C=Pe.join("")}return hr(I),C},toWireType:function(I,C){var k;C instanceof ArrayBuffer&&(C=new Uint8Array(C));var U=typeof C=="string";U||C instanceof Uint8Array||C instanceof Uint8ClampedArray||C instanceof Int8Array||pt("Cannot pass non-string to std::string"),k=_&&U?O(C):C.length;var V=Uo(4+k+1),ie=V+4;if($[V>>2]=k,_&&U)F(C,w,ie,k+1);else if(U)for(var K=0;K<k;++K){var Re=C.charCodeAt(K);Re>255&&(hr(ie),pt("String has UTF-16 code units that do not fit in 8 bits")),w[ie+K]=Re}else for(K=0;K<k;++K)w[ie+K]=C[K];return I!==null&&I.push(hr,V),V},argPackAdvance:8,readValueFromPointer:bs,destructorFunction:function(I){hr(I)}})},f:function(u,h,_){var I,C,k,U,V;_=Ft(_),h===2?(I=R,C=W,U=J,k=()=>B,V=1):h===4&&(I=he,C=_e,U=ye,k=()=>$,V=2),vr(u,{name:_,fromWireType:function(ie){for(var K,Re=$[ie>>2],Pe=k(),Ue=ie+4,Le=0;Le<=Re;++Le){var st=ie+4+Le*h;if(Le==Re||Pe[st>>V]==0){var gt=I(Ue,st-Ue);K===void 0?K=gt:(K+="\0",K+=gt),Ue=st+h}}return hr(ie),K},toWireType:function(ie,K){typeof K!="string"&&pt(`Cannot pass non-string to C++ string type ${_}`);var Re=U(K),Pe=Uo(4+Re+h);return $[Pe>>2]=Re>>V,C(K,Pe+4,Re+h),ie!==null&&ie.push(hr,Pe),Pe},argPackAdvance:8,readValueFromPointer:bs,destructorFunction:function(ie){hr(ie)}})},o:function(u,h){vr(u,{isVoid:!0,name:h=Ft(h),argPackAdvance:0,fromWireType:function(){},toWireType:function(_,I){}})},g:function(u,h,_,I){var C,k;(u=Ce[u])(h=Po.toValue(h),_=(k=ve[C=_])===void 0?Ft(C):k,null,I)},m:Dd,l:function(u,h){var _=function(gt,ht){for(var Wt,Pt,nr,Vo=new Array(gt),ti=0;ti<gt;++ti)Vo[ti]=(Wt=$[ht+4*ti>>2],Pt="parameter "+ti,nr=void 0,(nr=gr[Wt])===void 0&&pt(Pt+" has unknown type "+Sn(Wt)),nr);return Vo}(u,h),I=_[0],C=I.name+"_$"+_.slice(1).map(function(gt){return gt.name}).join("_")+"$",k=Ee[C];if(k!==void 0)return k;for(var U=["retType"],V=[I],ie="",K=0;K<u-1;++K)ie+=(K!==0?", ":"")+"arg"+K,U.push("argType"+K),V.push(_[1+K]);var Re="return function "+Rr("methodCaller_"+C)+`(handle, name, destructors, args) {
68
- `,Pe=0;for(K=0;K<u-1;++K)Re+=" var arg"+K+" = argType"+K+".readValueFromPointer(args"+(Pe?"+"+Pe:"")+`);
69
- `,Pe+=_[K+1].argPackAdvance;for(Re+=" var rv = handle[name]("+ie+`);
70
- `,K=0;K<u-1;++K)_[K+1].deleteObject&&(Re+=" argType"+K+".deleteObject(arg"+K+`);
71
- `);I.isVoid||(Re+=` return retType.toWireType(destructors, rv);
72
- `),Re+=`};
73
- `,U.push(Re);var Ue,Le,st=Ca(Function,U).apply(null,V);return Ue=st,Le=Ce.length,Ce.push(Ue),k=Le,Ee[C]=k,k},a:()=>{q("")},e:function(){return Date.now()},v:()=>w.length,A:(u,h,_)=>w.copyWithin(u,h,h+_),u:u=>{w.length,q("OOM")},y:(u,h)=>{var _=0;return ct().forEach(function(I,C){var k=h+_;$[u+4*C>>2]=k,((U,V)=>{for(var ie=0;ie<U.length;++ie)M[0|V++]=U.charCodeAt(ie);M[0|V]=0})(I,k),_+=I.length+1}),0},z:(u,h)=>{var _=ct();$[u>>2]=_.length;var I=0;return _.forEach(function(C){I+=C.length+1}),$[h>>2]=I,0},i:function(u){try{var h=vt.getStreamFromFD(u);return b.close(h),0}catch(_){if(b===void 0||_.name!=="ErrnoError")throw _;return _.errno}},x:function(u,h){try{var _=vt.getStreamFromFD(u),I=_.tty?2:b.isDir(_.mode)?3:b.isLink(_.mode)?7:4;return M[h|0]=I,H[h+2>>1]=0,Ze=[0,(ne=0,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[h+8>>2]=Ze[0],P[h+12>>2]=Ze[1],Ze=[0,(ne=0,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[h+16>>2]=Ze[0],P[h+20>>2]=Ze[1],0}catch(C){if(b===void 0||C.name!=="ErrnoError")throw C;return C.errno}},B:function(u,h,_,I){try{var C=((k,U,V,ie)=>{for(var K=0,Re=0;Re<V;Re++){var Pe=$[U>>2],Ue=$[U+4>>2];U+=8;var Le=b.read(k,M,Pe,Ue,ie);if(Le<0)return-1;if(K+=Le,Le<Ue)break;ie!==void 0&&(ie+=Le)}return K})(vt.getStreamFromFD(u),h,_);return $[I>>2]=C,0}catch(k){if(b===void 0||k.name!=="ErrnoError")throw k;return k.errno}},s:function(u,h,_,I,C){var k,U,V=(U=_)+2097152>>>0<4194305-!!(k=h)?(k>>>0)+4294967296*U:NaN;try{if(isNaN(V))return 61;var ie=vt.getStreamFromFD(u);return b.llseek(ie,V,I),Ze=[ie.position>>>0,(ne=ie.position,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[C>>2]=Ze[0],P[C+4>>2]=Ze[1],ie.getdents&&V===0&&I===0&&(ie.getdents=null),0}catch(K){if(b===void 0||K.name!=="ErrnoError")throw K;return K.errno}},h:function(u,h,_,I){try{var C=((k,U,V,ie)=>{for(var K=0,Re=0;Re<V;Re++){var Pe=$[U>>2],Ue=$[U+4>>2];U+=8;var Le=b.write(k,M,Pe,Ue,ie);if(Le<0)return-1;K+=Le,ie!==void 0&&(ie+=Le)}return K})(vt.getStreamFromFD(u),h,_);return $[I>>2]=C,0}catch(k){if(b===void 0||k.name!=="ErrnoError")throw k;return k.errno}}},Uo=(function(){var u,h,_,I,C={a:_r};function k(U,V){var ie,K,Re=U.exports;return y=(v=Re).E,ie=y.buffer,o.HEAP8=M=new Int8Array(ie),o.HEAP16=H=new Int16Array(ie),o.HEAP32=P=new Int32Array(ie),o.HEAPU8=w=new Uint8Array(ie),o.HEAPU16=B=new Uint16Array(ie),o.HEAPU32=$=new Uint32Array(ie),o.HEAPF32=de=new Float32Array(ie),o.HEAPF64=Ae=new Float64Array(ie),L=v.H,K=v.F,le.unshift(K),Q(),Re}if(re(),o.instantiateWasm)try{return o.instantiateWasm(C,k)}catch(U){E("Module.instantiateWasm callback failed with error: "+U),r(U)}(u=g,h=Be,_=C,I=function(U){k(U.instance)},u||typeof WebAssembly.instantiateStreaming!="function"||yt(h)||typeof fetch!="function"?at(h,_,I):fetch(h,{credentials:"same-origin"}).then(U=>WebAssembly.instantiateStreaming(U,_).then(I,function(V){return E("wasm streaming compile failed: "+V),E("falling back to ArrayBuffer instantiation"),at(h,_,I)}))).catch(r)}(),u=>(Uo=v.G)(u)),hr=u=>(hr=v.I)(u),wa=()=>(wa=v.J)(),fi=u=>(fi=v.K)(u),Na=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=v.L)(),u=>(Na=v.M)(u));o.dynCall_jiji=(u,h,_,I,C)=>(o.dynCall_jiji=v.N)(u,h,_,I,C),o._ff_h264_cabac_tables=67061;function An(){function u(){Ot||(Ot=!0,o.calledRun=!0,te||(o.noFSInit||b.init.initialized||b.init(),b.ignorePermissions=!1,fe.init(),Lt(le),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)h=o.postRun.shift(),He.unshift(h);var h;Lt(He)}()))}ge>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)h=o.preRun.shift(),A.unshift(h);var h;Lt(A)}(),ge>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),u()},1)):u()))}if(me=function u(){Ot||An(),Ot||(me=u)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return An(),t.ready}})(),lv=uv,hv=class extends Fc{constructor(i){super(lv,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},v2=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((N,R)=>{e=N,r=R});var s,n=Object.assign({},o),a=typeof window=="object",c=typeof importScripts=="function",d=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||c)&&(c?d=self.location.href:typeof document!="undefined"&&document.currentScript&&(d=document.currentScript.src),i&&(d=i),d=d.indexOf("blob:")!==0?d.substr(0,d.replace(/[?#].*/,"").lastIndexOf("/")+1):"",c&&(s=N=>{var R=new XMLHttpRequest;return R.open("GET",N,!1),R.responseType="arraybuffer",R.send(null),new Uint8Array(R.response)}));var m,l=o.print||console.log.bind(console),f=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(m=o.wasmBinary);var g,T;o.noExitRuntime,typeof WebAssembly!="object"&&ge("no native wasm support detected");var E,y,v,M,w,H,B,P,$,de=!1,Ae=[],L=[],te=[],A=0,le=null,He=null;function ge(N){o.onAbort&&o.onAbort(N),f(N="Aborted("+N+")"),de=!0,N+=". Build with -sASSERTIONS for more info.";var R=new WebAssembly.RuntimeError(N);throw r(R),R}var ze,me;function re(N){return N.startsWith("data:application/octet-stream;base64,")}function Q(N){if(N==ze&&m)return new Uint8Array(m);if(s)return s(N);throw"both async and sync fetching of the wasm failed"}function q(N,R,W){return function(J){return m||!a&&!c||typeof fetch!="function"?Promise.resolve().then(()=>Q(J)):fetch(J,{credentials:"same-origin"}).then(he=>{if(!he.ok)throw"failed to load wasm binary file at '"+J+"'";return he.arrayBuffer()}).catch(()=>Q(J))}(N).then(J=>WebAssembly.instantiate(J,R)).then(J=>J).then(W,J=>{f("failed to asynchronously prepare wasm: "+J),ge(J)})}re(ze="videodec_simd.wasm")||(me=ze,ze=o.locateFile?o.locateFile(me,d):d+me);var Be=N=>{for(;N.length>0;)N.shift()(o)};function De(N){this.excPtr=N,this.ptr=N-24,this.set_type=function(R){H[this.ptr+4>>2]=R},this.get_type=function(){return H[this.ptr+4>>2]},this.set_destructor=function(R){H[this.ptr+8>>2]=R},this.get_destructor=function(){return H[this.ptr+8>>2]},this.set_caught=function(R){R=R?1:0,E[this.ptr+12|0]=R},this.get_caught=function(){return E[this.ptr+12|0]!=0},this.set_rethrown=function(R){R=R?1:0,E[this.ptr+13|0]=R},this.get_rethrown=function(){return E[this.ptr+13|0]!=0},this.init=function(R,W){this.set_adjusted_ptr(0),this.set_type(R),this.set_destructor(W)},this.set_adjusted_ptr=function(R){H[this.ptr+16>>2]=R},this.get_adjusted_ptr=function(){return H[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Od(this.get_type()))return H[this.excPtr>>2];var R=this.get_adjusted_ptr();return R!==0?R:this.excPtr}}function ne(N){switch(N){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${N}`)}}var Ze=void 0;function yt(N){for(var R="",W=N;y[W];)R+=Ze[y[W++]];return R}var ae={},at={},Lt={},wt=void 0;function we(N){throw new wt(N)}var fr=void 0;function S(N){throw new fr(N)}function ue(N,R,W){function J(ve){var Ce=W(ve);Ce.length!==N.length&&S("Mismatched type converter count");for(var Ee=0;Ee<N.length;++Ee)Y(N[Ee],Ce[Ee])}N.forEach(function(ve){Lt[ve]=R});var he=new Array(R.length),_e=[],ye=0;R.forEach((ve,Ce)=>{at.hasOwnProperty(ve)?he[Ce]=at[ve]:(_e.push(ve),ae.hasOwnProperty(ve)||(ae[ve]=[]),ae[ve].push(()=>{he[Ce]=at[ve],++ye===_e.length&&J(he)}))}),_e.length===0&&J(he)}function Y(N,R,W={}){if(!("argPackAdvance"in R))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(J,he,_e={}){var ye=he.name;if(J||we(`type "${ye}" must have a positive integer typeid pointer`),at.hasOwnProperty(J)){if(_e.ignoreDuplicateRegistrations)return;we(`Cannot register type '${ye}' twice`)}if(at[J]=he,delete Lt[J],ae.hasOwnProperty(J)){var ve=ae[J];delete ae[J],ve.forEach(Ce=>Ce())}}(N,R,W)}function x(N){if(!(this instanceof kr)||!(N instanceof kr))return!1;for(var R=this.$$.ptrType.registeredClass,W=this.$$.ptr,J=N.$$.ptrType.registeredClass,he=N.$$.ptr;R.baseClass;)W=R.upcast(W),R=R.baseClass;for(;J.baseClass;)he=J.upcast(he),J=J.baseClass;return R===J&&W===he}function O(N){we(N.$$.ptrType.registeredClass.name+" instance already deleted")}var F=!1;function pe(N){}function fe(N){N.count.value-=1,N.count.value===0&&function(R){R.smartPtr?R.smartPtrType.rawDestructor(R.smartPtr):R.ptrType.registeredClass.rawDestructor(R.ptr)}(N)}function X(N,R,W){if(R===W)return N;if(W.baseClass===void 0)return null;var J=X(N,R,W.baseClass);return J===null?null:W.downcast(J)}var oe={};function xe(){return Object.keys(Mr).length}function Z(){var N=[];for(var R in Mr)Mr.hasOwnProperty(R)&&N.push(Mr[R]);return N}var $e=[];function b(){for(;$e.length;){var N=$e.pop();N.$$.deleteScheduled=!1,N.delete()}}var it=void 0;function vt(N){it=N,$e.length&&it&&it(b)}var Mr={};function xr(N,R){return R=function(W,J){for(J===void 0&&we("ptr should not be undefined");W.baseClass;)J=W.upcast(J),W=W.baseClass;return J}(N,R),Mr[R]}function Ft(N,R){return R.ptrType&&R.ptr||S("makeClassHandle requires ptr and ptrType"),!!R.smartPtrType!=!!R.smartPtr&&S("Both smartPtrType and smartPtr must be specified"),R.count={value:1},gr(Object.create(N,{$$:{value:R}}))}function G(N){var R=this.getPointee(N);if(!R)return this.destructor(N),null;var W=xr(this.registeredClass,R);if(W!==void 0){if(W.$$.count.value===0)return W.$$.ptr=R,W.$$.smartPtr=N,W.clone();var J=W.clone();return this.destructor(N),J}function he(){return this.isSmartPointer?Ft(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:R,smartPtrType:this,smartPtr:N}):Ft(this.registeredClass.instancePrototype,{ptrType:this,ptr:N})}var _e,ye=this.registeredClass.getActualType(R),ve=oe[ye];if(!ve)return he.call(this);_e=this.isConst?ve.constPointerType:ve.pointerType;var Ce=X(R,this.registeredClass,_e.registeredClass);return Ce===null?he.call(this):this.isSmartPointer?Ft(_e.registeredClass.instancePrototype,{ptrType:_e,ptr:Ce,smartPtrType:this,smartPtr:N}):Ft(_e.registeredClass.instancePrototype,{ptrType:_e,ptr:Ce})}var gr=function(N){return typeof FinalizationRegistry=="undefined"?(gr=R=>R,N):(F=new FinalizationRegistry(R=>{fe(R.$$)}),pe=R=>F.unregister(R),(gr=R=>{var W=R.$$;if(W.smartPtr){var J={$$:W};F.register(R,J,R)}return R})(N))};function Di(){if(this.$$.ptr||O(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var N,R=gr(Object.create(Object.getPrototypeOf(this),{$$:{value:(N=this.$$,{count:N.count,deleteScheduled:N.deleteScheduled,preservePointerOnDelete:N.preservePointerOnDelete,ptr:N.ptr,ptrType:N.ptrType,smartPtr:N.smartPtr,smartPtrType:N.smartPtrType})}}));return R.$$.count.value+=1,R.$$.deleteScheduled=!1,R}function lr(){this.$$.ptr||O(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&we("Object already scheduled for deletion"),pe(this),fe(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function pt(){return!this.$$.ptr}function _n(){return this.$$.ptr||O(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&we("Object already scheduled for deletion"),$e.push(this),$e.length===1&&it&&it(b),this.$$.deleteScheduled=!0,this}function kr(){}function ei(N){if(N===void 0)return"_unknown";var R=(N=N.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return R>=48&&R<=57?`_${N}`:N}function vr(N,R){return N=ei(N),{[N]:function(){return R.apply(this,arguments)}}[N]}function Oi(N,R,W){if(N[R].overloadTable===void 0){var J=N[R];N[R]=function(){return N[R].overloadTable.hasOwnProperty(arguments.length)||we(`Function '${W}' called with an invalid number of arguments (${arguments.length}) - expects one of (${N[R].overloadTable})!`),N[R].overloadTable[arguments.length].apply(this,arguments)},N[R].overloadTable=[],N[R].overloadTable[J.argCount]=J}}function Mi(N,R,W,J,he,_e,ye,ve){this.name=N,this.constructor=R,this.instancePrototype=W,this.rawDestructor=J,this.baseClass=he,this.getActualType=_e,this.upcast=ye,this.downcast=ve,this.pureVirtualFunctions=[]}function _s(N,R,W){for(;R!==W;)R.upcast||we(`Expected null or instance of ${W.name}, got an instance of ${R.name}`),N=R.upcast(N),R=R.baseClass;return N}function fd(N,R){if(R===null)return this.isReference&&we(`null is not a valid ${this.name}`),0;R.$$||we(`Cannot pass "${Is(R)}" as a ${this.name}`),R.$$.ptr||we(`Cannot pass deleted object as a pointer of type ${this.name}`);var W=R.$$.ptrType.registeredClass;return _s(R.$$.ptr,W,this.registeredClass)}function gd(N,R){var W;if(R===null)return this.isReference&&we(`null is not a valid ${this.name}`),this.isSmartPointer?(W=this.rawConstructor(),N!==null&&N.push(this.rawDestructor,W),W):0;R.$$||we(`Cannot pass "${Is(R)}" as a ${this.name}`),R.$$.ptr||we(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&R.$$.ptrType.isConst&&we(`Cannot convert argument of type ${R.$$.smartPtrType?R.$$.smartPtrType.name:R.$$.ptrType.name} to parameter type ${this.name}`);var J=R.$$.ptrType.registeredClass;if(W=_s(R.$$.ptr,J,this.registeredClass),this.isSmartPointer)switch(R.$$.smartPtr===void 0&&we("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:R.$$.smartPtrType===this?W=R.$$.smartPtr:we(`Cannot convert argument of type ${R.$$.smartPtrType?R.$$.smartPtrType.name:R.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:W=R.$$.smartPtr;break;case 2:if(R.$$.smartPtrType===this)W=R.$$.smartPtr;else{var he=R.clone();W=this.rawShare(W,Tn.toHandle(function(){he.delete()})),N!==null&&N.push(this.rawDestructor,W)}break;default:we("Unsupporting sharing policy")}return W}function _d(N,R){if(R===null)return this.isReference&&we(`null is not a valid ${this.name}`),0;R.$$||we(`Cannot pass "${Is(R)}" as a ${this.name}`),R.$$.ptr||we(`Cannot pass deleted object as a pointer of type ${this.name}`),R.$$.ptrType.isConst&&we(`Cannot convert argument of type ${R.$$.ptrType.name} to parameter type ${this.name}`);var W=R.$$.ptrType.registeredClass;return _s(R.$$.ptr,W,this.registeredClass)}function Es(N){return this.fromWireType(w[N>>2])}function vh(N){return this.rawGetPointee&&(N=this.rawGetPointee(N)),N}function Rh(N){this.rawDestructor&&this.rawDestructor(N)}function Ts(N){N!==null&&N.delete()}function qr(N,R,W,J,he,_e,ye,ve,Ce,Ee,Fe){this.name=N,this.registeredClass=R,this.isReference=W,this.isConst=J,this.isSmartPointer=he,this.pointeeType=_e,this.sharingPolicy=ye,this.rawGetPointee=ve,this.rawConstructor=Ce,this.rawShare=Ee,this.rawDestructor=Fe,he||R.baseClass!==void 0?this.toWireType=gd:J?(this.toWireType=fd,this.destructorFunction=null):(this.toWireType=_d,this.destructorFunction=null)}var xi=[],Ed=N=>{var R=xi[N];return R||(N>=xi.length&&(xi.length=N+1),xi[N]=R=$.get(N)),R},ys=(N,R,W)=>N.includes("j")?((J,he,_e)=>{var ye=o["dynCall_"+J];return _e&&_e.length?ye.apply(null,[he].concat(_e)):ye.call(null,he)})(N,R,W):Ed(R).apply(null,W);function Mo(N,R){var W,J,he,_e=(N=yt(N)).includes("j")?(W=N,J=R,he=[],function(){return he.length=0,Object.assign(he,arguments),ys(W,J,he)}):Ed(R);return typeof _e!="function"&&we(`unknown function pointer with signature ${N}: ${R}`),_e}var Ss=void 0;function Td(N){var R=bn(N),W=yt(R);return pi(R),W}function xo(N,R){var W=[],J={};throw R.forEach(function he(_e){J[_e]||at[_e]||(Lt[_e]?Lt[_e].forEach(he):(W.push(_e),J[_e]=!0))}),new Ss(`${N}: `+W.map(Td).join([", "]))}function yd(N,R){for(var W=[],J=0;J<N;J++)W.push(H[R+4*J>>2]);return W}function Ch(N){for(;N.length;){var R=N.pop();N.pop()(R)}}function Sd(N,R){if(!(N instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof N} which is not a function`);var W=vr(N.name||"unknownFunctionName",function(){});W.prototype=N.prototype;var J=new W,he=N.apply(J,R);return he instanceof Object?he:J}function Id(N,R,W,J,he,_e){var ye=R.length;ye<2&&we("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var ve=R[1]!==null&&W!==null,Ce=!1,Ee=1;Ee<R.length;++Ee)if(R[Ee]!==null&&R[Ee].destructorFunction===void 0){Ce=!0;break}var Fe=R[0].name!=="void",ct="",ot="";for(Ee=0;Ee<ye-2;++Ee)ct+=(Ee!==0?", ":"")+"arg"+Ee,ot+=(Ee!==0?", ":"")+"arg"+Ee+"Wired";var je=`
74
- return function ${ei(N)}(${ct}) {
75
- if (arguments.length !== ${ye-2}) {
76
- throwBindingError('function ${N} called with ${arguments.length} arguments, expected ${ye-2} args!');
77
- }`;Ce&&(je+=`var destructors = [];
78
- `);var dt=Ce?"destructors":"null",Ht=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Dt=[we,J,he,Ch,R[0],R[1]];for(ve&&(je+="var thisWired = classParam.toWireType("+dt+`, this);
79
- `),Ee=0;Ee<ye-2;++Ee)je+="var arg"+Ee+"Wired = argType"+Ee+".toWireType("+dt+", arg"+Ee+"); // "+R[Ee+2].name+`
80
- `,Ht.push("argType"+Ee),Dt.push(R[Ee+2]);if(ve&&(ot="thisWired"+(ot.length>0?", ":"")+ot),je+=(Fe||_e?"var rv = ":"")+"invoker(fn"+(ot.length>0?", ":"")+ot+`);
81
- `,Ce)je+=`runDestructors(destructors);
82
- `;else for(Ee=ve?1:2;Ee<R.length;++Ee){var Kt=Ee===1?"thisWired":"arg"+(Ee-2)+"Wired";R[Ee].destructorFunction!==null&&(je+=Kt+"_dtor("+Kt+"); // "+R[Ee].name+`
83
- `,Ht.push(Kt+"_dtor"),Dt.push(R[Ee].destructorFunction))}return Fe&&(je+=`var ret = retType.fromWireType(rv);
64
+ `),ae+=`}
65
+ `,$e.push(ae),na(Function,$e).apply(null,ke)}function sd(){this.allocated=[void 0],this.freelist=[]}var qt=new sd;function nd(c){c>=qt.reserved&&--qt.get(c).refcount==0&&qt.free(c)}function Lr(){for(var c=0,u=qt.reserved;u<qt.allocated.length;++u)qt.allocated[u]!==void 0&&++c;return c}var lo={toValue:c=>(c||Be("Cannot use deleted val. handle = "+c),qt.get(c).value),toHandle:c=>{switch(c){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return qt.allocate({refcount:1,value:c})}}};function Ys(c){if(c===null)return"null";var u=typeof c;return u==="object"||u==="array"||u==="function"?c.toString():""+c}function ad(c,u){switch(u){case 2:return function(h){return this.fromWireType(Ki[h>>2])};case 3:return function(h){return this.fromWireType(Yn[h>>3])};default:throw new TypeError("Unknown float type: "+c)}}function cd(c,u,h){switch(u){case 0:return h?function(E){return z[E]}:function(E){return H[E]};case 1:return h?function(E){return ge[E>>1]}:function(E){return Ue[E>>1]};case 2:return h?function(E){return W[E>>2]}:function(E){return we[E>>2]};default:throw new TypeError("Unknown integer type: "+c)}}var S=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,T=(c,u)=>{for(var h=c,E=h>>1,I=E+u/2;!(E>=I)&&Ue[E];)++E;if((h=E<<1)-c>32&&S)return S.decode(H.subarray(c,h));for(var b="",v=0;!(v>=u/2);++v){var D=ge[c+2*v>>1];if(D==0)break;b+=String.fromCharCode(D)}return b},w=(c,u,h)=>{if(h===void 0&&(h=2147483647),h<2)return 0;for(var E=u,I=(h-=2)<2*c.length?h/2:c.length,b=0;b<I;++b){var v=c.charCodeAt(b);ge[u>>1]=v,u+=2}return ge[u>>1]=0,u-E},x=c=>2*c.length,$=(c,u)=>{for(var h=0,E="";!(h>=u/4);){var I=W[c+4*h>>2];if(I==0)break;if(++h,I>=65536){var b=I-65536;E+=String.fromCharCode(55296|b>>10,56320|1023&b)}else E+=String.fromCharCode(I)}return E},G=(c,u,h)=>{if(h===void 0&&(h=2147483647),h<4)return 0;for(var E=u,I=E+h-4,b=0;b<c.length;++b){var v=c.charCodeAt(b);if(v>=55296&&v<=57343&&(v=65536+((1023&v)<<10)|1023&c.charCodeAt(++b)),W[u>>2]=v,(u+=4)+4>I)break}return W[u>>2]=0,u-E},J=c=>{for(var u=0,h=0;h<c.length;++h){var E=c.charCodeAt(h);E>=55296&&E<=57343&&++h,u+=4}return u},K={},te=[],j=[],he={},Me=()=>{if(!Me.strings){var c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:l||"./this.program"};for(var u in he)he[u]===void 0?delete c[u]:c[u]=he[u];var h=[];for(var u in c)h.push(`${u}=${c[u]}`);Me.strings=h}return Me.strings},Ne,Ee,xe,ut=function(c,u,h,E){c||(c=this),this.parent=c,this.mount=c.mount,this.mounted=null,this.id=_.nextInode++,this.name=u,this.mode=h,this.node_ops={},this.stream_ops={},this.rdev=E},Ze=365,It=146;Object.defineProperties(ut.prototype,{read:{get:function(){return(this.mode&Ze)===Ze},set:function(c){c?this.mode|=Ze:this.mode&=-366}},write:{get:function(){return(this.mode&It)===It},set:function(c){c?this.mode|=It:this.mode&=-147}},isFolder:{get:function(){return _.isDir(this.mode)}},isDevice:{get:function(){return _.isChrdev(this.mode)}}}),_.FSNode=ut,_.createPreloadedFile=function(c,u,h,E,I,b,v,D,V,k){var ee=u?ir.resolve(me.join2(c,u)):c;function ce(de){function ae(De){k&&k(),D||_.createDataFile(c,u,De,E,I,V),b&&b(),Go()}(function(De,$e,ke,lt){typeof Browser!="undefined"&&Browser.init();var it=!1;return le.forEach(function(vt){it||vt.canHandle($e)&&(vt.handle(De,$e,ke,lt),it=!0)}),it})(de,ee,ae,()=>{v&&v(),Go()})||ae(de)}re(),typeof h=="string"?jl(h,de=>ce(de),v):ce(h)},_.staticInit(),function(){for(var c=new Array(256),u=0;u<256;++u)c[u]=String.fromCharCode(u);Hc=c}(),so=o.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},Wc=o.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},xr.prototype.isAliasOf=Gc,xr.prototype.clone=Qc,xr.prototype.delete=Jl,xr.prototype.isDeleted=Yc,xr.prototype.deleteLater=Zc,o.getInheritedInstanceCount=ql,o.getLiveInheritedInstances=zl,o.flushPendingDeletes=hr,o.setDelayFunction=Jc,Pr.prototype.getPointee=Yl,Pr.prototype.destructor=td,Pr.prototype.argPackAdvance=8,Pr.prototype.readValueFromPointer=Ko,Pr.prototype.deleteObject=Zl,Pr.prototype.fromWireType=Xc,id=o.UnboundTypeError=(Ne=Error,(xe=qs(Ee="UnboundTypeError",function(c){this.name=Ee,this.message=c;var u=new Error(c).stack;u!==void 0&&(this.stack=this.toString()+`
66
+ `+u.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Ne.prototype),xe.prototype.constructor=xe,xe.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},xe),Object.assign(sd.prototype,{get(c){return this.allocated[c]},has(c){return this.allocated[c]!==void 0},allocate(c){var u=this.freelist.pop()||this.allocated.length;return this.allocated[u]=c,u},free(c){this.allocated[c]=void 0,this.freelist.push(c)}}),qt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),qt.reserved=qt.allocated.length,o.count_emval_handles=Lr;var Ke,Ut={p:function(c,u,h){throw new ro(c).init(u,h),c},C:function(c,u,h){Dt.varargs=h;try{var E=Dt.getStreamFromFD(c);switch(u){case 0:return(I=Dt.get())<0?-28:_.createStream(E,I).fd;case 1:case 2:case 6:case 7:return 0;case 3:return E.flags;case 4:var I=Dt.get();return E.flags|=I,0;case 5:return I=Dt.get(),ge[I+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return b=28,W[aa()>>2]=b,-1}}catch(v){if(_===void 0||v.name!=="ErrnoError")throw v;return-v.errno}var b},w:function(c,u,h,E){Dt.varargs=E;try{u=Dt.getStr(u),u=Dt.calculateAt(c,u);var I=E?Dt.get():0;return _.open(u,h,I).fd}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return-b.errno}},t:function(c,u,h,E,I){},n:function(c,u,h,E,I){var b=Ai(h);mr(c,{name:u=Mt(u),fromWireType:function(v){return!!v},toWireType:function(v,D){return D?E:I},argPackAdvance:8,readValueFromPointer:function(v){var D;if(h===1)D=z;else if(h===2)D=ge;else{if(h!==4)throw new TypeError("Unknown boolean type size: "+u);D=W}return this.fromWireType(D[v>>b])},destructorFunction:null})},r:function(c,u,h,E,I,b,v,D,V,k,ee,ce,de){ee=Mt(ee),b=co(I,b),D&&(D=co(v,D)),k&&(k=co(V,k)),de=co(ce,de);var ae=jt(ee);(function(De,$e,ke){o.hasOwnProperty(De)?((ke===void 0||o[De].overloadTable!==void 0&&o[De].overloadTable[ke]!==void 0)&&Be(`Cannot register public name '${De}' twice`),Kc(o,De,De),o.hasOwnProperty(ke)&&Be(`Cannot register multiple overloads of a function with the same number of arguments (${ke})!`),o[De].overloadTable[ke]=$e):(o[De]=$e,ke!==void 0&&(o[De].numArguments=ke))})(ae,function(){Qs(`Cannot construct ${ee} due to unbound types`,[E])}),ei([c,u,h],E?[E]:[],function(De){var $e,ke;De=De[0],ke=E?($e=De.registeredClass).instancePrototype:xr.prototype;var lt=qs(ae,function(){if(Object.getPrototypeOf(this)!==it)throw new so("Use 'new' to construct "+ee);if(vt.constructor_body===void 0)throw new so(ee+" has no accessible constructor");var Tt=vt.constructor_body[arguments.length];if(Tt===void 0)throw new so(`Tried to invoke ctor of ${ee} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(vt.constructor_body).toString()}) parameters instead!`);return Tt.apply(this,arguments)}),it=Object.create(ke,{constructor:{value:lt}});lt.prototype=it;var vt=new zs(ee,lt,it,de,$e,b,D,k);vt.baseClass&&(vt.baseClass.__derivedClasses===void 0&&(vt.baseClass.__derivedClasses=[]),vt.baseClass.__derivedClasses.push(vt));var ho=new Pr(ee,vt,!0,!1,!1),Ar=new Pr(ee+"*",vt,!1,!1,!1),es=new Pr(ee+" const*",vt,!1,!0,!1);return Jo[c]={pointerType:Ar,constPointerType:es},function(Tt,Mf,em){o.hasOwnProperty(Tt)||lr("Replacing nonexistant public symbol"),o[Tt].overloadTable!==void 0&&em!==void 0?o[Tt].overloadTable[em]=Mf:(o[Tt]=Mf,o[Tt].argCount=em)}(ae,lt),[ho,Ar,es]})},q:function(c,u,h,E,I,b){var v=sa(u,h);I=co(E,I),ei([],[c],function(D){var V=`constructor ${(D=D[0]).name}`;if(D.registeredClass.constructor_body===void 0&&(D.registeredClass.constructor_body=[]),D.registeredClass.constructor_body[u-1]!==void 0)throw new so(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${D.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return D.registeredClass.constructor_body[u-1]=()=>{Qs(`Cannot construct ${D.name} due to unbound types`,v)},ei([],v,function(k){return k.splice(1,0,null),D.registeredClass.constructor_body[u-1]=uo(V,k,null,I,b),[]}),[]})},d:function(c,u,h,E,I,b,v,D,V){var k=sa(h,E);u=Mt(u),b=co(I,b),ei([],[c],function(ee){var ce=`${(ee=ee[0]).name}.${u}`;function de(){Qs(`Cannot call ${ce} due to unbound types`,k)}u.startsWith("@@")&&(u=Symbol[u.substring(2)]),D&&ee.registeredClass.pureVirtualFunctions.push(u);var ae=ee.registeredClass.instancePrototype,De=ae[u];return De===void 0||De.overloadTable===void 0&&De.className!==ee.name&&De.argCount===h-2?(de.argCount=h-2,de.className=ee.name,ae[u]=de):(Kc(ae,u,ce),ae[u].overloadTable[h-2]=de),ei([],k,function($e){var ke=uo(ce,$e,ee,b,v,V);return ae[u].overloadTable===void 0?(ke.argCount=h-2,ae[u]=ke):ae[u].overloadTable[h-2]=ke,[]}),[]})},D:function(c,u){mr(c,{name:u=Mt(u),fromWireType:function(h){var E=lo.toValue(h);return nd(h),E},toWireType:function(h,E){return lo.toHandle(E)},argPackAdvance:8,readValueFromPointer:Ko,destructorFunction:null})},k:function(c,u,h){var E=Ai(h);mr(c,{name:u=Mt(u),fromWireType:function(I){return I},toWireType:function(I,b){return b},argPackAdvance:8,readValueFromPointer:ad(u,E),destructorFunction:null})},c:function(c,u,h,E,I){u=Mt(u),I===-1&&(I=4294967295);var b=Ai(h),v=k=>k;if(E===0){var D=32-8*h;v=k=>k<<D>>>D}var V=u.includes("unsigned");mr(c,{name:u,fromWireType:v,toWireType:V?function(k,ee){return this.name,ee>>>0}:function(k,ee){return this.name,ee},argPackAdvance:8,readValueFromPointer:cd(u,b,E!==0),destructorFunction:null})},b:function(c,u,h){var E=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][u];function I(b){var v=we,D=v[b>>=2],V=v[b+1];return new E(v.buffer,V,D)}mr(c,{name:h=Mt(h),fromWireType:I,argPackAdvance:8,readValueFromPointer:I},{ignoreDuplicateRegistrations:!0})},j:function(c,u){var h=(u=Mt(u))==="std::string";mr(c,{name:u,fromWireType:function(E){var I,b=we[E>>2],v=E+4;if(h)for(var D=v,V=0;V<=b;++V){var k=v+V;if(V==b||H[k]==0){var ee=oo(D,k-D);I===void 0?I=ee:(I+="\0",I+=ee),D=k+1}}else{var ce=new Array(b);for(V=0;V<b;++V)ce[V]=String.fromCharCode(H[v+V]);I=ce.join("")}return xt(E),I},toWireType:function(E,I){var b;I instanceof ArrayBuffer&&(I=new Uint8Array(I));var v=typeof I=="string";v||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||Be("Cannot pass non-string to std::string"),b=h&&v?jo(I):I.length;var D=mo(4+b+1),V=D+4;if(we[D>>2]=b,h&&v)qo(I,H,V,b+1);else if(v)for(var k=0;k<b;++k){var ee=I.charCodeAt(k);ee>255&&(xt(V),Be("String has UTF-16 code units that do not fit in 8 bits")),H[V+k]=ee}else for(k=0;k<b;++k)H[V+k]=I[k];return E!==null&&E.push(xt,D),D},argPackAdvance:8,readValueFromPointer:Ko,destructorFunction:function(E){xt(E)}})},f:function(c,u,h){var E,I,b,v,D;h=Mt(h),u===2?(E=T,I=w,v=x,b=()=>Ue,D=1):u===4&&(E=$,I=G,v=J,b=()=>we,D=2),mr(c,{name:h,fromWireType:function(V){for(var k,ee=we[V>>2],ce=b(),de=V+4,ae=0;ae<=ee;++ae){var De=V+4+ae*u;if(ae==ee||ce[De>>D]==0){var $e=E(de,De-de);k===void 0?k=$e:(k+="\0",k+=$e),de=De+u}}return xt(V),k},toWireType:function(V,k){typeof k!="string"&&Be(`Cannot pass non-string to C++ string type ${h}`);var ee=v(k),ce=mo(4+ee+u);return we[ce>>2]=ee>>D,I(k,ce+4,ee+u),V!==null&&V.push(xt,ce),ce},argPackAdvance:8,readValueFromPointer:Ko,destructorFunction:function(V){xt(V)}})},o:function(c,u){mr(c,{isVoid:!0,name:u=Mt(u),argPackAdvance:0,fromWireType:function(){},toWireType:function(h,E){}})},g:function(c,u,h,E){var I,b;(c=te[c])(u=lo.toValue(u),h=(b=K[I=h])===void 0?Mt(I):b,null,E)},m:nd,l:function(c,u){var h=function($e,ke){for(var lt,it,vt,ho=new Array($e),Ar=0;Ar<$e;++Ar)ho[Ar]=(lt=we[ke+4*Ar>>2],it="parameter "+Ar,vt=void 0,(vt=Sr[lt])===void 0&&Be(it+" has unknown type "+Xs(lt)),vt);return ho}(c,u),E=h[0],I=E.name+"_$"+h.slice(1).map(function($e){return $e.name}).join("_")+"$",b=j[I];if(b!==void 0)return b;for(var v=["retType"],D=[E],V="",k=0;k<c-1;++k)V+=(k!==0?", ":"")+"arg"+k,v.push("argType"+k),D.push(h[1+k]);var ee="return function "+jt("methodCaller_"+I)+`(handle, name, destructors, args) {
67
+ `,ce=0;for(k=0;k<c-1;++k)ee+=" var arg"+k+" = argType"+k+".readValueFromPointer(args"+(ce?"+"+ce:"")+`);
68
+ `,ce+=h[k+1].argPackAdvance;for(ee+=" var rv = handle[name]("+V+`);
69
+ `,k=0;k<c-1;++k)h[k+1].deleteObject&&(ee+=" argType"+k+".deleteObject(arg"+k+`);
70
+ `);E.isVoid||(ee+=` return retType.toWireType(destructors, rv);
71
+ `),ee+=`};
72
+ `,v.push(ee);var de,ae,De=na(Function,v).apply(null,D);return de=De,ae=te.length,te.push(de),b=ae,j[I]=b,b},a:()=>{Zr("")},e:function(){return Date.now()},v:()=>H.length,A:(c,u,h)=>H.copyWithin(c,u,u+h),u:c=>{H.length,Zr("OOM")},y:(c,u)=>{var h=0;return Me().forEach(function(E,I){var b=u+h;we[c+4*I>>2]=b,((v,D)=>{for(var V=0;V<v.length;++V)z[0|D++]=v.charCodeAt(V);z[0|D]=0})(E,b),h+=E.length+1}),0},z:(c,u)=>{var h=Me();we[c>>2]=h.length;var E=0;return h.forEach(function(I){E+=I.length+1}),we[u>>2]=E,0},i:function(c){try{var u=Dt.getStreamFromFD(c);return _.close(u),0}catch(h){if(_===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,u){try{var h=Dt.getStreamFromFD(c),E=h.tty?2:_.isDir(h.mode)?3:_.isLink(h.mode)?7:4;return z[u|0]=E,ge[u+2>>1]=0,rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+8>>2]=rt[0],W[u+12>>2]=rt[1],rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+16>>2]=rt[0],W[u+20>>2]=rt[1],0}catch(I){if(_===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var k=0,ee=0;ee<D;ee++){var ce=we[v>>2],de=we[v+4>>2];v+=8;var ae=_.read(b,z,ce,de,V);if(ae<0)return-1;if(k+=ae,ae<de)break;V!==void 0&&(V+=ae)}return k})(Dt.getStreamFromFD(c),u,h);return we[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,u,h,E,I){var b,v,D=(v=h)+2097152>>>0<4194305-!!(b=u)?(b>>>0)+4294967296*v:NaN;try{if(isNaN(D))return 61;var V=Dt.getStreamFromFD(c);return _.llseek(V,D,E),rt=[V.position>>>0,(Se=V.position,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[I>>2]=rt[0],W[I+4>>2]=rt[1],V.getdents&&D===0&&E===0&&(V.getdents=null),0}catch(k){if(_===void 0||k.name!=="ErrnoError")throw k;return k.errno}},h:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var k=0,ee=0;ee<D;ee++){var ce=we[v>>2],de=we[v+4>>2];v+=8;var ae=_.write(b,z,ce,de,V);if(ae<0)return-1;k+=ae,V!==void 0&&(V+=ae)}return k})(Dt.getStreamFromFD(c),u,h);return we[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},mo=(function(){var c,u,h,E,I={a:Ut};function b(v,D){var V,k,ee=v.exports;return C=(P=ee).E,V=C.buffer,o.HEAP8=z=new Int8Array(V),o.HEAP16=ge=new Int16Array(V),o.HEAP32=W=new Int32Array(V),o.HEAPU8=H=new Uint8Array(V),o.HEAPU16=Ue=new Uint16Array(V),o.HEAPU32=we=new Uint32Array(V),o.HEAPF32=Ki=new Float32Array(V),o.HEAPF64=Yn=new Float64Array(V),Zn=P.H,k=P.F,Ws.unshift(k),Go(),ee}if(re(),o.instantiateWasm)try{return o.instantiateWasm(I,b)}catch(v){N("Module.instantiateWasm callback failed with error: "+v),r(v)}(c=A,u=Ii,h=I,E=function(v){b(v.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||Wt(u)||typeof fetch!="function"?Kr(u,h,E):fetch(u,{credentials:"same-origin"}).then(v=>WebAssembly.instantiateStreaming(v,h).then(E,function(D){return N("wasm streaming compile failed: "+D),N("falling back to ArrayBuffer instantiation"),Kr(u,h,E)}))).catch(r)}(),c=>(mo=P.G)(c)),xt=c=>(xt=P.I)(c),aa=()=>(aa=P.J)(),kr=c=>(kr=P.K)(c),ca=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=P.L)(),c=>(ca=P.M)(c));o.dynCall_jiji=(c,u,h,E,I)=>(o.dynCall_jiji=P.N)(c,u,h,E,I),o._ff_h264_cabac_tables=67061;function Zs(){function c(){Ke||(Ke=!0,o.calledRun=!0,Kn||(o.noFSInit||_.init.initialized||_.init(),_.ignorePermissions=!1,Mr.init(),to(Ws),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)u=o.postRun.shift(),eo.unshift(u);var u;to(eo)}()))}Ir>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)u=o.preRun.shift(),Yr.unshift(u);var u;to(Yr)}(),Ir>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(Ti=function c(){Ke||Zs(),Ke||(Ti=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Zs(),t.ready}})(),sb=ob,nb=class extends Ic{constructor(i){super(sb,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},SU=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((S,T)=>{e=S,r=T});var s,n=Object.assign({},o),a=typeof window=="object",d=typeof importScripts=="function",l=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||d)&&(d?l=self.location.href:typeof document!="undefined"&&document.currentScript&&(l=document.currentScript.src),i&&(l=i),l=l.indexOf("blob:")!==0?l.substr(0,l.replace(/[?#].*/,"").lastIndexOf("/")+1):"",d&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var p,f=o.print||console.log.bind(console),g=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(p=o.wasmBinary);var A,R;o.noExitRuntime,typeof WebAssembly!="object"&&Ir("no native wasm support detected");var N,C,P,z,H,ge,Ue,W,we,Ki=!1,Yn=[],Zn=[],Kn=[],Yr=0,Ws=null,eo=null;function Ir(S){o.onAbort&&o.onAbort(S),g(S="Aborted("+S+")"),Ki=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var _i,Ti;function re(S){return S.startsWith("data:application/octet-stream;base64,")}function Go(S){if(S==_i&&p)return new Uint8Array(p);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Zr(S,T,w){return function(x){return p||!a&&!d||typeof fetch!="function"?Promise.resolve().then(()=>Go(x)):fetch(x,{credentials:"same-origin"}).then($=>{if(!$.ok)throw"failed to load wasm binary file at '"+x+"'";return $.arrayBuffer()}).catch(()=>Go(x))}(S).then(x=>WebAssembly.instantiate(x,T)).then(x=>x).then(w,x=>{g("failed to asynchronously prepare wasm: "+x),Ir(x)})}re(_i="videodec_simd.wasm")||(Ti=_i,_i=o.locateFile?o.locateFile(Ti,l):l+Ti);var Ii=S=>{for(;S.length>0;)S.shift()(o)};function ea(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){ge[this.ptr+4>>2]=T},this.get_type=function(){return ge[this.ptr+4>>2]},this.set_destructor=function(T){ge[this.ptr+8>>2]=T},this.get_destructor=function(){return ge[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,N[this.ptr+12|0]=T},this.get_caught=function(){return N[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,N[this.ptr+13|0]=T},this.get_rethrown=function(){return N[this.ptr+13|0]!=0},this.init=function(T,w){this.set_adjusted_ptr(0),this.set_type(T),this.set_destructor(w)},this.set_adjusted_ptr=function(T){ge[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return ge[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ad(this.get_type()))return ge[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Se(S){switch(S){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${S}`)}}var rt=void 0;function Wt(S){for(var T="",w=S;C[w];)T+=rt[C[w++]];return T}var Q={},Kr={},to={},ro=void 0;function me(S){throw new ro(S)}var ta=void 0;function ir(S){throw new ta(S)}function io(S,T,w){function x(K){var te=w(K);te.length!==S.length&&ir("Mismatched type converter count");for(var j=0;j<S.length;++j)Gt(S[j],te[j])}S.forEach(function(K){to[K]=T});var $=new Array(T.length),G=[],J=0;T.forEach((K,te)=>{Kr.hasOwnProperty(K)?$[te]=Kr[K]:(G.push(K),Q.hasOwnProperty(K)||(Q[K]=[]),Q[K].push(()=>{$[te]=Kr[K],++J===G.length&&x($)}))}),G.length===0&&x($)}function Gt(S,T,w={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(x,$,G={}){var J=$.name;if(x||me(`type "${J}" must have a positive integer typeid pointer`),Kr.hasOwnProperty(x)){if(G.ignoreDuplicateRegistrations)return;me(`Cannot register type '${J}' twice`)}if(Kr[x]=$,delete to[x],Q.hasOwnProperty(x)){var K=Q[x];delete Q[x],K.forEach(te=>te())}}(S,T,w)}function ra(S){if(!(this instanceof lr)||!(S instanceof lr))return!1;for(var T=this.$$.ptrType.registeredClass,w=this.$$.ptr,x=S.$$.ptrType.registeredClass,$=S.$$.ptr;T.baseClass;)w=T.upcast(w),T=T.baseClass;for(;x.baseClass;)$=x.upcast($),x=x.baseClass;return T===x&&w===$}function jo(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var qo=!1;function Gs(S){}function Mr(S){S.count.value-=1,S.count.value===0&&function(T){T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)}(S)}function ia(S,T,w){if(T===w)return S;if(w.baseClass===void 0)return null;var x=ia(S,T,w.baseClass);return x===null?null:w.downcast(x)}var ve={};function jl(){return Object.keys(Ai).length}function le(){var S=[];for(var T in Ai)Ai.hasOwnProperty(T)&&S.push(Ai[T]);return S}var Si=[];function _(){for(;Si.length;){var S=Si.pop();S.$$.deleteScheduled=!1,S.delete()}}var oo=void 0;function Dt(S){oo=S,Si.length&&oo&&oo(_)}var Ai={};function Hc(S,T){return T=function(w,x){for(x===void 0&&me("ptr should not be undefined");w.baseClass;)x=w.upcast(x),w=w.baseClass;return x}(S,T),Ai[T]}function Mt(S,T){return T.ptrType&&T.ptr||ir("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&ir("Both smartPtrType and smartPtr must be specified"),T.count={value:1},Sr(Object.create(S,{$$:{value:T}}))}function L(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var w=Hc(this.registeredClass,T);if(w!==void 0){if(w.$$.count.value===0)return w.$$.ptr=T,w.$$.smartPtr=S,w.clone();var x=w.clone();return this.destructor(S),x}function $(){return this.isSmartPointer?Mt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):Mt(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var G,J=this.registeredClass.getActualType(T),K=ve[J];if(!K)return $.call(this);G=this.isConst?K.constPointerType:K.pointerType;var te=ia(T,this.registeredClass,G.registeredClass);return te===null?$.call(this):this.isSmartPointer?Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:te,smartPtrType:this,smartPtr:S}):Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:te})}var Sr=function(S){return typeof FinalizationRegistry=="undefined"?(Sr=T=>T,S):(qo=new FinalizationRegistry(T=>{Mr(T.$$)}),Gs=T=>qo.unregister(T),(Sr=T=>{var w=T.$$;if(w.smartPtr){var x={$$:w};qo.register(T,x,T)}return T})(S))};function js(){if(this.$$.ptr||jo(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=Sr(Object.create(Object.getPrototypeOf(this),{$$:{value:(S=this.$$,{count:S.count,deleteScheduled:S.deleteScheduled,preservePointerOnDelete:S.preservePointerOnDelete,ptr:S.ptr,ptrType:S.ptrType,smartPtr:S.smartPtr,smartPtrType:S.smartPtrType})}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T}function so(){this.$$.ptr||jo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Gs(this),Mr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Be(){return!this.$$.ptr}function Wc(){return this.$$.ptr||jo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Si.push(this),Si.length===1&&oo&&oo(_),this.$$.deleteScheduled=!0,this}function lr(){}function ei(S){if(S===void 0)return"_unknown";var T=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return T>=48&&T<=57?`_${S}`:S}function mr(S,T){return S=ei(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function Gc(S,T,w){if(S[T].overloadTable===void 0){var x=S[T];S[T]=function(){return S[T].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${w}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[T].overloadTable})!`),S[T].overloadTable[arguments.length].apply(this,arguments)},S[T].overloadTable=[],S[T].overloadTable[x.argCount]=x}}function oa(S,T,w,x,$,G,J,K){this.name=S,this.constructor=T,this.instancePrototype=w,this.rawDestructor=x,this.baseClass=$,this.getActualType=G,this.upcast=J,this.downcast=K,this.pureVirtualFunctions=[]}function zo(S,T,w){for(;T!==w;)T.upcast||me(`Expected null or instance of ${w.name}, got an instance of ${T.name}`),S=T.upcast(S),T=T.baseClass;return S}function jc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Zo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var w=T.$$.ptrType.registeredClass;return zo(T.$$.ptr,w,this.registeredClass)}function qc(S,T){var w;if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(w=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,w),w):0;T.$$||me(`Cannot pass "${Zo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);var x=T.$$.ptrType.registeredClass;if(w=zo(T.$$.ptr,x,this.registeredClass),this.isSmartPointer)switch(T.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:T.$$.smartPtrType===this?w=T.$$.smartPtr:me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:w=T.$$.smartPtr;break;case 2:if(T.$$.smartPtrType===this)w=T.$$.smartPtr;else{var $=T.clone();w=this.rawShare(w,zs.toHandle(function(){$.delete()})),S!==null&&S.push(this.rawDestructor,w)}break;default:me("Unsupporting sharing policy")}return w}function zc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Zo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.ptrType.name} to parameter type ${this.name}`);var w=T.$$.ptrType.registeredClass;return zo(T.$$.ptr,w,this.registeredClass)}function Jo(S){return this.fromWireType(H[S>>2])}function ql(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function zl(S){this.rawDestructor&&this.rawDestructor(S)}function Xo(S){S!==null&&S.delete()}function hr(S,T,w,x,$,G,J,K,te,j,he){this.name=S,this.registeredClass=T,this.isReference=w,this.isConst=x,this.isSmartPointer=$,this.pointeeType=G,this.sharingPolicy=J,this.rawGetPointee=K,this.rawConstructor=te,this.rawShare=j,this.rawDestructor=he,$||T.baseClass!==void 0?this.toWireType=qc:x?(this.toWireType=jc,this.destructorFunction=null):(this.toWireType=zc,this.destructorFunction=null)}var ti=[],Jc=S=>{var T=ti[S];return T||(S>=ti.length&&(ti.length=S+1),ti[S]=T=we.get(S)),T},Qo=(S,T,w)=>S.includes("j")?((x,$,G)=>{var J=o["dynCall_"+x];return G&&G.length?J.apply(null,[$].concat(G)):J.call(null,$)})(S,T,w):Jc(T).apply(null,w);function no(S,T){var w,x,$,G=(S=Wt(S)).includes("j")?(w=S,x=T,$=[],function(){return $.length=0,Object.assign($,arguments),Qo(w,x,$)}):Jc(T);return typeof G!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),G}var Yo=void 0;function Xc(S){var T=Ys(S),w=Wt(T);return Lr(T),w}function ao(S,T){var w=[],x={};throw T.forEach(function $(G){x[G]||Kr[G]||(to[G]?to[G].forEach($):(w.push(G),x[G]=!0))}),new Yo(`${S}: `+w.map(Xc).join([", "]))}function Qc(S,T){for(var w=[],x=0;x<S;x++)w.push(ge[T+4*x>>2]);return w}function Jl(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function Yc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var w=mr(S.name||"unknownFunctionName",function(){});w.prototype=S.prototype;var x=new w,$=S.apply(x,T);return $ instanceof Object?$:x}function Zc(S,T,w,x,$,G){var J=T.length;J<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var K=T[1]!==null&&w!==null,te=!1,j=1;j<T.length;++j)if(T[j]!==null&&T[j].destructorFunction===void 0){te=!0;break}var he=T[0].name!=="void",Me="",Ne="";for(j=0;j<J-2;++j)Me+=(j!==0?", ":"")+"arg"+j,Ne+=(j!==0?", ":"")+"arg"+j+"Wired";var Ee=`
73
+ return function ${ei(S)}(${Me}) {
74
+ if (arguments.length !== ${J-2}) {
75
+ throwBindingError('function ${S} called with ${arguments.length} arguments, expected ${J-2} args!');
76
+ }`;te&&(Ee+=`var destructors = [];
77
+ `);var xe=te?"destructors":"null",ut=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Ze=[me,x,$,Jl,T[0],T[1]];for(K&&(Ee+="var thisWired = classParam.toWireType("+xe+`, this);
78
+ `),j=0;j<J-2;++j)Ee+="var arg"+j+"Wired = argType"+j+".toWireType("+xe+", arg"+j+"); // "+T[j+2].name+`
79
+ `,ut.push("argType"+j),Ze.push(T[j+2]);if(K&&(Ne="thisWired"+(Ne.length>0?", ":"")+Ne),Ee+=(he||G?"var rv = ":"")+"invoker(fn"+(Ne.length>0?", ":"")+Ne+`);
80
+ `,te)Ee+=`runDestructors(destructors);
81
+ `;else for(j=K?1:2;j<T.length;++j){var It=j===1?"thisWired":"arg"+(j-2)+"Wired";T[j].destructorFunction!==null&&(Ee+=It+"_dtor("+It+"); // "+T[j].name+`
82
+ `,ut.push(It+"_dtor"),Ze.push(T[j].destructorFunction))}return he&&(Ee+=`var ret = retType.fromWireType(rv);
84
83
  return ret;
85
- `),je+=`}
86
- `,Ht.push(je),Sd(Function,Ht).apply(null,Dt)}function hi(){this.allocated=[void 0],this.freelist=[]}var Rr=new hi;function En(N){N>=Rr.reserved&&--Rr.get(N).refcount==0&&Rr.free(N)}function bd(){for(var N=0,R=Rr.reserved;R<Rr.allocated.length;++R)Rr.allocated[R]!==void 0&&++N;return N}var Tn={toValue:N=>(N||we("Cannot use deleted val. handle = "+N),Rr.get(N).value),toHandle:N=>{switch(N){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Rr.allocate({refcount:1,value:N})}}};function Is(N){if(N===null)return"null";var R=typeof N;return R==="object"||R==="array"||R==="function"?N.toString():""+N}function wh(N,R){switch(R){case 2:return function(W){return this.fromWireType(B[W>>2])};case 3:return function(W){return this.fromWireType(P[W>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Nh(N,R,W){switch(R){case 0:return W?function(J){return E[J]}:function(J){return y[J]};case 1:return W?function(J){return v[J>>1]}:function(J){return M[J>>1]};case 2:return W?function(J){return w[J>>2]}:function(J){return H[J>>2]};default:throw new TypeError("Unknown integer type: "+N)}}var Ad=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,bs=(N,R,W)=>{for(var J=R+W,he=R;N[he]&&!(he>=J);)++he;if(he-R>16&&N.buffer&&Ad)return Ad.decode(N.subarray(R,he));for(var _e="";R<he;){var ye=N[R++];if(128&ye){var ve=63&N[R++];if((224&ye)!=192){var Ce=63&N[R++];if((ye=(240&ye)==224?(15&ye)<<12|ve<<6|Ce:(7&ye)<<18|ve<<12|Ce<<6|63&N[R++])<65536)_e+=String.fromCharCode(ye);else{var Ee=ye-65536;_e+=String.fromCharCode(55296|Ee>>10,56320|1023&Ee)}}else _e+=String.fromCharCode((31&ye)<<6|ve)}else _e+=String.fromCharCode(ye)}return _e},Dh=(N,R)=>N?bs(y,N,R):"",vd=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Oh=(N,R)=>{for(var W=N,J=W>>1,he=J+R/2;!(J>=he)&&M[J];)++J;if((W=J<<1)-N>32&&vd)return vd.decode(y.subarray(N,W));for(var _e="",ye=0;!(ye>=R/2);++ye){var ve=v[N+2*ye>>1];if(ve==0)break;_e+=String.fromCharCode(ve)}return _e},mi=(N,R,W)=>{if(W===void 0&&(W=2147483647),W<2)return 0;for(var J=R,he=(W-=2)<2*N.length?W/2:N.length,_e=0;_e<he;++_e){var ye=N.charCodeAt(_e);v[R>>1]=ye,R+=2}return v[R>>1]=0,R-J},yn=N=>2*N.length,Rd=(N,R)=>{for(var W=0,J="";!(W>=R/4);){var he=w[N+4*W>>2];if(he==0)break;if(++W,he>=65536){var _e=he-65536;J+=String.fromCharCode(55296|_e>>10,56320|1023&_e)}else J+=String.fromCharCode(he)}return J},Mh=(N,R,W)=>{if(W===void 0&&(W=2147483647),W<4)return 0;for(var J=R,he=J+W-4,_e=0;_e<N.length;++_e){var ye=N.charCodeAt(_e);if(ye>=55296&&ye<=57343&&(ye=65536+((1023&ye)<<10)|1023&N.charCodeAt(++_e)),w[R>>2]=ye,(R+=4)+4>he)break}return w[R>>2]=0,R-J},ko=N=>{for(var R=0,W=0;W<N.length;++W){var J=N.charCodeAt(W);J>=55296&&J<=57343&&++W,R+=4}return R},Cd={},Sn=[],In=[],Ra;Ra=()=>performance.now();var wd,Ca,Lo,Nd=[null,[],[]];(function(){for(var N=new Array(256),R=0;R<256;++R)N[R]=String.fromCharCode(R);Ze=N})(),wt=o.BindingError=class extends Error{constructor(N){super(N),this.name="BindingError"}},fr=o.InternalError=class extends Error{constructor(N){super(N),this.name="InternalError"}},kr.prototype.isAliasOf=x,kr.prototype.clone=Di,kr.prototype.delete=lr,kr.prototype.isDeleted=pt,kr.prototype.deleteLater=_n,o.getInheritedInstanceCount=xe,o.getLiveInheritedInstances=Z,o.flushPendingDeletes=b,o.setDelayFunction=vt,qr.prototype.getPointee=vh,qr.prototype.destructor=Rh,qr.prototype.argPackAdvance=8,qr.prototype.readValueFromPointer=Es,qr.prototype.deleteObject=Ts,qr.prototype.fromWireType=G,Ss=o.UnboundTypeError=(wd=Error,(Lo=vr(Ca="UnboundTypeError",function(N){this.name=Ca,this.message=N;var R=new Error(N).stack;R!==void 0&&(this.stack=this.toString()+`
87
- `+R.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(wd.prototype),Lo.prototype.constructor=Lo,Lo.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Lo),Object.assign(hi.prototype,{get(N){return this.allocated[N]},has(N){return this.allocated[N]!==void 0},allocate(N){var R=this.freelist.pop()||this.allocated.length;return this.allocated[R]=N,R},free(N){this.allocated[N]=void 0,this.freelist.push(N)}}),Rr.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Rr.reserved=Rr.allocated.length,o.count_emval_handles=bd;var Cr,Dd={o:function(N,R,W){throw new De(N).init(R,W),N},r:function(N,R,W,J,he){},m:function(N,R,W,J,he){var _e=ne(W);Y(N,{name:R=yt(R),fromWireType:function(ye){return!!ye},toWireType:function(ye,ve){return ve?J:he},argPackAdvance:8,readValueFromPointer:function(ye){var ve;if(W===1)ve=E;else if(W===2)ve=v;else{if(W!==4)throw new TypeError("Unknown boolean type size: "+R);ve=w}return this.fromWireType(ve[ye>>_e])},destructorFunction:null})},q:function(N,R,W,J,he,_e,ye,ve,Ce,Ee,Fe,ct,ot){Fe=yt(Fe),_e=Mo(he,_e),ve&&(ve=Mo(ye,ve)),Ee&&(Ee=Mo(Ce,Ee)),ot=Mo(ct,ot);var je=ei(Fe);(function(dt,Ht,Dt){o.hasOwnProperty(dt)?((Dt===void 0||o[dt].overloadTable!==void 0&&o[dt].overloadTable[Dt]!==void 0)&&we(`Cannot register public name '${dt}' twice`),Oi(o,dt,dt),o.hasOwnProperty(Dt)&&we(`Cannot register multiple overloads of a function with the same number of arguments (${Dt})!`),o[dt].overloadTable[Dt]=Ht):(o[dt]=Ht,Dt!==void 0&&(o[dt].numArguments=Dt))})(je,function(){xo(`Cannot construct ${Fe} due to unbound types`,[J])}),ue([N,R,W],J?[J]:[],function(dt){var Ht,Dt;dt=dt[0],Dt=J?(Ht=dt.registeredClass).instancePrototype:kr.prototype;var Kt=vr(je,function(){if(Object.getPrototypeOf(this)!==Ot)throw new wt("Use 'new' to construct "+Fe);if(_r.constructor_body===void 0)throw new wt(Fe+" has no accessible constructor");var fi=_r.constructor_body[arguments.length];if(fi===void 0)throw new wt(`Tried to invoke ctor of ${Fe} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(_r.constructor_body).toString()}) parameters instead!`);return fi.apply(this,arguments)}),Ot=Object.create(Dt,{constructor:{value:Kt}});Kt.prototype=Ot;var _r=new Mi(Fe,Kt,Ot,ot,Ht,_e,ve,Ee);_r.baseClass&&(_r.baseClass.__derivedClasses===void 0&&(_r.baseClass.__derivedClasses=[]),_r.baseClass.__derivedClasses.push(_r));var Uo=new qr(Fe,_r,!0,!1,!1),hr=new qr(Fe+"*",_r,!1,!1,!1),wa=new qr(Fe+" const*",_r,!1,!0,!1);return oe[N]={pointerType:hr,constPointerType:wa},function(fi,Na,An){o.hasOwnProperty(fi)||S("Replacing nonexistant public symbol"),o[fi].overloadTable!==void 0&&An!==void 0?o[fi].overloadTable[An]=Na:(o[fi]=Na,o[fi].argCount=An)}(je,Kt),[Uo,hr,wa]})},p:function(N,R,W,J,he,_e){var ye=yd(R,W);he=Mo(J,he),ue([],[N],function(ve){var Ce=`constructor ${(ve=ve[0]).name}`;if(ve.registeredClass.constructor_body===void 0&&(ve.registeredClass.constructor_body=[]),ve.registeredClass.constructor_body[R-1]!==void 0)throw new wt(`Cannot register multiple constructors with identical number of parameters (${R-1}) for class '${ve.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return ve.registeredClass.constructor_body[R-1]=()=>{xo(`Cannot construct ${ve.name} due to unbound types`,ye)},ue([],ye,function(Ee){return Ee.splice(1,0,null),ve.registeredClass.constructor_body[R-1]=Id(Ce,Ee,null,he,_e),[]}),[]})},d:function(N,R,W,J,he,_e,ye,ve,Ce){var Ee=yd(W,J);R=yt(R),_e=Mo(he,_e),ue([],[N],function(Fe){var ct=`${(Fe=Fe[0]).name}.${R}`;function ot(){xo(`Cannot call ${ct} due to unbound types`,Ee)}R.startsWith("@@")&&(R=Symbol[R.substring(2)]),ve&&Fe.registeredClass.pureVirtualFunctions.push(R);var je=Fe.registeredClass.instancePrototype,dt=je[R];return dt===void 0||dt.overloadTable===void 0&&dt.className!==Fe.name&&dt.argCount===W-2?(ot.argCount=W-2,ot.className=Fe.name,je[R]=ot):(Oi(je,R,ct),je[R].overloadTable[W-2]=ot),ue([],Ee,function(Ht){var Dt=Id(ct,Ht,Fe,_e,ye,Ce);return je[R].overloadTable===void 0?(Dt.argCount=W-2,je[R]=Dt):je[R].overloadTable[W-2]=Dt,[]}),[]})},u:function(N,R){Y(N,{name:R=yt(R),fromWireType:function(W){var J=Tn.toValue(W);return En(W),J},toWireType:function(W,J){return Tn.toHandle(J)},argPackAdvance:8,readValueFromPointer:Es,destructorFunction:null})},k:function(N,R,W){var J=ne(W);Y(N,{name:R=yt(R),fromWireType:function(he){return he},toWireType:function(he,_e){return _e},argPackAdvance:8,readValueFromPointer:wh(R,J),destructorFunction:null})},b:function(N,R,W,J,he){R=yt(R),he===-1&&(he=4294967295);var _e=ne(W),ye=Ee=>Ee;if(J===0){var ve=32-8*W;ye=Ee=>Ee<<ve>>>ve}var Ce=R.includes("unsigned");Y(N,{name:R,fromWireType:ye,toWireType:Ce?function(Ee,Fe){return this.name,Fe>>>0}:function(Ee,Fe){return this.name,Fe},argPackAdvance:8,readValueFromPointer:Nh(R,_e,J!==0),destructorFunction:null})},a:function(N,R,W){var J=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][R];function he(_e){var ye=H,ve=ye[_e>>=2],Ce=ye[_e+1];return new J(ye.buffer,Ce,ve)}Y(N,{name:W=yt(W),fromWireType:he,argPackAdvance:8,readValueFromPointer:he},{ignoreDuplicateRegistrations:!0})},j:function(N,R){var W=(R=yt(R))==="std::string";Y(N,{name:R,fromWireType:function(J){var he,_e=H[J>>2],ye=J+4;if(W)for(var ve=ye,Ce=0;Ce<=_e;++Ce){var Ee=ye+Ce;if(Ce==_e||y[Ee]==0){var Fe=Dh(ve,Ee-ve);he===void 0?he=Fe:(he+="\0",he+=Fe),ve=Ee+1}}else{var ct=new Array(_e);for(Ce=0;Ce<_e;++Ce)ct[Ce]=String.fromCharCode(y[ye+Ce]);he=ct.join("")}return pi(J),he},toWireType:function(J,he){var _e;he instanceof ArrayBuffer&&(he=new Uint8Array(he));var ye=typeof he=="string";ye||he instanceof Uint8Array||he instanceof Uint8ClampedArray||he instanceof Int8Array||we("Cannot pass non-string to std::string"),_e=W&&ye?(ct=>{for(var ot=0,je=0;je<ct.length;++je){var dt=ct.charCodeAt(je);dt<=127?ot++:dt<=2047?ot+=2:dt>=55296&&dt<=57343?(ot+=4,++je):ot+=3}return ot})(he):he.length;var ve=Po(4+_e+1),Ce=ve+4;if(H[ve>>2]=_e,W&&ye)((ct,ot,je,dt)=>{if(!(dt>0))return 0;for(var Ht=je,Dt=je+dt-1,Kt=0;Kt<ct.length;++Kt){var Ot=ct.charCodeAt(Kt);if(Ot>=55296&&Ot<=57343&&(Ot=65536+((1023&Ot)<<10)|1023&ct.charCodeAt(++Kt)),Ot<=127){if(je>=Dt)break;ot[je++]=Ot}else if(Ot<=2047){if(je+1>=Dt)break;ot[je++]=192|Ot>>6,ot[je++]=128|63&Ot}else if(Ot<=65535){if(je+2>=Dt)break;ot[je++]=224|Ot>>12,ot[je++]=128|Ot>>6&63,ot[je++]=128|63&Ot}else{if(je+3>=Dt)break;ot[je++]=240|Ot>>18,ot[je++]=128|Ot>>12&63,ot[je++]=128|Ot>>6&63,ot[je++]=128|63&Ot}}ot[je]=0})(he,y,Ce,_e+1);else if(ye)for(var Ee=0;Ee<_e;++Ee){var Fe=he.charCodeAt(Ee);Fe>255&&(pi(Ce),we("String has UTF-16 code units that do not fit in 8 bits")),y[Ce+Ee]=Fe}else for(Ee=0;Ee<_e;++Ee)y[Ce+Ee]=he[Ee];return J!==null&&J.push(pi,ve),ve},argPackAdvance:8,readValueFromPointer:Es,destructorFunction:function(J){pi(J)}})},g:function(N,R,W){var J,he,_e,ye,ve;W=yt(W),R===2?(J=Oh,he=mi,ye=yn,_e=()=>M,ve=1):R===4&&(J=Rd,he=Mh,ye=ko,_e=()=>H,ve=2),Y(N,{name:W,fromWireType:function(Ce){for(var Ee,Fe=H[Ce>>2],ct=_e(),ot=Ce+4,je=0;je<=Fe;++je){var dt=Ce+4+je*R;if(je==Fe||ct[dt>>ve]==0){var Ht=J(ot,dt-ot);Ee===void 0?Ee=Ht:(Ee+="\0",Ee+=Ht),ot=dt+R}}return pi(Ce),Ee},toWireType:function(Ce,Ee){typeof Ee!="string"&&we(`Cannot pass non-string to C++ string type ${W}`);var Fe=ye(Ee),ct=Po(4+Fe+R);return H[ct>>2]=Fe>>ve,he(Ee,ct+4,Fe+R),Ce!==null&&Ce.push(pi,ct),ct},argPackAdvance:8,readValueFromPointer:Es,destructorFunction:function(Ce){pi(Ce)}})},n:function(N,R){Y(N,{isVoid:!0,name:R=yt(R),argPackAdvance:0,fromWireType:function(){},toWireType:function(W,J){}})},e:function(N,R,W,J){var he,_e;(N=Sn[N])(R=Tn.toValue(R),W=(_e=Cd[he=W])===void 0?yt(he):_e,null,J)},l:En,h:function(N,R){var W=function(Ht,Dt){for(var Kt,Ot,_r,Uo=new Array(Ht),hr=0;hr<Ht;++hr)Uo[hr]=(Kt=H[Dt+4*hr>>2],Ot="parameter "+hr,_r=void 0,(_r=at[Kt])===void 0&&we(Ot+" has unknown type "+Td(Kt)),_r);return Uo}(N,R),J=W[0],he=J.name+"_$"+W.slice(1).map(function(Ht){return Ht.name}).join("_")+"$",_e=In[he];if(_e!==void 0)return _e;for(var ye=["retType"],ve=[J],Ce="",Ee=0;Ee<N-1;++Ee)Ce+=(Ee!==0?", ":"")+"arg"+Ee,ye.push("argType"+Ee),ve.push(W[1+Ee]);var Fe="return function "+ei("methodCaller_"+he)+`(handle, name, destructors, args) {
88
- `,ct=0;for(Ee=0;Ee<N-1;++Ee)Fe+=" var arg"+Ee+" = argType"+Ee+".readValueFromPointer(args"+(ct?"+"+ct:"")+`);
89
- `,ct+=W[Ee+1].argPackAdvance;for(Fe+=" var rv = handle[name]("+Ce+`);
90
- `,Ee=0;Ee<N-1;++Ee)W[Ee+1].deleteObject&&(Fe+=" argType"+Ee+".deleteObject(arg"+Ee+`);
91
- `);J.isVoid||(Fe+=` return retType.toWireType(destructors, rv);
92
- `),Fe+=`};
93
- `,ye.push(Fe);var ot,je,dt=Sd(Function,ye).apply(null,ve);return ot=dt,je=Sn.length,Sn.push(ot),_e=je,In[he]=_e,_e},f:()=>{ge("")},c:Ra,t:(N,R,W)=>y.copyWithin(N,R,R+W),s:N=>{y.length,ge("OOM")},i:(N,R,W,J)=>{for(var he,_e,ye,ve=0,Ce=0;Ce<W;Ce++){var Ee=H[R>>2],Fe=H[R+4>>2];R+=8;for(var ct=0;ct<Fe;ct++)he=N,_e=y[Ee+ct],ye=void 0,ye=Nd[he],_e===0||_e===10?((he===1?l:f)(bs(ye,0)),ye.length=0):ye.push(_e);ve+=Fe}return H[J>>2]=ve,0}},pi=(function(){var N,R,W,J,he={a:Dd};function _e(ye,ve){var Ce,Ee,Fe=ye.exports;return g=(T=Fe).v,Ce=g.buffer,o.HEAP8=E=new Int8Array(Ce),o.HEAP16=v=new Int16Array(Ce),o.HEAP32=w=new Int32Array(Ce),o.HEAPU8=y=new Uint8Array(Ce),o.HEAPU16=M=new Uint16Array(Ce),o.HEAPU32=H=new Uint32Array(Ce),o.HEAPF32=B=new Float32Array(Ce),o.HEAPF64=P=new Float64Array(Ce),$=T.z,Ee=T.w,L.unshift(Ee),function(){if(A--,o.monitorRunDependencies&&o.monitorRunDependencies(A),A==0&&(le!==null&&(clearInterval(le),le=null),He)){var ct=He;He=null,ct()}}(),Fe}if(A++,o.monitorRunDependencies&&o.monitorRunDependencies(A),o.instantiateWasm)try{return o.instantiateWasm(he,_e)}catch(ye){f("Module.instantiateWasm callback failed with error: "+ye),r(ye)}(N=m,R=ze,W=he,J=function(ye){_e(ye.instance)},N||typeof WebAssembly.instantiateStreaming!="function"||re(R)||typeof fetch!="function"?q(R,W,J):fetch(R,{credentials:"same-origin"}).then(ye=>WebAssembly.instantiateStreaming(ye,W).then(J,function(ve){return f("wasm streaming compile failed: "+ve),f("falling back to ArrayBuffer instantiation"),q(R,W,J)}))).catch(r)}(),N=>(pi=T.x)(N)),Po=N=>(Po=T.y)(N),bn=N=>(bn=T.A)(N),Od=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=T.B)(),N=>(Od=T.C)(N));o.dynCall_jiji=(N,R,W,J,he)=>(o.dynCall_jiji=T.D)(N,R,W,J,he);function Md(){function N(){Cr||(Cr=!0,o.calledRun=!0,de||(Be(L),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)R=o.postRun.shift(),te.unshift(R);var R;Be(te)}()))}A>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)R=o.preRun.shift(),Ae.unshift(R);var R;Be(Ae)}(),A>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),N()},1)):N()))}if(He=function N(){Cr||Md(),Cr||(He=N)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Md(),t.ready}})();var dT=(i=>(i.ROOM_DESTROY="1",i.JOIN_START="21",i.JOIN_SCHEDULE_SUCCESS="22",i.JOIN_SIGNAL_CONNECTION_START="23",i.JOIN_SIGNAL_CONNECTION_END="24",i.JOIN_SEND_CMD="25",i.JOIN_RECEIVED_CMD_RES="26",i.JOIN_SUCCESS="27",i.JOIN_FAILED="28",i.LEAVE_START="51",i.LEAVE_SEND_CMD="52",i.LEAVE_SUCCESS="53",i.PUBLISH_START="61",i.SEND_FIRST_VIDEO_FRAME="62",i.PUBLISH_FAILED="63",i.SUBSCRIBE_START="81",i.SUBSCRIBE_SUCCESS="82",i.SUBSCRIBE_FAILED="84",i.UNSUBSCRIBE_SUCCESS="83",i.LOCAL_TRACK_CAPTURE_START="101",i.LOCAL_TRACK_CAPTURE_SUCCESS="102",i.LOCAL_TRACK_CAPTURE_FAILED="103",i.LOCAL_TRACK_PUBLISHED="104",i.LOCAL_TRACK_UNPUBLISHED="105",i.LOCAL_TRACK_REPLACED="106",i.SWITCH_DEVICE_SUCCESS="107",i.TRACK_MUTED="108",i.TRACK_UNMUTED="109",i.REMOTE_TRACK_SUBSCRIBED="110",i.REMOTE_TRACK_UNSUBSCRIBED="111",i.LOCAL_TRACK_RECAPTURE="112",i.LOCAL_AUDIO_STARTED="113",i.LOCAL_AUDIO_STOPPED="114",i.REMOTE_AUDIO_STARTED="115",i.REMOTE_AUDIO_STOPPED="116",i.PLAY_TRACK_START="151",i.PLAYER_STATE_CHANGED="152",i.VIDEO_LOADED_DATA="153",i.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",i.AUDIO_CONTEXT_LONG_SUSPENDED="155",i.REMOTE_VIDEO_PLAY_START="156",i.REMOTE_VIDEO_PLAY_FINISH="157",i.SIGNAL_CONNECTION_STATE_CHANGED="201",i.PEER_CONNECTION_STATE_CHANGED="202",i.SINGLE_CONNECTION_STAT="203",i.SPC_RECONNECTED="204",i.HEARTBEAT_REPORT="251",i.RECEIVED_PUBLISHED_USER_LIST="252",i.REMOTE_PUBLISH_STATE_CHANGED="253",i.AUDIO_LEVEL_INTERVAL="260",i.NETWORK_QUALITY="261",i.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",i.QUALITY_LIMITATION_CHANGED="263",i.LOG="264",i.AUDIO_PROCESSOR_DEBUG="265",i.SSO_SWITCH="266",i.SWITCH_ROOM_START="401",i.SWITCH_ROOM_SUCCESS="407",i.SWITCH_ROOM_FAILED="408",i))(dT||{}),mv="5.0.0",pv=typeof importScripts!="undefined",fv=typeof registerProcessor!="undefined",gv="",_v="web.sdk.qcloud.com",Ev=`https://${_v}/trtc/webrtc/doc`,R2=`${Ev}/zh-cn/`,Tv="https://yun.tim.qq.com",yv="https://apisgp.my-imcloud.com",Sv={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},cn=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(cn||{});var uT={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},C2=uT["480p_2"],w2=uT["120p_2"],Ol={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},N2=Ol.MAIN,D2=Ol.AUXILIARY,O2=Ol.BIG,M2=Ol.SMALL;var x2=Object.keys(cn);var Iv=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(d){try{c(r.next(d))}catch(m){s(m)}}function a(d){try{c(r.throw(d))}catch(m){s(m)}}function c(d){var m;d.done?o(d.value):(m=d.value,m instanceof e?m:new e(function(l){l(m)})).then(n,a)}c((r=r.apply(i,t||[])).next())})},Sf=Symbol(32),If=Symbol(16),bf=Symbol(8),ga=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return Iv(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read(Sf)}readU16(){return this.read(If)}readU8(){return this.read(bf)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===Sf){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===If){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===bf){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};ga.U32=Sf,ga.U16=If,ga.U8=bf;var bv=128,Av=127,k2=~Av,L2=Math.pow(2,31);function ff(i){let t=new ga;for(;i>=128;)t.malloc(1)[0]=255&i|bv,i>>>=7;return t.malloc(1)[0]=255&i,t.buffer||new Uint8Array(0)}function Af(i,t=0){let e=new ga,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(ff(i));break;case"string":e.malloc(1)[0]=2|r;let s=new TextEncoder().encode(i);e.write(ff(s.length));let n=e.malloc(s.length);for(let c=0;c<s.length;c++)n[c]=s[c];break;case"object":let a=new ga;if(Array.isArray(i))for(let c=0;c<i.length;c++){let d=Af(i[c],c+1);d&&a.write(d)}else{let c=1;for(let d in i){let m=Af(i[d],c++);m&&a.write(m)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=2|r,a.buffer&&(e.write(ff(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var XE=class{constructor(){xt(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(i){this.buffer.push(i>>>24&255),this.buffer.push(i>>>16&255),this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeInt16(i){this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeByte(i){this.buffer.push(255&i)}writeBytes(i){for(let t=0;t<i.length;t++)this.buffer.push(i[t])}};function JE(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=255&t}function jr(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function QE(i,t){return i[t]}function Bc(i,t,e){return new TextDecoder().decode(vv(i,t,e))}function vv(i,t,e){return i.slice(t,t+e)}var gf=0,vf=2654435769,Rf=16,YE=4,jc=2,qc=7;function Rv(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function Cv(i,t){let e=new XE,r=Rv(t,i,gf);gf=gf+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new XE;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(255&r.reqHead.appId);for(let M=4;M<16;M++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let c=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(c.length+4),c.length&&n.writeBytes(c);let d=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let m=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let l=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let f=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(f.length+2),f.length&&n.writeBytes(f);let g=n.length;n.data[0]=g>>>24&255,n.data[1]=g>>>16&255,n.data[2]=g>>>8&255,n.data[3]=255&g,Cf(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let T=new Uint8Array(n.data),E=null;r.encryption===1?E=new TextEncoder().encode(r.uin):r.encryption===2&&(E=new Uint8Array(16)),E&&(T=wv(T,E)),e.writeBytes(T);let y=new Uint8Array(e.data),v=y.length;return y[0]=v>>>24&255,y[1]=v>>>16&255,y[2]=v>>>8&255,y[3]=255&v,y}function wv(i,t){let e=i.length,r=(e+1+jc+qc)%8;r&&(r=8-r);let o=new Uint8Array(e+1+jc+qc+r),s=0,n=new Uint8Array(8),a=new Uint8Array(8),c=new Uint8Array(8),d=0;n[0]=248&Math.floor(256*Math.random())|r,d=1;for(let l=0;l<r;l++)n[d]=255&Math.floor(256*Math.random()),d+=1;for(let l=0;l<jc;)if(d<8&&(n[d]=255&Math.floor(256*Math.random()),d+=1,l+=1),d===8){_f(n,t,a,c,o,s),s+=8,d=0;for(let f=0;f<8;f++)c[f]=o[s-8+f]}let m=0;for(;m<e;)if(d<8&&(n[d]=i[m],d+=1,m+=1),d===8){_f(n,t,a,c,o,s),s+=8,d=0;for(let l=0;l<8;l++)c[l]=o[s-8+l]}for(let l=0;l<qc;)if(d<8&&(n[d]=0,d+=1,l+=1),d===8){_f(n,t,a,c,o,s),s+=8,d=0;for(let f=0;f<8;f++)c[f]=o[s-8+f]}return o}function _f(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];Nv(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function Nv(i,t,e,r){let o=jr(i,0),s=jr(i,4),n=[];for(let c=0;c<4;c++)n[c]=jr(t,4*c);let a=0;for(let c=0;c<Rf;c++)a+=vf,a>>>=0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o>>>=0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s>>>=0;JE(e,o,r),JE(e,s,r+4)}var Dv=0,lT=function(){return Date.now()+Dv},Ov=function(){let i=new Date;return i.setTime(lT()),i.toLocaleString()},Mv=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};function xv(i){let t=kv(i);return t==null?void 0:t.busiBuff}function kv(i){try{let t={},e=0;t.totalLength=jr(i,e),e+=4,t.version=jr(i,e),e+=4,t.encryption=QE(i,e),e+=1,t.uinType=QE(i,e),e+=1,t.uinLength=jr(i,e),e+=4,t.uin=t.uinLength>4?Bc(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=Lv(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=jr(i,e),e+=4,t.seqNo=jr(i,e),e+=4,t.retCode=jr(i,e),e+=4,t.retStrLength=jr(i,e),e+=4,t.retStr=t.retStrLength?Bc(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=jr(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Bc(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=jr(i,e),e+=4,t.cookie=t.cookieLength?Bc(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=jr(i,e),e+=4,t.busiBuffLength=jr(i,e),e+=4,t.busiBuff=t.busiBuffLength?Bc(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function hT(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e>>>=0,r>>>=0;let o=vf*Rf>>>0;for(let s=0;s<Rf;s++)r-=(e<<YE)+t[2]^e+o^(e>>>5)+t[3],r>>>=0,e-=(r<<YE)+t[0]^r+o^(r>>>5)+t[1],e>>>=0,o-=vf,o>>>=0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function Lv(i,t){let e=0,r=new Uint8Array(8).fill(0),o=hT(new Uint8Array(i.slice(0,8)),t),s=7&o[0],n=i.length-1-s-jc-qc,a=new Uint8Array(n),c=0,d=r,m=i.slice(0,8);e=8;let l=1;l+=s;for(let g=1;g<=jc;)if(l<8)l++,g++;else if(l===8){let T=Ef(i,e,d,m,o,t);d=T.ivPreCrypt,m=T.ivCurCrypt,o=T.debiBuf,e=T.bufPos,l=0}let f=n;for(;f>0;)if(l<8)a[c++]=o[l]^d[l],l++,f--;else if(l===8){let g=Ef(i,e,d,m,o,t);d=g.ivPreCrypt,m=g.ivCurCrypt,o=g.debiBuf,e=g.bufPos,l=0}for(let g=1;g<=qc;)if(l<8)o[l],d[l],l++,g++;else if(l===8){if(e>=i.length)break;let T=Ef(i,e,d,m,o,t);if(!T.success)break;d=T.ivPreCrypt,m=T.ivCurCrypt,o=T.debiBuf,e=T.bufPos,l=0}return a}function Ef(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),c=new Uint8Array(8);for(let d=0;d<8;d++)c[d]=o[d]^a[d];return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:hT(c,s),bufPos:t+8}}var ZE=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Pv({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(c=>c.clone().json().then(d=>({data:d}),()=>c.arrayBuffer().then(d=>({data:xv(new Uint8Array(d))||(ZE?ZE.decode(d):d)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let c=JSON.parse(a.response);s({data:c})}catch(c){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}var Uv=Object.prototype.hasOwnProperty,$c=i=>typeof i=="function",pa=i=>i===void 0,Vv=i=>typeof i=="boolean",Bv=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function $v(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Bv(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":for(let t in i)if(Uv.call(i,t))return!1;return!0}return!1}var Fv=0,Hv=1,KE=2;function Wv({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:c=5,timeout:d=1e3}=t,m=0,l=-1,f=Fv,g=(T,E)=>D(this,null,function*(){let y=n||this;try{let v=yield i.apply(y,a);m>0&&s&&s.call(this,m),m=0,T(v)}catch(v){let M=()=>{clearTimeout(l),m=0,f=KE,E(v)},w=()=>{f!==KE&&m<($c(c)?c():c)?(m++,f=Hv,$c(r)&&r.call(this,m,M),l=window.setTimeout(()=>{l=-1,g(T,E)},$c(d)?d(m):d)):(M(),$c(o)&&o.call(this,v))};$c(e)?e.call(this,{error:v,retry:w,reject:E,retryFuncArgs:a,retriedCount:m}):w()}});return new Promise(g)}}var Gv=Wv,Tf=class mT{constructor(t){xt(this,"_parentPath"),xt(this,"userId"),xt(this,"remoteUserId"),xt(this,"id"),xt(this,"sdkAppId"),xt(this,"type"),xt(this,"isLocal"),this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=!Vv(t.isLocal)||t.isLocal,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new mT({id:t.id,userId:pa(t.userId)?this.userId:t.userId,sdkAppId:pa(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:pa(t.type)?this.type:t.type,isLocal:pa(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:pa(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),vR.log(t,e,pa(this.userId)||$v(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}},Xi=typeof navigator=="undefined"?"":navigator.userAgent,tt=i=>new RegExp(i,"i").test(Xi),sr=i=>{if(tt(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=Xi.match(t);if(e&&e[1])return e[1]}return""},Ml=i=>{if(tt(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=Xi.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},eT=/AppleWebKit\/([\d.]+)/i.exec(Xi),zv=eT?parseFloat(eT[1]):NaN,pT=tt("iPad"),fT=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&tt("Macintosh"),gT=tt("iPhone")&&!pT,jv=tt("iPod"),Nf=gT||pT||jv||fT,Xc=tt("Android"),_T=function(){if(Xc){let i=Xi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),P2=Xc&&tt("webkit")&&_T<2.3,U2=Xc&&_T<5&&zv<537,qv=tt("Firefox"),Xv=sr("Firefox"),V2=Ml("Firefox"),ET=tt("Edge"),Jv=sr("Edge"),TT=tt("Edg"),Qv=sr("Edg"),B2=Ml("Edg"),yT=tt("SogouMobileBrowser"),Yv=sr("SogouMobileBrowser"),ST=tt("MetaSr\\s"),Zv=sr("MetaSr\\s"),dn=tt("TBS"),Kv=sr("TBS"),IT=tt("XWEB"),eR=sr("XWEB"),$2=tt("MSIE\\s8\\.0"),tR=tt("MSIE\\/\\d+"),F2=function(){if(tR){let i=/MSIE\s(\d+)\.\d/.exec(Xi),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(Xi)&&/rv:11.0/.test(Xi)&&(t=11),t}return NaN}(),rR=tt("(micromessenger|webbrowser)"),iR=sr("MicroMessenger"),Df=!dn&&tt("MQQBrowser")&&tt("COVC"),Of=!dn&&tt("MQQBrowser")&&!tt("COVC"),tT=Of||Df?sr("MQQBrowser"):"",bT=!dn&&tt(" QQBrowser"),oR=sr(" QQBrowser"),AT=!dn&&tt("QQBrowserLite"),sR=sr("QQBrowserLite"),vT=!dn&&tt("MQBHD"),nR=sr("MQBHD"),H2=tt("Windows"),W2=!Nf&&tt("MAC OS X"),G2=!Xc&&tt("Linux"),z2=tt("CrOS"),j2=tt("MicroMessenger"),q2=tt("UCBrowser"),X2=tt("Electron"),RT=tt("MiuiBrowser"),aR=sr("MiuiBrowser"),CT=tt("HuaweiBrowser"),J2=tt("Huawei")||tt("HUAWEI"),Q2=tt("Honor")||tt("HONOR"),cR=sr("HuaweiBrowser"),wT=tt("SamsungBrowser"),dR=sr("SamsungBrowser"),NT=tt("HeyTapBrowser"),uR=sr("HeyTapBrowser"),DT=tt("VivoBrowser"),lR=sr("VivoBrowser"),Y2=tt("OpenHarmony"),Z2=sr("OpenHarmony"),hR=()=>Ml("Chrome"),rT=tt("CriOS"),OT=tt("Chrome"),mR=!ET&&!ST&&!yT&&!dn&&!IT&&!TT&&!bT&&!RT&&!CT&&!wT&&!NT&&!DT&&OT,pR=tt("HeadlessChrome"),K2=hR(),fR=sr("Chrome"),e1=Ml("Electron"),gR=!OT&&!Of&&!Df&&!AT&&!vT&&tt("Safari"),MT=sr("Version"),t1=/Android.*(wv|.0.0.0)/.test(Xi),xT=(()=>{if(fT)return MT;if(Nf){let i=Xi.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),r1=Number(xT.split(".")[0]),i1=(()=>{let i=Number(xT.split(".")[0]);return i===14||i===13})(),o1=typeof location!="undefined"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),s1=_R();function _R(){let i=new Map([[qv,["Firefox",Xv]],[TT,["Edg",Qv]],[mR,["Chrome",fR]],[rT,["ChiOS",sr("CriOS")]],[gR&&!rT,["Safari",MT]],[dn,["TBS",Kv]],[IT,["XWEB",eR]],[rR&&gT,["WeChat",iR]],[bT,["QQ(Win)",oR]],[Of,["QQ(Mobile)",tT]],[Df,["QQ(Mobile X5)",tT]],[AT,["QQ(Mac)",sR]],[vT,["QQ(iPad)",nR]],[RT,["MI",aR]],[CT,["HW",cR]],[wT,["Samsung",dR]],[NT,["OPPO",uR]],[DT,["VIVO",lR]],[ET,["EDGE",Jv]],[yT,["SogouMobile",Yv]],[ST,["Sogou",Zv]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var ER=aT(cT(),1),TR=new ER.default,ss=TR,Cl=dT,yR=class{constructor(){xt(this,"enable",!1),xt(this,"ssoFailCount",0),ss.on("22",({schedule:i})=>{var t;(t=i==null?void 0:i.config)!=null&&t.sso&&ss.emit("266",{enable:!0})}),ss.on("266",({enable:i})=>{this.enable=i})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&ss.emit("266",{enable:!1})}},iT=new yR,SR="%cTRTC%c%s",IR="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",bR="display: inline",kT=class LT{constructor(){xt(this,"_isEnableUploadLog",!0),xt(this,"_localJoinedUser",new Map),xt(this,"_queue",[]),xt(this,"_timeoutId",-1),xt(this,"_logLevel",1),xt(this,"_logLevelToUpload",2),pv||fv||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){ss.on(Cl.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&cn[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),ss.on(Cl.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),ss.on(Cl.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Cf(r.userId)&&wR(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return D(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:c}=o[s],d={timestamp:Ov(),sdkAppId:String(a),userId:n,version:mv,log:c.map(f=>f.log).join(`
94
- `)},m=JSON.stringify(d),l=iT.enable?OR(d,2002,a):m;yield this.uploadLogWithRetry(l,a,l instanceof Uint8Array,m),c.forEach(f=>f.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Gv({retryFunction:()=>Pv({url:CR(e,Sv.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(iT.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(lT()),`[${Mv(e)}] <${cn[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){PT(cn[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Cf(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,c)=>`${a} ${this.logChunkToString(c)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};ss.emit(Cl.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var n;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let a=((n=cn[t])==null?void 0:n.toLowerCase())||"info";LT.PRINT_LOG_TAG?console[a](SR,IR,bR,...e):console[a](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof Tf){let e=t,{parent:r}=e,o=rv(e,["parent"]),s=new Tf(o);return s.bindParent(r),s}return new Tf(t)}checkURLParam(){let t=new URLSearchParams(location.search).get("logLevelToUpload"),e=t?Number(t):-1;cn[e]&&(this._logLevelToUpload=e)}getQueue(){return this._queue}};xt(kT,"PRINT_LOG_TAG",!(Nf||Xc||pR));var AR=kT,vR=new AR,RR=i=>Number(i)<14e8,CR=function(i,t){let e;return e=gv||(RR(i)?yv:Tv),`${e}/v5/AVQualityReportSvc/C2S?random=${Math.floor(Math.random()*ki(2,31))}&sdkappid=${i}&cmdtype=${t}`},n1=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},PT=i=>i===void 0,Cf=i=>typeof i=="string",wR=i=>typeof i=="number",a1=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function NR(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:c1}=Object.prototype;function DR(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return PT(r)||(o=Wc(Hc({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function OR(i,t,e,r){try{let o=DR(i,t,e,r);return Cv(Af(o),e)}catch(o){return JSON.stringify(i)}}var UT=class VT{constructor(t){this.core=t,xt(this,"contextMap",new Map),xt(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return VT.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){var r;switch(t){case"wasm":let s=((r=this.core.assetsPath)==null?void 0:r.replace(/\/+$/,""))||".";return new hv(Wc(Hc({},e),{wasmPath:`${s}/videodec.wasm`}));case"webCodecs":return new fa;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let a=this.core.room.videoManager.createDecodeContext(Wc(Hc({},t),{createDecoder:this.createDecoder}));return e(a.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,a),a.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=NR()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t),n=`report health data: ${t.track.userId} ${t.track.streamType} ${t.type}+${t.renderer} goodType\uFF1A${t.goodType} ${t.failedReason?`failedReason: ${t.failedReason}`:""}`;r&&(this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),n+=` RENDER_FREEZE_RATE: ${Math.floor(o/r*100)}%`),r&&(this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),n+=` DATA_FREEZE_RATE: ${Math.floor(s/r*100)}%`),t.inputFrameCount&&(this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100}),n+=` VIDEO_CONSUME_RENDER_RATE: ${Math.floor(t.decodedFrameCount/t.inputFrameCount*100)}%`),this.core.log.info(n)}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(Wc(Hc({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getRenderFreezeDuration(`${t.userId}_${t.streamType}`),s=0;return r&&r.durationItemList.forEach(n=>{n.startTime>e.startPerformanceTime&&(s+=n.getDuration())}),{renderFreezeTotal:o,dataFreezeTotal:s}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};xt(UT,"Name","TRTCVideoDecoder");var Mf=UT;var Dy=Li(mo());function xf({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return ut((r,o)=>{let s=new WeakMap;return ee.on(ce.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let a=s.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,a)),a.timestamp===0?a.timestamp=Date.now():Date.now()-a.timestamp>1e3&&(a.timestamp=Date.now(),a.callCountInSecond=0,a.totalSizeInSecond=0),e&&(a.totalSizeInSecond+=e(...n)),a.timestamp!==0&&Date.now()-a.timestamp<1e3&&(a.callCountInSecond>=i||a.totalSizeInSecond>t))throw new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=i,isSize:a.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});a.callCountInSecond++,r.call(this,...n)}})}var MR="2025-12-04 16:34:28",BT=!0,$T=function(){var i;if(BT){BT=!1,se.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Br}/en/index.html`),console.info(`* Changelog: ${Br}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),se.info("TRTC Web SDK Version:",qt),bi||se.debug("Build Time:",MR);let t=`UA: ${navigator.userAgent}
95
- CPU core: ${navigator.hardwareConcurrency}, GPU: ${ym()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),se.info(t),se.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Us().then(r=>{r&&se.info(yi)})}};var un={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var ke={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},Kr=(G=>(G[G.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",G[G.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",G[G.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",G[G.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",G[G.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",G[G.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",G[G.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",G[G.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",G[G.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",G[G.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",G[G.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",G[G.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",G[G.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",G[G.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",G[G.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",G[G.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",G[G.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",G[G.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",G[G.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",G[G.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",G[G.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",G[G.INVALID_OPERATION=5100]="INVALID_OPERATION",G[G.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",G[G.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",G[G.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",G[G.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",G[G.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",G[G.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",G[G.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",G[G.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",G[G.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",G[G.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",G[G.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",G[G.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",G[G.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",G[G.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",G[G.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",G[G.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",G[G.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",G[G.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",G[G.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",G[G.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",G[G.DEVICE_ERROR=5300]="DEVICE_ERROR",G[G.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",G[G.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",G[G.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",G[G.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",G[G.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",G[G.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",G[G.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",G[G.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",G[G.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",G[G.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",G[G.SERVER_ERROR=5400]="SERVER_ERROR",G[G.NEED_TO_BUY=5401]="NEED_TO_BUY",G[G.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",G[G.OPERATION_FAILED=5500]="OPERATION_FAILED",G[G.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",G[G.REJOIN_FAILED=5502]="REJOIN_FAILED",G[G.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",G[G.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",G[G.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",G[G.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",G[G.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",G[G.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",G[G.OPERATION_ABORT=5998]="OPERATION_ABORT",G[G.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",G))(Kr||{});function HT({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Kr[i];try{o=FT[s]}catch(n){o=FT.UNKNOWN_ERROR}return Rt(o)?r=o(t):nt(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var FT=qe(be({},Wr),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${Xt(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${Xt(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone or screen share is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=ln(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=ln(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=ln(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=ln(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=ln(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=ln(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=ln(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function ln(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var kf=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:c}){var m;let d;o?d=o:d=HT({code:e===ke.SERVER_ERROR?e:r||e,params:be({fnName:n,error:a},s)});super(d);p(this,"name","RtcError");p(this,"code");p(this,"extraCode");p(this,"functionName");p(this,"message");p(this,"data");p(this,"handler");p(this,"originError");this.name=Kr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=d,this.data=c,this.extraCode===5302&&((m=this.originError)!=null&&m.message.includes("system"))&&(this.handler=()=>{let l={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},f={startLocalVideo:"webcam",startLocalAudio:"microphone"},g=document.createElement("a");Ps?g.href=`ms-settings:privacy-${f[this.functionName]}`:Ii&&(g.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${l[this.functionName]}`),g.href.length>0&&g.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof Me){let{stack:n}=e,a={code:ke.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case Te.INVALID_PARAMETER:a.code=ke.INVALID_PARAMETER,a.message=e.message;break;case Te.INVALID_OPERATION:a.code=ke.INVALID_OPERATION;break;case Te.NOT_SUPPORTED:case Te.NOT_SUPPORTED_H264:a.code=ke.ENV_NOT_SUPPORTED,e.getCode()===Te.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(Wr.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Te.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case Te.SERVER_TIMEOUT:case Te.SWITCH_ROLE_FAILED:case Te.SWITCH_ROOM_FAILED:a.code=ke.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case Te.API_CALL_ABORTED:a.code=ke.OPERATION_ABORT;break;case Te.DEVICE_NOT_FOUND:case Te.DEVICE_AUTO_RECOVER_FAILED:case Te.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=xR(e.name));break;case Te.VIDEO_ENCODE_FAILED:a.extraCode=5505;case Te.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=ke.OPERATION_FAILED;break;case Te.UNKNOWN:break;default:a.code=ke.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
96
- `)))}else{if(e instanceof i)return e;s=new i({code:ke.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function xR(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var Oe=kf;function Ji(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Jc(i){return i===un.QOS_PREFERENCE_CLEAR?"detail":i===un.QOS_PREFERENCE_SMOOTH?"motion":""}function _a(i,t){let e=t?Fh:La;return am(i)?be(be({},e),i):gi[i]?gi[i]:e}var WT={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},GT={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},Ea={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(nt(i)&&!document.getElementById(i))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},zT={name:"userId",required:!0,type:"string"},jT={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Ta(i,t){if(!i)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5101,fnName:t})}function qT(i,t,e){if(!i)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function XT(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function JT(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var kV={type:"number",notLessThanZero:!0},kR=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function QT(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!Bu()){se.warn("small stream is not supported"),delete i.option.small;return}let t=_a(i.option.profile),e=_a(i.option.small,!0);if(!kR(t,e)){se.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var LR={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(nt(i.roomId))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});XT(i.roomId,e,t)}else if(i.strRoomId)JT(i.strRoomId,e,t);else throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:Ea,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:WT},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Eo())throw new Oe({code:ke.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&QT(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:qe(be({},Ea),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:WT},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&QT(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:jT},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Eo())throw new Oe({code:ke.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:jT}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Ea,publish:{type:"boolean"},option:GT},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Eo())throw new Oe({code:ke.ENV_NOT_SUPPORTED,extraCode:5201});if(!mc())throw new Oe({code:ke.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Ea,publish:{type:"boolean"},option:GT}},muteRemoteAudio:[zT,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[zT,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Ea,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ta(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(qT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new Oe({code:ke.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:qe(be({},Ea),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ta(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(qT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new Oe({code:ke.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&z(i.streamType))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Ta(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!fc)throw new Oe({code:ke.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new Oe({code:ke.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Ta(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Ta(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new Oe({code:ke.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(Ta(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)XT(i.roomId,e,t);else if(i.strRoomId)JT(i.strRoomId,e,t);else throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},ur={TRTC:LR};var Or=class extends Error{};function PR(i,t){let e=Ns(i);for(let r=0;r<t.length;r++)Ei(e[r],t[r]);return e}function UR(i){this._resolve=Promise.resolve(i)}function VR(i){this._reject=Promise.reject(i)}var ns=class ns{constructor(t,e){this.instance=t;this.group=e;p(this,"started",!1);p(this,"ops",[]);p(this,"startSame",()=>!0);p(this,"mergeUpdate",PR);let r=ns.instances.get(t);r?r.set(e,this):ns.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=ns.instances.get(t);return r&&r.get(e)||new ns(t,e)}static gets(t,e){let r=ns.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var c;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(c=this.currentOp)==null||c.action(),a},s=a=>{var c,d;throw this.ops.shift(),t===0&&((c=this.currentOp)==null?void 0:c.type)===2&&this.ops.shift().reject(new Or("start failed")),(d=this.currentOp)==null||d.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:UR,reject:VR};try{switch(this.state){case 1:if(t===0)throw new Or("already started");break;case 4:if(t===2)throw new Or("not started");break;default:return this.cacheOp(n)}}catch(a){return Promise.reject(a)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Or("already start");break;case 3:switch(t.type){case 2:throw new Or("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Or("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Or("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new Or("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Or("start not allowed after update");case 0:throw new Or("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Or("keep start")),new Or("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};p(ns,"instances",new WeakMap);var vo=ns;var kl=new WeakMap,Ll=(i,t)=>{if(t instanceof Or){let{stack:e}=t;t=new Oe({code:ke.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
97
- `)))}throw t};function as(i,t){return ut((e,r)=>function(...o){let s=vo.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(Ll.bind(null,r))):e.apply(this,o)})}function hn(i,t){let{merge:e,debounce:r}=t||{};return ut((o,s)=>function(...n){let a=vo.get(this,typeof i=="string"?i:i.call(this,...n));if(!a)return o.apply(this,n);if(e&&(a.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,n)){let{delay:c,getKey:d}=r;return new Promise((m,l)=>{var T,E;let f=(T=kl.get(this))==null?void 0:T.get(d(...n));if(f){let{timeoutId:y,resolve:v}=f;clearTimeout(y),v()}let g=setTimeout(()=>{if(a.state===3||a.state===4)return m();a.action(2,o.bind(this),n).catch(Ll.bind(null,s)).then(m,l)},c);kl.has(this)?(E=kl.get(this))==null||E.set(d(...n),{timeoutId:g,resolve:m}):kl.set(this,new Map([[d(...n),{timeoutId:g,resolve:m}]]))})}return a.action(2,o.bind(this),n).catch(Ll.bind(null,s))})}function cs(i){return ut((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(vo.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=vo.get(this,o);return s?s.action(3,t.bind(this),r).catch(Ll.bind(null,e)):t.apply(this,r)})}function ds(){return function(i,t,e){return i.prototype[t]=function(){let r=this._log||console,o=`"${t}" is a static method. Use TRTC.${t}() instead. See: ${Br}/en/TRTC.html#.${t}`;r.warn(o)},e}}var Ne={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed"},YT=new Set([Ne.AUDIO_VOLUME,Ne.AUDIO_FRAME,Ne.NETWORK_QUALITY,Ne.STATISTICS,Ne.SEI_MESSAGE,Ne.CUSTOM_MESSAGE,Ne.LAYER_DATA]);var Uf={};eo(Uf,{ScheduleRequestType:()=>ey,getAbilityConfig:()=>FR,getScheduleDomain:()=>Vl,isNeedToSchedule:()=>Pl,scheduleProxy:()=>Qi,sendScheduleRequest:()=>Pf,setIsNeedToSchedule:()=>Ro,setScheduleProxy:()=>Ul});var Lf=null,KT=0,BR=48*3600*1e3,Pl=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(io).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
98
- `));function Ro(i){Nt(i)&&i!==Pl&&(Pl=i,se.info(`setIsNeedToSchedule ${i}`),i||(KT=Date.now()+BR))}ee.on("28",()=>Ro(!0));ee.on("63",()=>Ro(!0));ee.on("84",()=>Ro(!0));ee.on("201",i=>{i.state==="RECONNECTING"&&Ro(!0)});ee.on("202",i=>{i.state==="RECONNECTING"&&Ro(!0)});function $R(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=us(i,"config",j.MAIN),n=us(i,"config",j.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let c=a.name===s?j.MAIN:j.BACKUP,d=Math.round(a.duration),m=Math.round(a.domainLookupStart-a.startTime),l=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,f=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,g=Math.round(a.domainLookupEnd-a.domainLookupStart),T=Math.round(a.requestStart-a.secureConnectionStart),E=Math.round(a.secureConnectionStart-a.connectStart),y=Math.round(a.responseStart-a.requestStart),v=Math.round(a.responseEnd-a.responseStart),M=[g,T,E,y,v];It.uploadEvent({log:`stat-schedule-net:${d}(${m}(${l}->${f})->${M.join("->")}) ${c}`,userId:t}),r=qe(be({},r),{totalCost:d,local:m,dns:g,tcp:E,tls:T,request:y,response:v});break}}catch(o){se.error("getScheduleDetailCost error",o)}return r}function Pf(d){return D(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:c}){var l;if(!Pl&&Lf&&KT>Date.now())return{isCached:!0,result:Lf};let m={delta:0,count:[1,1],msg:[],detail:[]};try{let f=new FormData;f.append("userId",String(i)),f.append("sdkAppId",String(t)),f.append("isStrGroupId",String(e)),f.append("groupId",String(r)),f.append("sdkVersion",s),f.append("userSig",String(o));let g=((l=yield Us())==null?void 0:l.model)||Iu();g&&f.append("model",g);let T=ho();T&&f.append("osString",T),a&&f.append("role",String(a)),c&&f.append("latencyLevel",String(c)),n&&f.append("frameWorkType",String(n));let E=Xe(),y=yield WR(f,m,t);y.config&&(y.config.loggerDomain&&vs(y.config.loggerDomain),Nt(y.config.scheduleCache)&&Ro(!y.config.scheduleCache)),m.delta=Xe()-E;let v=$R(Number(t),i,E);return Lf=y,{isCached:!1,result:y,detailCost:v}}catch(f){let g=Gt(f)?f[0]:f,T=ft(g.code)?g.code:0,E=`schedule failed${g.message?`: ${g.message}`:""}`,y=new Me({code:Te.SCHEDULE_FAILED,extraCode:T,message:Et({key:_t.JOIN_ROOM_FAILED,data:{error:E,code:T}})});throw se.error(E,T),y}})}var Qi={main:"",backup:""};function Ul(i){Gt(i)?(Qi.main=i[0],Qi.backup=i[1]):Qi.main=i}var ey=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(ey||{});function us(i,t,e=j.MAIN,r=!1){return`https://${Qi[e]||Vl(i,e,r)}/api/v1/${t}`}function FR(i,t,e){let r=us(i,t),o=us(i,t,j.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(c=>c.json()),a=fetch(`${o}?${s}`).then(c=>c.json());return Fa([n,a])}function Vl(i,t=j.MAIN,e=!1){let r;return si(i)?e?r=t===j.MAIN?io.MAIN_OVERSEA_BACKUP:io.BACKUP_OVERSEA:r=t===j.MAIN?io.MAIN_OVERSEA:io.BACKUP_OVERSEA:r=t===j.MAIN?io.MAIN:io.BACKUP,r}function HR(i,t,e){return new Promise((r,o)=>{no({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var ZT=(i,t)=>Ho({retryFunction:HR,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function WR(i,t,e){return new Promise((r,o)=>{let s=null;Fa([ZT(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:c,retryFuncArgs:d})=>{t.msg[0]=n.message,s||(c>=1&&(d[0]=us(e,"config",j.MAIN,!0)),a())})(us(e,"config",j.MAIN),i,{get timeout(){return Ds(2+t.count[0])*1e3}}),ZT(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:c,retryFuncArgs:d})=>{t.msg[1]=n.message,s||(c>=2&&(d[0]=us(e,"config",j.BACKUP,!0)),a())})(us(e,"config",j.BACKUP),i,{get timeout(){return Ds(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var GR=i=>i.startsWith("data:application/octet-stream;base64,"),zR=i=>i.startsWith("file://"),Qc=class{constructor(){p(this,"_log");this._log=se.createLogger({id:"fd"})}download(t,e){return D(this,null,function*(){let{type:r="blob"}=e||{};t=xs(t);try{let o=Xe(),s;if(Rt(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let n=Xe()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${n}ms`),Se.addSuccessEvent({key:522700,cost:Xe()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),Se.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return D(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok){let s=new Error(`network response was not ok: ${r.status}`);throw s.status=r.status,s}let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{if(s.status===200||s.status===0&&s.response)r({data:s.response});else{let n=new Error(`XHR failed, status: ${s.status}`);n.status=s.status,o(n)}},s.onerror=o,s.send(null)})}loadWasm(t,e){return D(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=Xe(),o=null,s=null;if(Rt(WebAssembly.instantiateStreaming)&&!GR(t)&&!zR(t)&&Rt(fetch))try{let n=fetch(t);o=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){s=n}if(!o)try{let n=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(n,e)).instance}catch(n){s=n}if(o){let n=Xe()-r;return this._log.info(`loadedWasm ${t}, cost: ${n}ms`),Se.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),Se.addFailedEvent({key:522701,error:s}),s})}loadScript(t){this._log.info(`loadScript ${t}`);let e=Xe();return new Promise((r,o)=>{let s=document.createElement("script");s.type="text/javascript",s.onload=()=>{this._log.info(`loadedScript ${t}, cost: ${Xe()-e}ms`),Se.addSuccessEvent({key:522702,cost:Xe()-e,split:1e3}),r(s)},s.onerror=n=>{this._log.error(`failed to loadScript ${t}, error: ${(n==null?void 0:n.message)||JSON.stringify(n)}`),Se.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};Ie([qs({settings:{timeout:0,retries:3},onError(t,e,r){var o;(t==null?void 0:t.status)===404||(o=t==null?void 0:t.message)!=null&&o.includes("404")?(this._log.warn("download 404, stop retry"),r(t)):e()},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],Qc.prototype,"download",1),Ie([qs({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],Qc.prototype,"loadScript",1);var Yc=new Qc;function ty({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:nn,LocalVideoTrack:Zr,LocalScreenTrack:zi,room:t,assetsPath:r,fileDownloader:Yc,innerEmitter:ee,INNER_EVENT:ce,constants:zh,environment:Qn,utils:uf,eventLogger:It,log:this.room.getLogger(),loggerManager:se,errorModule:e,kvStatManager:Se,rtcDectection:Jo,trtc:this,rx:af,enums:$m,schedule:Uf,getDevices:oa,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>D(this,null,function*(){window.VisionTaskRegistry||(yield Yc.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:bt(),deviceDetector:$t,AudioPlayer:na,showAutoPlayDialog:ta,Timer:Jt,clearStarted:(o,s)=>{let n=o.getAlias(),a=vo.instances.get(this);if(a)if(s){let c=a.get(n+s);if(!c)return;c.started=!1}else a.forEach((c,d)=>{d.startsWith(n)&&(c.started=!1)})},startGetPCM:Vc,createAudioNode:Rc,getNetworkTimeOffset:Ng,validateSourceNode:()=>{var o;if(zt&&!((o=this.room.audioManager._localAudioPipline)!=null&&o.source.node))throw new Oe({code:ke.DEVICE_ERROR,extraCode:5310,message:"The audio processing plugin cannot be used due to the microphone's sampling rate is not 48KHz in Firefox. Please switch to another browser such as Chrome."})}}}var ry=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=Et({key:_t.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return se.warn(`${s}
84
+ `),Ee+=`}
85
+ `,ut.push(Ee),Yc(Function,ut).apply(null,Ze)}function xr(){this.allocated=[void 0],this.freelist=[]}var jt=new xr;function qs(S){S>=jt.reserved&&--jt.get(S).refcount==0&&jt.free(S)}function Kc(){for(var S=0,T=jt.reserved;T<jt.allocated.length;++T)jt.allocated[T]!==void 0&&++S;return S}var zs={toValue:S=>(S||me("Cannot use deleted val. handle = "+S),jt.get(S).value),toHandle:S=>{switch(S){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return jt.allocate({refcount:1,value:S})}}};function Zo(S){if(S===null)return"null";var T=typeof S;return T==="object"||T==="array"||T==="function"?S.toString():""+S}function Xl(S,T){switch(T){case 2:return function(w){return this.fromWireType(Ue[w>>2])};case 3:return function(w){return this.fromWireType(W[w>>3])};default:throw new TypeError("Unknown float type: "+S)}}function Ql(S,T,w){switch(T){case 0:return w?function(x){return N[x]}:function(x){return C[x]};case 1:return w?function(x){return P[x>>1]}:function(x){return z[x>>1]};case 2:return w?function(x){return H[x>>2]}:function(x){return ge[x>>2]};default:throw new TypeError("Unknown integer type: "+S)}}var ed=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Ko=(S,T,w)=>{for(var x=T+w,$=T;S[$]&&!($>=x);)++$;if($-T>16&&S.buffer&&ed)return ed.decode(S.subarray(T,$));for(var G="";T<$;){var J=S[T++];if(128&J){var K=63&S[T++];if((224&J)!=192){var te=63&S[T++];if((J=(240&J)==224?(15&J)<<12|K<<6|te:(7&J)<<18|K<<12|te<<6|63&S[T++])<65536)G+=String.fromCharCode(J);else{var j=J-65536;G+=String.fromCharCode(55296|j>>10,56320|1023&j)}}else G+=String.fromCharCode((31&J)<<6|K)}else G+=String.fromCharCode(J)}return G},Yl=(S,T)=>S?Ko(C,S,T):"",td=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Zl=(S,T)=>{for(var w=S,x=w>>1,$=x+T/2;!(x>=$)&&z[x];)++x;if((w=x<<1)-S>32&&td)return td.decode(C.subarray(S,w));for(var G="",J=0;!(J>=T/2);++J){var K=P[S+2*J>>1];if(K==0)break;G+=String.fromCharCode(K)}return G},Pr=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<2)return 0;for(var x=T,$=(w-=2)<2*S.length?w/2:S.length,G=0;G<$;++G){var J=S.charCodeAt(G);P[T>>1]=J,T+=2}return P[T>>1]=0,T-x},Js=S=>2*S.length,rd=(S,T)=>{for(var w=0,x="";!(w>=T/4);){var $=H[S+4*w>>2];if($==0)break;if(++w,$>=65536){var G=$-65536;x+=String.fromCharCode(55296|G>>10,56320|1023&G)}else x+=String.fromCharCode($)}return x},Kl=(S,T,w)=>{if(w===void 0&&(w=2147483647),w<4)return 0;for(var x=T,$=x+w-4,G=0;G<S.length;++G){var J=S.charCodeAt(G);if(J>=55296&&J<=57343&&(J=65536+((1023&J)<<10)|1023&S.charCodeAt(++G)),H[T>>2]=J,(T+=4)+4>$)break}return H[T>>2]=0,T-x},co=S=>{for(var T=0,w=0;w<S.length;++w){var x=S.charCodeAt(w);x>=55296&&x<=57343&&++w,T+=4}return T},id={},Xs=[],Qs=[],sa;sa=()=>performance.now();var od,na,uo,sd=[null,[],[]];(function(){for(var S=new Array(256),T=0;T<256;++T)S[T]=String.fromCharCode(T);rt=S})(),ro=o.BindingError=class extends Error{constructor(S){super(S),this.name="BindingError"}},ta=o.InternalError=class extends Error{constructor(S){super(S),this.name="InternalError"}},lr.prototype.isAliasOf=ra,lr.prototype.clone=js,lr.prototype.delete=so,lr.prototype.isDeleted=Be,lr.prototype.deleteLater=Wc,o.getInheritedInstanceCount=jl,o.getLiveInheritedInstances=le,o.flushPendingDeletes=_,o.setDelayFunction=Dt,hr.prototype.getPointee=ql,hr.prototype.destructor=zl,hr.prototype.argPackAdvance=8,hr.prototype.readValueFromPointer=Jo,hr.prototype.deleteObject=Xo,hr.prototype.fromWireType=L,Yo=o.UnboundTypeError=(od=Error,(uo=mr(na="UnboundTypeError",function(S){this.name=na,this.message=S;var T=new Error(S).stack;T!==void 0&&(this.stack=this.toString()+`
86
+ `+T.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(od.prototype),uo.prototype.constructor=uo,uo.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},uo),Object.assign(xr.prototype,{get(S){return this.allocated[S]},has(S){return this.allocated[S]!==void 0},allocate(S){var T=this.freelist.pop()||this.allocated.length;return this.allocated[T]=S,T},free(S){this.allocated[S]=void 0,this.freelist.push(S)}}),jt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),jt.reserved=jt.allocated.length,o.count_emval_handles=Kc;var qt,nd={o:function(S,T,w){throw new ea(S).init(T,w),S},r:function(S,T,w,x,$){},m:function(S,T,w,x,$){var G=Se(w);Gt(S,{name:T=Wt(T),fromWireType:function(J){return!!J},toWireType:function(J,K){return K?x:$},argPackAdvance:8,readValueFromPointer:function(J){var K;if(w===1)K=N;else if(w===2)K=P;else{if(w!==4)throw new TypeError("Unknown boolean type size: "+T);K=H}return this.fromWireType(K[J>>G])},destructorFunction:null})},q:function(S,T,w,x,$,G,J,K,te,j,he,Me,Ne){he=Wt(he),G=no($,G),K&&(K=no(J,K)),j&&(j=no(te,j)),Ne=no(Me,Ne);var Ee=ei(he);(function(xe,ut,Ze){o.hasOwnProperty(xe)?((Ze===void 0||o[xe].overloadTable!==void 0&&o[xe].overloadTable[Ze]!==void 0)&&me(`Cannot register public name '${xe}' twice`),Gc(o,xe,xe),o.hasOwnProperty(Ze)&&me(`Cannot register multiple overloads of a function with the same number of arguments (${Ze})!`),o[xe].overloadTable[Ze]=ut):(o[xe]=ut,Ze!==void 0&&(o[xe].numArguments=Ze))})(Ee,function(){ao(`Cannot construct ${he} due to unbound types`,[x])}),io([S,T,w],x?[x]:[],function(xe){var ut,Ze;xe=xe[0],Ze=x?(ut=xe.registeredClass).instancePrototype:lr.prototype;var It=mr(Ee,function(){if(Object.getPrototypeOf(this)!==Ke)throw new ro("Use 'new' to construct "+he);if(Ut.constructor_body===void 0)throw new ro(he+" has no accessible constructor");var kr=Ut.constructor_body[arguments.length];if(kr===void 0)throw new ro(`Tried to invoke ctor of ${he} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Ut.constructor_body).toString()}) parameters instead!`);return kr.apply(this,arguments)}),Ke=Object.create(Ze,{constructor:{value:It}});It.prototype=Ke;var Ut=new oa(he,It,Ke,Ne,ut,G,K,j);Ut.baseClass&&(Ut.baseClass.__derivedClasses===void 0&&(Ut.baseClass.__derivedClasses=[]),Ut.baseClass.__derivedClasses.push(Ut));var mo=new hr(he,Ut,!0,!1,!1),xt=new hr(he+"*",Ut,!1,!1,!1),aa=new hr(he+" const*",Ut,!1,!0,!1);return ve[S]={pointerType:xt,constPointerType:aa},function(kr,ca,Zs){o.hasOwnProperty(kr)||ir("Replacing nonexistant public symbol"),o[kr].overloadTable!==void 0&&Zs!==void 0?o[kr].overloadTable[Zs]=ca:(o[kr]=ca,o[kr].argCount=Zs)}(Ee,It),[mo,xt,aa]})},p:function(S,T,w,x,$,G){var J=Qc(T,w);$=no(x,$),io([],[S],function(K){var te=`constructor ${(K=K[0]).name}`;if(K.registeredClass.constructor_body===void 0&&(K.registeredClass.constructor_body=[]),K.registeredClass.constructor_body[T-1]!==void 0)throw new ro(`Cannot register multiple constructors with identical number of parameters (${T-1}) for class '${K.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return K.registeredClass.constructor_body[T-1]=()=>{ao(`Cannot construct ${K.name} due to unbound types`,J)},io([],J,function(j){return j.splice(1,0,null),K.registeredClass.constructor_body[T-1]=Zc(te,j,null,$,G),[]}),[]})},d:function(S,T,w,x,$,G,J,K,te){var j=Qc(w,x);T=Wt(T),G=no($,G),io([],[S],function(he){var Me=`${(he=he[0]).name}.${T}`;function Ne(){ao(`Cannot call ${Me} due to unbound types`,j)}T.startsWith("@@")&&(T=Symbol[T.substring(2)]),K&&he.registeredClass.pureVirtualFunctions.push(T);var Ee=he.registeredClass.instancePrototype,xe=Ee[T];return xe===void 0||xe.overloadTable===void 0&&xe.className!==he.name&&xe.argCount===w-2?(Ne.argCount=w-2,Ne.className=he.name,Ee[T]=Ne):(Gc(Ee,T,Me),Ee[T].overloadTable[w-2]=Ne),io([],j,function(ut){var Ze=Zc(Me,ut,he,G,J,te);return Ee[T].overloadTable===void 0?(Ze.argCount=w-2,Ee[T]=Ze):Ee[T].overloadTable[w-2]=Ze,[]}),[]})},u:function(S,T){Gt(S,{name:T=Wt(T),fromWireType:function(w){var x=zs.toValue(w);return qs(w),x},toWireType:function(w,x){return zs.toHandle(x)},argPackAdvance:8,readValueFromPointer:Jo,destructorFunction:null})},k:function(S,T,w){var x=Se(w);Gt(S,{name:T=Wt(T),fromWireType:function($){return $},toWireType:function($,G){return G},argPackAdvance:8,readValueFromPointer:Xl(T,x),destructorFunction:null})},b:function(S,T,w,x,$){T=Wt(T),$===-1&&($=4294967295);var G=Se(w),J=j=>j;if(x===0){var K=32-8*w;J=j=>j<<K>>>K}var te=T.includes("unsigned");Gt(S,{name:T,fromWireType:J,toWireType:te?function(j,he){return this.name,he>>>0}:function(j,he){return this.name,he},argPackAdvance:8,readValueFromPointer:Ql(T,G,x!==0),destructorFunction:null})},a:function(S,T,w){var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][T];function $(G){var J=ge,K=J[G>>=2],te=J[G+1];return new x(J.buffer,te,K)}Gt(S,{name:w=Wt(w),fromWireType:$,argPackAdvance:8,readValueFromPointer:$},{ignoreDuplicateRegistrations:!0})},j:function(S,T){var w=(T=Wt(T))==="std::string";Gt(S,{name:T,fromWireType:function(x){var $,G=ge[x>>2],J=x+4;if(w)for(var K=J,te=0;te<=G;++te){var j=J+te;if(te==G||C[j]==0){var he=Yl(K,j-K);$===void 0?$=he:($+="\0",$+=he),K=j+1}}else{var Me=new Array(G);for(te=0;te<G;++te)Me[te]=String.fromCharCode(C[J+te]);$=Me.join("")}return Lr(x),$},toWireType:function(x,$){var G;$ instanceof ArrayBuffer&&($=new Uint8Array($));var J=typeof $=="string";J||$ instanceof Uint8Array||$ instanceof Uint8ClampedArray||$ instanceof Int8Array||me("Cannot pass non-string to std::string"),G=w&&J?(Me=>{for(var Ne=0,Ee=0;Ee<Me.length;++Ee){var xe=Me.charCodeAt(Ee);xe<=127?Ne++:xe<=2047?Ne+=2:xe>=55296&&xe<=57343?(Ne+=4,++Ee):Ne+=3}return Ne})($):$.length;var K=lo(4+G+1),te=K+4;if(ge[K>>2]=G,w&&J)((Me,Ne,Ee,xe)=>{if(!(xe>0))return 0;for(var ut=Ee,Ze=Ee+xe-1,It=0;It<Me.length;++It){var Ke=Me.charCodeAt(It);if(Ke>=55296&&Ke<=57343&&(Ke=65536+((1023&Ke)<<10)|1023&Me.charCodeAt(++It)),Ke<=127){if(Ee>=Ze)break;Ne[Ee++]=Ke}else if(Ke<=2047){if(Ee+1>=Ze)break;Ne[Ee++]=192|Ke>>6,Ne[Ee++]=128|63&Ke}else if(Ke<=65535){if(Ee+2>=Ze)break;Ne[Ee++]=224|Ke>>12,Ne[Ee++]=128|Ke>>6&63,Ne[Ee++]=128|63&Ke}else{if(Ee+3>=Ze)break;Ne[Ee++]=240|Ke>>18,Ne[Ee++]=128|Ke>>12&63,Ne[Ee++]=128|Ke>>6&63,Ne[Ee++]=128|63&Ke}}Ne[Ee]=0})($,C,te,G+1);else if(J)for(var j=0;j<G;++j){var he=$.charCodeAt(j);he>255&&(Lr(te),me("String has UTF-16 code units that do not fit in 8 bits")),C[te+j]=he}else for(j=0;j<G;++j)C[te+j]=$[j];return x!==null&&x.push(Lr,K),K},argPackAdvance:8,readValueFromPointer:Jo,destructorFunction:function(x){Lr(x)}})},g:function(S,T,w){var x,$,G,J,K;w=Wt(w),T===2?(x=Zl,$=Pr,J=Js,G=()=>z,K=1):T===4&&(x=rd,$=Kl,J=co,G=()=>ge,K=2),Gt(S,{name:w,fromWireType:function(te){for(var j,he=ge[te>>2],Me=G(),Ne=te+4,Ee=0;Ee<=he;++Ee){var xe=te+4+Ee*T;if(Ee==he||Me[xe>>K]==0){var ut=x(Ne,xe-Ne);j===void 0?j=ut:(j+="\0",j+=ut),Ne=xe+T}}return Lr(te),j},toWireType:function(te,j){typeof j!="string"&&me(`Cannot pass non-string to C++ string type ${w}`);var he=J(j),Me=lo(4+he+T);return ge[Me>>2]=he>>K,$(j,Me+4,he+T),te!==null&&te.push(Lr,Me),Me},argPackAdvance:8,readValueFromPointer:Jo,destructorFunction:function(te){Lr(te)}})},n:function(S,T){Gt(S,{isVoid:!0,name:T=Wt(T),argPackAdvance:0,fromWireType:function(){},toWireType:function(w,x){}})},e:function(S,T,w,x){var $,G;(S=Xs[S])(T=zs.toValue(T),w=(G=id[$=w])===void 0?Wt($):G,null,x)},l:qs,h:function(S,T){var w=function(ut,Ze){for(var It,Ke,Ut,mo=new Array(ut),xt=0;xt<ut;++xt)mo[xt]=(It=ge[Ze+4*xt>>2],Ke="parameter "+xt,Ut=void 0,(Ut=Kr[It])===void 0&&me(Ke+" has unknown type "+Xc(It)),Ut);return mo}(S,T),x=w[0],$=x.name+"_$"+w.slice(1).map(function(ut){return ut.name}).join("_")+"$",G=Qs[$];if(G!==void 0)return G;for(var J=["retType"],K=[x],te="",j=0;j<S-1;++j)te+=(j!==0?", ":"")+"arg"+j,J.push("argType"+j),K.push(w[1+j]);var he="return function "+ei("methodCaller_"+$)+`(handle, name, destructors, args) {
87
+ `,Me=0;for(j=0;j<S-1;++j)he+=" var arg"+j+" = argType"+j+".readValueFromPointer(args"+(Me?"+"+Me:"")+`);
88
+ `,Me+=w[j+1].argPackAdvance;for(he+=" var rv = handle[name]("+te+`);
89
+ `,j=0;j<S-1;++j)w[j+1].deleteObject&&(he+=" argType"+j+".deleteObject(arg"+j+`);
90
+ `);x.isVoid||(he+=` return retType.toWireType(destructors, rv);
91
+ `),he+=`};
92
+ `,J.push(he);var Ne,Ee,xe=Yc(Function,J).apply(null,K);return Ne=xe,Ee=Xs.length,Xs.push(Ne),G=Ee,Qs[$]=G,G},f:()=>{Ir("")},c:sa,t:(S,T,w)=>C.copyWithin(S,T,T+w),s:S=>{C.length,Ir("OOM")},i:(S,T,w,x)=>{for(var $,G,J,K=0,te=0;te<w;te++){var j=ge[T>>2],he=ge[T+4>>2];T+=8;for(var Me=0;Me<he;Me++)$=S,G=C[j+Me],J=void 0,J=sd[$],G===0||G===10?(($===1?f:g)(Ko(J,0)),J.length=0):J.push(G);K+=he}return ge[x>>2]=K,0}},Lr=(function(){var S,T,w,x,$={a:nd};function G(J,K){var te,j,he=J.exports;return A=(R=he).v,te=A.buffer,o.HEAP8=N=new Int8Array(te),o.HEAP16=P=new Int16Array(te),o.HEAP32=H=new Int32Array(te),o.HEAPU8=C=new Uint8Array(te),o.HEAPU16=z=new Uint16Array(te),o.HEAPU32=ge=new Uint32Array(te),o.HEAPF32=Ue=new Float32Array(te),o.HEAPF64=W=new Float64Array(te),we=R.z,j=R.w,Zn.unshift(j),function(){if(Yr--,o.monitorRunDependencies&&o.monitorRunDependencies(Yr),Yr==0&&(Ws!==null&&(clearInterval(Ws),Ws=null),eo)){var Me=eo;eo=null,Me()}}(),he}if(Yr++,o.monitorRunDependencies&&o.monitorRunDependencies(Yr),o.instantiateWasm)try{return o.instantiateWasm($,G)}catch(J){g("Module.instantiateWasm callback failed with error: "+J),r(J)}(S=p,T=_i,w=$,x=function(J){G(J.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||re(T)||typeof fetch!="function"?Zr(T,w,x):fetch(T,{credentials:"same-origin"}).then(J=>WebAssembly.instantiateStreaming(J,w).then(x,function(K){return g("wasm streaming compile failed: "+K),g("falling back to ArrayBuffer instantiation"),Zr(T,w,x)}))).catch(r)}(),S=>(Lr=R.x)(S)),lo=S=>(lo=R.y)(S),Ys=S=>(Ys=R.A)(S),ad=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=R.B)(),S=>(ad=R.C)(S));o.dynCall_jiji=(S,T,w,x,$)=>(o.dynCall_jiji=R.D)(S,T,w,x,$);function cd(){function S(){qt||(qt=!0,o.calledRun=!0,Ki||(Ii(Zn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)T=o.postRun.shift(),Kn.unshift(T);var T;Ii(Kn)}()))}Yr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),Yn.unshift(T);var T;Ii(Yn)}(),Yr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(eo=function S(){qt||cd(),qt||(eo=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return cd(),t.ready}})();var T_=(i=>(i.ROOM_DESTROY="1",i.JOIN_START="21",i.JOIN_SCHEDULE_SUCCESS="22",i.JOIN_SIGNAL_CONNECTION_START="23",i.JOIN_SIGNAL_CONNECTION_END="24",i.JOIN_SEND_CMD="25",i.JOIN_RECEIVED_CMD_RES="26",i.JOIN_SUCCESS="27",i.JOIN_FAILED="28",i.LEAVE_START="51",i.LEAVE_SEND_CMD="52",i.LEAVE_SUCCESS="53",i.PUBLISH_START="61",i.SEND_FIRST_VIDEO_FRAME="62",i.PUBLISH_FAILED="63",i.SUBSCRIBE_START="81",i.SUBSCRIBE_SUCCESS="82",i.SUBSCRIBE_FAILED="84",i.UNSUBSCRIBE_SUCCESS="83",i.LOCAL_TRACK_CAPTURE_START="101",i.LOCAL_TRACK_CAPTURE_SUCCESS="102",i.LOCAL_TRACK_CAPTURE_FAILED="103",i.LOCAL_TRACK_PUBLISHED="104",i.LOCAL_TRACK_UNPUBLISHED="105",i.LOCAL_TRACK_REPLACED="106",i.SWITCH_DEVICE_SUCCESS="107",i.TRACK_MUTED="108",i.TRACK_UNMUTED="109",i.REMOTE_TRACK_SUBSCRIBED="110",i.REMOTE_TRACK_UNSUBSCRIBED="111",i.LOCAL_TRACK_RECAPTURE="112",i.LOCAL_AUDIO_STARTED="113",i.LOCAL_AUDIO_STOPPED="114",i.REMOTE_AUDIO_STARTED="115",i.REMOTE_AUDIO_STOPPED="116",i.PLAY_TRACK_START="151",i.PLAYER_STATE_CHANGED="152",i.VIDEO_LOADED_DATA="153",i.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",i.AUDIO_CONTEXT_LONG_SUSPENDED="155",i.REMOTE_VIDEO_PLAY_START="156",i.REMOTE_VIDEO_PLAY_FINISH="157",i.SIGNAL_CONNECTION_STATE_CHANGED="201",i.PEER_CONNECTION_STATE_CHANGED="202",i.SINGLE_CONNECTION_STAT="203",i.SPC_RECONNECTED="204",i.HEARTBEAT_REPORT="251",i.RECEIVED_PUBLISHED_USER_LIST="252",i.REMOTE_PUBLISH_STATE_CHANGED="253",i.AUDIO_LEVEL_INTERVAL="260",i.NETWORK_QUALITY="261",i.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",i.QUALITY_LIMITATION_CHANGED="263",i.LOG="264",i.AUDIO_PROCESSOR_DEBUG="265",i.SSO_SWITCH="266",i.SWITCH_ROOM_START="401",i.SWITCH_ROOM_SUCCESS="407",i.SWITCH_ROOM_FAILED="408",i))(T_||{}),ab="5.0.0",cb=typeof importScripts!="undefined",db=typeof registerProcessor!="undefined",ub="",lb="web.sdk.qcloud.com",mb=`https://${lb}/trtc/webrtc/doc`,AU=`${mb}/zh-cn/`,hb="https://yun.tim.qq.com",pb="https://apisgp.my-imcloud.com",fb={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ks=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(ks||{});var I_={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},yU=I_["480p_2"],bU=I_["120p_2"],cl={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture",RESIZE:"resize",TIME_UPDATE:"timeupdate"},RU=cl.MAIN,vU=cl.AUXILIARY,CU=cl.BIG,NU=cl.SMALL;var DU=Object.keys(ks);var gb=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(l){try{d(r.next(l))}catch(p){s(p)}}function a(l){try{d(r.throw(l))}catch(p){s(p)}}function d(l){var p;l.done?o(l.value):(p=l.value,p instanceof e?p:new e(function(f){f(p)})).then(n,a)}d((r=r.apply(i,t||[])).next())})},$p=Symbol(32),Hp=Symbol(16),Wp=Symbol(8),Gn=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return gb(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read($p)}readU16(){return this.read(Hp)}readU8(){return this.read(Wp)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===$p){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===Hp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===Wp){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};Gn.U32=$p,Gn.U16=Hp,Gn.U8=Wp;var Eb=128,_b=127,wU=~_b,OU=Math.pow(2,31);function Lp(i){let t=new Gn;for(;i>=128;)t.malloc(1)[0]=255&i|Eb,i>>>=7;return t.malloc(1)[0]=255&i,t.buffer||new Uint8Array(0)}function Gp(i,t=0){let e=new Gn,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Lp(i));break;case"string":e.malloc(1)[0]=2|r;let s=new TextEncoder().encode(i);e.write(Lp(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new Gn;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=Gp(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=Gp(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=2|r,a.buffer&&(e.write(Lp(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var o_=class{constructor(){tt(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(i){this.buffer.push(i>>>24&255),this.buffer.push(i>>>16&255),this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeInt16(i){this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeByte(i){this.buffer.push(255&i)}writeBytes(i){for(let t=0;t<i.length;t++)this.buffer.push(i[t])}};function s_(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=255&t}function ur(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function n_(i,t){return i[t]}function _c(i,t,e){return new TextDecoder().decode(Tb(i,t,e))}function Tb(i,t,e){return i.slice(t,t+e)}var kp=0,jp=2654435769,qp=16,a_=4,Rc=2,vc=7;function Ib(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function Sb(i,t){let e=new o_,r=Ib(t,i,kp);kp=kp+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new o_;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(255&r.reqHead.appId);for(let z=4;z<16;z++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let A=n.length;n.data[0]=A>>>24&255,n.data[1]=A>>>16&255,n.data[2]=A>>>8&255,n.data[3]=255&A,zp(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(R=Ab(R,N)),e.writeBytes(R);let C=new Uint8Array(e.data),P=C.length;return C[0]=P>>>24&255,C[1]=P>>>16&255,C[2]=P>>>8&255,C[3]=255&P,C}function Ab(i,t){let e=i.length,r=(e+1+Rc+vc)%8;r&&(r=8-r);let o=new Uint8Array(e+1+Rc+vc+r),s=0,n=new Uint8Array(8),a=new Uint8Array(8),d=new Uint8Array(8),l=0;n[0]=248&Math.floor(256*Math.random())|r,l=1;for(let f=0;f<r;f++)n[l]=255&Math.floor(256*Math.random()),l+=1;for(let f=0;f<Rc;)if(l<8&&(n[l]=255&Math.floor(256*Math.random()),l+=1,f+=1),l===8){Up(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}let p=0;for(;p<e;)if(l<8&&(n[l]=i[p],l+=1,p+=1),l===8){Up(n,t,a,d,o,s),s+=8,l=0;for(let f=0;f<8;f++)d[f]=o[s-8+f]}for(let f=0;f<vc;)if(l<8&&(n[l]=0,l+=1,f+=1),l===8){Up(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}return o}function Up(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];yb(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function yb(i,t,e,r){let o=ur(i,0),s=ur(i,4),n=[];for(let d=0;d<4;d++)n[d]=ur(t,4*d);let a=0;for(let d=0;d<qp;d++)a+=jp,a>>>=0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o>>>=0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s>>>=0;s_(e,o,r),s_(e,s,r+4)}var bb=0,S_=function(){return Date.now()+bb},Rb=function(){let i=new Date;return i.setTime(S_()),i.toLocaleString()},vb=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};function Cb(i){let t=Nb(i);return t==null?void 0:t.busiBuff}function Nb(i){try{let t={},e=0;t.totalLength=ur(i,e),e+=4,t.version=ur(i,e),e+=4,t.encryption=n_(i,e),e+=1,t.uinType=n_(i,e),e+=1,t.uinLength=ur(i,e),e+=4,t.uin=t.uinLength>4?_c(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=Db(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=ur(i,e),e+=4,t.seqNo=ur(i,e),e+=4,t.retCode=ur(i,e),e+=4,t.retStrLength=ur(i,e),e+=4,t.retStr=t.retStrLength?_c(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=ur(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?_c(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=ur(i,e),e+=4,t.cookie=t.cookieLength?_c(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=ur(i,e),e+=4,t.busiBuffLength=ur(i,e),e+=4,t.busiBuff=t.busiBuffLength?_c(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function A_(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e>>>=0,r>>>=0;let o=jp*qp>>>0;for(let s=0;s<qp;s++)r-=(e<<a_)+t[2]^e+o^(e>>>5)+t[3],r>>>=0,e-=(r<<a_)+t[0]^r+o^(r>>>5)+t[1],e>>>=0,o-=jp,o>>>=0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function Db(i,t){let e=0,r=new Uint8Array(8).fill(0),o=A_(new Uint8Array(i.slice(0,8)),t),s=7&o[0],n=i.length-1-s-Rc-vc,a=new Uint8Array(n),d=0,l=r,p=i.slice(0,8);e=8;let f=1;f+=s;for(let A=1;A<=Rc;)if(f<8)f++,A++;else if(f===8){let R=Vp(i,e,l,p,o,t);l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}let g=n;for(;g>0;)if(f<8)a[d++]=o[f]^l[f],f++,g--;else if(f===8){let A=Vp(i,e,l,p,o,t);l=A.ivPreCrypt,p=A.ivCurCrypt,o=A.debiBuf,e=A.bufPos,f=0}for(let A=1;A<=vc;)if(f<8)o[f],l[f],f++,A++;else if(f===8){if(e>=i.length)break;let R=Vp(i,e,l,p,o,t);if(!R.success)break;l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}return a}function Vp(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let l=0;l<8;l++)d[l]=o[l]^a[l];return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:A_(d,s),bufPos:t+8}}var c_=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function wb({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:Cb(new Uint8Array(l))||(c_?c_.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}var Ob=Object.prototype.hasOwnProperty,Tc=i=>typeof i=="function",Hn=i=>i===void 0,Mb=i=>typeof i=="boolean",xb=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function Pb(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(xb(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":for(let t in i)if(Ob.call(i,t))return!1;return!0}return!1}var Lb=0,kb=1,d_=2;function Ub({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=Lb,A=(R,N)=>y(this,null,function*(){let C=n||this;try{let P=yield i.apply(C,a);p>0&&s&&s.call(this,p),p=0,R(P)}catch(P){let z=()=>{clearTimeout(f),p=0,g=d_,N(P)},H=()=>{g!==d_&&p<(Tc(d)?d():d)?(p++,g=kb,Tc(r)&&r.call(this,p,z),f=window.setTimeout(()=>{f=-1,A(R,N)},Tc(l)?l(p):l)):(z(),Tc(o)&&o.call(this,P))};Tc(e)?e.call(this,{error:P,retry:H,reject:N,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(A)}}var Vb=Ub,Fp=class y_{constructor(t){tt(this,"_parentPath"),tt(this,"userId"),tt(this,"remoteUserId"),tt(this,"id"),tt(this,"sdkAppId"),tt(this,"type"),tt(this,"isLocal"),this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=!Mb(t.isLocal)||t.isLocal,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new y_({id:t.id,userId:Hn(t.userId)?this.userId:t.userId,sdkAppId:Hn(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:Hn(t.type)?this.type:t.type,isLocal:Hn(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:Hn(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),TR.log(t,e,Hn(this.userId)||Pb(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}},pi=typeof navigator=="undefined"?"":navigator.userAgent,Re=i=>new RegExp(i,"i").test(pi),Rt=i=>{if(Re(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=pi.match(t);if(e&&e[1])return e[1]}return""},dl=i=>{if(Re(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=pi.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},u_=/AppleWebKit\/([\d.]+)/i.exec(pi),Fb=u_?parseFloat(u_[1]):NaN,b_=Re("iPad"),R_=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Re("Macintosh"),v_=Re("iPhone")&&!b_,Bb=Re("iPod"),Xp=v_||b_||Bb||R_,Cc=Re("Android"),C_=function(){if(Cc){let i=pi.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),MU=Cc&&Re("webkit")&&C_<2.3,xU=Cc&&C_<5&&Fb<537,$b=Re("Firefox"),Hb=Rt("Firefox"),PU=dl("Firefox"),N_=Re("Edge"),Wb=Rt("Edge"),D_=Re("Edg"),Gb=Rt("Edg"),LU=dl("Edg"),w_=Re("SogouMobileBrowser"),jb=Rt("SogouMobileBrowser"),O_=Re("MetaSr\\s"),qb=Rt("MetaSr\\s"),Us=Re("TBS"),zb=Rt("TBS"),M_=Re("XWEB"),Jb=Rt("XWEB"),kU=Re("MSIE\\s8\\.0"),Xb=Re("MSIE\\/\\d+"),UU=function(){if(Xb){let i=/MSIE\s(\d+)\.\d/.exec(pi),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(pi)&&/rv:11.0/.test(pi)&&(t=11),t}return NaN}(),Qb=Re("(micromessenger|webbrowser)"),Yb=Rt("MicroMessenger"),Qp=!Us&&Re("MQQBrowser")&&Re("COVC"),Yp=!Us&&Re("MQQBrowser")&&!Re("COVC"),l_=Yp||Qp?Rt("MQQBrowser"):"",x_=!Us&&Re(" QQBrowser"),Zb=Rt(" QQBrowser"),P_=!Us&&Re("QQBrowserLite"),Kb=Rt("QQBrowserLite"),L_=!Us&&Re("MQBHD"),eR=Rt("MQBHD"),VU=Re("Windows"),FU=!Xp&&Re("MAC OS X"),BU=!Cc&&Re("Linux"),$U=Re("CrOS"),HU=Re("MicroMessenger"),WU=Re("UCBrowser"),GU=Re("Electron"),k_=Re("MiuiBrowser"),tR=Rt("MiuiBrowser"),U_=Re("HuaweiBrowser"),jU=Re("Huawei")||Re("HUAWEI"),qU=Re("Honor")||Re("HONOR"),rR=Rt("HuaweiBrowser"),V_=Re("SamsungBrowser"),iR=Rt("SamsungBrowser"),F_=Re("HeyTapBrowser"),oR=Rt("HeyTapBrowser"),B_=Re("VivoBrowser"),sR=Rt("VivoBrowser"),zU=Re("OpenHarmony"),JU=Rt("OpenHarmony"),nR=()=>dl("Chrome"),m_=Re("CriOS"),$_=Re("Chrome"),aR=!N_&&!O_&&!w_&&!Us&&!M_&&!D_&&!x_&&!k_&&!U_&&!V_&&!F_&&!B_&&$_,cR=Re("HeadlessChrome"),XU=nR(),dR=Rt("Chrome"),QU=dl("Electron"),uR=!$_&&!Yp&&!Qp&&!P_&&!L_&&Re("Safari"),H_=Rt("Version"),YU=/Android.*(wv|.0.0.0)/.test(pi),W_=(()=>{if(R_)return H_;if(Xp){let i=pi.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),ZU=Number(W_.split(".")[0]),KU=(()=>{let i=Number(W_.split(".")[0]);return i===14||i===13})(),eV=typeof location!="undefined"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),tV=lR();function lR(){let i=new Map([[$b,["Firefox",Hb]],[D_,["Edg",Gb]],[aR,["Chrome",dR]],[m_,["ChiOS",Rt("CriOS")]],[uR&&!m_,["Safari",H_]],[Us,["TBS",zb]],[M_,["XWEB",Jb]],[Qb&&v_,["WeChat",Yb]],[x_,["QQ(Win)",Zb]],[Yp,["QQ(Mobile)",l_]],[Qp,["QQ(Mobile X5)",l_]],[P_,["QQ(Mac)",Kb]],[L_,["QQ(iPad)",eR]],[k_,["MI",tR]],[U_,["HW",rR]],[V_,["Samsung",iR]],[F_,["OPPO",oR]],[B_,["VIVO",sR]],[N_,["EDGE",Wb]],[w_,["SogouMobile",jb]],[O_,["Sogou",qb]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var mR=E_(__(),1),hR=new mR.default,Lo=hR,ol=T_,pR=class{constructor(){tt(this,"enable",!1),tt(this,"ssoFailCount",0),Lo.on("22",({schedule:i})=>{var t;(t=i==null?void 0:i.config)!=null&&t.sso&&Lo.emit("266",{enable:!0})}),Lo.on("266",({enable:i})=>{this.enable=i})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&Lo.emit("266",{enable:!1})}},h_=new pR,fR="%cTRTC%c%s",gR="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",ER="display: inline",G_=class j_{constructor(){tt(this,"_isEnableUploadLog",!0),tt(this,"_localJoinedUser",new Map),tt(this,"_queue",[]),tt(this,"_timeoutId",-1),tt(this,"_logLevel",1),tt(this,"_logLevelToUpload",2),cb||db||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){Lo.on(ol.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&ks[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),Lo.on(ol.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),Lo.on(ol.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(zp(r.userId)&&AR(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return y(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:a,logs:d}=o[s],l={timestamp:Rb(),sdkAppId:String(a),userId:n,version:ab,log:d.map(g=>g.log).join(`
93
+ `)},p=JSON.stringify(l),f=h_.enable?RR(l,2002,a):p;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,p),d.forEach(g=>g.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Vb({retryFunction:()=>wb({url:SR(e,fb.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(h_.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(S_()),`[${vb(e)}] <${ks[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){q_(ks[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(zp(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,d)=>`${a} ${this.logChunkToString(d)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};Lo.emit(ol.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var n;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let a=((n=ks[t])==null?void 0:n.toLowerCase())||"info";j_.PRINT_LOG_TAG?console[a](fR,gR,ER,...e):console[a](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){if(t.parent instanceof Fp){let e=t,{parent:r}=e,o=Qy(e,["parent"]),s=new Fp(o);return s.bindParent(r),s}return new Fp(t)}checkURLParam(){let t=new URLSearchParams(location.search).get("logLevelToUpload"),e=t?Number(t):-1;ks[e]&&(this._logLevelToUpload=e)}getQueue(){return this._queue}};tt(G_,"PRINT_LOG_TAG",!(Xp||Cc||cR));var _R=G_,TR=new _R,IR=i=>Number(i)<14e8,SR=function(i,t){let e;return e=ub||(IR(i)?pb:hb),`${e}/v5/AVQualityReportSvc/C2S?random=${Math.floor(Math.random()*ri(2,31))}&sdkappid=${i}&cmdtype=${t}`},rV=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},q_=i=>i===void 0,zp=i=>typeof i=="string",AR=i=>typeof i=="number",iV=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function yR(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:oV}=Object.prototype;function bR(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return q_(r)||(o=Ac(Sc({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function RR(i,t,e,r){try{let o=bR(i,t,e,r);return Sb(Gp(o),e)}catch(o){return JSON.stringify(i)}}var z_=class J_{constructor(t){this.core=t,tt(this,"contextMap",new Map),tt(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return J_.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){var r;switch(t){case"wasm":let s=((r=this.core.assetsPath)==null?void 0:r.replace(/\/+$/,""))||".";return new nb(Ac(Sc({},e),{wasmPath:`${s}/videodec.wasm`}));case"webCodecs":return new Wn;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let a=this.core.room.videoManager.createDecodeContext(Ac(Sc({},t),{createDecoder:this.createDecoder}));return e(a.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,a),a.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=yR()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t),n=`report health data: ${t.track.userId} ${t.track.streamType} ${t.type}+${t.renderer} goodType\uFF1A${t.goodType} ${t.failedReason?`failedReason: ${t.failedReason}`:""}`;r&&(this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),n+=` RENDER_FREEZE_RATE: ${Math.floor(o/r*100)}%`),r&&(this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),n+=` DATA_FREEZE_RATE: ${Math.floor(s/r*100)}%`),t.inputFrameCount&&(this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100}),n+=` VIDEO_CONSUME_RENDER_RATE: ${Math.floor(t.decodedFrameCount/t.inputFrameCount*100)}%`),this.core.log.info(n)}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(Ac(Sc({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getRenderFreezeDuration(`${t.userId}_${t.streamType}`),s=0;return r&&r.durationItemList.forEach(n=>{n.startTime>e.startPerformanceTime&&(s+=n.getDuration())}),{renderFreezeTotal:o,dataFreezeTotal:s}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};tt(z_,"Name","TRTCVideoDecoder");var Zp=z_;var yT=bi(ki());function Kp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Pe((r,o)=>{let s=new WeakMap;return U.on(B.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let a=s.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,a)),a.timestamp===0?a.timestamp=Date.now():Date.now()-a.timestamp>1e3&&(a.timestamp=Date.now(),a.callCountInSecond=0,a.totalSizeInSecond=0),e&&(a.totalSizeInSecond+=e(...n)),a.timestamp!==0&&Date.now()-a.timestamp<1e3&&(a.callCountInSecond>=i||a.totalSizeInSecond>t))throw new se({code:q.INVALID_OPERATION,message:We({key:He.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=i,isSize:a.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});a.callCountInSecond++,r.call(this,...n)}})}var vR="2025-12-08 15:52:55",X_=!0,Q_=function(){var i;if(X_){X_=!1,F.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${or}/en/index.html`),console.info(`* Changelog: ${or}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),F.info("TRTC Web SDK Version:",pt),jr||F.debug("Build Time:",vR);let t=`UA: ${navigator.userAgent}
94
+ CPU core: ${navigator.hardwareConcurrency}, GPU: ${$m()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),F.info(t),F.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),hs().then(r=>{r&&F.info(Hr)})}};var Vs={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var ne={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},Tr=(L=>(L[L.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",L[L.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",L[L.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",L[L.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",L[L.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",L[L.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",L[L.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",L[L.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",L[L.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",L[L.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",L[L.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",L[L.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",L[L.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",L[L.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",L[L.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",L[L.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",L[L.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",L[L.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",L[L.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",L[L.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",L[L.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",L[L.INVALID_OPERATION=5100]="INVALID_OPERATION",L[L.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",L[L.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",L[L.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",L[L.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",L[L.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",L[L.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",L[L.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",L[L.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",L[L.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",L[L.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",L[L.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",L[L.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",L[L.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",L[L.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",L[L.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",L[L.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",L[L.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",L[L.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",L[L.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",L[L.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",L[L.DEVICE_ERROR=5300]="DEVICE_ERROR",L[L.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",L[L.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",L[L.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",L[L.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",L[L.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",L[L.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",L[L.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",L[L.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",L[L.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",L[L.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",L[L.SERVER_ERROR=5400]="SERVER_ERROR",L[L.NEED_TO_BUY=5401]="NEED_TO_BUY",L[L.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",L[L.OPERATION_FAILED=5500]="OPERATION_FAILED",L[L.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",L[L.REJOIN_FAILED=5502]="REJOIN_FAILED",L[L.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",L[L.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",L[L.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",L[L.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",L[L.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",L[L.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",L[L.OPERATION_ABORT=5998]="OPERATION_ABORT",L[L.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",L))(Tr||{});function Z_({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Tr[i];try{o=Y_[s]}catch(n){o=Y_.UNKNOWN_ERROR}return Xe(o)?r=o(t):Oe(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var Y_=_e(Y({},ar),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ft(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ft(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone or screen share is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=Fs(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=Fs(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=Fs(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=Fs(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=Fs(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=Fs(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=Fs(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function Fs(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var ef=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:d}){var p;let l;o?l=o:l=Z_({code:e===ne.SERVER_ERROR?e:r||e,params:Y({fnName:n,error:a},s)});super(l);m(this,"name","RtcError");m(this,"code");m(this,"extraCode");m(this,"functionName");m(this,"message");m(this,"data");m(this,"handler");m(this,"originError");this.name=Tr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=l,this.data=d,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let f={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},g={startLocalVideo:"webcam",startLocalAudio:"microphone"},A=document.createElement("a");ms?A.href=`ms-settings:privacy-${g[this.functionName]}`:Gr&&(A.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${f[this.functionName]}`),A.href.length>0&&A.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof se){let{stack:n}=e,a={code:ne.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:a.code=ne.INVALID_PARAMETER,a.message=e.message;break;case q.INVALID_OPERATION:a.code=ne.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:a.code=ne.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(ar.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:a.code=ne.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:a.code=ne.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=CR(e.name));break;case q.VIDEO_ENCODE_FAILED:a.extraCode=5505;case q.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=ne.OPERATION_FAILED;break;case q.UNKNOWN:break;default:a.code=ne.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
95
+ `)))}else{if(e instanceof i)return e;s=new i({code:ne.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function CR(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var oe=ef;function fi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Nc(i){return i===Vs.QOS_PREFERENCE_CLEAR?"detail":i===Vs.QOS_PREFERENCE_SMOOTH?"motion":""}function jn(i,t){let e=t?cm:pa;return Nm(i)?Y(Y({},e),i):Vr[i]?Vr[i]:e}var K_={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},eT={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},qn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Oe(i)&&!document.getElementById(i))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},tT={name:"userId",required:!0,type:"string"},rT={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function zn(i,t){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5101,fnName:t})}function iT(i,t,e){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function oT(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function sT(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var w2={type:"number",notLessThanZero:!0},NR=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function nT(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!gu()){F.warn("small stream is not supported"),delete i.option.small;return}let t=jn(i.option.profile),e=jn(i.option.small,!0);if(!NR(t,e)){F.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var DR={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new oe({code:ne.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(Oe(i.roomId))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});oT(i.roomId,e,t)}else if(i.strRoomId)sT(i.strRoomId,e,t);else throw new oe({code:ne.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:qn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:K_},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Hi())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&nT(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:_e(Y({},qn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:K_},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&nT(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:rT},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Hi())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:rT}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:qn,publish:{type:"boolean"},option:eT},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Hi())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201});if(!qa())throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:qn,publish:{type:"boolean"},option:eT}},muteRemoteAudio:[tT,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[tT,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:qn,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){zn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(iT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:_e(Y({},qn),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){zn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(iT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&O(i.streamType))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){zn(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!Ja)throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:ne.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});zn(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new oe({code:ne.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(zn(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:ne.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(zn(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)oT(i.roomId,e,t);else if(i.strRoomId)sT(i.strRoomId,e,t);else throw new oe({code:ne.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},Ot={TRTC:DR};var Qt=class extends Error{};function wR(i,t){let e=ss(i);for(let r=0;r<t.length;r++)Br(e[r],t[r]);return e}function OR(i){this._resolve=Promise.resolve(i)}function MR(i){this._reject=Promise.reject(i)}var ko=class ko{constructor(t,e){this.instance=t;this.group=e;m(this,"started",!1);m(this,"ops",[]);m(this,"startSame",()=>!0);m(this,"mergeUpdate",wR);let r=ko.instances.get(t);r?r.set(e,this):ko.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=ko.instances.get(t);return r&&r.get(e)||new ko(t,e)}static gets(t,e){let r=ko.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var d;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(d=this.currentOp)==null||d.action(),a},s=a=>{var d,l;throw this.ops.shift(),t===0&&((d=this.currentOp)==null?void 0:d.type)===2&&this.ops.shift().reject(new Qt("start failed")),(l=this.currentOp)==null||l.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:OR,reject:MR};try{switch(this.state){case 1:if(t===0)throw new Qt("already started");break;case 4:if(t===2)throw new Qt("not started");break;default:return this.cacheOp(n)}}catch(a){return Promise.reject(a)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Qt("already start");break;case 3:switch(t.type){case 2:throw new Qt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Qt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Qt("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new Qt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Qt("start not allowed after update");case 0:throw new Qt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Qt("keep start")),new Qt("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};m(ko,"instances",new WeakMap);var Xi=ko;var ll=new WeakMap,ml=(i,t)=>{if(t instanceof Qt){let{stack:e}=t;t=new oe({code:ne.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
96
+ `)))}throw t};function Uo(i,t){return Pe((e,r)=>function(...o){let s=Xi.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(ml.bind(null,r))):e.apply(this,o)})}function Bs(i,t){let{merge:e,debounce:r}=t||{};return Pe((o,s)=>function(...n){let a=Xi.get(this,typeof i=="string"?i:i.call(this,...n));if(!a)return o.apply(this,n);if(e&&(a.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,n)){let{delay:d,getKey:l}=r;return new Promise((p,f)=>{var R,N;let g=(R=ll.get(this))==null?void 0:R.get(l(...n));if(g){let{timeoutId:C,resolve:P}=g;clearTimeout(C),P()}let A=setTimeout(()=>{if(a.state===3||a.state===4)return p();a.action(2,o.bind(this),n).catch(ml.bind(null,s)).then(p,f)},d);ll.has(this)?(N=ll.get(this))==null||N.set(l(...n),{timeoutId:A,resolve:p}):ll.set(this,new Map([[l(...n),{timeoutId:A,resolve:p}]]))})}return a.action(2,o.bind(this),n).catch(ml.bind(null,s))})}function Vo(i){return Pe((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Xi.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Xi.get(this,o);return s?s.action(3,t.bind(this),r).catch(ml.bind(null,e)):t.apply(this,r)})}function Fo(){return function(i,t,e){return i.prototype[t]=function(){let r=this._log||console,o=`"${t}" is a static method. Use TRTC.${t}() instead. See: ${or}/en/TRTC.html#.${t}`;r.warn(o)},e}}var ie={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed"},aT=new Set([ie.AUDIO_VOLUME,ie.AUDIO_FRAME,ie.NETWORK_QUALITY,ie.STATISTICS,ie.SEI_MESSAGE,ie.CUSTOM_MESSAGE,ie.LAYER_DATA]);var of={};yi(of,{ScheduleRequestType:()=>uT,getAbilityConfig:()=>LR,getScheduleDomain:()=>fl,isNeedToSchedule:()=>hl,scheduleProxy:()=>gi,sendScheduleRequest:()=>rf,setIsNeedToSchedule:()=>Qi,setScheduleProxy:()=>pl});var tf=null,dT=0,xR=48*3600*1e3,hl=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(Ci).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
97
+ `));function Qi(i){Ye(i)&&i!==hl&&(hl=i,F.info(`setIsNeedToSchedule ${i}`),i||(dT=Date.now()+xR))}U.on("28",()=>Qi(!0));U.on("63",()=>Qi(!0));U.on("84",()=>Qi(!0));U.on("201",i=>{i.state==="RECONNECTING"&&Qi(!0)});U.on("202",i=>{i.state==="RECONNECTING"&&Qi(!0)});function PR(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=Bo(i,"config",M.MAIN),n=Bo(i,"config",M.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let d=a.name===s?M.MAIN:M.BACKUP,l=Math.round(a.duration),p=Math.round(a.domainLookupStart-a.startTime),f=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,g=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,A=Math.round(a.domainLookupEnd-a.domainLookupStart),R=Math.round(a.requestStart-a.secureConnectionStart),N=Math.round(a.secureConnectionStart-a.connectStart),C=Math.round(a.responseStart-a.requestStart),P=Math.round(a.responseEnd-a.responseStart),z=[A,R,N,C,P];qe.uploadEvent({log:`stat-schedule-net:${l}(${p}(${f}->${g})->${z.join("->")}) ${d}`,userId:t}),r=_e(Y({},r),{totalCost:l,local:p,dns:A,tcp:N,tls:R,request:C,response:P});break}}catch(o){F.error("getScheduleDetailCost error",o)}return r}function rf(l){return y(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:d}){var f;if(!hl&&tf&&dT>Date.now())return{isCached:!0,result:tf};let p={delta:0,count:[1,1],msg:[],detail:[]};try{let g=new FormData;g.append("userId",String(i)),g.append("sdkAppId",String(t)),g.append("isStrGroupId",String(e)),g.append("groupId",String(r)),g.append("sdkVersion",s),g.append("userSig",String(o));let A=((f=yield hs())==null?void 0:f.model)||Zd();A&&g.append("model",A);let R=Li();R&&g.append("osString",R),a&&g.append("role",String(a)),d&&g.append("latencyLevel",String(d)),n&&g.append("frameWorkType",String(n));let N=Te(),C=yield UR(g,p,t);C.config&&(C.config.loggerDomain&&ts(C.config.loggerDomain),Ye(C.config.scheduleCache)&&Qi(!C.config.scheduleCache)),p.delta=Te()-N;let P=PR(Number(t),i,N);return tf=C,{isCached:!1,result:C,detailCost:P}}catch(g){let A=mt(g)?g[0]:g,R=Fe(A.code)?A.code:0,N=`schedule failed${A.message?`: ${A.message}`:""}`,C=new se({code:q.SCHEDULE_FAILED,extraCode:R,message:We({key:He.JOIN_ROOM_FAILED,data:{error:N,code:R}})});throw F.error(N,R),C}})}var gi={main:"",backup:""};function pl(i){mt(i)?(gi.main=i[0],gi.backup=i[1]):gi.main=i}var uT=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(uT||{});function Bo(i,t,e=M.MAIN,r=!1){return`https://${gi[e]||fl(i,e,r)}/api/v1/${t}`}function LR(i,t,e){let r=Bo(i,t),o=Bo(i,t,M.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(d=>d.json()),a=fetch(`${o}?${s}`).then(d=>d.json());return Ia([n,a])}function fl(i,t=M.MAIN,e=!1){let r;return Rr(i)?e?r=t===M.MAIN?Ci.MAIN_OVERSEA_BACKUP:Ci.BACKUP_OVERSEA:r=t===M.MAIN?Ci.MAIN_OVERSEA:Ci.BACKUP_OVERSEA:r=t===M.MAIN?Ci.MAIN:Ci.BACKUP,r}function kR(i,t,e){return new Promise((r,o)=>{wi({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var cT=(i,t)=>Eo({retryFunction:kR,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function UR(i,t,e){return new Promise((r,o)=>{let s=null;Ia([cT(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{t.msg[0]=n.message,s||(d>=1&&(l[0]=Bo(e,"config",M.MAIN,!0)),a())})(Bo(e,"config",M.MAIN),i,{get timeout(){return ns(2+t.count[0])*1e3}}),cT(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:d,retryFuncArgs:l})=>{t.msg[1]=n.message,s||(d>=2&&(l[0]=Bo(e,"config",M.BACKUP,!0)),a())})(Bo(e,"config",M.BACKUP),i,{get timeout(){return ns(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var VR=i=>i.startsWith("data:application/octet-stream;base64,"),FR=i=>i.startsWith("file://"),Dc=class{constructor(){m(this,"_log");this._log=F.createLogger({id:"fd"})}download(t,e){return y(this,null,function*(){let{type:r="blob"}=e||{};t=ds(t);try{let o=Te(),s;if(Xe(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let n=Te()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${n}ms`),X.addSuccessEvent({key:522700,cost:Te()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),X.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return y(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok){let s=new Error(`network response was not ok: ${r.status}`);throw s.status=r.status,s}let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{if(s.status===200||s.status===0&&s.response)r({data:s.response});else{let n=new Error(`XHR failed, status: ${s.status}`);n.status=s.status,o(n)}},s.onerror=o,s.send(null)})}loadWasm(t,e){return y(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=Te(),o=null,s=null;if(Xe(WebAssembly.instantiateStreaming)&&!VR(t)&&!FR(t)&&Xe(fetch))try{let n=fetch(t);o=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){s=n}if(!o)try{let n=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(n,e)).instance}catch(n){s=n}if(o){let n=Te()-r;return this._log.info(`loadedWasm ${t}, cost: ${n}ms`),X.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),X.addFailedEvent({key:522701,error:s}),s})}loadScript(t){this._log.info(`loadScript ${t}`);let e=Te();return new Promise((r,o)=>{let s=document.createElement("script");s.type="text/javascript",s.onload=()=>{this._log.info(`loadedScript ${t}, cost: ${Te()-e}ms`),X.addSuccessEvent({key:522702,cost:Te()-e,split:1e3}),r(s)},s.onerror=n=>{this._log.error(`failed to loadScript ${t}, error: ${(n==null?void 0:n.message)||JSON.stringify(n)}`),X.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};Z([As({settings:{timeout:0,retries:3},onError(t,e,r){var o;(t==null?void 0:t.status)===404||(o=t==null?void 0:t.message)!=null&&o.includes("404")?(this._log.warn("download 404, stop retry"),r(t)):e()},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],Dc.prototype,"download",1),Z([As({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],Dc.prototype,"loadScript",1);var wc=new Dc;function lT({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:Ps,LocalVideoTrack:_r,LocalScreenTrack:mi,room:t,assetsPath:r,fileDownloader:wc,innerEmitter:U,INNER_EVENT:B,constants:mm,environment:bn,utils:wp,eventLogger:qe,log:this.room.getLogger(),loggerManager:F,errorModule:e,kvStatManager:X,rtcDectection:bo,trtc:this,rx:Cp,enums:ah,schedule:of,getDevices:Mn,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>y(this,null,function*(){window.VisionTaskRegistry||(yield wc.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:ze(),deviceDetector:dt,AudioPlayer:Pn,showAutoPlayDialog:Dn,Timer:gt,clearStarted:(o,s)=>{let n=o.getAlias(),a=Xi.instances.get(this);if(a)if(s){let d=a.get(n+s);if(!d)return;d.started=!1}else a.forEach((d,l)=>{l.startsWith(n)&&(d.started=!1)})},startGetPCM:Ec,createAudioNode:sc,getNetworkTimeOffset:Ff,validateSourceNode:()=>{var o;if(ot&&!((o=this.room.audioManager._localAudioPipline)!=null&&o.source.node))throw new oe({code:ne.DEVICE_ERROR,extraCode:5310,message:"The audio processing plugin cannot be used due to the microphone's sampling rate is not 48KHz in Firefox. Please switch to another browser such as Chrome."})}}}var mT=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=We({key:He.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return F.warn(`${s}
99
98
 
100
- ${o.stack}`),!1}},i};var ya=new WeakMap;function iy(i){let t=ya.get(i);t&&(t.forEach(e=>clearTimeout(e)),ya.delete(i))}function Zc(i,t){return ut((e,r)=>function(...o){let s=ya.get(this);s||(s=new Map,ya.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let c=setTimeout(()=>{var d;(d=ya.get(this))==null||d.delete(n)},i);s.set(n,c)}else{clearTimeout(a);let c=window.setTimeout(()=>{var d;e.apply(this,o),(d=ya.get(this))==null||d.delete(n)},i);s.set(n,c)}})}var sy="trtc-sdk-v5",Vf="5.14.2-wasm.2";function br(...i){return ut((t,e)=>function(...r){try{$l.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function Bf(...i){return ut((t,e)=>function(...r){try{$l.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function $l(i,t,e,r){if(Gt(i))for(let o=0;o<i.length;o++)Bl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Bl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function Bl({rule:i,value:t,key:e,fnName:r,className:o}){function s(c){return{code:ke.INVALID_PARAMETER,extraCode:c,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(z(t)){if(i.required)throw new Oe(s(5001));if(z(i.defaultValue)){Rt(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let c=!1;for(let d=0;d<i.type.length;d++)i.type[d]===null&&t===null&&(c=!0),Rt(i.type[d])&&t instanceof i.type[d]&&(c=!0),nt(i.type[d])&&Xt(t)===i.type[d].toLowerCase()&&(c=!0);if(!c)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(d=>Os(d)?Ln(d):nt(d)?d:Xt(d))},value:t}})}else if(!z(i.type)&&Xt(t)!==i.type)throw new Oe(s(5002));if(i.allowEmpty===!1){let c=ft(t)&&(t===0||Number.isNaN(t)),d=nt(t)&&t.trim()==="";if(c||d)throw new Oe(s(5003))}if(i.notLessThanZero&&ft(t)&&t<0)throw new Oe(s(5006));if(!z(i.min)&&ft(t)&&t<i.min)throw new Oe(s(5007));if(!z(i.max)&&ft(t)&&t>i.max)throw new Oe(s(5008));if(nt(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new Oe(s(5004))}else if(Rt(i.instanceOf)&&!(t instanceof i.instanceOf))throw new Oe(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new Oe(s(5005));let{properties:n}=i;Nr(n)&&Xr(t)&&Object.keys(n).forEach(c=>{Bl.call(this,{rule:n[c],value:t&&t[c],key:`${c}`,fnName:r,className:o})});let{arrayItem:a}=i;Nr(a)&&Gt(t)&&t.forEach((c,d)=>{Bl.call(this,{rule:a,value:c,key:`${e}[${d}]`,fnName:r,className:o})}),Rt(i.validate)&&i.validate.call(this,t,e,r,o,this)}function Vt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return ut((n,a)=>function(...c){var g,T,E;function d(y,v,M){if(M&&M.includes(y))return"hided";if(e){let w=e(...c);if(c[w.argIndex]===v)return w.value}if(v===c||y in c)return v;try{return v instanceof HTMLElement?`id: ${v.id} type:${Xt(v)}`:v instanceof MediaStreamTrack?Kd(v):(JSON.stringify(v),v)}catch(w){return`type:${Xt(v)}`}}let m=this._log||se;if(o!=null&&o(...c))return n.apply(this,c);c.length>0?m.info(`${a}() ${JSON.stringify(c,(y,v)=>d(y,v,["userSig","privateMapKey"]))}`):m.info(`${a}()`);let l=r?r(...c):xu[a],f=(s==null?void 0:s(...c))||!1;try{let y=n.apply(this,c),v=Xe();if($o(y)){let M=`${a.includes("Plugin")?`${((T=(g=c[0]).getName)==null?void 0:T.call(g))||""} `:" "}`;return y.then(w=>(m.info(`${a}() success ${M}${t.call(this,...c)}`),Se.addSuccessEvent({key:l,cost:Xe()-v}),w)).catch(w=>{var P;w=Oe.convertFrom.call(this,w,a,c.length===1?c[0]:c);let H=w.extraCode||w.code,B=(P=w.message)!=null&&P.includes(H)?"":` code:${H}`;throw f||m.error(`${a}() failed ${M}${t.call(this,...c)} ${w}${B} params: ${JSON.stringify(c,d)}`),Se.addFailedEvent({key:l,error:w}),w})}return Se.addSuccessEvent({key:l}),y}catch(y){y=Oe.convertFrom.call(this,y,a);let v=y.extraCode||y.code,M=(E=y.message)!=null&&E.includes(v)?"":` code:${v}`;throw f||m.error(`${a}() failed ${y}${M} params: ${JSON.stringify(c,d)}`),Se.addFailedEvent({key:l,error:y}),y}})}var Fl=i=>ut((t,e)=>function(r,o){return D(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new Oe({code:ke.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Rt(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new Oe({code:ke.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return $l.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Hl=0,$f,Co=class Co{constructor(t){this.core=t;p(this,"log");p(this,"customAudioReferenceMap",new Map);p(this,"audioRefId",0);p(this,"audioContext",bt());p(this,"localAudioWorkletNode");p(this,"screenAudioWorkletNode");p(this,"mixNode");p(this,"silentNode");Hl=Hl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Hl}`}),this.log.info(`created id=${this.getAlias()}${Hl}`),this.installEvent()}static getStartValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack&&!t.room.audioManager.hasScreenAudioTrack)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return $f||($f=this.doPreload(t)),$f}doPreload(t){return D(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield yo(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Co.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Co.getStartValidateRule(this.core);case"update":return Co.updateValidateRule;case"stop":return Co.stopValidateRule}}start(t){return D(this,null,function*(){var f,g,T,E;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:c,enableDump:d,isLocalAudioNeedAudioProcess:m=!0,isScreenAudioNeedAudioProcess:l=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=m,this.core.room.audioManager.isScreenAudioNeedAudioProcess=l,!n)throw new Oe({code:ke.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${n}/audioProcessor-wasm.js`),m&&!this.localAudioWorkletNode){let{sign:y,status:v,timestamp:M}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,M,y,v,e)}if(l&&!this.screenAudioWorkletNode){let{sign:y,status:v,timestamp:M}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,M,y,v,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(f=this.localAudioWorkletNode)==null||f.port.postMessage({type:"enable"}),(g=this.screenAudioWorkletNode)==null||g.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),z(a)||a.forEach(y=>{this.customAudioReferenceMap.set(y,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:y,refId:`o-${this.audioRefId++}`})}),z(c)||(T=this.localAudioWorkletNode)==null||T.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:c}}),z(d)||(E=this.localAudioWorkletNode)==null||E.port.postMessage({type:"dump",data:{enable:d}})})}update(t){return D(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;z(e)||(this.customAudioReferenceMap.forEach((c,d)=>{this.customAudioReferenceMap.delete(d),this.core.room.audioManager.updateAudioReference({type:"remove",refId:c})}),e.forEach(c=>{this.customAudioReferenceMap.set(c,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:c,refId:`o-${this.audioRefId++}`})})),z(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),z(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return D(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return D(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:c}=yield qR({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${c}`),new Oe({code:ke.INVALID_PARAMETER,message:c});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,c){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=d=>{var l;let{data:m}=d;switch(m.type){case"cost":let f=(m==null?void 0:m.value)>10?"info":"debug";this.log[f](`${e==="localAudio"?"":`[${e}] `}avg cost: ${m.value} max: ${m==null?void 0:m.max}(${Rn(new Date(m==null?void 0:m.maxCostTimestamp))}) hist: ${(l=m==null?void 0:m.hist)==null?void 0:l.join(" ")}`);return;case"log":this.log[m.logLevel](`${e==="localAudio"?"":`[${e}] `}${m.value}`);return;case"dump":ee.emit("265",{room:c,data:m.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return D(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return D(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};p(Co,"updateValidateRule",{type:"object"}),p(Co,"stopValidateRule",{type:"object"}),p(Co,"Name","AudioProcessor");var Wl=Co;function jR(i,t=j.MAIN){return`https://${Qi[t]||Vl(i,t)}/api/v1/audioAiAuth`}function qR(o){return D(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${jR(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,a=yield fetch(n),{data:{errCode:c,errMsg:d,sign:m,status:l}}=yield a.json();if(l==="1")return{auth:!0,sign:m,status:l,message:d};let f=si(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",g="Init RTCAudioProcessor failed.",T="";switch(c){case 1:T="Please check your params.";break;case 2:T=`You need to buy packages. Refer to: ${f}`;break;case 3:T="Server is invalid. Please contact our engineer. ";break;case 4:T=`Your packages is not active. Refer to: ${f}`;break;case 5:T=`Your packages is expired. Refer to: ${f}`;break;case 6:T="Your version is not supported.";break}return{auth:!1,status:l,message:d?`${g} Reason: ${d}. ${T}`:`${g}, ${T}`}})}var Gl=0,Ff=class{constructor(t,e){p(this,"audioObjectURL");p(this,"player");p(this,"publisher");p(this,"mixInput");this.mixInput=new ia(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(z(t.volume)||(this.volume=t.volume),z(t.loop)||(this.loop=t.loop),z(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reload(t){return D(this,null,function*(){if(t.url){let e=yield Yc.download(t.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(t),this.updateSettings(t))}else this.mixInput.replaceSource(t.track)})}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return Promise.all([(t=this.player)==null?void 0:t.play(),(e=this.publisher)==null?void 0:e.play()])}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function Sa(i,t){if(t&&typeof t!="function")throw new Oe({code:ke.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var Yi=class Yi{constructor(t){this.core=t;p(this,"log");p(this,"mixedMusicMap",new Map);p(this,"cacheMusicMap",new Map);Gl=Gl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Gl}`}),this.log.info(`created id=${this.getAlias()}${Gl}`)}getName(){return Yi.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return Yi.startValidateRule;case"update":return Yi.updateValidateRule;case"stop":return Yi.stopValidateRule}}start(t){return D(this,null,function*(){let{room:e}=this.core;this.core.validateSourceNode(),this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new Ff(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t);try{yield s.play()}catch(n){yield this.handleAutoPlayFailed(s,t,n)}this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),Se.addEnum({key:502700,value:3}),this.kvUpload(t)})}handleAutoPlayFailed(t,e,r){return D(this,null,function*(){if(r.name==="NotSupportedError")this.log.error(`play failed, try to reload source. error: ${r}`),yield t.reload(e),yield t.play();else if(r.name==="NotAllowedError")if(this.core.room.enableAutoPlayDialog){let o=()=>{var s;(s=t.play())==null||s.finally(()=>{ee.off("154",o,this)})};ee.on("154",o,this),ta()}else this.core.trtc.emit(Ne.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>D(this,null,function*(){return t.play()})});else throw r})}update(t){return D(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),z(r)||n.setOperation(r),z(o)||n.seek(o),this.kvUpload(t)})}stop(e){return D(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:c,onDurationChange:d,onEnded:m}=t;e&&Se.addCount({key:502009}),r&&Se.addCount({key:502001}),o&&Se.addCount({key:502002}),s&&Se.addCount({key:502003}),n&&Se.addCount({key:502004}),a&&Se.addCount({key:502005}),typeof c!="function"&&Se.addCount({key:502007}),typeof m!="function"&&Se.addCount({key:502008}),typeof d!="function"&&Se.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId:e}),this.stop({id:e})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};p(Yi,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],n=o.split(".").pop(),a=s.indexOf(n)>=0,c=o.startsWith("blob"),d=o.startsWith("data");if(!(a||c||d))throw new Oe({code:ke.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new Oe({code:ke.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});Sa("onTimeUpdate",t.onTimeUpdate),Sa("onEnded",t.onEnded),Sa("onDurationChange",t.onDurationChange)}}),p(Yi,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){Sa("onTimeUpdate",t.onTimeUpdate),Sa("onEnded",t.onEnded),Sa("onDurationChange",t.onDurationChange)}}),p(Yi,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),p(Yi,"Name","AudioMixer");var zl=Yi;var jl=0,Hf,wo=class wo{constructor(t){this.core=t;p(this,"log");p(this,"audioContext",bt("denoiser"));p(this,"workletNode");p(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5});jl=jl+1,this.log=t.log.createChild({id:`${this.getAlias()}${jl}`}),this.log.info(`created id=${this.getAlias()}${jl}`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return Hf||(Hf=this.doPreload(t)),Hf}doPreload(t){return D(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield yo(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return wo.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(t){switch(t){case"start":return wo.startValidateRule(this.core);case"update":return wo.updateValidateRule;case"stop":return wo.stopValidateRule}}start(t){return D(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new Oe({code:ke.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${o}/denoiser-wasm${Km()?"":"-nosimd"}.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:c,message:d}=yield JR(r,qe(be({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${d}`),new Oe({code:ke.INVALID_PARAMETER,message:d});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:s,sign:a,status:c}}),this.workletNode.port.onmessage=m=>{var f;let{data:l}=m;if(l.type==="cost"){let g=(l==null?void 0:l.max)>20?"warn":(l==null?void 0:l.max)>10?"info":"debug";this.log[g](`avg cost: ${l.value} max: ${l==null?void 0:l.max}(${Rn(new Date(l==null?void 0:l.maxCostTimestamp))}) hist: ${(f=l==null?void 0:l.hist)==null?void 0:f.join(" ")}`)}else l.type==="log"&&this.log[l.logLevel](`${l.value}`)}}this.updateConfig(t),this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(t){return D(this,null,function*(){this.updateConfig(t)})}stop(){return D(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}updateConfig(t){if(!this.workletNode)return;let e=!1;z(t.mode)||(t.mode===0?this.config.enableFarFieldReduce=!1:t.mode===1&&(this.config.enableFarFieldReduce=!0),e=!0),z(t.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=t.farFieldReduceThreshold,e=!0),e&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};p(wo,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),p(wo,"stopValidateRule",{type:"object"}),p(wo,"Name","AIDenoiser");var ql=wo;function JR(s,n){return D(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:c,sign:d,status:m}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(m==="1")return{auth:!0,sign:d,status:m,message:c};let l=si(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",f="Init RTCAIDenoiser failed.",g="";switch(a){case 1:g="Please check your params.";break;case 2:g=`You need to buy packages. Refer to: ${l}`;break;case 3:g="Server is invalid. Please contact our engineer. ";break;case 4:g=`Your packages is not active. Refer to: ${l}`;break;case 5:g=`Your packages is expired. Refer to: ${l}`;break;case 6:g="Your version is not supported.";break}return{auth:!1,status:m,message:c?`${f} Reason: ${c}. ${g}`:`${f}, ${g}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var ay=Li(mo(),1);var Wf=class extends ay.EventEmitter{constructor(){super();p(this,"observer");p(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return D(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!Bt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){It.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&se.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){It.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},QR=new Wf,Gf=QR;function YR([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new rn(new DataView(new Uint8Array(s).buffer),!0)}function ZR(i){return i.type==="empty"||i.data.byteLength===0}function KR(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function e0(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function zf({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-e0(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(YR),s=o.reduce((m,l)=>m+l.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),c=new DataView(i.data),d=0;for(let m=0;m<o.length;m++)for(let l=0;l<o[m].dataView.byteLength;l++)a.setInt8(d++,o[m].dataView.getInt8(l));for(let m=0;m<i.data.byteLength;m++)a.setInt8(d++,c.getInt8(m));return i.data=n,i}function jf({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(ZR(i)||!KR(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let c=e.getUint8(a);if(c===0)o++;else if(c===1){if(o===2||o===3){let d=a-o;if(s===-1?s=d:n===-1&&(n=d,r.push(new rn(new DataView(e.buffer.slice(s,n)))),s=d,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(d);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var qf=0,Kc=class Kc{constructor(t){this.core=t;p(this,"log");p(this,"_seiMessageList",[]);p(this,"_smallSeiMessageList",[]);p(this,"_subStreamSeiMessageList",[]);qf++,this.log=t.log.createChild({id:`${this.getAlias()}${qf}`}),this.log.info(`[sei] created id=${this.getAlias()}${qf}`),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return zf({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return jf({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(Ne.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destroy"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:zs?this.encode:zf,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:zs?this.decode:jf,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return Kc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};p(Kc,"autoStart",!0),p(Kc,"Name","SEI");var Xl=Kc;function Xf({frame:i,onDump:t}){return t==null||t(),i}function Jf({frame:i,onDump:t}){return t==null||t(),i}function Qf({frame:i,onDump:t}){return t==null||t(),i}function Yf({frame:i,onDump:t}){return t==null||t(),i}var cy=()=>{let i=window.navigator&&window.navigator.userAgent||"",t=/iPad/i.test(i)||/iPhone/i.test(i),e=/Android/i.test(i);return t||e},Ke={LOG_BUTTON:"Log",NETWORK_BUTTON:"Network",DUMP_BUTTON:"Dump",DUMPING_BUTTON:"Dumping",END_BUTTON:"End",UPLOAD_BUTTON:"Upload Log",EXPORT_BUTTON:"Export Log",HIDE_BUTTON:"Hide",GO_BOTTOM:"goBottom",BACK_TOP:"backTop",CLEAR_LOG:"Clear Log",UPLINK:"Uplink",DOWNLINK:"Downlink",NO_DATA:"No Data",BASIC:"Basic",DURATION:"Duration",VIDEO:"Video",AUDIO:"Audio",SCREEN:"Screen"},dy=i=>i.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d").replace(">","&gt;").replace(">","&lt;"),ls={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
101
- 1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
102
- 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},"main stream - video player is paused":{tips:`The remote stream video playback is paused, which usually has two possibilities:
103
- 1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
104
- 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{ls[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var uy=Object.keys(ls);var _y=Li(hy());var kt="trtc_debug_dialog",ms=`${kt}_activated`,Jl=`${kt}_switch`,eg=`${kt}_mask`,Ql=`${kt}_panel`,tg=`${kt}_tabber`,Ia=`${kt}_tab`,rg=`${kt}_topbar`,mn=`${kt}_toptab`,No=`${kt}_content`,ih=`${kt}_has_topbar`,og=`${No}_log`,pn=`${No}_network`,Oo=`${kt}_dump`,ed=`${pn}_title`,od=`${pn}_basic`,Yl=`${pn}_local`,Zl=`${pn}_remote`,Kf=`${Oo}_title`,ba=`${Oo}_local`,Ki=`${Oo}_remote`,my=`${Ki}_hook`,oh=`${kt}_banner`,Ey=`${oh}_item`,py=`${kt}_toolbar`,td=`${kt}_tool`,Do=`${kt}_item`,Ty=`${Do}_debug`,yy=`${Do}_info`,Sy=`${Do}_warn`,Iy=`${Do}_error`,fy=`${kt}_back_top`,gy=`${kt}_go_bottom`,Kl=`${Oo}_local_audio`,eh=`${Oo}_local_video_main`,th=`${Oo}_local_video_aux`,rd=`${kt}_tooltip`,by=`${od}_network_info`,Ay=`${od}_room_info`,rh=`${og}_controller`,Zi="success",Aa="warning",hs="failed",sh=0,ig=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.addStyle(),this.addDialog()}addDialog(){var e;let t=document.createElement("template");t.innerHTML=`<div id="${kt}" class="${kt}"><div class="${Jl}">Debug#${++sh}</div><div class="${eg}"></div><div class="${Ql}"><div class="${tg}"><a class="${Ia} ${ms}" data-tab="log">${Ke.LOG_BUTTON}</a><a class="${Ia}" data-tab="network">${Ke.NETWORK_BUTTON}</a><a class="${Ia}" data-tab="dump">${Ke.DUMP_BUTTON}</a></div><div class="${rh}"><div data-type="back_top">${Ke.BACK_TOP}</div><div data-type="go_bottom">${Ke.GO_BOTTOM}</div><div data-type="clear_log">${Ke.CLEAR_LOG}</div></div><div class="${rg}"><a class="${mn} ${ms}" data-type="all">All</a><a class="${mn}" data-type="debug">Debug</a><a class="${mn}" data-type="info">Info</a><a class="${mn}" data-type="warn">Warn</a><a class="${mn}" data-type="error">Error</a></div><div class="${No} ${ih}"><div class="${og}"></div><div class="${pn}"><div class="${ed}">${Ke.BASIC}</div><div class="${od}"><div class="${Ay}"></div><div class="${by}">${Ke.NO_DATA}</div></div><div class="${ed}">${Ke.UPLINK}</div><div class="${Yl}">${Ke.NO_DATA}</div><div class="${ed}">${Ke.DOWNLINK}</div><div class="${Zl}">${Ke.NO_DATA}</div></div><div class="${Oo}"><div class="${Kf}">${Ke.UPLINK}</div><div class="${ba}"><div id="${Kl}"><span>${Ke.AUDIO} - ${Ke.DURATION}(s):</span><input type="number" min=0 value=0></input><button class="dump">${Ke.DUMP_BUTTON}</button><button class="end-dump" disabled>${Ke.END_BUTTON}</button></div><div id="${eh}"><span>${Ke.VIDEO} - ${Ke.DURATION}(s):</span><input type="number" min=0 value=10></input><button class="dump">${Ke.DUMP_BUTTON}</button><button class="end-dump" disabled>${Ke.END_BUTTON}</button></div><div id="${th}"><span>${Ke.SCREEN} - ${Ke.DURATION}(s):</span><input type="number" min=0 value=10></input><button class="dump">${Ke.DUMP_BUTTON}</button><button class="end-dump" disabled>${Ke.END_BUTTON}</button></div></div><div class="${Kf}">${Ke.DOWNLINK}</div><div class="${Ki}"><div class="${my}">userId:<input id="dump-remote-video-hook-userid" value='*' />duration:<input id="dump-remote-video-hook-duration" min='1' value='10' type='number' />mediaType:<select id="dump-remote-video-hook-mediaType" value='main' ><option value='main' checked>Video</option><option value='sub'>Screen</option></select><button id="dump-remote-video-hook-button">dump if video is available</button></div></div></div></div><div class="${oh}"></div><div class="${py}"><a id="trtc_upload" class="${td}">${Ke.UPLOAD_BUTTON}</a><a id="trtc_export" class="${td}">${Ke.EXPORT_BUTTON}</a><a id="trtc_hide" class="${td}">${Ke.HIDE_BUTTON}</a></div></div></div>`,(e=this.shadowRoot)==null||e.appendChild(t.content.firstChild)}addStyle(){var e;let t=document.createElement("style");t.textContent=`#${kt}{font-size:14px;--DD-BG-0:#ededed;--DD-BG-1:#f7f7f7;--DD-BG-2:#fff;--DD-BORDER:rgba(0,0,0,0.1);--DD-ERROR:red;--DD-WARN:#fa9d3b;--DD-INFO:#000;--DD-DEBUG:#10aeff;--DD-WARN-BG:#fff3cc;--DD-ERROR-BG:#ffe6e6;}#${kt} a,.${Jl}{cursor:pointer;}.${kt}{color:black;}.${Jl}{display:block;position:fixed;right:50px;bottom:${150+sh*50}px;border-radius:5px;background-color:#07c160;color:#fff;padding:5px 10px;z-index:10000;}.${eg}{display:none;position:fixed;left:0;top:0;right:0;bottom:0;z-index:10001;background-color:rgb(0,0,0,0.6);}.${Ql}{background-color:#ededed;display:none;position:fixed;min-height:85%;left:60%;right:0;bottom:0;z-index:10002;border:1px solid var(--DD-BG-0);}@media (max-width:768px) {.${Ql}{left:0;}}.${tg}{display:flex;height:2em;border-bottom:1px solid var(--DD-BORDER);}.${Ia}{padding:0 20px;border-right:1px solid rgba(0,0,0,0.1);line-height:2em;color:black;}.${Ia}.${ms}{background-color:var(--DD-BG-2);}.${Ia}.disabled{cursor:not-allowed;background-color:#ededed;color:#999;}.${rg}{height:2em;display:flex;flex-direction:row;}.${mn}{width:20%;text-align:center;line-height:2em;border-right:1px solid var(--DD-BORDER);border-bottom:1px solid var(--DD-BORDER);color:black;}.${mn}.${ms}{border-bottom:1px solid #1485ee;background-color:var(--DD-BG-2);}.${No}{background-color:#fff;position:absolute;left:0;right:0;top:2em;bottom:8em;overflow-y:scroll;overflow-x:hidden;}.${No}.${ih}{top:4em;bottom:10em}.${pn}{display:none;}.${Oo}{display:none;}.${ed},.${Kf}{line-height:2em;text-align:center;background-color:var(--DD-BG-0);border-bottom:1px solid var(--DD-BORDER);}.${od},.${Yl},.${Zl}{text-align:center;border-bottom:1px solid var(--DD-BORDER);}.${ba},.${Ki}{display:flex;flex-direction:column;padding:0.5em 0;justify-content:center;align-items:center;}.${ba} div input{margin:0 10px;height:1.5em;width:4em;}.${ba} div {padding:10px 0;border-radius:5px;}.${ba} div button,.${Ki} div button {cursor:pointer;height:1.8em;border-radius:5px;margin-right:5px;}.${ba} div button[disabled],.${Ki} div button[disabled]{cursor:not-allowed;}.${Ki} select {height:1.8em;margin:0 10px;}.${Ki} div input{margin:0 10px;height:1.5em;width:4em;}.${my} {line-height:3em;padding:0.5em;}.${ed}{text-align:center;background-color:var(--DD-BG-0);border-bottom:1px solid var(--DD-BORDER);}.${od},.${Yl},.${Zl}{text-align:center;border-bottom:1px solid var(--DD-BORDER);}.${Do}{border-bottom:1px solid var(--DD-BG-0);padding:5px 10px;overflow-wrap: break-word;}.${Iy}{color:var(--DD-ERROR);background-color:var(--DD-ERROR-BG);}.${Sy}{color:var(--DD-WARN);background-color:var(--DD-WARN-BG);}div .${yy}{color:var(--DD-INFO);}.${Ty}{color:var(--DD-DEBUG);}.${oh}{position:absolute;left:0;right:0;bottom:2em;height:6em;border-bottom:1px solid var(--DD-BORDER);display:flex;flex-direction:column;overflow-y:scroll;background-color:var(--DD-BG-1);}.${Ey}{border-bottom:1px solid var(--DD-BORDER);padding:5px 10px;overflow-wrap: break-word;}.${py}{position:absolute;line-height:2em;display:flex;flex-direction:row;left:0;right:0;bottom:0;}.${td}{flex:1;color:black;text-align:center;background-color:#ededed;border-right:1px solid var(--DD-BORDER);}#${kt} .${fy},#${kt} .${gy}{position:absolute;height:2em;width:6em;right:2em;border-radius:5px;background-color:rgba(30,136,229,0.8);z-index:10003;cursor:pointer;padding:0 5px;line-height:2em;color:white;text-align:center;}.${gy}{bottom:9em;}.${fy}{bottom:11.5em;}#${kt} .${td}.disable{cursor:not-allowed;background-color:#ededed;color:#999;}.${rd} {position:relative;display:inline-block;}.${rd} .tooltiptext{visibility:hidden;width:180px;background-color:black;color:#fff;text-align:center;padding:5px 0;border-radius:6px;position:absolute;}.${rd} .tooltip-top {bottom:125%;left:50%;margin-left:-90px;}.${rd}:hover .tooltiptext{visibility:visible;}.${rh}{position:absolute;left:0;right:0;bottom:8em;height:2em;display:flex;align-items:center;}.${rh} div{flex:1;cursor:pointer;border-right:1px solid var(--DD-BORDER);text-align: center;}`,(e=this.shadowRoot)==null||e.appendChild(t)}};customElements.define("trtc-basic-debug-dialog",ig);var id=class{constructor(t,e,r,o,s,n){p(this,"_dialogNode",null);p(this,"_switchNode",null);p(this,"_maskNode",null);p(this,"_panelNode",null);p(this,"_logContentNode",null);p(this,"_networkContentNode",null);p(this,"_dumpContentNode",null);p(this,"_tabNodes",[]);p(this,"_toptabNodes",[]);p(this,"_hasMove",!1);p(this,"_showDialog",!1);p(this,"_isMobile",!1);p(this,"_showLogType","all");p(this,"prevBytesSent",0);p(this,"prevBytesReceived",0);p(this,"_core");p(this,"_log");p(this,"_logList",[]);p(this,"isUploading",!1);p(this,"publishMap",new Map);p(this,"dumpLocalVideoMap");p(this,"dumpRemoteVideoMap");p(this,"dumpLocalAudioMap");p(this,"dumpRemoteAudioMap");p(this,"eventMap",new Map);p(this,"switchPos",{x:0,y:0,startX:0,startY:0,endX:0,endY:0,isTouchEnd:!1});p(this,"handleLeaveSuccess",({room:t})=>{var r,o;if(!this.hitTest(t))return;let e=(o=(r=this._dialogNode)==null?void 0:r.shadowRoot)==null?void 0:o.querySelector(`.${Ki}`);for(let s of this.publishMap.values())e==null||e.removeChild(s);this.publishMap.clear()});p(this,"handleJoinSuccess",({room:t})=>{var r,o;if(!this.hitTest(t))return;let e=(o=(r=this._dialogNode)==null?void 0:r.shadowRoot)==null?void 0:o.querySelector(`.${Ay}`);e.innerHTML=`sdkAppId: ${t.sdkAppId}<br/>roomId: ${t.roomId}<br/>userId: ${t.userId}<br/>`});p(this,"handleRemoteVideoAvailable",t=>{let e=t.streamType==="sub"?"auxiliary":"main";this.renderDumpTab(t.userId,"remote",e,"publish")});p(this,"handleRemoteVideoUnavailable",t=>{let e=t.streamType==="sub"?"auxiliary":"main";this.renderDumpTab(t.userId,"remote",e,"unpublish")});p(this,"handleRemoteAudioAvailable",t=>{this.renderDumpTab(t.userId,"remote","audio","publish")});p(this,"handleRemoteAudioUnavailable",t=>{this.renderDumpTab(t.userId,"remote","audio","unpublish")});p(this,"renderDumpTab",(t,e,r,o)=>{var a,c,d;let s={main:"video",auxiliary:"screen",audio:"audio"},n=(m,l)=>{var M,w,H;let f=document.createElement("div");f.innerText=`${m} - ${s[l]} - ${Ke.DURATION}(s):`;let g=document.createElement("input");g.type="number",g.min="0",g.value="10",g.id=`dump_remote_${l}_${m}`;let T=document.createElement("button");T.innerText=Ke.END_BUTTON,T.disabled=!0;let E=document.createElement("button");E.innerText=Ke.DUMP_BUTTON,E.onclick=()=>{let B,P,$=Number(g.value);if(l==="audio")({download:B,onDumpEnd:P}=new URLSearchParams(location.search).get("dump_audio_before_codec")==="true"?this.dumpAudioFromPipeline("remote",$,m):this.dumpAudio("remote",$,m));else{if(!this.isSupportDumpVideo())return;({download:B,onDumpEnd:P}=this.dumpVideo(l,"remote",$,m))}B&&(this.inactiveButton(E,Ke.DUMPING_BUTTON),$>0?setTimeout(()=>{B==null||B(),this.activeButton(E,Ke.DUMP_BUTTON)},$*1e3):(this.activeButton(T),T.onclick=()=>{T.onclick=null,B==null||B(),P==null||P(),this.activeButton(E,Ke.DUMP_BUTTON),this.inactiveButton(T)}))};let y;if(l!=="audio"){y=document.createElement("button"),y.innerText="preview",y.style.whiteSpace="pre";let B=document.createElement("video");document.body.appendChild(B),B.id=`${kt}_preview_remote_${l}_${m}`,B.style.cssText=`
105
- width: 320px;
106
- height: 240px;
107
- display: none;
108
- position: absolute;
109
- top: 50%;
110
- left: 50%;
111
- border: 3px solid #cccccc;
112
- transform: translate(-50%, -50%);
113
- z-index: 10004;
114
- `,y.onclick=()=>D(this,null,function*(){var P;if(B.style.display=B.style.display==="none"?"":"none",y&&(y.innerText=B.style.display==="none"?"preview":" hide "),!B.srcObject){let $=this._core.room.remotePublishedUserMap.get(m);if($){let de=(P=$[l==="main"?"remoteVideoTrack":"remoteAuxiliaryTrack"])==null?void 0:P.mediaTrack;de?(B.srcObject=new MediaStream([de]),yield B.play()):this.addInfoToBanner(hs,"failed to preview, remote video track is not available")}}})}f.appendChild(g),f.appendChild(E),f.appendChild(T),y&&f.appendChild(y),f.style.cssText="padding:10px;";let v=document.createElement("div");return v.style.cssText="width:100%;display:flex;justify-content:center;border-top: 1px solid var(--DD-BORDER);",v.appendChild(f),(H=(w=(M=this._dialogNode)==null?void 0:M.shadowRoot)==null?void 0:w.querySelector(`.${Ki}`))==null||H.appendChild(v),v};if(e==="remote")if(o==="publish"){let m=n(t,r);this.publishMap.set(`${t}-${e}-${r}`,m)}else{let m=this.publishMap.get(`${t}-${e}-${r}`);if(!m)return;(d=(c=(a=this._dialogNode)==null?void 0:a.shadowRoot)==null?void 0:c.querySelector(`.${Ki}`))==null||d.removeChild(m);let l=document.querySelector(`#${kt}_preview_remote_${r}_${t}`);l&&document.body.removeChild(l),this.publishMap.delete(`${t}-${e}-${r}`)}});p(this,"handleStatistics",t=>{var d,m,l,f,g,T;let e=(t.bytesSent-this.prevBytesSent)/2,r=(t.bytesReceived-this.prevBytesReceived)/2;this.prevBytesSent=t.bytesSent,this.prevBytesReceived=t.bytesReceived;let o=(m=(d=this._dialogNode)==null?void 0:d.shadowRoot)==null?void 0:m.querySelector(`.${by}`);o.innerHTML=`rtt: ${t.rtt} ms upLoss: ${t.upLoss}% downLoss: ${t.downLoss}% <br>
115
- \u2191 ${e/1e3} KB/s (${8*e/1e3} Kb/s) <br>
116
- \u2193 ${r/1e3} KB/s (${8*r/1e3} Kb/s) <br>
117
- `;let s=(f=(l=this._dialogNode)==null?void 0:l.shadowRoot)==null?void 0:f.querySelector(`.${Yl}`),n="";t.localStatistics.audio.bitrate&&(n=`<li>local audio: ${t.localStatistics.audio.bitrate} Kb/s audioLevel: ${t.localStatistics.audio.audioLevel.toFixed(5)}</li>`),t.localStatistics.video.length>0&&(n+=`${t.localStatistics.video.map(E=>`<li>local ${E.videoType} video: ${E.bitrate} Kb/s ${E.width}*${E.height} ${E.frameRate}fps</li>`).join("")}`),s.innerHTML=n===""?`${Ke.NO_DATA}`:n;let a=(T=(g=this._dialogNode)==null?void 0:g.shadowRoot)==null?void 0:T.querySelector(`.${Zl}`),c="";t.remoteStatistics.length>0&&t.remoteStatistics.forEach(E=>{let y=`remote ${E.userId}:`;E.audio.bitrate>0&&(y+=`<li>audio: ${E.audio.bitrate} Kb/s audioLevel: ${E.audio.audioLevel.toFixed(5)}</li>`),E.video.length>0&&E.video.forEach(v=>{y+=`<li>${v.videoType} video: ${v.bitrate} Kb/s ${v.width}*${v.height} ${v.frameRate}fps</li>`}),c+=y}),a.innerHTML=c===""?`${Ke.NO_DATA}`:c});p(this,"pad",t=>t<10?`0${t}`:`${t}`);this._core=t,this._log=e,this.dumpLocalVideoMap=r,this.dumpRemoteVideoMap=o,this.dumpLocalAudioMap=s,this.dumpRemoteAudioMap=n,this.initCustomElements(),this.synchronizeLog(),this.installEvents(),window[`__trtc_instance_${sh}__`]=this._core.trtc}initCustomElements(){this._isMobile=cy();let t=document.createElement("trtc-basic-debug-dialog");document.body.appendChild(t);let e=t.shadowRoot;if(this._dialogNode=t,!e)return;this._switchNode=e.querySelector(`.${Jl}`),this._addEventListener(this._switchNode,"click",this.onSwitchClick.bind(this));let r=getComputedStyle(this._switchNode);this.switchPos.x=parseInt(r.right,10)||50,this.switchPos.y=parseInt(r.bottom,10)||100+sh*50,this._isMobile?(this._switchNode.ontouchstart=this.onTouchStart.bind(this),this._switchNode.ontouchend=this.onTouchEnd.bind(this),this._switchNode.ontouchmove=this.onTouchMove.bind(this)):this._switchNode.onmousedown=this.onMouseDown.bind(this),this._maskNode=e.querySelector(`.${eg}`),this._addEventListener(this._maskNode,"click",this.onMaskClick.bind(this)),this._panelNode=e.querySelector(`.${Ql}`),e.querySelector(`.${rh}`).childNodes.forEach(w=>{switch(w.getAttribute("data-type")){case"go_bottom":this._addEventListener(w,"click",this.onGoBottomClick.bind(this));break;case"back_top":this._addEventListener(w,"click",this.onBackTopClick.bind(this));break;case"clear_log":this._addEventListener(w,"click",this.onClearLogClick.bind(this));break}}),this._logContentNode=e.querySelector(`.${og}`),this._networkContentNode=e.querySelector(`.${pn}`),this._dumpContentNode=e.querySelector(`.${Oo}`),this._tabNodes=Array.from(e.querySelector(`.${tg}`).children),this._tabNodes.forEach(w=>{this._addEventListener(w,"click",this.onTabClick.bind(this))}),this._toptabNodes=Array.from(e.querySelector(`.${rg}`).children),this._toptabNodes.forEach(w=>{this._addEventListener(w,"click",this.onToptabClick.bind(this))});let s=e.querySelector("#trtc_upload");this._addEventListener(s,"click",this.onUploadClick.bind(this));let n=e.querySelector("#trtc_export");this._addEventListener(n,"click",this.onExportClick.bind(this));let a=e.querySelector("#trtc_hide");this._addEventListener(a,"click",this.onHideClick.bind(this));let c=e.querySelector(`#${eh} .dump`),d=e.querySelector(`#${eh} .end-dump`),m=Number(e.querySelector(`#${eh} input`).value);this._addEventListener(c,"click",this.getDumpButtonClickHandler.bind(this,c,d,m,"main","local"));let l=e.querySelector(`#${th} .dump`),f=e.querySelector(`#${th} .end-dump`),g=Number(e.querySelector(`#${th} input`).value);this._addEventListener(l,"click",this.getDumpButtonClickHandler.bind(this,l,f,g,"auxiliary","local"));let T=e.querySelector(`#${Kl} button`);this._addEventListener(T,"click",()=>{let w=Number(e.querySelector(`#${Kl} input`).value),{download:H,onDumpEnd:B}=new URLSearchParams(location.search).get("dump_audio_from_pipeline")==="true"?this.dumpAudioFromPipeline("local",w):this.dumpAudio("local",w);if(!H){this.addInfoToBanner(hs,"Failed to dump, please check if the current user has started the audio");return}if(this.inactiveButton(T,Ke.DUMPING_BUTTON),w>0)setTimeout(()=>{H(),this.activeButton(T,Ke.DUMP_BUTTON)},w*1e3);else{let P=e.querySelector(`#${Kl} .end-dump`);this.activeButton(P),P.onclick=()=>{P.onclick=null,H(),B==null||B(),this.activeButton(T,Ke.DUMP_BUTTON),this.inactiveButton(P)}}});let E=e.querySelector("#dump-remote-video-hook-userid"),y=e.querySelector("#dump-remote-video-hook-duration"),v=e.querySelector("#dump-remote-video-hook-mediaType"),M=e.querySelector("#dump-remote-video-hook-button");M.onclick=()=>{let w=Number(y.value);if(w<1){this.addInfoToBanner(hs,"duration at least 1s");return}let H=E.value;if(!H){this.addInfoToBanner(hs,"please input user id");return}H==="*"&&this.inactiveButton(M);let B=v.value,P=`remote_${H}_${B==="sub"?"auxiliary":B}`,$,de,Ae=L=>{if((L.userId===H||H==="*")&&L.streamType===B){if(this.addInfoToBanner(Zi,`[${L.userId}_${B}] starting to dump video, duration: ${w}s`),{download:$,onDumpEnd:de}=this.dumpVideo(L.streamType==="sub"?"auxiliary":L.streamType,"remote",w,L.userId),!$)return;setTimeout(()=>{$==null||$(),de==null||de(),H!=="*"&&this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,Ae)},w*1e3)}};this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,Ae),this.addInfoToBanner(Zi,`[${P}] waiting to dump video from ${H==="*"?"all remote users":`user ${H}`}, duration: ${w}s`)}}synchronizeLog(){this._core.loggerManager.getQueue().forEach(e=>{this.updateLog(e)})}isSupportDumpVideo(){return!this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED&&!this._core.rtcDectection.IS_SCRIPT_TRANSFORM_SUPPORTED?(this.addInfoToBanner(hs,"Current browser does not support dumping video"),!1):!0}_addEventListener(t,e,r,o){t&&(t.addEventListener(e,r,o),this.eventMap.set(t,{type:e,listener:r}))}_removeEventListener(){this.eventMap.forEach(({type:t,listener:e},r)=>{r&&r.removeEventListener(t,e)}),this.eventMap.clear(),this._switchNode&&(this._switchNode.onmousedown=null,this._switchNode.ontouchmove=null,this._switchNode.ontouchstart=null,this._switchNode.ontouchend=null)}closeDialog(){this.uninstallEvents(),this._removeEventListener(),this._dialogNode&&(document.body.removeChild(this._dialogNode),this._dialogNode=null)}updateLog(t){var r;this._logList.push(t);let e=document.createElement("div");switch(e.classList.add(Do),t.level){case 4:e.classList.add(Iy);break;case 2:e.classList.add(yy);break;case 3:e.classList.add(Sy);break;case 1:e.classList.add(Ty);break;default:break}e.textContent=t.log,this._showLogType!=="all"&&!e.classList.contains(`${Do}_${this._showLogType}`)&&(e.style.display="none"),(r=this._logContentNode)==null||r.appendChild(e),this.addHelper(e)}getDumpButtonClickHandler(t,e,r,o,s){if(!this.isSupportDumpVideo())return;let{download:n,onDumpEnd:a}=this.dumpVideo(o,s,r);if(n){this.addInfoToBanner(Zi,`[${s}_${o}] starting to dump...`),this.inactiveButton(t,Ke.DUMPING_BUTTON),r>0?setTimeout(()=>{n(),this.activeButton(t,Ke.DUMP_BUTTON)},r*1e3):(this.activeButton(e),e.onclick=()=>{e.onclick=null,a==null||a(),n(),this.activeButton(t,Ke.DUMP_BUTTON),this.inactiveButton(e)});return}this.addInfoToBanner(Zi,`[${s}_${o}] waiting to dump...`);let c=({track:d})=>{if(d.room===this._core.room&&d.streamType===o){this.addInfoToBanner(Zi,`[${s}_${o}] starting to dump`),s==="local"&&this._core.innerEmitter.off("104",c);let{download:m,onDumpEnd:l}=this.dumpVideo(o,s,r);if(!m)return;r>0?setTimeout(()=>{m(),this.activeButton(t,Ke.DUMP_BUTTON)},r*1e3):(this.activeButton(e),e.onclick=()=>{e.onclick=null,l==null||l(),m(),this.activeButton(t,Ke.DUMP_BUTTON),this.inactiveButton(e)})}};c.bind(this),s==="local"&&this._core.innerEmitter.on("104",c),this.inactiveButton(t,Ke.DUMPING_BUTTON)}onSwitchClick(){if(this._hasMove){this._hasMove=!1;return}this._showDialog?this.hideDialog():(this._isMobile&&(this._maskNode.style.display="block"),this._panelNode.style.display="block",this._switchNode.style.display="none",this._showDialog=!0,this.logContentGoBottom())}onTabClick(t){var o,s,n,a,c,d,m;let e=t.target;(o=this._tabNodes)==null||o.forEach(l=>{l.classList.remove(ms)}),e.classList.add(ms);let r=e.getAttribute("data-tab");r==="log"?((a=(n=(s=this._dialogNode)==null?void 0:s.shadowRoot)==null?void 0:n.querySelector(`.${No}`))==null||a.classList.add(ih),this._logContentNode.style.display="block",this._networkContentNode.style.display="none",this._dumpContentNode.style.display="none",this.logContentGoBottom()):((m=(d=(c=this._dialogNode)==null?void 0:c.shadowRoot)==null?void 0:d.querySelector(`.${No}`))==null||m.classList.remove(ih),r==="network"?(this._networkContentNode.style.display="block",this._logContentNode.style.display="none",this._dumpContentNode.style.display="none"):r==="dump"&&(this._dumpContentNode.style.display="block",this._networkContentNode.style.display="none",this._logContentNode.style.display="none"))}onToptabClick(t){var s,n;let e=t.target;(s=this._toptabNodes)==null||s.forEach(a=>{a.classList.remove(ms)}),e.classList.add(ms),this._showLogType=e.getAttribute("data-type");let r=(n=this._logContentNode)==null?void 0:n.querySelectorAll(`.${Do}`),o=`${Do}_${this._showLogType}`;r.forEach(a=>{a.classList.contains(o)||this._showLogType==="all"?a.style.display="block":a.style.display="none"}),this.logContentGoBottom()}onExportClick(){let t=this._logList.reduce((n,a)=>`${n+a.log}
118
- `,""),e=new Blob([t],{type:"text/plain"}),r=document.createElement("a"),o=URL.createObjectURL(e);r.href=o;let s=`trtc_${this._core.room.sdkAppId===void 0?"EmptySdkAppId":this._core.room.sdkAppId}_${this._core.room.userId===void 0?"EmptyUserId":this._core.room.userId}_${this.formatStartDumpTime(+new Date)}.log`;r.download=s,r.style.display="none",document.body.appendChild(r),r.click(),URL.revokeObjectURL(o),document.body.removeChild(r),this.addInfoToBanner(Zi,`Export success: The log file name is ${s}`),this._core.kvStatManager.addSuccessEvent({key:592703})}addInfoToBanner(t,e){var n,a;let r=(a=(n=this._dialogNode)==null?void 0:n.shadowRoot)==null?void 0:a.querySelector(`.${oh}`),o=document.createElement("div");o.classList.add(Ey);let s=t===Zi?"\u{1F7E9}":t===Aa?"\u{1F7E7}":"\u{1F7E5}";o.innerText=`${s} [${this.getCurrentTime()}] ${e}`,r.appendChild(o),r.scrollTop=r.scrollHeight}onUploadClick(){return D(this,null,function*(){var a,c;if(this.isUploading)return;this.isUploading=!0;let t=(c=(a=this._dialogNode)==null?void 0:a.shadowRoot)==null?void 0:c.querySelector("#trtc_upload");t.innerText="Uploading...",t==null||t.classList.add(".disable");let e=this._logList.reduce((d,m)=>`${d+m.log}
119
- `,""),r=new Blob([e],{type:"text/plain"}),o=new FormData;o.append("file",r,"trtc.log"),o.append("sdkAppId",`${this._core.room.sdkAppId||"EmptySdkAppId"}`),o.append("userId",`${this._core.room.userId||"EmptyUserId"}`),fetch("https://service.trtc.qcloud.com/api/uploadLogFile",{method:"POST",body:o}).then(d=>d.json()).then(d=>{this.addInfoToBanner(d.type,d.message_en||"Upload Failed: Please use local export"),this.isUploading=!1,this._log.info(d.message_en),this._core.kvStatManager.addSuccessEvent({key:592704})}).catch(()=>{this.addInfoToBanner(hs,"Upload Failed: Please use local export"),this._log.info("Upload Failed: Please use local export"),this._core.kvStatManager.addFailedEvent({key:592704})}).finally(()=>{t.innerText=Ke.UPLOAD_BUTTON,t==null||t.classList.remove(".disable"),this.isUploading=!1})})}onHideClick(){this.hideDialog()}onMaskClick(){this.hideDialog()}hideDialog(){this._isMobile&&(this._maskNode.style.display="none"),this._panelNode.style.display="none",this._switchNode.style.display="block",this._showDialog=!1}onBackTopClick(){var t,e,r;(r=(e=(t=this._dialogNode)==null?void 0:t.shadowRoot)==null?void 0:e.querySelector(`.${No}`))==null||r.scrollTo(0,0)}onGoBottomClick(){this.logContentGoBottom()}onClearLogClick(){this._logList=[],this._logContentNode&&(this._logContentNode.innerHTML="")}logContentGoBottom(){var e,r;let t=(r=(e=this._dialogNode)==null?void 0:e.shadowRoot)==null?void 0:r.querySelector(`.${No}`);t==null||t.scrollTo(0,t==null?void 0:t.scrollHeight)}onMouseDown(t){t.preventDefault(),this.switchPos.startX=t.pageX,this.switchPos.startY=t.pageY,document.onmousemove=this.onMouseMove.bind(this),document.onmouseup=this.onMouseUp.bind(this)}onMouseMove(t){t.cancelable&&t.preventDefault(),this._hasMove=!0;let e=this.switchPos.x-(t.pageX-this.switchPos.startX),r=this.switchPos.y-(t.pageY-this.switchPos.startY);[e,r]=this.getSafeAreaXY(e,r),this._switchNode.style.right=`${e}px`,this._switchNode.style.bottom=`${r}px`,this.switchPos.endX=e,this.switchPos.endY=r}onMouseUp(){this.switchPos.startX=0,this.switchPos.startY=0,this.switchPos.x=this.switchPos.endX,this.switchPos.y=this.switchPos.endY,document.onmousemove=null,document.onmouseup=null}onTouchStart(t){this.switchPos.startX=t.touches[0].pageX,this.switchPos.startY=t.touches[0].pageY,this.switchPos.isTouchEnd=!1}onTouchEnd(){this.switchPos.isTouchEnd&&(this.switchPos.startX=0,this.switchPos.startY=0,this.switchPos.isTouchEnd=!1,this.switchPos.x=this.switchPos.endX,this.switchPos.y=this.switchPos.endY)}onTouchMove(t){if(t.touches.length<=0)return;let e=t.touches[0].pageX-this.switchPos.startX,r=t.touches[0].pageY-this.switchPos.startY,o=Math.floor(this.switchPos.x-e),s=Math.floor(this.switchPos.y-r);[o,s]=this.getSafeAreaXY(o,s),this._switchNode.style.right=`${o}px`,this._switchNode.style.bottom=`${s}px`,this.switchPos.endX=o,this.switchPos.endY=s,this.switchPos.isTouchEnd=!0,t.cancelable&&t.preventDefault()}getSafeAreaXY(t,e){let r=Math.max(document.documentElement.offsetWidth,window.innerWidth),o=Math.max(document.documentElement.offsetHeight,window.innerHeight);return t+this._switchNode.offsetWidth>r&&(t=r-this._switchNode.offsetWidth),e+this._switchNode.offsetHeight>o&&(e=o-this._switchNode.offsetHeight),t<0&&(t=0),e<20&&(e=20),[t,e]}hitTest(t){return t===this._core.room}installEvents(){this._core.innerEmitter.on("264",this.handleLog,this),this._core.innerEmitter.on("53",this.handleLeaveSuccess,this),this._core.innerEmitter.on("27",this.handleJoinSuccess,this),this._core.trtc.on(this._core.TRTC.EVENT.STATISTICS,this.handleStatistics,this),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_AUDIO_AVAILABLE,this.handleRemoteAudioAvailable),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_AUDIO_UNAVAILABLE,this.handleRemoteAudioUnavailable),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,this.handleRemoteVideoAvailable),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_VIDEO_UNAVAILABLE,this.handleRemoteVideoUnavailable),this._core.room.on("dump",this.handleDumpFromScriptTransform,this)}uninstallEvents(){this._core.innerEmitter.off("264",this.handleLog,this),this._core.innerEmitter.off("53",this.handleLeaveSuccess,this),this._core.innerEmitter.off("27",this.handleJoinSuccess,this),this._core.trtc.off(this._core.TRTC.EVENT.STATISTICS,this.handleStatistics,this),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_AUDIO_AVAILABLE,this.handleRemoteAudioAvailable),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_AUDIO_UNAVAILABLE,this.handleRemoteAudioUnavailable),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,this.handleRemoteVideoAvailable),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_VIDEO_UNAVAILABLE,this.handleRemoteVideoUnavailable),this._core.room.off("dump",this.handleDumpFromScriptTransform,this)}handleDumpFromScriptTransform(t){if(!t.isAudio)if(t.userId){let e=this.dumpRemoteVideoMap[`${t.userId}-${t.streamType}`];e&&(e.data.push(t.data),e.duration>0&&Date.now()-e.startTimestamp>e.duration*1e3&&e.onDumpEnd())}else{let e=t.streamType==="main"?"main":"sub",r=this.dumpLocalVideoMap[e];r&&(r.data.push(t.data),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}}inactiveButton(t,e){t.disabled=!0,e&&(t.innerText=e)}activeButton(t,e){t.disabled=!1,e&&(t.innerText=e)}handleLog(t){this.updateLog(t.log)}addHelper(t){let e=/((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/g,r=uy,o=t.innerText;o=o.split(`
120
- `).map(s=>{if(s=s.replace(/</g,"&lt;").replace(/>/g,"&gt;"),s.includes("failed"))return s.includes("on autoplay-failed")?s:`<span class='red' style="background:red; color:#fff;">${s}</span>`;if(s.includes("clientIp:")){let n=s.match(e);return n==null||n.forEach(a=>{s=s.replace(a,`<a href="javascript:void(0);" target=""><span class='ip' style="background:#e1dfdf">${a}</span></a>`)}),s}return s.includes("URL of current page")&&(s=s.replace(/URL of current page: (.+)/,'URL of current page: <a href="$1">$1</a>')),s}).join(`
121
- `),r.forEach(s=>{if(t.innerText.includes(s)){let n="";n=typeof ls[s].tips=="function"?ls[s].tips(t.innerText):ls[s].tips,o=o.replace(new RegExp(`${dy(s)}`,"gi"),`<span class="${rd}" style="background:${ls[s].color||"#e1dfdf"}; color: ${ls[s].textColor||"#000"}">${s}
122
- <span class="tooltiptext tooltip-top">${n}</span>
123
- </span>`)}}),t.innerHTML=o}getCurrentTime(){let t=new Date,e=this.pad(t.getHours()),r=this.pad(t.getMinutes()),o=this.pad(t.getSeconds());return`${e}:${r}:${o}`}dumpAudioFromPipeline(t,e,r){this.addInfoToBanner(Aa,"dump audio from pipeline");let o=Date.now(),s=this.formatStartDumpTime(o),n=[],a=`${t}_${r}`,c;if(t==="local")c=this._core.trtc._localAudioTrack;else if(r){let l=this._core.room.remotePublishedUserMap.get(r);l&&(c=l.remoteAudioTrack)}let d=()=>{var v,M;if(n.length===0){this.addInfoToBanner(hs,`[${a}] dump failed. Reason: data is empty`);return}let l=(t==="local"?(v=this._core.room.singlePC)==null?void 0:v.audioCodec:(M=this._core.room.userManager)==null?void 0:M.getPublishedUser(r).audioCodec)||"opus",f,g=l;l==="opus"?(this.addInfoToBanner(Aa,`[${a}] package opus to ogg`),f=this.convertOpusToOgg(n),g="ogg"):f=new Blob(n);let T=URL.createObjectURL(f),E=document.createElement("a"),y=t==="local"?`local_${s}.${g}`:`remote-${r}_${s}.${g}`;E.href=T,E.download=y,E.style.display="none",document.body.appendChild(E),E.click(),URL.revokeObjectURL(T),E.remove(),this.addInfoToBanner(Zi,`[${a}] dump success. File name is: ${y}`)},m;if(t==="local"){if(!this.hasLocalTrack("main","audio"))return{};m=()=>{delete this.dumpLocalAudioMap.main},this.dumpLocalAudioMap.main={startTimestamp:o,data:n,duration:e,onDumpEnd:m}}if(t==="remote"&&r){if(m=()=>{delete this.dumpRemoteAudioMap[`${r}`]},this.dumpRemoteAudioMap[`${r}`])return this.addInfoToBanner(Aa,`[${a}] dump already exists.`),{};this.dumpRemoteAudioMap[`${r}`]={startTimestamp:o,data:n,duration:e,onDumpEnd:m}}return{download:d,onDumpEnd:m}}dumpVideo(t,e,r,o){let s=Date.now(),n=this.formatStartDumpTime(s),a=[],c=`${e}_${o}_${t}`,d;if(e==="local")d=t==="main"?this._core.trtc._localVideoTrack:this._core.trtc._localScreenTrack;else if(o){let f=this._core.room.remotePublishedUserMap.get(o);f&&(d=t==="main"?f.remoteVideoTrack:f.remoteAuxiliaryTrack)}let m=()=>{var v,M;if(a.length===0){this.addInfoToBanner(hs,`[${c}] dump failed. Reason: data is empty`);return}let f;t==="main"?f="video":t==="auxiliary"&&(f="screen");let g;this.getVideoCodec(o||"")==="vp8"?(this.addInfoToBanner(Aa,`[${c}] package vp8 into ivf format`),g=this.convertVP8ToIVF(a,d)):g=new Blob(a);let T=URL.createObjectURL(g),E=document.createElement("a"),y=e==="local"?`local_${f}_${n}.${((v=this._core.room.singlePC)==null?void 0:v.videoCodec)||"h264"}`:`remote-${o}_${f}_${n}.${((M=this._core.room.userManager)==null?void 0:M.getPublishedUser(o).videoCodec)||"h264"}`;E.href=T,E.download=y,E.style.display="none",document.body.appendChild(E),E.click(),URL.revokeObjectURL(T),E.remove(),this.addInfoToBanner(Zi,`[${c}] dump success. File name is: ${y}`)},l;if(e==="local"){if(!this.hasLocalTrack(t,"video"))return{};l=()=>{delete this.dumpLocalVideoMap[t==="auxiliary"?"sub":"main"]},this.dumpLocalVideoMap[t==="auxiliary"?"sub":"main"]={startTimestamp:s,data:a,duration:r,onDumpEnd:l}}if(e==="remote"&&o){if(l=()=>{delete this.dumpRemoteVideoMap[`${o}-${t}`]},this.dumpRemoteVideoMap[`${o}-${t}`])return this.addInfoToBanner(Aa,`[${c}] dump already exists.`),{};this.dumpRemoteVideoMap[`${o}-${t}`]={startTimestamp:s,data:a,duration:r,onDumpEnd:l}}return{download:m,onDumpEnd:l}}convertVP8ToIVF(t,e){var m,l,f;function r(g,T,E){for(let y=0;y<E.length;y++)g.setUint8(T+y,E.charCodeAt(y))}let o=t.reduce((g,T)=>g+12+T.byteLength,32),s=new ArrayBuffer(o),n=new DataView(s),a=new Uint8Array(s),c=0;r(n,c,"DKIF"),c+=4,n.setUint16(c,0,!0),c+=2,n.setUint16(c,32,!0),c+=2,r(n,c,"VP80"),c+=4,n.setUint16(c,((m=e==null?void 0:e._inputTrack)==null?void 0:m.getSettings().width)||0,!0),c+=2,n.setUint16(c,((l=e==null?void 0:e._inputTrack)==null?void 0:l.getSettings().height)||0,!0),c+=2;let d=(e instanceof qi?e==null?void 0:e.decodeFPS:(f=e==null?void 0:e.mediaTrack)==null?void 0:f.getSettings().frameRate)||15;return n.setUint32(c,d,!0),c+=4,n.setUint32(c,1,!0),c+=4,n.setUint32(c,t.length,!0),c+=4,n.setUint32(c,0,!0),c+=4,t.forEach((g,T)=>{let E=g.byteLength,y=Math.floor(T*1e6/d);n.setUint32(c,E,!0),c+=4,n.setFloat64(c,y,!0),c+=8,a.set(new Uint8Array(g),c),c+=E}),new Blob([s],{type:"application/octet-stream"})}getVideoCodec(t){var e,r;return t===""?(e=this._core.room.singlePC)==null?void 0:e.videoCodec:(r=this._core.room.remotePublishedUserMap.get(t))==null?void 0:r.videoCodec}hasLocalTrack(t,e){for(let r of this._core.room.localTracks)if(r.streamType===t&&r.kind===e)return!0;return!1}dumpAudio(t,e,r){var B,P,$;let o=null,s=[],n=[],a=[],c=[],d=[],m=[],l=[],f=new AbortController,g=Date.now(),T=this.formatStartDumpTime(g),E=this._core.room.audioManager._localAudioPipline,y=this._core.room.audioManager._localScreenAudioPipeline,v,M,w=({room:de,data:Ae,type:L})=>{if(this.hitTest(de)){if(L==="dump"){if(c[0]=c[0]?c[0].concat(Ae.captureInput):Ae.captureInput,c[1]=c[1]?c[1].concat(Ae.playInput):Ae.playInput,!v)v=Ae.startTime,M=Ae.startTime;else{let A=Ae.startTime-v,le=Ae.endTime-Ae.startTime;if(A>30||le>30){let ze=function(me){if(typeof me!="number"||me<0)return"0\u6BEB\u79D2";let re=[],Q=Math.floor(me/6e4),q=me%6e4;Q>0&&re.push(`${Q}\u5206`);let Be=Math.floor(q/1e3);return q%=1e3,(Be>0||re.length)&&re.push(`${Be}\u79D2`),(q>0||!re.length)&&re.push(`${q}\u6BEB\u79D2`),re.join("")};var te=ze;let He=Ae.startTime-M,ge=v-M;l.push(`${Ae.startTime} ${ze(He)}~${ze(ge)} ${A} ${le}`)}v=Ae.startTime}m.push(Ae.startTime)}L==="dump-screen-audio"&&(d[0]=d[0]?d[0].concat(Ae.captureInput):Ae.captureInput,d[1]=d[1]?d[1].concat(Ae.playInput):Ae.playInput)}};if(t==="local"){let{sampleRate:de}=this._core.room.audioManager.audioContext;if(!this._core.room.audioManager.hasAudioTrack&&!this._core.room.audioManager.hasScreenAudioTrack)return{};if(E!=null&&E.source.node&&(s.push(E.source.node),n.push(`local_audio_raw_capture-${de}-${E.source.node.channelCount}`)),((B=E==null?void 0:E.aec)!=null&&B.node||y!=null&&y.aec.node)&&(this._core.trtc.updatePlugin("AudioProcessor",{enableDump:!0}),this._core.innerEmitter.on("265",w),(P=E==null?void 0:E.aec)!=null&&P.node&&(s.push(E.aec.node),n.push(`local_audio_audioProcessor_processed-${de}-${E.aec.node.channelCount}`)),y!=null&&y.aec.node&&(s.push(y.aec.node),n.push(`screen_audio_audioProcessor_processed-${de}-${y.aec.node.channelCount}`))),E!=null&&E.denoiser.node&&(s.push(E.denoiser.node),n.push(`local_audio_denoiser_processed-${de}-${E.denoiser.node.channelCount}`)),this._core.room.audioManager.mixWeight>1&&(E!=null&&E.stream)){let Ae=this._core.room.audioManager.audioContext.createMediaStreamSource(E.stream);Ae.channelCount=1,s.push(Ae),n.push(`local_audio_destination-${de}-${Ae.channelCount}`)}}else if(t==="remote"&&r!==void 0){let de=($=this._core.room.remotePublishedUserMap.get(r))==null?void 0:$.remoteAudioTrack;if(!(de!=null&&de.mediaTrack))return{};let Ae=this._core.createAudioNode(de.mediaTrack);s.push(Ae),n.push(`remote_${r}`)}let H=()=>D(this,null,function*(){var A,le,He,ge,ze;let de=new _y.default;for(let me=0;me<n.length;me++)de.file(`${n[me]}.pcm`,new Blob(a[me]));if((A=c==null?void 0:c[0])!=null&&A.length&&de.file("audioProcessor_input_capture.pcm",new Blob(c[0])),(le=c==null?void 0:c[1])!=null&&le.length&&de.file("audioProcessor_input_playback.pcm",new Blob(c[1])),(He=d==null?void 0:d[0])!=null&&He.length&&de.file("audioProcessor_screen_audio_input_capture.pcm",new Blob(d[0])),(ge=d==null?void 0:d[1])!=null&&ge.length&&de.file("audioProcessor_screen_audio_input_playback.pcm",new Blob(d[1])),m!=null&&m.length){let me=m.reduce((re,Q)=>`${re}
124
- ${Q}`);de.file("audioProcessor_handle_timestamp.txt",new Blob([me]))}if(l!=null&&l.length){let me=l.reduce((re,Q)=>`${re}
125
- ${Q}`);de.file("audioProcessor_big_gap_data.txt",new Blob([me]))}let Ae=yield de.generateAsync({type:"blob"}),L=URL.createObjectURL(Ae),te=document.createElement("a");te.href=L,te.download=`${t}-audio-${T}.zip`,te.style.display="none",document.body.appendChild(te),te.click(),URL.revokeObjectURL(L),te.remove(),this.addInfoToBanner(Zi,`Dump success, file name is: ${t}-${T}.zip`),this._core.innerEmitter.off("265",w),((ze=E==null?void 0:E.aec)!=null&&ze.node||y!=null&&y.aec.node)&&this._core.trtc.updatePlugin("AudioProcessor",{enableDump:!1}),o&&clearTimeout(o),f.abort("download")});return e>0&&(o=Number(setTimeout(()=>{f.abort("timeout")},e*1e3))),s.length>0&&this._core.startGetPCM(s).then(de=>de.pipeTo(new WritableStream({write(Ae){Ae.forEach((L,te)=>{a[te]=a[te]?a[te].concat(L[0]):[L[0]]})}}),f).catch(()=>H)),{download:H,onDumpEnd:()=>{f.abort("timeout")}}}formatStartDumpTime(t){let e=new Date(t),r=e.getFullYear(),o=this.pad(e.getMonth()+1),s=this.pad(e.getDate()),n=this.pad(e.getHours()),a=this.pad(e.getMinutes()),c=this.pad(e.getSeconds()),d=-e.getTimezoneOffset(),m=Math.floor(Math.abs(d)/60),l=Math.abs(d)%60,f=d>=0?"+":"-";return`${r}-${o}-${s}T${n}-${a}-${c}${f}${this.pad(m)}-${this.pad(l)}`}convertOpusToOgg(t){let o=Math.floor(Math.random()*4294967295),s=0,n=0,a=[],c=this.createOpusHead(48e3,2);a.push(this.createOggPage(2,0,o,s++,[c]));let d=this.createOpusTags();a.push(this.createOggPage(0,0,o,s++,[d]));let m=[],l=0;return t.forEach((f,g)=>{let T=this.getOpusPacketDuration(f);m.push(f),l+=f.byteLength,n+=T;let E=g===t.length-1;if(l>6e4||m.length>=50||E){let y=E?4:0;a.push(this.createOggPage(y,n,o,s++,m)),m=[],l=0}}),new Blob(a,{type:"audio/ogg"})}createOpusHead(t,e){let r=new ArrayBuffer(19),o=new DataView(r);return this.writeString(o,0,"OpusHead"),o.setUint8(8,1),o.setUint8(9,e),o.setUint16(10,0,!0),o.setUint32(12,t,!0),o.setUint16(16,0,!0),o.setUint8(18,0),r}createOpusTags(){let t="TRTC Debugger",e=t.length,r=new ArrayBuffer(12+e+4),o=new DataView(r);return this.writeString(o,0,"OpusTags"),o.setUint32(8,e,!0),this.writeString(o,12,t),o.setUint32(12+e,0,!0),r}createOggPage(t,e,r,o,s){let n=0;s.forEach(y=>{let v=y.byteLength;for(;v>=255;)n++,v-=255;n++});let a=27+n,c=s.reduce((y,v)=>y+v.byteLength,0),d=a+c,m=new ArrayBuffer(d),l=new DataView(m),f=new Uint8Array(m);this.writeString(l,0,"OggS"),l.setUint8(4,0),l.setUint8(5,t),l.setUint32(6,e&4294967295,!0),l.setUint32(10,Math.floor(e/4294967295),!0),l.setUint32(14,r,!0),l.setUint32(18,o,!0),l.setUint32(22,0,!0),l.setUint8(26,n);let g=27;s.forEach(y=>{let v=y.byteLength;for(;v>=255;)f[g++]=255,v-=255;f[g++]=v});let T=a;s.forEach(y=>{f.set(new Uint8Array(y),T),T+=y.byteLength});let E=this.crc32(f);return l.setUint32(22,E,!0),f}writeString(t,e,r){for(let o=0;o<r.length;o++)t.setUint8(e+o,r.charCodeAt(o))}getOpusPacketDuration(t){if(t.byteLength===0)return 0;let e=new Uint8Array(t),r=e[0],o=r>>3&31,s=r&3,n=1;if(s===1||s===2)n=2;else if(s===3){if(t.byteLength<2)return 0;n=e[1]&63}return([480,480,480,480,960,960,960,960,1920,1920,1920,1920,2880,2880,480,480,120,120,120,120,240,240,240,240,480,480,480,480,960,960,960,960][o]||960)*n}crc32(t){let e=new Uint32Array(256),r=79764919;for(let s=0;s<256;s++){let n=s<<24;for(let a=0;a<8;a++)(n&2147483648)!==0?n=n<<1^r:n<<=1;e[s]=n>>>0}let o=0;for(let s=0;s<t.length;s++){let n=(o>>>24^t[s])&255;o=(o<<8^e[n])>>>0}return o}};Ie([Zc(300,()=>"export")],id.prototype,"onExportClick",1),Ie([Zc(300,()=>"upload")],id.prototype,"onUploadClick",1);var vy=id;var t0=0,nh,sd=class sd{constructor(t){this.core=t;p(this,"_core");p(this,"log");p(this,"dumpLocalVideoMap",{});p(this,"dumpRemoteVideoMap",{});p(this,"dumpLocalAudioMap",{});p(this,"dumpRemoteAudioMap",{});p(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++t0}`}),this.log.info("created")}getName(){return sd.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return D(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor(),this.addAudioProcessor())})}update(e){return D(this,arguments,function*({visible:t}){t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor())})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor(),this.removeAudioProcessor()}destroy(){this.stop()}openDebugDiaLog(){return D(this,null,function*(){var t;if(!this.dialog)try{if(nh)yield nh;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${sy}@${qt}/assets/debug-dialog.js`;nh=this._core.fileDownloader.loadScript(e),yield nh}this.dialog=new vy(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap,this.dumpLocalAudioMap,this.dumpRemoteAudioMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):Xf,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Jf,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}addAudioProcessor(){this._core.room.audioManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeAudio.bind(this):Qf,type:2}),this._core.room.audioManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeAudio.bind(this):Yf,type:2})}removeAudioProcessor(){this._core.room.audioManager.removeEncodeProcessor({type:2}),this._core.room.audioManager.removeDecodeProcessor({type:2})}encodeVideo({frame:t,mediaType:e}){return Xf({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return Jf({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}encodeAudio({frame:t}){return Qf({frame:t,onDump:()=>{let e=this.dumpLocalAudioMap.main;e&&(e.data.push(t.data.slice(0)),e.duration>0&&Date.now()-e.startTimestamp>e.duration*1e3&&e.onDumpEnd())}})}decodeAudio({frame:t,track:e}){return Yf({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteAudioMap[e.userId];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};p(sd,"Name","Debug"),p(sd,"autoStart",!0);var ah=sd;var Ry=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},ch=class{constructor(t,e,r){p(this,"trackDoneOB");p(this,"startOB");p(this,"stopOB");p(this,"inputFrameCount",0);p(this,"decodedFrameCount",0);p(this,"type","auto");p(this,"config");p(this,"decoder");p(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=Qe(e,Ve.INIT),this.stopOB=ir(),this.startOB=ir(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=ir(),a=c=>{let d=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ye(d,At(this.stopOB),lt(()=>{},m=>{e.log.error(m),o.addFailedEvent({key:Ry(this.type),error:m}),c>4?this.startOB.error(m):this.startOB.next(c+1)})),Ye(d,Ni(1),rf(kc))};Ye(this.startOB,Mc(0),Wi(a),At(this.stopOB),lt(()=>{e.player.setOutput(),n.next("STARTED")},c=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:Ry(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return So()(e=>D(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},r0={type:"object"},nd=class nd{constructor(t){this.core=t;p(this,"log");p(this,"contextMap",new Map);p(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return nd.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return nd.Name}getValidateRule(t){return r0}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new ch(this.core,r,t);return Ye(o.trackDoneOB,Ni(1),lt(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new ch(this.core,t.track,t))}}};p(nd,"Name","TRTCAudioDecoder");var ad=nd;var dh=class{constructor(){p(this,"log");this.log=se.createLogger({id:"exp"})}call(t,e){return D(this,null,function*(){return Rt(this[t])?this[t](e):Promise.reject(new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return D(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:c}=e.room,{getPCMAbortCtrlMap:d,audioFrameEventConfigMap:m}=c;if(m.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(l=>{if(l.remoteAudioTrack.isAvailable){if(d.get(l.userId))return;let f=c.getPCM(g=>{e.emit(Ne.AUDIO_FRAME,g)},l.userId);d.set(l.userId,f)}});else{if(d.get(o))return;let l=c.getPCM(f=>{e.emit(Ne.AUDIO_FRAME,f)},o);d.set(o,l)}else if(o==="*")e.room.remotePublishedUserMap.forEach(l=>{if(l.remoteAudioTrack.isSubscribed){let{userId:f}=l,g=d.get(f);g==null||g.abort("disable"),d.delete(f)}});else{let l=d.get(o);l==null||l.abort("disable"),d.delete(o)}})}resumeRemotePlayer(t){return D(this,null,function*(){if(t.userId==="*"){let r=[];return t.trtcInstance.room.remotePublishedUserMap.forEach(o=>{let{remoteAudioTrack:s,remoteVideoTrack:n,remoteAuxiliaryTrack:a}=o;t.streamType?t.streamType==="main"?(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume())):a.isAvailable&&r.push(a.player.resume()):(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume()),a.isAvailable&&r.push(a.player.resume()))}),Promise.all(r)}let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);if(e)return t.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()})}pauseRemotePlayer(t){if(t.userId==="*")t.trtcInstance.room.remotePublishedUserMap.forEach(e=>{let{remoteAudioTrack:r,remoteVideoTrack:o,remoteAuxiliaryTrack:s}=e;t.streamType?t.streamType==="main"?(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause()):s.isAvailable&&s.player.pause():(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause(),s.isAvailable&&s.player.pause())});else{let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);e&&(t.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause()):e.remoteAuxiliaryTrack.player.pause())}}};Ie([jE({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],dh.prototype,"enableAudioFrameEvent",1);var Cy=new dh;var wy=Li(mo(),1);var sg=class extends wy.EventEmitter{constructor(){super();p(this,"states",{});p(this,"permissionChangeHandler");p(this,"log");this.log=se.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return D(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return D(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},cd=new sg;var Ny=0,dd=new Set,pr=null;Uh(Vf);Yn.checkStorage();var We=class We extends Dy.EventEmitter{constructor(e,r){super();p(this,"_room");p(this,"_eventListened",new Set);p(this,"_localVideoTrack",null);p(this,"_localAudioTrack",null);p(this,"_localScreenTrack",null);p(this,"_localScreenAudioTrack",null);p(this,"_localVideoConfig",null);p(this,"_localScreenConfig",null);p(this,"_localAudioConfig",null);p(this,"_remoteVideoConfigMap",new Map);p(this,"_remoteAudioConfigMap",new Map);p(this,"_remoteAudioVolumeMap",new Map);p(this,"_remoteAudioMuteMap",new Map);p(this,"_mediaTrackMap",new WeakMap);p(this,"_log",se.createLogger({id:`t${++Ny}`}));p(this,"_plugins",new Map);p(this,"_networkQuality",null);p(this,"_speakerId");p(this,"enterRoomParams");p(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(be({logger:this._log,frameWorkType:We.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Nt(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(zl,r.assetsPath),this._use(Wl,r.assetsPath),this._use(ql,r.assetsPath),this._use(ad,r.assetsPath),this._use(ah),r.enableSEI&&fc&&this._use(Xl),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var d;let c=a.userId===""?this._localAudioTrack:(d=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:d.remoteAudioTrack;c&&(a.volume=c.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var d;let c=a.userId===""?this._localAudioTrack:(d=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:d.remoteAudioTrack;c&&(a.volume=c.dbVolume)}),this.emit(Ne.AUDIO_VOLUME,{result:o.sort((a,c)=>c.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new Oe({code:ke.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),ry(this,"trtc")}static create(e){}static _create(e,r){$T();let o=new We(e,r||{});return dd.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){yr(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(Ne.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(Ne.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{Ro(!0),this._exitRoom().finally(()=>{this.emit(Ne.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(Ne.ERROR,Oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(Ne.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=qe(be({},e),{uplinkRTT:Math.min(e.uplinkRTT,Va),downlinkRTT:Math.min(e.downlinkRTT,Va)});this.emit(Ne.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{yr(o,o).add("player-state-changed",s=>{let n=qe(be({},s),{userId:e.userId});o.kind===j.VIDEO&&(n.streamType=Ji(o.streamType)),this.emit(o.kind===j.AUDIO?Ne.AUDIO_PLAY_STATE_CHANGED:Ne.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===Te.PLAY_NOT_ALLOWED&&this.emit(Ne.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{tr(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:c}=r;a||this._remoteAudioConfigMap.delete(o),c||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==c&&(c?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(c?Ne.REMOTE_VIDEO_AVAILABLE:Ne.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?Ne.REMOTE_AUDIO_AVAILABLE:Ne.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?Ne.REMOTE_VIDEO_AVAILABLE:Ne.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(Ne.SEI_MESSAGE,qe(be({},e),{streamType:Ji(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(Ne.ERROR,new Oe({code:ke.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,c,d,m,l;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,Va),upLoss:((c=this._networkQuality)==null?void 0:c.uplinkLoss)||0,downLoss:((d=this._networkQuality)==null?void 0:d.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((m=e.msg_up_stream_info.msg_audio_status)==null?void 0:m.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((l=e.msg_up_stream_info.msg_audio_status)==null?void 0:l.uint32_audio_level)||0)/fo},video:e.msg_up_stream_info.msg_video_status.filter(f=>r[f.uint32_video_stream_type]).map(f=>({bitrate:(f.uint32_video_codec_bitrate||0)/1e3,width:f.uint32_video_width,height:f.uint32_video_height,frameRate:f.uint32_video_enc_fps,videoType:r[f.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(f=>({userId:f.msg_user_info.str_identifier,audio:{bitrate:(f.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(f.msg_audio_status.uint32_audio_level||0)/fo,point2pointDelay:(f.msg_audio_status.uint32_audio_p2p_delay||0)+(f.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:f.msg_audio_status.uint32_audio_cache_ms||0},video:f.msg_video_status.map(g=>({bitrate:(g.uint32_video_codec_bitrate||0)/1e3,width:g.uint32_video_width,height:g.uint32_video_height,frameRate:g.uint32_video_dec_fps,videoType:r[g.uint32_video_stream_type],point2pointDelay:(g.uint32_video_p2p_delay||0)+(g.uint32_video_cache_ms||0),jitterBufferDelay:g.uint32_video_cache_ms||0,codec:g.uint32_video_codec}))}))};this.emit(Ne.STATISTICS,o)}).add("custom-message",e=>{this.emit(Ne.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(Ne.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(Ne.FIRST_VIDEO_FRAME,qe(be({},e),{streamType:Ji(e.streamType)}))}).add("audio-frame",e=>{this.emit(Ne.AUDIO_FRAME,e)}),yr(this,$t).add("audioInputAdded",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>D(this,null,function*(){if(this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),pr&&pr.deviceId===Ua){let r=(yield Zo()).find(o=>o.deviceId===Ua);r&&pr.groupId!==r.groupId&&(pr=r,this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>D(this,null,function*(){this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield Zo())[0];if(!r||!pr||pr.groupId===r.groupId)return;let o=pr.deviceId===e.deviceId,s=pr.deviceId===Ua&&pr.deviceId===r.deviceId;(o||s)&&(pr=r,this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),yr(this,cd).add("permission-state-change",e=>{this.emit(Ne.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(Ne.SEI_MESSAGE,e=>{var o;let r=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;r&&r.updateAlphaRenderInfo(e)})}getNetworkTime(){return to()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(ty.call(this,{TRTC:We,room:this._room,assetsPath:r,errorModule:{RtcError:Oe,ErrorCode:ke,CoreErrorCode:Te,ErrorCodeDictionary:Kr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return D(this,null,function*(){var c,d;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!nt(e.proxy)&&e.proxy.turnServer&&((d=(c=this._room).setTurnServer)==null||d.call(c,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Nt(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let a={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,useH265:e.useH265,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,We.frameWorkType),this._checkTrackToPublish(),Gf.start()})}exitRoom(){return D(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return D(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(r){if(r instanceof Ma&&(r.code===Te.API_CALL_TIMEOUT||r.code===Te.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===Te.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return D(this,null,function*(){yield this.exitRoom();let r=be(be({},this.enterRoomParams),e);yield this.enterRoom(r)})}_clearRemoteTracks(){new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch(()=>{})}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch(()=>{})}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),iy(this),this._room.remotePublishedUserMap.forEach(e=>{tr(e.remoteAudioTrack),tr(e.remoteVideoTrack),tr(e.remoteAuxiliaryTrack)})}switchRole(e,r){return D(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),tr(this),this.removeAllListeners(),this._room.destroy(),dd.delete(this),dd.size===0&&Gf.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),ee.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return D(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,n=new Gi(this._room.audioManager),a={},c={muted:!0};s&&(z(s.microphoneId)?z(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&ft(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),z(s.profile)||(nt(s.profile)?Vd[s.profile]&&n.setProfile(Vd[s.profile]):n.setProfile(s.profile)),ft(s.earMonitorVolume)&&(c.muted=!(s.earMonitorVolume>0),c.volume=s.earMonitorVolume),z(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),z(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),z(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Nt(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",d=>{this.emit(Ne.ERROR,new Oe({code:ke.DEVICE_ERROR,extraCode:5309,messageParams:{error:d}}))}),n.on("2",d=>{this.emit(Ne.DEVICE_CHANGED,{type:"microphone",action:"active",device:d})}),n.on("4",d=>{let m;d.error&&(m=Oe.convertFrom(d.error)),this.emit(Ne.PUBLISH_STATE_CHANGED,qe(be({},d),{error:m}))}),n.on("6",()=>{}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),z(o)||n.setMute(o),yr(n,n).add("player-state-changed",d=>{this.emit(Ne.AUDIO_PLAY_STATE_CHANGED,qe(be({},d),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=qe(be({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:c,track:n}),ee.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return D(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):z(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),z(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),z(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!z(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),z(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Ei(this._localAudioConfig,e)})}stopLocalAudio(){return D(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),ee.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),tr(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return D(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var l;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,c=new Zr(this._room.videoManager),d={},m={};a&&(Nt(a.avoidCropping)&&(c.avoidCropping=a.avoidCropping),a.cameraId?d.deviceId=a.cameraId:z(a.useFrontCamera)?z(a.videoTrack)||(d.customSource=a.videoTrack):d.facingMode=a.useFrontCamera?j.FACING_MODE_USER:j.FACING_MODE_ENVIRONMENT,z(a.retryWhenExactFailed)||(d.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(d.contentHint=Jc(a.qosPreference)),z(a.profile)||(nt(a.profile)?gi[a.profile]&&c.setProfile(gi[a.profile]):c.setProfile(a.profile)),z(a.fillMode)||(m.objectFit=a.fillMode),z(a.mirror)||(m.mirror=a.mirror),z(a.small)||(z(a.smallMode)||(this._room.smallMode=a.smallMode),Nt(a.small)&&a.small===!1?c.stopSmall():c.updateSmallConfig(_a(a.small,!0))),z(a.rotation)||c.setRotation(a.rotation),Nt(this._enableAutoSwitchWhenRecapturing)&&(c.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),c.once("first-video-frame",f=>{this.emit(Ne.FIRST_VIDEO_FRAME,qe(be({},f),{streamType:Ji(f.streamType)}))}),c.on("5",f=>{this.emit(Ne.ERROR,new Oe({code:ke.DEVICE_ERROR,extraCode:5308,messageParams:{error:f}}))}),c.on("2",f=>{this.emit(Ne.DEVICE_CHANGED,{type:"camera",action:"active",device:f})}),c.on("4",f=>{let g;f.error&&(g=Oe.convertFrom(f.error)),this.emit(Ne.PUBLISH_STATE_CHANGED,qe(be({},f),{error:g}))}),c.on("6",()=>{}),this._listenOutputTrackChanged(c),s?yield c.capture(d):(l=c.manager)==null||l.changeInput(c),z(n)||(yield c.setMute(n)),yr(c,c).add("player-state-changed",f=>{this.emit(Ne.VIDEO_PLAY_STATE_CHANGED,qe(be({},f),{userId:"",streamType:"main"}))}).add("video-size-changed",f=>{this.emit(Ne.VIDEO_SIZE_CHANGED,qe(be({},f),{streamType:Ji(f.streamType)}))}),o&&this._room.isJoined&&this._room.publish(c).catch(()=>{}),this._localVideoTrack=c,this._localVideoConfig=qe(be({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:m,track:c})})}updateLocalVideo(e){return D(this,null,function*(){var d,m,l;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,c={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):z(a==null?void 0:a.useFrontCamera)?z(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?j.FACING_MODE_USER:j.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let f={};f.deviceId=(a==null?void 0:a.cameraId)||((d=this._localVideoConfig.option)==null?void 0:d.cameraId),f.facingMode=a!=null&&a.useFrontCamera||(m=this._localVideoConfig.option)!=null&&m.useFrontCamera?j.FACING_MODE_USER:j.FACING_MODE_ENVIRONMENT,f.customSource=(a==null?void 0:a.videoTrack)||((l=this._localVideoConfig.option)==null?void 0:l.videoTrack),yield this._localVideoTrack.capture(f)}a&&(z(a.profile)||(nt(a.profile)?gi[a.profile]&&this._localVideoTrack.setProfile(gi[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&z(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),z(a.fillMode)||(c.objectFit=a.fillMode),z(a.mirror)||(c.mirror=a.mirror),z(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Jc(a.qosPreference)),z(a.small)||(Nt(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(_a(a.small,!0)))),this._room.isJoined&&z(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),z(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:c,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Ei(this._localVideoConfig,e)})}stopLocalVideo(){return D(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),tr(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return D(this,arguments,function*(e={publish:!0,view:null}){var f,g;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new zi(this._room.videoManager);a.on("4",T=>{let E;T.error&&(E=Oe.convertFrom(T.error)),this.emit(Ne.PUBLISH_STATE_CHANGED,qe(be({},T),{error:E}))}),a.once("first-video-frame",T=>{this.emit(Ne.FIRST_VIDEO_FRAME,qe(be({},T),{streamType:Ji(T.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let c=null,d={},m={};n&&(z(n.profile)||(nt(n.profile)?Bd[n.profile]&&a.setProfile(Bd[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(d.systemAudio=!0,d.echoCancellation=n.echoCancellation,d.noiseSuppression=n.noiseSuppression,d.autoGainControl=n.autoGainControl),z(n.fillMode)||(m.objectFit=n.fillMode),n.videoTrack&&(d.videoTrack=n.videoTrack),n.audioTrack&&(d.audioTrack=n.audioTrack),n.captureElement&&(d.captureElement=n.captureElement),n.preferDisplaySurface&&(d.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(d.contentHint=Jc(n.qosPreference)));let l=yield a.capture(d);if(a.mediaTrack.addEventListener(j.ENDED,()=>{this._stopScreenShare(),this.emit(Ne.SCREEN_SHARE_STOPPED)}),l.getAudioTracks()[0]){c=new an(this._room.audioManager);let T=l.getAudioTracks()[0];(f=e.option)!=null&&f.systemAudio&&!((g=e.option)!=null&&g.audioTrack)&&(c.sourceTrack=T),yield c.setInputMediaStreamTrack(T),Nt(s)&&c.mediaTrack&&(c.mediaTrack.enabled=!s),this._speakerId&&c.setAudioOutput(this._speakerId)}if(yr(a,a).add("player-state-changed",T=>{this.emit(Ne.VIDEO_PLAY_STATE_CHANGED,qe(be({},T),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let T=[a];c&&(T.push(c),this._checkScreenAudioEchoCancellation(a,c)),T.forEach(E=>this._room.publish(E).catch(()=>{}))}this._localScreenTrack=a,this._localScreenAudioTrack=c,this._localScreenConfig=qe(be({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:a})})}updateScreenShare(e){return D(this,null,function*(){var c;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(z(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let d=Jc(n.qosPreference);this._localScreenTrack.setContentHint(d)}if(this._room.isJoined&&!z(o)){if(o&&!this._localScreenConfig.publish){let d=[this._localScreenTrack];this._localScreenAudioTrack&&d.push(this._localScreenAudioTrack),d.forEach(m=>this._room.publish(m).catch(()=>{}))}if(this._localScreenConfig.publish&&!o){let d=[this._localScreenTrack];this._localScreenAudioTrack&&d.push(this._localScreenAudioTrack),d.forEach(m=>this._room.unpublish(m).catch(()=>{}))}}(c=this._localScreenAudioTrack)!=null&&c.mediaTrack&&Nt(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Ei(this._localScreenConfig,e)})}stopScreenShare(){return D(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return D(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let c=this._room.remotePublishedUserMap.get(o);if(!c)return;let d={},m=s==="main"?c.remoteVideoTrack:c.remoteAuxiliaryTrack;m.on("decode-failed",l=>{this.emit(Ne.ERROR,new Oe({code:ke.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),m.on("video-size-changed",l=>{this.emit(Ne.VIDEO_SIZE_CHANGED,qe(be({},l),{streamType:Ji(l.streamType)}))}),this._listenOutputTrackChanged(m),n&&(z(n.fillMode)||(d.objectFit=n.fillMode),z(n.mirror)||(d.mirror=n.mirror),z(n.poster)||(d.poster=n.poster),d.canvasRender=n.canvasRender,s==="main"&&!z(n.small)&&(!c.remoteVideoTrack.isSubscribing&&!c.remoteVideoTrack.isSubscribed&&c.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,m.user)),z(n.draggable)||m.setDraggable(n.draggable)),yield this._room.subscribe(m),yield this._enableVideoDecodeFallback(m,s),yield this._updateVideoPlayOption({view:r,playOption:d,track:m}),this._emitTrackEvent(m),this._remoteVideoConfigMap.set(a,{config:e}),n&&!z(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:m,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return D(this,null,function*(){var y,v;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,c=this._remoteVideoConfigMap.get(a);if(!c||!this._room.remotePublishedUserMap.has(o))return;let d={};n&&(z(n.fillMode)||(d.objectFit=n.fillMode),z(n.mirror)||(d.mirror=n.mirror));let m=null,l=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(l!=null&&l.muteState.hasVideo)&&(m=l.remoteVideoTrack),s==="sub"&&(l!=null&&l.muteState.hasAuxiliary)&&(m=l.remoteAuxiliaryTrack),!m)return;let{config:f}=c;s==="main"&&n&&!z(n.small)&&this._room.changeType(n.small,m.user),n&&!z(n.draggable)&&m.setDraggable(n.draggable),yield this._updateVideoPlayOption({view:r,playOption:d,track:m,prevConfig:f}),Ei(f,e);let g=z(n==null?void 0:n.receiveWhenViewVisible)?(y=f.option)==null?void 0:y.receiveWhenViewVisible:n.receiveWhenViewVisible,T=z(r)?f.view:r,E=z(n==null?void 0:n.viewRoot)?(v=f.option)==null?void 0:v.viewRoot:n.viewRoot;this._observeView({remoteTrack:m,view:T,receiveWhenViewVisible:g,viewRoot:E})})}stopRemoteVideo(e){return D(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return D(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:c}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(c.stop(),n.hasAuxiliary&&o.push(c))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return D(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw o.code!==ke.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return D(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return D(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return D(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(Ne.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{YT.has(e)||this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===We.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(We.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(nt(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return D(this,null,function*(){(yield Zo()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),pr=o)}),this._log.warn(`the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: ${Br}/en/TRTC.html#.setCurrentSpeaker`)})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return D(this,null,function*(){var a;let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},n=o.remoteAudioTrack;n.on("decode-failed",c=>{this.emit(Ne.ERROR,new Oe({code:ke.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let c=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),d=ft(c)?c:100;s.volume=d,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ye(Qe(n,"decode-failed"),At(Qe(n,Ve.INIT)),lt(()=>{this.startPlugin(ad.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),ee.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(c){throw this._remoteAudioConfigMap.delete(r),c}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return D(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),ee.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;Ye(Qe(e,"decode-failed"),At(Qe(e,Ve.INIT)),en(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),Io(Qe(e,"decode-downgrade-state-changed")),lt(n=>{s=n.state,this.emit(Ne.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,qe(be({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return D(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),z(e)&&s&&s.view&&!Pn(r)){let a=Vn(s.view);a.length>0&&(yield o.play(a,r))}if(!z(e)){let a=Vn(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return D(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(z(e.muted)||r.setPlayerMute(e.muted),z(e.volume)||r.setAudioVolume(e.volume/100),r instanceof Gi&&r.mediaTrack){let n=e.muted===!1&&!z(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof bo){let n=e.muted?0:e.volume;if(z(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(Ne.TRACK,{userId:o,streamType:Ji(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return Promise.all(e.map(n=>this._room.publish(n).catch(()=>{})))}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(z(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${Ji(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||Gt(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let d=n.visibleViewMap||new Map,m=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),d.clear(),a=new IntersectionObserver(f=>{f.forEach(g=>{d.set(g.target,g.isIntersecting),e.log.info(`view ${g.target.id} is${g.isIntersecting?"":" not"} visible`)}),clearTimeout(m),m=window.setTimeout(()=>{[...d.values()].find(T=>T)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let l=new Set(Vn(r));d.forEach((f,g)=>{l.has(g)||(a.unobserve(g),d.delete(g))}),l.forEach(f=>{d.set(f,!0),a.observe(f)}),a.takeRecords().forEach(f=>{d.set(f.target,f.isIntersecting)}),n.visibleViewMap=d,n.observer=a}_exitRoom(){return D(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_stopScreenShare(){return D(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield Promise.all(r.map(o=>this._room.unpublish(o).catch(()=>{})))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((e=this._localScreenAudioTrack.trackSettings)==null?void 0:e.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),tr(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return D(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!pr||sa(pr))&&(this._initActiveSpeaker(),ee.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return D(this,null,function*(){if(pr&&!sa(pr))this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:pr});else{let e=yield Zo();e[0]&&!sa(e[0])?(pr=e[0],this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):ee.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:qe(be({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),Se.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),Se.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return D(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),Cy.call(e,be({trtcInstance:this},r))})}static setLogLevel(e,r){se.setLogLevel(e),z(r)||(r?se.enableUploadLog():se.disableUploadLog())}static isSupported(){return Vu(We.frameWorkType)}static getPermissions(o){return D(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield cd.request(r).catch(a=>{var c;return se.error(`getPermissions request failed, error: ${(c=a==null?void 0:a.message)!=null?c:a}`)}));let[s,n]=yield Promise.all([cd.get("camera"),cd.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return zr(e)}static getMicrophoneList(e=!0){return Gr(e)}static getSpeakerList(e=!0){return Zo(e)}static setCurrentSpeaker(e){return D(this,null,function*(){if(Bt&&(e===un.SPEAKER||e===un.HEADSET)){let o=yield We.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;dd.forEach(n=>D(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield Zo()).forEach(o=>{o.deviceId===e&&(dd.forEach(s=>{s._setCurrentSpeaker(e),s.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),pr=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:c}){switch(a&&(Gs.version=a),e){case"count":Gs.addCount({key:r,useUV:n});break;case"enum":Gs.addEnum({key:r,value:o,useUV:n});break;case"number":Gs.addNumber({key:r,value:o,split:s,max:c});break}}};p(We,"VERSION",Vf),p(We,"_loggerManager",se),p(We,"EVENT",Ne),p(We,"ERROR_CODE",ke),p(We,"TYPE",un),p(We,"frameWorkType",30),Ie([Vt({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],We.prototype,"use",1),Ie([br(ur.TRTC.enterRoom),as("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),ut(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),Vt()],We.prototype,"enterRoom",1),Ie([Vt()],We.prototype,"exitRoom",1),Ie([br(ur.TRTC.switchRoom),Vt(),el()],We.prototype,"switchRoom",1),Ie([br(ur.TRTC.switchRole),hn("room",{merge:(e,r)=>r}),Vt()],We.prototype,"switchRole",1),Ie([Vt()],We.prototype,"destroy",1),Ie([br(ur.TRTC.startLocalAudio),as("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),Vt()],We.prototype,"startLocalAudio",1),Ie([br(ur.TRTC.updateLocalAudio),hn("audio",{debounce:{delay:200,getKey:()=>`${Ny}-localAudio`,isNeedToDebounce:e=>{var r;return!z((r=e.option)==null?void 0:r.captureVolume)}}}),Vt()],We.prototype,"updateLocalAudio",1),Ie([cs("audio"),Vt()],We.prototype,"stopLocalAudio",1),Ie([br(ur.TRTC.startLocalVideo),as("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),Vt()],We.prototype,"startLocalVideo",1),Ie([br(ur.TRTC.updateLocalVideo),hn("video"),Vt()],We.prototype,"updateLocalVideo",1),Ie([cs("video"),Vt()],We.prototype,"stopLocalVideo",1),Ie([br(ur.TRTC.startScreenShare),as("screen",()=>!0),Vt()],We.prototype,"startScreenShare",1),Ie([br(ur.TRTC.updateScreenShare),hn("screen"),Vt()],We.prototype,"updateScreenShare",1),Ie([Vt()],We.prototype,"stopScreenShare",1),Ie([br(ur.TRTC.startRemoteVideo),as(e=>`v${e.userId}${e.streamType}`,()=>!0),Vt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],We.prototype,"startRemoteVideo",1),Ie([br(ur.TRTC.updateRemoteVideo),hn(e=>`v${e.userId}${e.streamType}`),Vt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],We.prototype,"updateRemoteVideo",1),Ie([br(ur.TRTC.stopRemoteVideo),ut(e=>function(r){return D(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),Vt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],We.prototype,"stopRemoteVideo",1),Ie([cs(e=>`v${e.userId}${e.streamType}`)],We.prototype,"_stopRemoteVideo",1),Ie([br(...ur.TRTC.muteRemoteAudio),Vt({getRemoteId:e=>e})],We.prototype,"muteRemoteAudio",1),Ie([Bf(...ur.TRTC.setRemoteAudioVolume),Zc(200,e=>e),Vt({getRemoteId:e=>e})],We.prototype,"setRemoteAudioVolume",1),Ie([Fl("start"),Ko(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),as((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),Vt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Hm[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],We.prototype,"startPlugin",1),Ie([Fl("update"),hn((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Ei(e[1],r[1]),e)}),Vt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Wm[e.getName()]})],We.prototype,"updatePlugin",1),Ie([Fl("stop"),cs((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),Vt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Gm[e.getName()]})],We.prototype,"stopPlugin",1),Ie([Bf(...ur.TRTC.enableAudioVolumeEvaluation)],We.prototype,"enableAudioVolumeEvaluation",1),Ie([Vt()],We.prototype,"getVideoSnapshot",1),Ie([Vt()],We.prototype,"_setCurrentSpeaker",1),Ie([as(e=>`a${e.userId}`,()=>!0)],We.prototype,"_startRemoteAudio",1),Ie([ut(e=>function(r){return D(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(qe(be({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),cs(e=>`a${e.userId}`)],We.prototype,"_stopRemoteAudio",1),Ie([cs("room")],We.prototype,"_exitRoom",1),Ie([cs("screen")],We.prototype,"_stopScreenShare",1),Ie([br(...ur.TRTC.sendSEIMessage),xf({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],We.prototype,"sendSEIMessage",1),Ie([br(ur.TRTC.sendCustomMessage),xf({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],We.prototype,"sendCustomMessage",1),Ie([ds()],We,"create",1),Ie([br(ur.TRTC.create)],We,"_create",1),Ie([ds()],We,"setLogLevel",1),Ie([ds()],We,"isSupported",1),Ie([ds()],We,"getPermissions",1),Ie([ds()],We,"getCameraList",1),Ie([ds()],We,"getMicrophoneList",1),Ie([ds()],We,"getSpeakerList",1);var ng=We,va=ng;var uh=class{constructor(t,e){p(this,"_flag");p(this,"terminalType");p(this,"userId");p(this,"tinyId");p(this,"role");p(this,"remoteAudioTrack");p(this,"remoteVideoTrack");p(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new bo(t,this),this.remoteVideoTrack=new qi(t,this),this.remoteAuxiliaryTrack=new Al(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return Ms(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var ag=class{constructor(){p(this,"_set",new Set);ee.on(ce.LEAVE_SUCCESS,this.delete,this),ee.on(ce.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function i0(){return D(this,null,function*(){let i,t;try{let g=yield Gr();i=g&&g.length}catch(g){}try{let g=yield zr();t=g&&g.length}catch(g){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:c}=this.checkSystemResult.detail,d=Jo.basis(),m={webRTC:d.isWebRTCSupported,getUserMedia:d.isGetUserMediaSupported,webSocket:d.isWebSocketsSupported,screenShare:d.isScreenShareSupported,webAudio:d.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:c},l={browser:d.browser,os:d.os,trtc:m,devices:e},f={isWebCodecSupported:d.isWebCodecSupported,isMediaSessionSupported:d.isMediaSessionSupported,isWebTransportSupported:d.isWebTransportSupported};It.uploadEvent({log:`trtcstats-${JSON.stringify(l)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(l)}`),It.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(f)}`,userId:this.userId}),tp()})}function Oy(){return ut(i=>{let t=new ag;return function(e,r,o){return D(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),ee.emit(ce.JOIN_START,{room:this,roomId:s,params:e});let n=Vi.getEnv();n||(n=ro.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith($d.OLD_CLOUD_LADDER)?n=ro.OLD_CLOUD_LADDER:this.proxy_ws.startsWith($d.WEBRTC)&&(n=ro.WEBRTC))),It.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),Jo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,i0.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Vi.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Vi.performanceNow(),ee.emit(ce.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&It.uploadEvent({log:`stat-conv-${Number(bi)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),ee.emit(ce.JOIN_FAILED,{room:this,error:a}),a}})}})}var My=()=>ut(i=>function(...t){return D(this,null,function*(){ee.emit(ce.LEAVE_START,{room:this}),yield i.call(this,...t),ee.emit(ce.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function xy(){return ut(i=>function(...t){return D(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;ee.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function ky(){return ut(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function Ly(){return ut(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function o0({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return $o(r)?r.catch(o=>se.error(`${i.name}() error observed ${o}`)):r}catch(r){se.error(`${i.name}() error observed ${r}`)}}}var lh=class{constructor(t){p(this,"_frameWorkType");p(this,"_component");p(this,"_language");p(this,"connectionType");p(this,"_room");p(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0});p(this,"_keyPrefix");p(this,"_log");p(this,"_intervalId");p(this,"_firstPublishedUserList");p(this,"_networkQuality");p(this,"_basicInfo");p(this,"_pathJoinRoom");p(this,"_pathLeaveRoom");p(this,"_pathMainVideoMap");p(this,"_pathMainAudioMap");p(this,"_pathAuxiliaryMap");p(this,"_remoteStreamStatMap");p(this,"_localStreamStat");p(this,"_eventMap",new Map);p(this,"_captureCostSum",0);p(this,"_captureCostCount",0);p(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=se.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Rt(this[e])&&(this[e]=o0({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:qt,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Us().then(()=>{this._basicInfo.string_os_version=ho(),this._basicInfo.string_device_name=Vs()||this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),ee.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(ce.JOIN_START,this.handleJoinStart).addEvent(ce.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(ce.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(ce.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(ce.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(ce.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(ce.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(ce.JOIN_FAILED,this.handleJoinFailed).addEvent(ce.LEAVE_START,this.handleLeaveStart).addEvent(ce.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(ce.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(ce.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(ce.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(ce.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(ce.PUBLISH_START,this.handlePublishStart).addEvent(ce.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(ce.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(ce.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(ce.PLAY_TRACK_START,this.handlePlayStart).addEvent(ce.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(ce.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===j.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(ce.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(ce.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(ce.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(ce.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(ce.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(ce.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(ce.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(ce.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>ee.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),Jt.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(z(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),z(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),z(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:n,tls:a,request:c,response:d}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=c,this._pathJoinRoom.int32_schedule_response=d}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof Me?Number(e.getExtraCode()||e.getCode()):Te.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){var e;if(this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0){if(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0){this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time;let r=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;r&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=Xe()-r)}else this._log.warn("pathJoinRoom endTime is 0");this.report()}}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof Me?Number(e.getExtraCode()||e.getCode()):Te.UNKNOWN)}}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:qe(be({},s0),{msg_user_info:new ud({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:n,role:a}=e,c=new ud({userId:s,tinyId:n,role:a==="anchor"?20:21}),d=Date.now(),m=`${s}_${r}`,l=this._remoteStreamStatMap.get(m);l&&l.subscribeStartTime===0&&(l.subscribeStartTime=d),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(m)&&this._pathMainVideoMap.set(m,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:d}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(m)&&this._pathMainAudioMap.set(m,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:d})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(m)&&this._pathAuxiliaryMap.set(m,{sendSubscribeCMDTime:d})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,Se.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let c,d,m,l;s&&(d=s,m=1),n&&(c=n,l=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:c,totalVideoDelay:d,audioDelayCount:l,videoDelayCount:m})}}))}handleHeartbeatStats(t){var e;if(this.hitTest(t.room)){let{msg_device_info:r,msg_up_stream_info:o,msg_down_stream_info:s}=t.report;if(o.msg_video_status[0]){let{uint32_video_codec_bitrate:n,uint32_video_enc_fps:a,uint32_video_width:c,uint32_video_height:d}=o.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=n,this._localStreamStat.totalVideoFPS+=a,this._localStreamStat.totalVideoWidth+=c,this._localStreamStat.totalVideoHeight+=d,this._localStreamStat.videoCount++}if(o.msg_audio_status){let{uint32_audio_level:n}=o.msg_audio_status;Math.floor(n/fo*100)>0&&(this._localStreamStat.totalAudioLevel+=n/fo,this._localStreamStat.audioLevelCount++)}s.forEach(n=>{let{msg_user_info:a,msg_audio_status:c,msg_video_status:d}=n,m=a.str_identifier,l=this._room.remotePublishedUserMap.get(m);if(d.forEach(f=>{let g=f.uint32_video_stream_type===2,T=f.uint32_video_stream_type===7,E=`${m}_${g?"main":"auxiliary"}`,y=this._remoteStreamStatMap.get(E);if(y&&(g&&(l!=null&&l.remoteVideoTrack.isSubscribed)||T&&(l!=null&&l.remoteAuxiliaryTrack))){y.totalVideoFPS+=f.uint32_video_receive_fps,y.totalVideoBitrate+=f.uint32_video_codec_bitrate,y.videoCount++,y.statsToReport.uint32_video_width===0&&(y.statsToReport.uint32_video_width=f.uint32_video_width),y.statsToReport.uint32_video_height===0&&(y.statsToReport.uint32_video_height=f.uint32_video_height);let v=g?l.remoteVideoTrack:l.remoteAuxiliaryTrack;v.stat.jitterBufferDelay&&(y.videoJitterBufferDelay=v.stat.jitterBufferDelay),v.stat.framesReceived&&(y.statsToReport.uint32_video_consume_render_rate=Math.floor(v.stat.framesDecoded/v.stat.framesReceived*ki(10,6)))}}),!Pn(c)){let f=`${m}_main`,g=this._remoteStreamStatMap.get(f);this._remoteStreamStatMap.has(f)&&g&&l!=null&&l.remoteAudioTrack.isSubscribed&&(g.totalAudioBitrate+=c.uint32_audio_codec_bitrate,g.audioCount++,l.remoteAudioTrack.stat.jitterBufferDelay&&(g.audioJitterBufferDelay=l.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(c.uint32_audio_level/fo*100)>0&&(g.totalAudioLevel+=c.uint32_audio_level/fo,g.audioLevelCount++),c.uint32_audio_block_time&&(g.statsToReport.uint32_audio_block_time+=c.uint32_audio_block_time))}}),r.uint32_audio_capture_cost&&(this._captureCostSum+=r.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0)),r.uint32_audio_capture_cost===0&&((e=this._room.audioManager.localAudioTrack)==null?void 0:e.muted)===!1&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof Me?e.getExtraCode()||e.getCode():Te.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&wn)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Nn)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Pa)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:m,count:l,audioDelayCount:f,videoDelayCount:g,totalAudioDelay:T,totalVideoDelay:E}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(m/l),f&&T&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(T/f),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),g&&E&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(E/g))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,j.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,j.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,fn));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:c}=n.getDataFreezeDuration(e),{renderFreeze:d}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=c,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(d,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_audio_block_time=Math.min(t.statsToReport.uint32_audio_block_time,t.statsToReport.uint32_audio_play_time),n.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>fn&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+fn)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>fn&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+fn)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>fn&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+fn)}getReportData(){this._basicInfo.uint32_networkType=Jd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new ud({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Un(this._signalInfo.relayIp),uint32_client_ip:Un(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*ki(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:Un(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return Wa(t),t}report(){return D(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return D(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=zo.enable?so(t,2001,e):yield sm(t),o=r instanceof ArrayBuffer,s=`${oo(e,Bo.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(Se),this.uploadKVStat(Gs)];n||a.push(no({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return D(this,null,function*(){let e=t.getReportData(this._room.userSig,this._signalInfo.reportToken);if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=qe(be({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=zo.enable?so(e,2003,this._room.sdkAppId):yield sm(e),o=r instanceof ArrayBuffer,s=`${oo(+this._room.sdkAppId,Bo.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||no({url:s,body:r})})}};Ie([qs({settings:{timeout:500,retries:3}})],lh.prototype,"upload",1);var fn=5e3,s0={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},ud=class{constructor(t){p(this,"str_identifier");p(this,"str_tinyid");p(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},Py=lh;var cg=class{constructor(){p(this,"_startTime");p(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=Xe())}stop(){this._endTime===0&&(this._endTime=Xe())}getDuration(){return this._endTime===0?Xe()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},hh=cg;var dg=class{constructor(t){p(this,"_room",null);p(this,"_durationMap");p(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(ce.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(ce.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(ce.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,j.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,j.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,j.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,j.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,j.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,j.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>ee.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>ee.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new hh,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===j.AUDIO?[s]:[],video:e===j.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},Uy=dg;var ug=class{constructor(){p(this,"renderFreezeMap",new Map);p(this,"dataFreezeMap",new Map)}get(t,e){let r=this.renderFreezeMap.get(t),o=this.dataFreezeMap.get(t);return e?e==="data"?o:r:(Zt||zt)&&r&&o&&r.duration>o.duration?r:o}set(t,e,r){r==="data"?this.dataFreezeMap.set(t,e):this.renderFreezeMap.set(t,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},lg=class{constructor(t){p(this,"_room");p(this,"_renderFreezeMap",new Map);p(this,"_isVideoPlayingEventFiredMap",new Map);p(this,"_dataFreezeMap",new Map);p(this,"_monitorFreezeData",new ug);p(this,"_eventMap",new Map);p(this,"_videoEncodeFailedCount",0);p(this,"_audioEncodeFailedCount",0);p(this,"_encodeFailedThreshold",3);p(this,"eventListenerMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(ce.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(ce.PLAY_TRACK_START,this.onPlayTrackStart).set(ce.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(ce.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(ce.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==j.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===j.MUTE?this.onVideoTrackMuted(t):r===j.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(ce.HEARTBEAT_REPORT,this.onHearBeatReport).set(ce.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(ce.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((t,e)=>ee.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>ee.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),n=new hh;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){if(this.hitTest(t)){if(e.msg_up_stream_info.msg_video_status){let r=e.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="video"&&!n.isScreen),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0||o!=null&&o.isUseCustomSource)return;r.forEach(n=>{n.uint32_video_stream_type===2&&(n.uint32_video_capture_fps!==0&&n.uint32_video_codec_bitrate===0&&n.uint32_video_enc_fps===0&&(o!=null&&o.isPublished)?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&It.uploadEvent({userId:this._room.userId,log:`stat-${ii.VIDEO_ENCODE_FAILED_DURING_CALL}`})):this._videoEncodeFailedCount=0)})}if(e.msg_up_stream_info.msg_audio_status){let r=e.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="audio"),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.uint32_audio_codec_bitrate===0&&(o!=null&&o.isPublished)?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&It.uploadEvent({userId:this._room.userId,log:`stat-${ii.AUDIO_ENCODE_FAILED_DURING_CALL}`})):this._audioEncodeFailedCount=0}}}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let n=s.getDuration();if(n>Wd){let a=this._monitorFreezeData.get(t,"data");this._monitorFreezeData.set(t,{userId:e,type:r,duration:a?a.duration+n:n},"data")}else o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==j.VIDEO||!t.isRemotePublished)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<Wd&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e={renderFreeze:0,count:0},r=this._renderFreezeMap.get(t);return r&&(e.renderFreeze=r.totalDuration,e.count=r.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}onRemoteVideoPlayStart({track:t,player:e}){var n;if(!Ri())return;let r=0,o=()=>{document.hidden||(r=0)};document.addEventListener("visibilitychange",o);let s=(a,c)=>{var d;if(r){let m=t.decodeFPS,l=m>0&&m<=5?600+1e3/m:600,f=c.presentationTime-r;if(f>l){f=Math.min(f,5e3);let g=`${t.userId}_${t.streamType}`,T=this._monitorFreezeData.get(g,"render");T?T.duration+=f:this._monitorFreezeData.set(g,{userId:t.userId,type:t.streamType,duration:f},"render");let E=this._renderFreezeMap.get(g);E?(E.totalDuration+=f,E.count+=1):this._renderFreezeMap.set(g,{userId:t.userId,type:t.streamType,totalDuration:f,count:1})}}r=c.presentationTime,(d=e.element)==null||d.requestVideoFrameCallback(s)};(n=e.element)==null||n.requestVideoFrameCallback(s),this.eventListenerMap.set(`${t.userId}_${t.streamType}`,{onVisibilityChange:o})}onRemoteVideoPlayEnd({track:t,player:e}){let r=`${t.userId}_${t.streamType}`,o=this.eventListenerMap.get(r);o&&document.removeEventListener("visibilitychange",o.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},Vy=lg;var Fy=Li(mo(),1);var mh=class{constructor(t,e,r,o,s,n=4/3){this.vbMode=t;this.faceDetectorHash=r;this.visionTaskRegistry=o;this.logger=s;p(this,"animationState");p(this,"originalAspect");p(this,"totalOffsetX",0);p(this,"totalOffsetY",0);p(this,"defaultScaleRatio",.1);p(this,"isRecovering",!1);p(this,"boundaryY",280);p(this,"lastActionTime",0);p(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?Se.addSuccessEvent({key:s.key}):Se.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,c=n.originY,d=n.width,m=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,c,d,m):this.vbMode===2&&this.movingPortrait(r,o,a,c,d,m)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let c=t+r/2,d=e+o/2,m,l,{min:f,offset:g}=this.calculateBoundary(c,s,t,r),{min:T,offset:E}=this.calculateBoundary(d,n,e,o);return m=2*f+r,l=2*T+o,m/l>this.originalAspect?(m=l*this.originalAspect,g=c-m/2):(l=m/this.originalAspect,E=d-l/2),r/s>a&&(g=0,E=0,m=s,l=n),g=Math.max(0,Math.min(g,s-m)),E=Math.max(0,Math.min(E,n-l)),{sx:g,sy:E,cropWidth:m,cropHeight:l,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=be({},t),this.animationState.target=be({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),ft(this.animationState.current.scaleOffsetX)&&ft(this.animationState.target.scaleOffsetX)&&ft(this.animationState.current.scaleOffsetY)&&ft(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(ki(t.sx-e.sx,2)+ki(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let c=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(c,t,e),s*n/c.cropWidth/c.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var c,d,m,l,f,g,T,E,y,v,M,w;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(d=(c=this.animationState.current)==null?void 0:c.scaleRatio)!=null?d:1,scaleOffsetX:(l=(m=this.animationState.current)==null?void 0:m.scaleOffsetX)!=null?l:0,scaleOffsetY:(g=(f=this.animationState.current)==null?void 0:f.scaleOffsetY)!=null?g:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(E=(T=this.animationState.target)==null?void 0:T.scaleRatio)!=null?E:1,scaleOffsetX:(v=(y=this.animationState.target)==null?void 0:y.scaleOffsetX)!=null?v:0,scaleOffsetY:(w=(M=this.animationState.target)==null?void 0:M.scaleOffsetY)!=null?w:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var n0=`#version 300 es
99
+ ${o.stack}`),!1}},i};var Jn=new WeakMap;function hT(i){let t=Jn.get(i);t&&(t.forEach(e=>clearTimeout(e)),Jn.delete(i))}function pT(i,t){return Pe((e,r)=>function(...o){let s=Jn.get(this);s||(s=new Map,Jn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let d=setTimeout(()=>{var l;(l=Jn.get(this))==null||l.delete(n)},i);s.set(n,d)}else{clearTimeout(a);let d=window.setTimeout(()=>{var l;e.apply(this,o),(l=Jn.get(this))==null||l.delete(n)},i);s.set(n,d)}})}var gT="trtc-sdk-v5",sf="5.14.2-wasm.3";function $t(...i){return Pe((t,e)=>function(...r){try{El.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function nf(...i){return Pe((t,e)=>function(...r){try{El.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function El(i,t,e,r){if(mt(i))for(let o=0;o<i.length;o++)gl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else gl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function gl({rule:i,value:t,key:e,fnName:r,className:o}){function s(d){return{code:ne.INVALID_PARAMETER,extraCode:d,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(O(t)){if(i.required)throw new oe(s(5001));if(O(i.defaultValue)){Xe(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let d=!1;for(let l=0;l<i.type.length;l++)i.type[l]===null&&t===null&&(d=!0),Xe(i.type[l])&&t instanceof i.type[l]&&(d=!0),Oe(i.type[l])&&ft(t)===i.type[l].toLowerCase()&&(d=!0);if(!d)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(l=>as(l)?dn(l):Oe(l)?l:ft(l))},value:t}})}else if(!O(i.type)&&ft(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let d=Fe(t)&&(t===0||Number.isNaN(t)),l=Oe(t)&&t.trim()==="";if(d||l)throw new oe(s(5003))}if(i.notLessThanZero&&Fe(t)&&t<0)throw new oe(s(5006));if(!O(i.min)&&Fe(t)&&t<i.min)throw new oe(s(5007));if(!O(i.max)&&Fe(t)&&t>i.max)throw new oe(s(5008));if(Oe(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Xe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new oe(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new oe(s(5005));let{properties:n}=i;Jt(n)&&pr(t)&&Object.keys(n).forEach(d=>{gl.call(this,{rule:n[d],value:t&&t[d],key:`${d}`,fnName:r,className:o})});let{arrayItem:a}=i;Jt(a)&&mt(t)&&t.forEach((d,l)=>{gl.call(this,{rule:a,value:d,key:`${e}[${l}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}function nt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return Pe((n,a)=>function(...d){var A,R,N;function l(C,P,z){if(z&&z.includes(C))return"hided";if(e){let H=e(...d);if(d[H.argIndex]===P)return H.value}if(P===d||C in d)return P;try{return P instanceof HTMLElement?`id: ${P.id} type:${ft(P)}`:P instanceof MediaStreamTrack?Dd(P):(JSON.stringify(P),P)}catch(H){return`type:${ft(P)}`}}let p=this._log||F;if(o!=null&&o(...d))return n.apply(this,d);d.length>0?p.info(`${a}() ${JSON.stringify(d,(C,P)=>l(C,P,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let f=r?r(...d):uu[a],g=(s==null?void 0:s(...d))||!1;try{let C=n.apply(this,d),P=Te();if(fo(C)){let z=`${a.includes("Plugin")?`${((R=(A=d[0]).getName)==null?void 0:R.call(A))||""} `:" "}`;return C.then(H=>(p.info(`${a}() success ${z}${t.call(this,...d)}`),X.addSuccessEvent({key:f,cost:Te()-P}),H)).catch(H=>{var W;H=oe.convertFrom.call(this,H,a,d.length===1?d[0]:d);let ge=H.extraCode||H.code,Ue=(W=H.message)!=null&&W.includes(ge)?"":` code:${ge}`;throw g||p.error(`${a}() failed ${z}${t.call(this,...d)} ${H}${Ue} params: ${JSON.stringify(d,l)}`),X.addFailedEvent({key:f,error:H}),H})}return X.addSuccessEvent({key:f}),C}catch(C){C=oe.convertFrom.call(this,C,a);let P=C.extraCode||C.code,z=(N=C.message)!=null&&N.includes(P)?"":` code:${P}`;throw g||p.error(`${a}() failed ${C}${z} params: ${JSON.stringify(d,l)}`),X.addFailedEvent({key:f,error:C}),C}})}var _l=i=>Pe((t,e)=>function(r,o){return y(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new oe({code:ne.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Xe(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:ne.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return El.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Tl=0,af,Yi=class Yi{constructor(t){this.core=t;m(this,"log");m(this,"customAudioReferenceMap",new Map);m(this,"audioRefId",0);m(this,"audioContext",ze());m(this,"localAudioWorkletNode");m(this,"screenAudioWorkletNode");m(this,"mixNode");m(this,"silentNode");Tl=Tl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Tl}`}),this.log.info(`created id=${this.getAlias()}${Tl}`),this.installEvent()}static getStartValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack&&!t.room.audioManager.hasScreenAudioTrack)throw new oe({code:ne.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return af||(af=this.doPreload(t)),af}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Yi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Yi.getStartValidateRule(this.core);case"update":return Yi.updateValidateRule;case"stop":return Yi.stopValidateRule}}start(t){return y(this,null,function*(){var g,A,R,N;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:d,enableDump:l,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:f=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=f,!n)throw new oe({code:ne.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:C,status:P,timestamp:z}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,z,C,P,e)}if(f&&!this.screenAudioWorkletNode){let{sign:C,status:P,timestamp:z}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,z,C,P,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(g=this.localAudioWorkletNode)==null||g.port.postMessage({type:"enable"}),(A=this.screenAudioWorkletNode)==null||A.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),O(a)||a.forEach(C=>{this.customAudioReferenceMap.set(C,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:C,refId:`o-${this.audioRefId++}`})}),O(d)||(R=this.localAudioWorkletNode)==null||R.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:d}}),O(l)||(N=this.localAudioWorkletNode)==null||N.port.postMessage({type:"dump",data:{enable:l}})})}update(t){return y(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;O(e)||(this.customAudioReferenceMap.forEach((d,l)=>{this.customAudioReferenceMap.delete(l),this.core.room.audioManager.updateAudioReference({type:"remove",refId:d})}),e.forEach(d=>{this.customAudioReferenceMap.set(d,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:d,refId:`o-${this.audioRefId++}`})})),O(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),O(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return y(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return y(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:d}=yield $R({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${d}`),new oe({code:ne.INVALID_PARAMETER,message:d});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,d){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=l=>{var f;let{data:p}=l;switch(p.type){case"cost":let g=(p==null?void 0:p.value)>10?"info":"debug";this.log[g](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${Ks(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(f=p==null?void 0:p.hist)==null?void 0:f.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":U.emit("265",{room:d,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return y(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return y(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};m(Yi,"updateValidateRule",{type:"object"}),m(Yi,"stopValidateRule",{type:"object"}),m(Yi,"Name","AudioProcessor");var Il=Yi;function BR(i,t=M.MAIN){return`https://${gi[t]||fl(i,t)}/api/v1/audioAiAuth`}function $R(o){return y(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${BR(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,a=yield fetch(n),{data:{errCode:d,errMsg:l,sign:p,status:f}}=yield a.json();if(f==="1")return{auth:!0,sign:p,status:f,message:l};let g=Rr(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",A="Init RTCAudioProcessor failed.",R="";switch(d){case 1:R="Please check your params.";break;case 2:R=`You need to buy packages. Refer to: ${g}`;break;case 3:R="Server is invalid. Please contact our engineer. ";break;case 4:R=`Your packages is not active. Refer to: ${g}`;break;case 5:R=`Your packages is expired. Refer to: ${g}`;break;case 6:R="Your version is not supported.";break}return{auth:!1,status:f,message:l?`${A} Reason: ${l}. ${R}`:`${A}, ${R}`}})}var Sl=0,cf=class{constructor(t,e){m(this,"audioObjectURL");m(this,"player");m(this,"publisher");m(this,"mixInput");this.mixInput=new On(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(O(t.volume)||(this.volume=t.volume),O(t.loop)||(this.loop=t.loop),O(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reload(t){return y(this,null,function*(){if(t.url){let e=yield wc.download(t.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(t),this.updateSettings(t))}else this.mixInput.replaceSource(t.track)})}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return Promise.all([(t=this.player)==null?void 0:t.play(),(e=this.publisher)==null?void 0:e.play()])}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function Xn(i,t){if(t&&typeof t!="function")throw new oe({code:ne.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var Ei=class Ei{constructor(t){this.core=t;m(this,"log");m(this,"mixedMusicMap",new Map);m(this,"cacheMusicMap",new Map);Sl=Sl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Sl}`}),this.log.info(`created id=${this.getAlias()}${Sl}`)}getName(){return Ei.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return Ei.startValidateRule;case"update":return Ei.updateValidateRule;case"stop":return Ei.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e}=this.core;this.core.validateSourceNode(),this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new cf(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t);try{yield s.play()}catch(n){yield this.handleAutoPlayFailed(s,t,n)}this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),X.addEnum({key:502700,value:3}),this.kvUpload(t)})}handleAutoPlayFailed(t,e,r){return y(this,null,function*(){if(r.name==="NotSupportedError")this.log.error(`play failed, try to reload source. error: ${r}`),yield t.reload(e),yield t.play();else if(r.name==="NotAllowedError")if(this.core.room.enableAutoPlayDialog){let o=()=>{var s;(s=t.play())==null||s.finally(()=>{U.off("154",o,this)})};U.on("154",o,this),Dn()}else this.core.trtc.emit(ie.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>y(this,null,function*(){return t.play()})});else throw r})}update(t){return y(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),O(r)||n.setOperation(r),O(o)||n.seek(o),this.kvUpload(t)})}stop(e){return y(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:d,onDurationChange:l,onEnded:p}=t;e&&X.addCount({key:502009}),r&&X.addCount({key:502001}),o&&X.addCount({key:502002}),s&&X.addCount({key:502003}),n&&X.addCount({key:502004}),a&&X.addCount({key:502005}),typeof d!="function"&&X.addCount({key:502007}),typeof p!="function"&&X.addCount({key:502008}),typeof l!="function"&&X.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId:e}),this.stop({id:e})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};m(Ei,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],n=o.split(".").pop(),a=s.indexOf(n)>=0,d=o.startsWith("blob"),l=o.startsWith("data");if(!(a||d||l))throw new oe({code:ne.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new oe({code:ne.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});Xn("onTimeUpdate",t.onTimeUpdate),Xn("onEnded",t.onEnded),Xn("onDurationChange",t.onDurationChange)}}),m(Ei,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){Xn("onTimeUpdate",t.onTimeUpdate),Xn("onEnded",t.onEnded),Xn("onDurationChange",t.onDurationChange)}}),m(Ei,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),m(Ei,"Name","AudioMixer");var Al=Ei;var yl=0,df,Zi=class Zi{constructor(t){this.core=t;m(this,"log");m(this,"audioContext",ze("denoiser"));m(this,"workletNode");m(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5});yl=yl+1,this.log=t.log.createChild({id:`${this.getAlias()}${yl}`}),this.log.info(`created id=${this.getAlias()}${yl}`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:ne.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return df||(df=this.doPreload(t)),df}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Zi.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(t){switch(t){case"start":return Zi.startValidateRule(this.core);case"update":return Zi.updateValidateRule;case"stop":return Zi.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new oe({code:ne.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${o}/denoiser-wasm${Ih()?"":"-nosimd"}.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:d,message:l}=yield WR(r,_e(Y({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${l}`),new oe({code:ne.INVALID_PARAMETER,message:l});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:s,sign:a,status:d}}),this.workletNode.port.onmessage=p=>{var g;let{data:f}=p;if(f.type==="cost"){let A=(f==null?void 0:f.max)>20?"warn":(f==null?void 0:f.max)>10?"info":"debug";this.log[A](`avg cost: ${f.value} max: ${f==null?void 0:f.max}(${Ks(new Date(f==null?void 0:f.maxCostTimestamp))}) hist: ${(g=f==null?void 0:f.hist)==null?void 0:g.join(" ")}`)}else f.type==="log"&&this.log[f.logLevel](`${f.value}`)}}this.updateConfig(t),this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(t){return y(this,null,function*(){this.updateConfig(t)})}stop(){return y(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}updateConfig(t){if(!this.workletNode)return;let e=!1;O(t.mode)||(t.mode===0?this.config.enableFarFieldReduce=!1:t.mode===1&&(this.config.enableFarFieldReduce=!0),e=!0),O(t.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=t.farFieldReduceThreshold,e=!0),e&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};m(Zi,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),m(Zi,"stopValidateRule",{type:"object"}),m(Zi,"Name","AIDenoiser");var bl=Zi;function WR(s,n){return y(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:d,sign:l,status:p}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(p==="1")return{auth:!0,sign:l,status:p,message:d};let f=Rr(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",g="Init RTCAIDenoiser failed.",A="";switch(a){case 1:A="Please check your params.";break;case 2:A=`You need to buy packages. Refer to: ${f}`;break;case 3:A="Server is invalid. Please contact our engineer. ";break;case 4:A=`Your packages is not active. Refer to: ${f}`;break;case 5:A=`Your packages is expired. Refer to: ${f}`;break;case 6:A="Your version is not supported.";break}return{auth:!1,status:p,message:d?`${g} Reason: ${d}. ${A}`:`${g}, ${A}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var _T=bi(ki(),1);var uf=class extends _T.EventEmitter{constructor(){super();m(this,"observer");m(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return y(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!at&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){qe.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&F.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){qe.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},GR=new uf,lf=GR;function jR([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Os(new DataView(new Uint8Array(s).buffer),!0)}function qR(i){return i.type==="empty"||i.data.byteLength===0}function zR(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function JR(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function mf({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-JR(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(jR),s=o.reduce((p,f)=>p+f.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),d=new DataView(i.data),l=0;for(let p=0;p<o.length;p++)for(let f=0;f<o[p].dataView.byteLength;f++)a.setInt8(l++,o[p].dataView.getInt8(f));for(let p=0;p<i.data.byteLength;p++)a.setInt8(l++,d.getInt8(p));return i.data=n,i}function hf({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(qR(i)||!zR(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let d=e.getUint8(a);if(d===0)o++;else if(d===1){if(o===2||o===3){let l=a-o;if(s===-1?s=l:n===-1&&(n=l,r.push(new Os(new DataView(e.buffer.slice(s,n)))),s=l,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(l);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var pf=0,Oc=class Oc{constructor(t){this.core=t;m(this,"log");m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(this,"_subStreamSeiMessageList",[]);pf++,this.log=t.log.createChild({id:`${this.getAlias()}${pf}`}),this.log.info(`[sei] created id=${this.getAlias()}${pf}`),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return mf({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return hf({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(ie.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destroy"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:Is?this.encode:mf,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:Is?this.decode:hf,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return Oc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};m(Oc,"autoStart",!0),m(Oc,"Name","SEI");var Rl=Oc;var XR=0,vl,Mc=class Mc{constructor(t){this.core=t;m(this,"_core");m(this,"log");m(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++XR}`}),this.log.info("created")}getName(){return Mc.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return y(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog())})}update(e){return y(this,arguments,function*({visible:t}){t?yield this.openDebugDiaLog():this.closeDebugDiaLog()})}stop(){this.closeDebugDiaLog()}destroy(){this.stop()}openDebugDiaLog(){return y(this,null,function*(){var t;if(!this.dialog)try{if(vl)yield vl;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${gT}@${pt}/assets/debug-dialog.js`;vl=this._core.fileDownloader.loadScript(e),yield vl}this.dialog=new TRTCDebugDialog(this._core,this.log),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}};m(Mc,"Name","Debug"),m(Mc,"autoStart",!0);var Cl=Mc;var TT=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Nl=class{constructor(t,e,r){m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"type","auto");m(this,"config");m(this,"decoder");m(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=Ae(e,ue.INIT),this.stopOB=bt(),this.startOB=bt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=bt(),a=d=>{let l=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),ye(l,Je(this.stopOB),Le(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:TT(this.type),error:p}),d>4?this.startOB.error(p):this.startOB.next(d+1)})),ye(l,Qr(1),yp(hc))};ye(this.startOB,lc(0),ui(a),Je(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},d=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:TT(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return ji()(e=>y(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},QR={type:"object"},xc=class xc{constructor(t){this.core=t;m(this,"log");m(this,"contextMap",new Map);m(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return xc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return xc.Name}getValidateRule(t){return QR}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new Nl(this.core,r,t);return ye(o.trackDoneOB,Qr(1),Le(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new Nl(this.core,t.track,t))}}};m(xc,"Name","TRTCAudioDecoder");var Pc=xc;var Dl=class{constructor(){m(this,"log");this.log=F.createLogger({id:"exp"})}call(t,e){return y(this,null,function*(){return Xe(this[t])?this[t](e):Promise.reject(new se({code:q.INVALID_PARAMETER,message:We({key:He.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return y(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:d}=e.room,{getPCMAbortCtrlMap:l,audioFrameEventConfigMap:p}=d;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isAvailable){if(l.get(f.userId))return;let g=d.getPCM(A=>{e.emit(ie.AUDIO_FRAME,A)},f.userId);l.set(f.userId,g)}});else{if(l.get(o))return;let f=d.getPCM(g=>{e.emit(ie.AUDIO_FRAME,g)},o);l.set(o,f)}else if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isSubscribed){let{userId:g}=f,A=l.get(g);A==null||A.abort("disable"),l.delete(g)}});else{let f=l.get(o);f==null||f.abort("disable"),l.delete(o)}})}resumeRemotePlayer(t){return y(this,null,function*(){if(t.userId==="*"){let r=[];return t.trtcInstance.room.remotePublishedUserMap.forEach(o=>{let{remoteAudioTrack:s,remoteVideoTrack:n,remoteAuxiliaryTrack:a}=o;t.streamType?t.streamType==="main"?(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume())):a.isAvailable&&r.push(a.player.resume()):(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume()),a.isAvailable&&r.push(a.player.resume()))}),Promise.all(r)}let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);if(e)return t.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()})}pauseRemotePlayer(t){if(t.userId==="*")t.trtcInstance.room.remotePublishedUserMap.forEach(e=>{let{remoteAudioTrack:r,remoteVideoTrack:o,remoteAuxiliaryTrack:s}=e;t.streamType?t.streamType==="main"?(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause()):s.isAvailable&&s.player.pause():(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause(),s.isAvailable&&s.player.pause())});else{let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);e&&(t.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause()):e.remoteAuxiliaryTrack.player.pause())}}};Z([r_({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],Dl.prototype,"enableAudioFrameEvent",1);var IT=new Dl;var ST=bi(ki(),1);var ff=class extends ST.EventEmitter{constructor(){super();m(this,"states",{});m(this,"permissionChangeHandler");m(this,"log");this.log=F.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return y(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return y(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},Lc=new ff;var AT=0,kc=new Set,kt=null;om(sf);Rn.checkStorage();var pe=class pe extends yT.EventEmitter{constructor(e,r){super();m(this,"_room");m(this,"_eventListened",new Set);m(this,"_localVideoTrack",null);m(this,"_localAudioTrack",null);m(this,"_localScreenTrack",null);m(this,"_localScreenAudioTrack",null);m(this,"_localVideoConfig",null);m(this,"_localScreenConfig",null);m(this,"_localAudioConfig",null);m(this,"_remoteVideoConfigMap",new Map);m(this,"_remoteAudioConfigMap",new Map);m(this,"_remoteAudioVolumeMap",new Map);m(this,"_remoteAudioMuteMap",new Map);m(this,"_mediaTrackMap",new WeakMap);m(this,"_log",F.createLogger({id:`t${++AT}`}));m(this,"_plugins",new Map);m(this,"_networkQuality",null);m(this,"_speakerId");m(this,"enterRoomParams");m(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(Y({logger:this._log,frameWorkType:pe.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Ye(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(Al,r.assetsPath),this._use(Il,r.assetsPath),this._use(bl,r.assetsPath),this._use(Pc,r.assetsPath),this._use(Cl),r.enableSEI&&Ja&&this._use(Rl),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),this.emit(ie.AUDIO_VOLUME,{result:o.sort((a,d)=>d.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:ne.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),mT(this,"trtc")}static create(e){}static _create(e,r){Q_();let o=new pe(e,r||{});return kc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){Ft(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(ie.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(ie.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{Qi(!0),this._exitRoom().finally(()=>{this.emit(ie.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(ie.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(ie.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=_e(Y({},e),{uplinkRTT:Math.min(e.uplinkRTT,Ea),downlinkRTT:Math.min(e.downlinkRTT,Ea)});this.emit(ie.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{Ft(o,o).add("player-state-changed",s=>{let n=_e(Y({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=fi(o.streamType)),this.emit(o.kind===M.AUDIO?ie.AUDIO_PLAY_STATE_CHANGED:ie.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(ie.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{At(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:d}=r;a||this._remoteAudioConfigMap.delete(o),d||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==d&&(d?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(d?ie.REMOTE_VIDEO_AVAILABLE:ie.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?ie.REMOTE_AUDIO_AVAILABLE:ie.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?ie.REMOTE_VIDEO_AVAILABLE:ie.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(ie.SEI_MESSAGE,_e(Y({},e),{streamType:fi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(ie.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,d,l,p,f;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,Ea),upLoss:((d=this._networkQuality)==null?void 0:d.uplinkLoss)||0,downLoss:((l=this._networkQuality)==null?void 0:l.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((p=e.msg_up_stream_info.msg_audio_status)==null?void 0:p.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((f=e.msg_up_stream_info.msg_audio_status)==null?void 0:f.uint32_audio_level)||0)/Fi},video:e.msg_up_stream_info.msg_video_status.filter(g=>r[g.uint32_video_stream_type]).map(g=>({bitrate:(g.uint32_video_codec_bitrate||0)/1e3,width:g.uint32_video_width,height:g.uint32_video_height,frameRate:g.uint32_video_enc_fps,videoType:r[g.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(g=>({userId:g.msg_user_info.str_identifier,audio:{bitrate:(g.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(g.msg_audio_status.uint32_audio_level||0)/Fi,point2pointDelay:(g.msg_audio_status.uint32_audio_p2p_delay||0)+(g.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:g.msg_audio_status.uint32_audio_cache_ms||0},video:g.msg_video_status.map(A=>({bitrate:(A.uint32_video_codec_bitrate||0)/1e3,width:A.uint32_video_width,height:A.uint32_video_height,frameRate:A.uint32_video_dec_fps,videoType:r[A.uint32_video_stream_type],point2pointDelay:(A.uint32_video_p2p_delay||0)+(A.uint32_video_cache_ms||0),jitterBufferDelay:A.uint32_video_cache_ms||0,codec:A.uint32_video_codec}))}))};this.emit(ie.STATISTICS,o)}).add("custom-message",e=>{this.emit(ie.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(ie.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(ie.FIRST_VIDEO_FRAME,_e(Y({},e),{streamType:fi(e.streamType)}))}).add("audio-frame",e=>{this.emit(ie.AUDIO_FRAME,e)}),Ft(this,dt).add("audioInputAdded",e=>{this.emit(ie.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(ie.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(ie.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(ie.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>y(this,null,function*(){if(this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),kt&&kt.deviceId===ga){let r=(yield Co()).find(o=>o.deviceId===ga);r&&kt.groupId!==r.groupId&&(kt=r,this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>y(this,null,function*(){this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield Co())[0];if(!r||!kt||kt.groupId===r.groupId)return;let o=kt.deviceId===e.deviceId,s=kt.deviceId===ga&&kt.deviceId===r.deviceId;(o||s)&&(kt=r,this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),Ft(this,Lc).add("permission-state-change",e=>{this.emit(ie.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(ie.SEI_MESSAGE,e=>{var o;let r=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;r&&r.updateAlphaRenderInfo(e)})}getNetworkTime(){return Ri()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(lT.call(this,{TRTC:pe,room:this._room,assetsPath:r,errorModule:{RtcError:oe,ErrorCode:ne,CoreErrorCode:q,ErrorCodeDictionary:Tr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return y(this,null,function*(){var d,l;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Oe(e.proxy)&&e.proxy.turnServer&&((l=(d=this._room).setTurnServer)==null||l.call(d,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Ye(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let a={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,useH265:e.useH265||!1,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,pe.frameWorkType),this._checkTrackToPublish(),lf.start()})}exitRoom(){return y(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return y(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(r){if(r instanceof la&&(r.code===q.API_CALL_TIMEOUT||r.code===q.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===q.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return y(this,null,function*(){yield this.exitRoom();let r=Y(Y({},this.enterRoomParams),e);yield this.enterRoom(r)})}_clearRemoteTracks(){new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch(()=>{})}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch(()=>{})}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),hT(this),this._room.remotePublishedUserMap.forEach(e=>{At(e.remoteAudioTrack),At(e.remoteVideoTrack),At(e.remoteAuxiliaryTrack)})}switchRole(e,r){return y(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),At(this),this.removeAllListeners(),this._room.destroy(),kc.delete(this),kc.size===0&&lf.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),U.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return y(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,n=new li(this._room.audioManager),a={},d={muted:!0};s&&(O(s.microphoneId)?O(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&Fe(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),O(s.profile)||(Oe(s.profile)?pd[s.profile]&&n.setProfile(pd[s.profile]):n.setProfile(s.profile)),Fe(s.earMonitorVolume)&&(d.muted=!(s.earMonitorVolume>0),d.volume=s.earMonitorVolume),O(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),O(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),O(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Ye(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",l=>{this.emit(ie.ERROR,new oe({code:ne.DEVICE_ERROR,extraCode:5309,messageParams:{error:l}}))}),n.on("2",l=>{this.emit(ie.DEVICE_CHANGED,{type:"microphone",action:"active",device:l})}),n.on("4",l=>{let p;l.error&&(p=oe.convertFrom(l.error)),this.emit(ie.PUBLISH_STATE_CHANGED,_e(Y({},l),{error:p}))}),n.on("6",()=>{}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),O(o)||n.setMute(o),Ft(n,n).add("player-state-changed",l=>{this.emit(ie.AUDIO_PLAY_STATE_CHANGED,_e(Y({},l),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=_e(Y({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:d,track:n}),U.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return y(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):O(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),O(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),O(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!O(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),O(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Br(this._localAudioConfig,e)})}stopLocalAudio(){return y(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),U.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),At(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return y(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var f;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,d=new _r(this._room.videoManager),l={},p={};a&&(Ye(a.avoidCropping)&&(d.avoidCropping=a.avoidCropping),a.cameraId?l.deviceId=a.cameraId:O(a.useFrontCamera)?O(a.videoTrack)||(l.customSource=a.videoTrack):l.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,O(a.retryWhenExactFailed)||(l.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(l.contentHint=Nc(a.qosPreference)),O(a.profile)||(Oe(a.profile)?Vr[a.profile]&&d.setProfile(Vr[a.profile]):d.setProfile(a.profile)),O(a.fillMode)||(p.objectFit=a.fillMode),O(a.mirror)||(p.mirror=a.mirror),O(a.small)||(O(a.smallMode)||(this._room.smallMode=a.smallMode),Ye(a.small)&&a.small===!1?d.stopSmall():d.updateSmallConfig(jn(a.small,!0))),O(a.rotation)||d.setRotation(a.rotation),Ye(this._enableAutoSwitchWhenRecapturing)&&(d.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),d.once("first-video-frame",g=>{this.emit(ie.FIRST_VIDEO_FRAME,_e(Y({},g),{streamType:fi(g.streamType)}))}),d.on("5",g=>{this.emit(ie.ERROR,new oe({code:ne.DEVICE_ERROR,extraCode:5308,messageParams:{error:g}}))}),d.on("2",g=>{this.emit(ie.DEVICE_CHANGED,{type:"camera",action:"active",device:g})}),d.on("4",g=>{let A;g.error&&(A=oe.convertFrom(g.error)),this.emit(ie.PUBLISH_STATE_CHANGED,_e(Y({},g),{error:A}))}),d.on("6",()=>{}),this._listenOutputTrackChanged(d),s?yield d.capture(l):(f=d.manager)==null||f.changeInput(d),O(n)||(yield d.setMute(n)),Ft(d,d).add("player-state-changed",g=>{this.emit(ie.VIDEO_PLAY_STATE_CHANGED,_e(Y({},g),{userId:"",streamType:"main"}))}).add("video-size-changed",g=>{this.emit(ie.VIDEO_SIZE_CHANGED,_e(Y({},g),{streamType:fi(g.streamType)}))}),o&&this._room.isJoined&&this._room.publish(d).catch(()=>{}),this._localVideoTrack=d,this._localVideoConfig=_e(Y({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:d})})}updateLocalVideo(e){return y(this,null,function*(){var l,p,f;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,d={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):O(a==null?void 0:a.useFrontCamera)?O(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let g={};g.deviceId=(a==null?void 0:a.cameraId)||((l=this._localVideoConfig.option)==null?void 0:l.cameraId),g.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,g.customSource=(a==null?void 0:a.videoTrack)||((f=this._localVideoConfig.option)==null?void 0:f.videoTrack),yield this._localVideoTrack.capture(g)}a&&(O(a.profile)||(Oe(a.profile)?Vr[a.profile]&&this._localVideoTrack.setProfile(Vr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&O(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),O(a.fillMode)||(d.objectFit=a.fillMode),O(a.mirror)||(d.mirror=a.mirror),O(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Nc(a.qosPreference)),O(a.small)||(Ye(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(jn(a.small,!0)))),this._room.isJoined&&O(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),O(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:d,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Br(this._localVideoConfig,e)})}stopLocalVideo(){return y(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),At(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return y(this,arguments,function*(e={publish:!0,view:null}){var g,A;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new mi(this._room.videoManager);a.on("4",R=>{let N;R.error&&(N=oe.convertFrom(R.error)),this.emit(ie.PUBLISH_STATE_CHANGED,_e(Y({},R),{error:N}))}),a.once("first-video-frame",R=>{this.emit(ie.FIRST_VIDEO_FRAME,_e(Y({},R),{streamType:fi(R.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let d=null,l={},p={};n&&(O(n.profile)||(Oe(n.profile)?fd[n.profile]&&a.setProfile(fd[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(l.systemAudio=!0,l.echoCancellation=n.echoCancellation,l.noiseSuppression=n.noiseSuppression,l.autoGainControl=n.autoGainControl),O(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(l.videoTrack=n.videoTrack),n.audioTrack&&(l.audioTrack=n.audioTrack),n.captureElement&&(l.captureElement=n.captureElement),n.preferDisplaySurface&&(l.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(l.contentHint=Nc(n.qosPreference)));let f=yield a.capture(l);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(ie.SCREEN_SHARE_STOPPED)}),f.getAudioTracks()[0]){d=new Ls(this._room.audioManager);let R=f.getAudioTracks()[0];(g=e.option)!=null&&g.systemAudio&&!((A=e.option)!=null&&A.audioTrack)&&(d.sourceTrack=R),yield d.setInputMediaStreamTrack(R),Ye(s)&&d.mediaTrack&&(d.mediaTrack.enabled=!s),this._speakerId&&d.setAudioOutput(this._speakerId)}if(Ft(a,a).add("player-state-changed",R=>{this.emit(ie.VIDEO_PLAY_STATE_CHANGED,_e(Y({},R),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let R=[a];d&&(R.push(d),this._checkScreenAudioEchoCancellation(a,d)),R.forEach(N=>this._room.publish(N).catch(()=>{}))}this._localScreenTrack=a,this._localScreenAudioTrack=d,this._localScreenConfig=_e(Y({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return y(this,null,function*(){var d;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(O(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let l=Nc(n.qosPreference);this._localScreenTrack.setContentHint(l)}if(this._room.isJoined&&!O(o)){if(o&&!this._localScreenConfig.publish){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.publish(p).catch(()=>{}))}if(this._localScreenConfig.publish&&!o){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.unpublish(p).catch(()=>{}))}}(d=this._localScreenAudioTrack)!=null&&d.mediaTrack&&Ye(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Br(this._localScreenConfig,e)})}stopScreenShare(){return y(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return y(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let d=this._room.remotePublishedUserMap.get(o);if(!d)return;let l={},p=s==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack;p.on("decode-failed",f=>{this.emit(ie.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",f=>{this.emit(ie.VIDEO_SIZE_CHANGED,_e(Y({},f),{streamType:fi(f.streamType)}))}),this._listenOutputTrackChanged(p),n&&(O(n.fillMode)||(l.objectFit=n.fillMode),O(n.mirror)||(l.mirror=n.mirror),O(n.poster)||(l.poster=n.poster),l.canvasRender=n.canvasRender,s==="main"&&!O(n.small)&&(!d.remoteVideoTrack.isSubscribing&&!d.remoteVideoTrack.isSubscribed&&d.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user)),O(n.draggable)||p.setDraggable(n.draggable)),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:l,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!O(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return y(this,null,function*(){var P,z;let{view:r,userId:o,streamType:s,option:n,mute:a}=e,d=`${o}_${s}`,l=this._remoteVideoConfigMap.get(d);if(!l||!this._room.remotePublishedUserMap.has(o))return;let p={};n&&(O(n.fillMode)||(p.objectFit=n.fillMode),O(n.mirror)||(p.mirror=n.mirror));let f=null,g=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(g!=null&&g.muteState.hasVideo)&&(f=g.remoteVideoTrack),s==="sub"&&(g!=null&&g.muteState.hasAuxiliary)&&(f=g.remoteAuxiliaryTrack),!f)return;let{config:A}=l;s==="main"&&n&&!O(n.small)&&this._room.changeType(n.small,f.user),n&&!O(n.draggable)&&f.setDraggable(n.draggable),Ye(a)&&(f.ignoreUpdatePlayingState=!0,a?(yield f.player.pause(),yield this.room.unsubscribe(f)):(yield this.room.subscribe(f),yield f.player.resume())),yield this._updateVideoPlayOption({view:r,playOption:p,track:f,prevConfig:A}),Br(A,e);let R=O(n==null?void 0:n.receiveWhenViewVisible)?(P=A.option)==null?void 0:P.receiveWhenViewVisible:n.receiveWhenViewVisible,N=O(r)?A.view:r,C=O(n==null?void 0:n.viewRoot)?(z=A.option)==null?void 0:z.viewRoot:n.viewRoot;this._observeView({remoteTrack:f,view:N,receiveWhenViewVisible:R,viewRoot:C})})}stopRemoteVideo(e){return y(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return y(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:d}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(d.stop(),n.hasAuxiliary&&o.push(d))}for(let n of o)r&&(delete n.ignoreUpdatePlayingState,yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return y(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw o.code!==ne.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return y(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return y(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return y(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(ie.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{aT.has(e)||this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===pe.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(pe.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(Oe(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return y(this,null,function*(){(yield Co()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),kt=o)}),this._log.warn(`the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: ${or}/en/TRTC.html#.setCurrentSpeaker`)})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return y(this,null,function*(){var a;let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},n=o.remoteAudioTrack;n.on("decode-failed",d=>{this.emit(ie.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let d=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),l=Fe(d)?d:100;s.volume=l,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),ye(Ae(n,"decode-failed"),Je(Ae(n,ue.INIT)),Le(()=>{this.startPlugin(Pc.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),U.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(d){throw this._remoteAudioConfigMap.delete(r),d}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return y(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),U.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;ye(Ae(e,"decode-failed"),Je(Ae(e,ue.INIT)),Ds(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),qi(Ae(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(ie.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,_e(Y({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return y(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),O(e)&&s&&s.view&&!un(r)){let a=mn(s.view);a.length>0&&(yield o.play(a,r))}if(!O(e)){let a=mn(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return y(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(O(e.muted)||r.setPlayerMute(e.muted),O(e.volume)||r.setAudioVolume(e.volume/100),r instanceof li&&r.mediaTrack){let n=e.muted===!1&&!O(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof zi){let n=e.muted?0:e.volume;if(O(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(ie.TRACK,{userId:o,streamType:fi(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return Promise.all(e.map(n=>this._room.publish(n).catch(()=>{})))}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o,viewRoot:s}){if(O(r)||O(o))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${fi(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||mt(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||(this._log.info("_observeView observer disconnect, resubscribe",e.userId,e.strMediaType),this._room.subscribe(e).catch(()=>{}));return}let l=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),l.clear(),a=new IntersectionObserver(g=>{g.forEach(A=>{l.set(A.target,A.isIntersecting),e.log.info(`view ${A.target.id} is${A.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...l.values()].find(R=>R)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let f=new Set(mn(r));l.forEach((g,A)=>{f.has(A)||(a.unobserve(A),l.delete(A))}),f.forEach(g=>{l.set(g,!0),a.observe(g)}),a.takeRecords().forEach(g=>{l.set(g.target,g.isIntersecting)}),n.visibleViewMap=l,n.observer=a}_exitRoom(){return y(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_stopScreenShare(){return y(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield Promise.all(r.map(o=>this._room.unpublish(o).catch(()=>{})))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((e=this._localScreenAudioTrack.trackSettings)==null?void 0:e.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),At(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return y(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!kt||xn(kt))&&(this._initActiveSpeaker(),U.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return y(this,null,function*(){if(kt&&!xn(kt))this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:kt});else{let e=yield Co();e[0]&&!xn(e[0])?(kt=e[0],this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):U.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:_e(Y({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),X.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),X.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return y(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),IT.call(e,Y({trtcInstance:this},r))})}static setLogLevel(e,r){F.setLogLevel(e),O(r)||(r?F.enableUploadLog():F.disableUploadLog())}static isSupported(){return fu(pe.frameWorkType)}static getPermissions(o){return y(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield Lc.request(r).catch(a=>{var d;return F.error(`getPermissions request failed, error: ${(d=a==null?void 0:a.message)!=null?d:a}`)}));let[s,n]=yield Promise.all([Lc.get("camera"),Lc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return dr(e)}static getMicrophoneList(e=!0){return cr(e)}static getSpeakerList(e=!0){return Co(e)}static setCurrentSpeaker(e){return y(this,null,function*(){if(at&&(e===Vs.SPEAKER||e===Vs.HEADSET)){let o=yield pe.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;kc.forEach(n=>y(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield Co()).forEach(o=>{o.deviceId===e&&(kc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),kt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:d}){switch(a&&(Ts.version=a),e){case"count":Ts.addCount({key:r,useUV:n});break;case"enum":Ts.addEnum({key:r,value:o,useUV:n});break;case"number":Ts.addNumber({key:r,value:o,split:s,max:d});break}}};m(pe,"VERSION",sf),m(pe,"_loggerManager",F),m(pe,"EVENT",ie),m(pe,"ERROR_CODE",ne),m(pe,"TYPE",Vs),m(pe,"frameWorkType",30),Z([nt({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],pe.prototype,"use",1),Z([$t(Ot.TRTC.enterRoom),Uo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Pe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),nt()],pe.prototype,"enterRoom",1),Z([nt()],pe.prototype,"exitRoom",1),Z([$t(Ot.TRTC.switchRoom),nt(),Ou()],pe.prototype,"switchRoom",1),Z([$t(Ot.TRTC.switchRole),Bs("room",{merge:(e,r)=>r}),nt()],pe.prototype,"switchRole",1),Z([nt()],pe.prototype,"destroy",1),Z([$t(Ot.TRTC.startLocalAudio),Uo("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),nt()],pe.prototype,"startLocalAudio",1),Z([$t(Ot.TRTC.updateLocalAudio),Bs("audio",{debounce:{delay:200,getKey:()=>`${AT}-localAudio`,isNeedToDebounce:e=>{var r;return!O((r=e.option)==null?void 0:r.captureVolume)}}}),nt()],pe.prototype,"updateLocalAudio",1),Z([Vo("audio"),nt()],pe.prototype,"stopLocalAudio",1),Z([$t(Ot.TRTC.startLocalVideo),Uo("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),nt()],pe.prototype,"startLocalVideo",1),Z([$t(Ot.TRTC.updateLocalVideo),Bs("video"),nt()],pe.prototype,"updateLocalVideo",1),Z([Vo("video"),nt()],pe.prototype,"stopLocalVideo",1),Z([$t(Ot.TRTC.startScreenShare),Uo("screen",()=>!0),nt()],pe.prototype,"startScreenShare",1),Z([$t(Ot.TRTC.updateScreenShare),Bs("screen"),nt()],pe.prototype,"updateScreenShare",1),Z([nt()],pe.prototype,"stopScreenShare",1),Z([$t(Ot.TRTC.startRemoteVideo),Uo(e=>`v${e.userId}${e.streamType}`,()=>!0),nt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"startRemoteVideo",1),Z([$t(Ot.TRTC.updateRemoteVideo),Bs(e=>`v${e.userId}${e.streamType}`),nt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"updateRemoteVideo",1),Z([$t(Ot.TRTC.stopRemoteVideo),Pe(e=>function(r){return y(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),nt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"stopRemoteVideo",1),Z([Vo(e=>`v${e.userId}${e.streamType}`)],pe.prototype,"_stopRemoteVideo",1),Z([$t(...Ot.TRTC.muteRemoteAudio),nt({getRemoteId:e=>e})],pe.prototype,"muteRemoteAudio",1),Z([nf(...Ot.TRTC.setRemoteAudioVolume),pT(200,e=>e),nt({getRemoteId:e=>e})],pe.prototype,"setRemoteAudioVolume",1),Z([_l("start"),No(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),Uo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),nt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>dh[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],pe.prototype,"startPlugin",1),Z([_l("update"),Bs((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Br(e[1],r[1]),e)}),nt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>uh[e.getName()]})],pe.prototype,"updatePlugin",1),Z([_l("stop"),Vo((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),nt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>lh[e.getName()]})],pe.prototype,"stopPlugin",1),Z([nf(...Ot.TRTC.enableAudioVolumeEvaluation)],pe.prototype,"enableAudioVolumeEvaluation",1),Z([nt()],pe.prototype,"getVideoSnapshot",1),Z([nt()],pe.prototype,"_setCurrentSpeaker",1),Z([Uo(e=>`a${e.userId}`,()=>!0)],pe.prototype,"_startRemoteAudio",1),Z([Pe(e=>function(r){return y(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(_e(Y({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),Vo(e=>`a${e.userId}`)],pe.prototype,"_stopRemoteAudio",1),Z([Vo("room")],pe.prototype,"_exitRoom",1),Z([Vo("screen")],pe.prototype,"_stopScreenShare",1),Z([$t(...Ot.TRTC.sendSEIMessage),Kp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],pe.prototype,"sendSEIMessage",1),Z([$t(Ot.TRTC.sendCustomMessage),Kp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],pe.prototype,"sendCustomMessage",1),Z([Fo()],pe,"create",1),Z([$t(Ot.TRTC.create)],pe,"_create",1),Z([Fo()],pe,"setLogLevel",1),Z([Fo()],pe,"isSupported",1),Z([Fo()],pe,"getPermissions",1),Z([Fo()],pe,"getCameraList",1),Z([Fo()],pe,"getMicrophoneList",1),Z([Fo()],pe,"getSpeakerList",1);var gf=pe,Qn=gf;var wl=class{constructor(t,e){m(this,"_flag");m(this,"terminalType");m(this,"userId");m(this,"tinyId");m(this,"role");m(this,"remoteAudioTrack");m(this,"remoteVideoTrack");m(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new zi(t,this),this.remoteVideoTrack=new xo(t,this),this.remoteAuxiliaryTrack=new tl(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return cs(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var Ef=class{constructor(){m(this,"_set",new Set);U.on(B.LEAVE_SUCCESS,this.delete,this),U.on(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function YR(){return y(this,null,function*(){let i,t;try{let A=yield cr();i=A&&A.length}catch(A){}try{let A=yield dr();t=A&&A.length}catch(A){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:d}=this.checkSystemResult.detail,l=bo.basis(),p={webRTC:l.isWebRTCSupported,getUserMedia:l.isGetUserMediaSupported,webSocket:l.isWebSocketsSupported,screenShare:l.isScreenShareSupported,webAudio:l.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:d},f={browser:l.browser,os:l.os,trtc:p,devices:e},g={isWebCodecSupported:l.isWebCodecSupported,isMediaSessionSupported:l.isMediaSessionSupported,isWebTransportSupported:l.isWebTransportSupported};qe.uploadEvent({log:`trtcstats-${JSON.stringify(f)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(f)}`),qe.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(g)}`,userId:this.userId}),Ah()})}function bT(){return Pe(i=>{let t=new Ef;return function(e,r,o){return y(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new se({code:q.INVALID_OPERATION,message:We({key:He.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new se({code:q.INVALID_OPERATION,message:We({key:He.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),U.emit(B.JOIN_START,{room:this,roomId:s,params:e});let n=si.getEnv();n||(n=vi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(gd.OLD_CLOUD_LADDER)?n=vi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(gd.WEBRTC)&&(n=vi.WEBRTC))),qe.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),bo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,YR.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!si.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=si.performanceNow(),U.emit(B.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&qe.uploadEvent({log:`stat-conv-${Number(jr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),U.emit(B.JOIN_FAILED,{room:this,error:a}),a}})}})}var RT=()=>Pe(i=>function(...t){return y(this,null,function*(){U.emit(B.LEAVE_START,{room:this}),yield i.call(this,...t),U.emit(B.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function vT(){return Pe(i=>function(...t){return y(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;U.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function CT(){return Pe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function NT(){return Pe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function ZR({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return fo(r)?r.catch(o=>F.error(`${i.name}() error observed ${o}`)):r}catch(r){F.error(`${i.name}() error observed ${r}`)}}}var Ol=class{constructor(t){m(this,"_frameWorkType");m(this,"_component");m(this,"_language");m(this,"connectionType");m(this,"_room");m(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0});m(this,"_keyPrefix");m(this,"_log");m(this,"_intervalId");m(this,"_firstPublishedUserList");m(this,"_networkQuality");m(this,"_basicInfo");m(this,"_pathJoinRoom");m(this,"_pathLeaveRoom");m(this,"_pathMainVideoMap");m(this,"_pathMainAudioMap");m(this,"_pathAuxiliaryMap");m(this,"_remoteStreamStatMap");m(this,"_localStreamStat");m(this,"_eventMap",new Map);m(this,"_captureCostSum",0);m(this,"_captureCostCount",0);m(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=F.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Xe(this[e])&&(this[e]=ZR({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:pt,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,hs().then(()=>{this._basicInfo.string_os_version=Li(),this._basicInfo.string_device_name=ps()||this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),U.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(B.JOIN_START,this.handleJoinStart).addEvent(B.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(B.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(B.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(B.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(B.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(B.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(B.JOIN_FAILED,this.handleJoinFailed).addEvent(B.LEAVE_START,this.handleLeaveStart).addEvent(B.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(B.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(B.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(B.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(B.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(B.PUBLISH_START,this.handlePublishStart).addEvent(B.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(B.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(B.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(B.PLAY_TRACK_START,this.handlePlayStart).addEvent(B.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(B.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===M.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(B.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(B.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(B.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(B.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(B.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(B.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>U.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),gt.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(O(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),O(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),O(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:n,tls:a,request:d,response:l}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=d,this._pathJoinRoom.int32_schedule_response=l}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof se?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){var e;if(this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0){if(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0){this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time;let r=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;r&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=Te()-r)}else this._log.warn("pathJoinRoom endTime is 0");this.report()}}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof se?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:_e(Y({},KR),{msg_user_info:new Uc({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:n,role:a}=e,d=new Uc({userId:s,tinyId:n,role:a==="anchor"?20:21}),l=Date.now(),p=`${s}_${r}`,f=this._remoteStreamStatMap.get(p);f&&f.subscribeStartTime===0&&(f.subscribeStartTime=l),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:l}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:l})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:l})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,X.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let d,l,p,f;s&&(l=s,p=1),n&&(d=n,f=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:d,totalVideoDelay:l,audioDelayCount:f,videoDelayCount:p})}}))}handleHeartbeatStats(t){var e;if(this.hitTest(t.room)){let{msg_device_info:r,msg_up_stream_info:o,msg_down_stream_info:s}=t.report;if(o.msg_video_status[0]){let{uint32_video_codec_bitrate:n,uint32_video_enc_fps:a,uint32_video_width:d,uint32_video_height:l}=o.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=n,this._localStreamStat.totalVideoFPS+=a,this._localStreamStat.totalVideoWidth+=d,this._localStreamStat.totalVideoHeight+=l,this._localStreamStat.videoCount++}if(o.msg_audio_status){let{uint32_audio_level:n}=o.msg_audio_status;Math.floor(n/Fi*100)>0&&(this._localStreamStat.totalAudioLevel+=n/Fi,this._localStreamStat.audioLevelCount++)}s.forEach(n=>{let{msg_user_info:a,msg_audio_status:d,msg_video_status:l}=n,p=a.str_identifier,f=this._room.remotePublishedUserMap.get(p);if(l.forEach(g=>{let A=g.uint32_video_stream_type===2,R=g.uint32_video_stream_type===7,N=`${p}_${A?"main":"auxiliary"}`,C=this._remoteStreamStatMap.get(N);if(C&&(A&&(f!=null&&f.remoteVideoTrack.isSubscribed)||R&&(f!=null&&f.remoteAuxiliaryTrack))){C.totalVideoFPS+=g.uint32_video_receive_fps,C.totalVideoBitrate+=g.uint32_video_codec_bitrate,C.videoCount++,C.statsToReport.uint32_video_width===0&&(C.statsToReport.uint32_video_width=g.uint32_video_width),C.statsToReport.uint32_video_height===0&&(C.statsToReport.uint32_video_height=g.uint32_video_height);let P=A?f.remoteVideoTrack:f.remoteAuxiliaryTrack;P.stat.jitterBufferDelay&&(C.videoJitterBufferDelay=P.stat.jitterBufferDelay),P.stat.framesReceived&&(C.statsToReport.uint32_video_consume_render_rate=Math.floor(P.stat.framesDecoded/P.stat.framesReceived*ri(10,6)))}}),!un(d)){let g=`${p}_main`,A=this._remoteStreamStatMap.get(g);this._remoteStreamStatMap.has(g)&&A&&f!=null&&f.remoteAudioTrack.isSubscribed&&(A.totalAudioBitrate+=d.uint32_audio_codec_bitrate,A.audioCount++,f.remoteAudioTrack.stat.jitterBufferDelay&&(A.audioJitterBufferDelay=f.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(d.uint32_audio_level/Fi*100)>0&&(A.totalAudioLevel+=d.uint32_audio_level/Fi,A.audioLevelCount++),d.uint32_audio_block_time&&(A.statsToReport.uint32_audio_block_time+=d.uint32_audio_block_time))}}),r.uint32_audio_capture_cost&&(this._captureCostSum+=r.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0)),r.uint32_audio_capture_cost===0&&((e=this._room.audioManager.localAudioTrack)==null?void 0:e.muted)===!1&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof se?e.getExtraCode()||e.getCode():q.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&tn)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&rn)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&fa)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:p,count:f,audioDelayCount:g,videoDelayCount:A,totalAudioDelay:R,totalVideoDelay:N}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/f),g&&R&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(R/g),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),A&&N&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(N/A))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,M.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,M.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,$s));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:d}=n.getDataFreezeDuration(e),{renderFreeze:l}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=d,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(l,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_audio_block_time=Math.min(t.statsToReport.uint32_audio_block_time,t.statsToReport.uint32_audio_play_time),n.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>$s&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+$s)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>$s&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+$s)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>$s&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+$s)}getReportData(){this._basicInfo.uint32_networkType=Rd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Uc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:ln(this._signalInfo.relayIp),uint32_client_ip:ln(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*ri(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:ln(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return Aa(t),t}report(){return y(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return y(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=Io.enable?Di(t,2001,e):yield vm(t),o=r instanceof ArrayBuffer,s=`${Ni(e,po.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(X),this.uploadKVStat(Ts)];n||a.push(wi({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return y(this,null,function*(){let e=t.getReportData(this._room.userSig,this._signalInfo.reportToken);if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=_e(Y({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=Io.enable?Di(e,2003,this._room.sdkAppId):yield vm(e),o=r instanceof ArrayBuffer,s=`${Ni(+this._room.sdkAppId,po.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||wi({url:s,body:r})})}};Z([As({settings:{timeout:500,retries:3}})],Ol.prototype,"upload",1);var $s=5e3,KR={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Uc=class{constructor(t){m(this,"str_identifier");m(this,"str_tinyid");m(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},DT=Ol;var _f=class{constructor(){m(this,"_startTime");m(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=Te())}stop(){this._endTime===0&&(this._endTime=Te())}getDuration(){return this._endTime===0?Te()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},Ml=_f;var Tf=class{constructor(t){m(this,"_room",null);m(this,"_durationMap");m(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(B.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(B.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,M.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,M.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,M.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,M.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new Ml,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===M.AUDIO?[s]:[],video:e===M.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},wT=Tf;var If=class{constructor(){m(this,"renderFreezeMap",new Map);m(this,"dataFreezeMap",new Map)}get(t,e){let r=this.renderFreezeMap.get(t),o=this.dataFreezeMap.get(t);return e?e==="data"?o:r:(ct||ot)&&r&&o&&r.duration>o.duration?r:o}set(t,e,r){r==="data"?this.dataFreezeMap.set(t,e):this.renderFreezeMap.set(t,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},Sf=class{constructor(t){m(this,"_room");m(this,"_renderFreezeMap",new Map);m(this,"_isVideoPlayingEventFiredMap",new Map);m(this,"_dataFreezeMap",new Map);m(this,"_monitorFreezeData",new If);m(this,"_eventMap",new Map);m(this,"_videoEncodeFailedCount",0);m(this,"_audioEncodeFailedCount",0);m(this,"_encodeFailedThreshold",3);m(this,"eventListenerMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(B.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(B.PLAY_TRACK_START,this.onPlayTrackStart).set(B.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(B.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==M.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===M.MUTE?this.onVideoTrackMuted(t):r===M.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(B.HEARTBEAT_REPORT,this.onHearBeatReport).set(B.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(B.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),n=new Ml;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){if(this.hitTest(t)){if(e.msg_up_stream_info.msg_video_status){let r=e.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="video"&&!n.isScreen),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0||o!=null&&o.isUseCustomSource)return;r.forEach(n=>{n.uint32_video_stream_type===2&&(n.uint32_video_capture_fps!==0&&n.uint32_video_codec_bitrate===0&&n.uint32_video_enc_fps===0&&(o!=null&&o.isPublished)?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&qe.uploadEvent({userId:this._room.userId,log:`stat-${yr.VIDEO_ENCODE_FAILED_DURING_CALL}`})):this._videoEncodeFailedCount=0)})}if(e.msg_up_stream_info.msg_audio_status){let r=e.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="audio"),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.uint32_audio_codec_bitrate===0&&(o!=null&&o.isPublished)?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&qe.uploadEvent({userId:this._room.userId,log:`stat-${yr.AUDIO_ENCODE_FAILED_DURING_CALL}`})):this._audioEncodeFailedCount=0}}}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let n=s.getDuration();if(n>Td){let a=this._monitorFreezeData.get(t,"data");this._monitorFreezeData.set(t,{userId:e,type:r,duration:a?a.duration+n:n},"data")}else o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==M.VIDEO||!t.isRemotePublished)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<Td&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e={renderFreeze:0,count:0},r=this._renderFreezeMap.get(t);return r&&(e.renderFreeze=r.totalDuration,e.count=r.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}onRemoteVideoPlayStart({track:t,player:e}){var n;if(!zr())return;let r=0,o=()=>{document.hidden||(r=0)};document.addEventListener("visibilitychange",o);let s=(a,d)=>{var l;if(r){let p=t.decodeFPS,f=p>0&&p<=5?600+1e3/p:600,g=d.presentationTime-r;if(g>f){g=Math.min(g,5e3);let A=`${t.userId}_${t.streamType}`,R=this._monitorFreezeData.get(A,"render");R?R.duration+=g:this._monitorFreezeData.set(A,{userId:t.userId,type:t.streamType,duration:g},"render");let N=this._renderFreezeMap.get(A);N?(N.totalDuration+=g,N.count+=1):this._renderFreezeMap.set(A,{userId:t.userId,type:t.streamType,totalDuration:g,count:1})}}r=d.presentationTime,(l=e.element)==null||l.requestVideoFrameCallback(s)};(n=e.element)==null||n.requestVideoFrameCallback(s),this.eventListenerMap.set(`${t.userId}_${t.streamType}`,{onVisibilityChange:o})}onRemoteVideoPlayEnd({track:t,player:e}){let r=`${t.userId}_${t.streamType}`,o=this.eventListenerMap.get(r);o&&document.removeEventListener("visibilitychange",o.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},OT=Sf;var PT=bi(ki(),1);var xl=class{constructor(t,e,r,o,s,n=4/3){this.vbMode=t;this.faceDetectorHash=r;this.visionTaskRegistry=o;this.logger=s;m(this,"animationState");m(this,"originalAspect");m(this,"totalOffsetX",0);m(this,"totalOffsetY",0);m(this,"defaultScaleRatio",.1);m(this,"isRecovering",!1);m(this,"boundaryY",280);m(this,"lastActionTime",0);m(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?X.addSuccessEvent({key:s.key}):X.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,d=n.originY,l=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,d,l,p):this.vbMode===2&&this.movingPortrait(r,o,a,d,l,p)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let d=t+r/2,l=e+o/2,p,f,{min:g,offset:A}=this.calculateBoundary(d,s,t,r),{min:R,offset:N}=this.calculateBoundary(l,n,e,o);return p=2*g+r,f=2*R+o,p/f>this.originalAspect?(p=f*this.originalAspect,A=d-p/2):(f=p/this.originalAspect,N=l-f/2),r/s>a&&(A=0,N=0,p=s,f=n),A=Math.max(0,Math.min(A,s-p)),N=Math.max(0,Math.min(N,n-f)),{sx:A,sy:N,cropWidth:p,cropHeight:f,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=Y({},t),this.animationState.target=Y({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),Fe(this.animationState.current.scaleOffsetX)&&Fe(this.animationState.target.scaleOffsetX)&&Fe(this.animationState.current.scaleOffsetY)&&Fe(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(ri(t.sx-e.sx,2)+ri(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let d=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(d,t,e),s*n/d.cropWidth/d.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var d,l,p,f,g,A,R,N,C,P,z,H;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(l=(d=this.animationState.current)==null?void 0:d.scaleRatio)!=null?l:1,scaleOffsetX:(f=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?f:0,scaleOffsetY:(A=(g=this.animationState.current)==null?void 0:g.scaleOffsetY)!=null?A:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(N=(R=this.animationState.target)==null?void 0:R.scaleRatio)!=null?N:1,scaleOffsetX:(P=(C=this.animationState.target)==null?void 0:C.scaleOffsetX)!=null?P:0,scaleOffsetY:(H=(z=this.animationState.target)==null?void 0:z.scaleOffsetY)!=null?H:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var ev=`#version 300 es
126
100
  in vec2 a_position;
127
101
  in vec2 a_texCoord;
128
102
  out vec2 v_texCoord;
129
103
  void main() {
130
104
  gl_Position = vec4(a_position.x, a_position.y, 0, 1);
131
105
  v_texCoord = a_texCoord;
132
- }`,a0=`#version 300 es
106
+ }`,tv=`#version 300 es
133
107
  precision highp float;
134
108
  uniform sampler2D u_texture;
135
109
  uniform sampler2D mask;
@@ -138,7 +112,7 @@ in vec2 v_texCoord;
138
112
  out vec4 outColor;
139
113
  void main() {
140
114
  outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
141
- }`,ph=class extends di{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:r.width,height:r.height,logger:e.log});p(this,"_bgTexture");p(this,"_waterMarkTexture");p(this,"_lastMaskTexture");p(this,"_lastMaskFbo");p(this,"_textureValid",!1);p(this,"_selfieTextureValid",!1);p(this,"_selfieSegmentationHash");p(this,"wasm");p(this,"predictReady");p(this,"_color");p(this,"_prePrograme");p(this,"_segmentationMask");p(this,"_weixin",!1);p(this,"_centerFace");p(this,"_textureMatrixLocation");p(this,"_offsetMatrixLocation");p(this,"_colorLocation");p(this,"_enableFaceCentering",!1);p(this,"_enableEffectOptimization",!1);p(this,"_mat4");p(this,"_postProcessing");p(this,"_onAbort");p(this,"_visionTaskRegistry");p(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return D(this,null,function*(){var n,a,c;this.predictReady=new Promise(d=>{this.resolvePreditReady=d});let r=e.Wasm,o=this.context.ctx;if(e.color&&(this._color=e.color),e.mat4&&(this._mat4=e.mat4),e.postProcessing&&(this._postProcessing=e.postProcessing),this._enableFaceCentering=(n=e.enableFaceCentering)!=null?n:!1,this._enableEffectOptimization=(a=e.enableEffectOptimization)!=null?a:!1,this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="color"?3:0,this._onAbort=e.onAbort,e.bg||this.resolvePreditReady(),e.waterMark){let{x:d,y:m,width:l,height:f}=e.waterMark;this.wasm.setWaterMark(d,m,l,f)}if(e.beautyParams){let{beauty:d,brightness:m,ruddy:l}=e.beautyParams;this.wasm.setBeauty(d,m,l,e==null?void 0:e.width,e==null?void 0:e.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image));let s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=o.getUniformLocation(this.program,"u_textureMatrix"),o.uniformMatrix4fv(this._textureMatrixLocation,!1,s),this._offsetMatrixLocation=o.getUniformLocation(this.program,"u_offsetMatrix"),o.uniformMatrix4fv(this._offsetMatrixLocation,!1,s),this._colorLocation=o.getUniformLocation(this.program,"u_color"),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let d=this.context.createShader(o.FRAGMENT_SHADER,a0),m=this.context.createShader(o.VERTEX_SHADER,n0);this._prePrograme=this.context.createProgram(m,d),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}this._enableEffectOptimization&&(this.wasm.vbMode===2||this.wasm.vbMode===3)?rc()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(c=this._postProcessing)==null||c.init(o,this.positionBuffer,this.texCoordBuffer,4/3):this._postProcessing=void 0,yield this.initVisionTasks(e)})}initVisionTasks(e){return D(this,null,function*(){if(e.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._visionTaskRegistry.setVideo(this._selfieSegmentationHash,this.image),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let r=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!r)return;this._centerFace=new mh(this.wasm.vbMode,this.image,r,this._visionTaskRegistry,this.context.log)}catch(r){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(e){let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let o=this.getMaskTexture(e);if(!o)return;let s=o;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,s=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,s||null),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.wasm.vbMode===3&&r.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),Jr(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),r.viewport(0,0,r.canvas.width,r.canvas.height),r.drawArrays(r.TRIANGLE_STRIP,0,4),e.close()}getMaskTexture(e){return e.confidenceMasks?e.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let e=this.context.ctx;this.useTexture(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.image)}render(e){let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:s,videoHeight:n}=o;if(Jr(this.wasm.rotation)&&!this._visionTaskRegistry&&([s,n]=[n,s]),s===0||n===0||!this.available)return!1;o.width=s,o.height=n;let a=!1;if(this.totalFrames)this.useTexture(),a=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;a=this._textureValid,this._textureValid=!0}if(this.width!==s||this.height!==n||!a?(this.resize(s,n),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin){if(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let c=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,c||null),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)}r.drawArrays(r.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,n):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,n,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let c=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(c)}}catch(c){this._onAbort&&this._onAbort(c)}return this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let e=this.context.ctx;this._centerFace.aspectRatio=e.canvas.width/e.canvas.height,this._centerFace.actionCentering(this.image);let{current:r,offset:o}=this._centerFace;if(r&&(this.wasm.vbMode===1&&this.drawImage(r.sx,r.sy,r.cropWidth,r.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let s=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:a=0,scaleOffsetY:c=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,c,0]),this._mat4.scale(s,s,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,s)}}drawImage(e,r,o,s){let n=this.context.ctx;if(!this._mat4)return;let{width:a,height:c}=n.canvas,d=this._mat4.create();this._mat4.fromTranslation(d,[e/a,1-(r+s)/c,0]),this._mat4.scale(d,d,[o/a,s/c,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,d)}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),this._postProcessing&&this._postProcessing.close(),(r=this.wasm)==null||r.close()}};var fh=class extends or{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
115
+ }`,Pl=class extends Dr{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:r.width,height:r.height,logger:e.log});m(this,"_bgTexture");m(this,"_waterMarkTexture");m(this,"_lastMaskTexture");m(this,"_lastMaskFbo");m(this,"_textureValid",!1);m(this,"_selfieTextureValid",!1);m(this,"_selfieSegmentationHash");m(this,"wasm");m(this,"predictReady");m(this,"_color");m(this,"_prePrograme");m(this,"_segmentationMask");m(this,"_weixin",!1);m(this,"_centerFace");m(this,"_textureMatrixLocation");m(this,"_offsetMatrixLocation");m(this,"_colorLocation");m(this,"_enableFaceCentering",!1);m(this,"_enableEffectOptimization",!1);m(this,"_mat4");m(this,"_postProcessing");m(this,"_onAbort");m(this,"_visionTaskRegistry");m(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return y(this,null,function*(){var n,a,d;this.predictReady=new Promise(l=>{this.resolvePreditReady=l});let r=e.Wasm,o=this.context.ctx;if(e.color&&(this._color=e.color),e.mat4&&(this._mat4=e.mat4),e.postProcessing&&(this._postProcessing=e.postProcessing),this._enableFaceCentering=(n=e.enableFaceCentering)!=null?n:!1,this._enableEffectOptimization=(a=e.enableEffectOptimization)!=null?a:!1,this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="color"?3:0,this._onAbort=e.onAbort,e.bg||this.resolvePreditReady(),e.waterMark){let{x:l,y:p,width:f,height:g}=e.waterMark;this.wasm.setWaterMark(l,p,f,g)}if(e.beautyParams){let{beauty:l,brightness:p,ruddy:f}=e.beautyParams;this.wasm.setBeauty(l,p,f,e==null?void 0:e.width,e==null?void 0:e.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image));let s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=o.getUniformLocation(this.program,"u_textureMatrix"),o.uniformMatrix4fv(this._textureMatrixLocation,!1,s),this._offsetMatrixLocation=o.getUniformLocation(this.program,"u_offsetMatrix"),o.uniformMatrix4fv(this._offsetMatrixLocation,!1,s),this._colorLocation=o.getUniformLocation(this.program,"u_color"),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let l=this.context.createShader(o.FRAGMENT_SHADER,tv),p=this.context.createShader(o.VERTEX_SHADER,ev);this._prePrograme=this.context.createProgram(p,l),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}this._enableEffectOptimization&&(this.wasm.vbMode===2||this.wasm.vbMode===3)?La()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(d=this._postProcessing)==null||d.init(o,this.positionBuffer,this.texCoordBuffer,4/3):this._postProcessing=void 0,yield this.initVisionTasks(e)})}initVisionTasks(e){return y(this,null,function*(){if(e.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._visionTaskRegistry.setVideo(this._selfieSegmentationHash,this.image),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let r=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!r)return;this._centerFace=new xl(this.wasm.vbMode,this.image,r,this._visionTaskRegistry,this.context.log)}catch(r){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(e){let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let o=this.getMaskTexture(e);if(!o)return;let s=o;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,s=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,s||null),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.wasm.vbMode===3&&r.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),fr(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),r.viewport(0,0,r.canvas.width,r.canvas.height),r.drawArrays(r.TRIANGLE_STRIP,0,4),e.close()}getMaskTexture(e){return e.confidenceMasks?e.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let e=this.context.ctx;this.useTexture(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.image)}render(e){let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:s,videoHeight:n}=o;if(fr(this.wasm.rotation)&&!this._visionTaskRegistry&&([s,n]=[n,s]),s===0||n===0||!this.available)return!1;o.width=s,o.height=n;let a=!1;if(this.totalFrames)this.useTexture(),a=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;a=this._textureValid,this._textureValid=!0}if(this.width!==s||this.height!==n||!a?(this.resize(s,n),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin){if(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let d=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,d||null),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)}r.drawArrays(r.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,n):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,n,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let d=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(d)}}catch(d){this._onAbort&&this._onAbort(d)}return this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let e=this.context.ctx;this._centerFace.aspectRatio=e.canvas.width/e.canvas.height,this._centerFace.actionCentering(this.image);let{current:r,offset:o}=this._centerFace;if(r&&(this.wasm.vbMode===1&&this.drawImage(r.sx,r.sy,r.cropWidth,r.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let s=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:a=0,scaleOffsetY:d=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,d,0]),this._mat4.scale(s,s,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,s)}}drawImage(e,r,o,s){let n=this.context.ctx;if(!this._mat4)return;let{width:a,height:d}=n.canvas,l=this._mat4.create();this._mat4.fromTranslation(l,[e/a,1-(r+s)/d,0]),this._mat4.scale(l,l,[o/a,s/d,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,l)}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),this._postProcessing&&this._postProcessing.close(),(r=this.wasm)==null||r.close()}};var Ll=class extends _t{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
142
116
  precision highp float;
143
117
  uniform sampler2D ySampler;
144
118
  uniform sampler2D uSampler;
@@ -163,19 +137,4 @@ void main() {
163
137
  void main() {
164
138
  gl_Position = vertexPos;
165
139
  textureCoord = texturePos;
166
- }`});p(this,"yTextureRef");p(this,"uTextureRef");p(this,"vTextureRef");p(this,"Y");p(this,"U");p(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var By=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")};function c0(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var d0=0,gh=class{constructor(t){p(this,"id",d0++);p(this,"trackDoneOB");p(this,"startOB");p(this,"stopOB");p(this,"decoder");p(this,"videoContext");p(this,"gop",0);p(this,"gop_helper",0);p(this,"waitFirstKeyFrame",!0);p(this,"startTimestamp",0);p(this,"startTime",0);p(this,"startPerformanceTime",0);p(this,"inputFrameCount",0);p(this,"decodedFrameCount",0);p(this,"decodeFrameCount",0);p(this,"downgradeLevel",0);p(this,"lastDowngradeTime",0);p(this,"lastFrameDiff",0);p(this,"lastDecodeFrameTimestamp",0);p(this,"config");p(this,"gop_before_configure",[]);p(this,"videoElement");p(this,"type","wasm");p(this,"goodType");p(this,"renderer","2d");p(this,"wasmOption");p(this,"createDecoder");p(this,"_decodeSink");p(this,"isReported",!1);p(this,"track");p(this,"stateChangeOB");p(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=ir(),this.track=e,this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=Qe(e.availableState,Ve.OFF),this.stopOB=ir(),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),Ye(this.stateChangeOB,tf((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),At(this.stopOB),lt()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ye(this.pipe(this.track),At(this.stopOB),So());Ye(e,lt(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),Se.addFailedEvent({key:By(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),Se.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),Se.addSuccessEvent({key:By(this.type,this.renderer)}),Se.addSuccessEvent({key:514704})})),Ye(e,Ni(1),lt(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!Xm()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,c;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!c0(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(d=>this.decode(d,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=Xe();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}(this.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(c=t.getMetadata)==null?void 0:c.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>D(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",c=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${c.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(c.timestamp)),e.next(c)}),r.on("error",c=>{t.log.error(c),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new cr({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(cr.UNAVAILABLE,d=>{t.log.error(d),e.error(7)});let c=new fh(this.videoContext);r.on("videoCodecInfo",d=>c.resize(d.width,d.height)),r.on("videoFrame",d=>{({y:c.Y,u:c.U,v:c.V}=d),this.downgradeLevel===1?this.decodedFrameCount%2===0&&c.render(this.decodedFrameCount):c.render(this.decodedFrameCount)}),t.source=c,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let c=new MediaStreamTrackGenerator({kind:"video"}),d=c.writable.getWriter();t.setInputMediaStreamTrack(c),r.on("videoFrame",m=>d.write(m))}else{this.videoContext=new mr({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let c=this.videoContext.createVideoImageSource();r.on("videoFrame",m=>{try{c.image=m,c.update()}catch(l){delete this.goodType,t.log.error(l),e.error(11)}});let d=new on(this.videoContext,{name:"remotePlayer",logger:t.log});c.connect(d),t.source=c,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var $y=Promise.resolve(),ld=class extends Fy.EventEmitter{constructor(e){super();this.room=e;p(this,"videoContext");p(this,"_glVideoContext");p(this,"_2dVideoContext");p(this,"destination");p(this,"smallVideoContext");p(this,"smallDestination");p(this,"smallTrackSource");p(this,"smallImageSource");p(this,"_isMirror",!1);p(this,"_rotation",0);p(this,"cameraTrack");p(this,"cameraNode");p(this,"transformNode");p(this,"mixNode");p(this,"screenTrack");p(this,"screenNode");p(this,"selfModel",!1);p(this,"blurRadius",3);p(this,"arTrack");p(this,"_enableFaceCentering",!1);p(this,"_enableEffectOptimization",!1);p(this,"onAbort");p(this,"_color");p(this,"Wasm");p(this,"waterMarkNode");p(this,"_waterMarkOption");p(this,"watermarkImageList",[]);p(this,"_beautyParams");p(this,"isUsingArTrack",!1);p(this,"mixTrack");p(this,"_isMixScreen",!1);p(this,"_virtualBackground");p(this,"_virtualBackgroundAbortCallback");p(this,"virtualBackgroundInstance");p(this,"_bgAssetPath");p(this,"log");p(this,"_mat4");p(this,"_postProcessing");p(this,"_checkId",0);p(this,"_use2d",!1);p(this,"_autoSwitchRenderMode",!0);p(this,"encodePipeline",[]);p(this,"decodePipeline",[]);p(this,"updated",$y);p(this,"_updateFlag",!1);this.log=se.createLogger({parent:e==null?void 0:e.getLogger(),id:"vm",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.smallVideoContext=new mr({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return Jr(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new mr({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new cr({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(pm<=22),this._glVideoContext.on(cr.UNAVAILABLE,e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=Jt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),Jt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(ni||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?Se.addFailedEvent({key:o,error:r}):Se.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new cr({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Tl(this.smallVideoContext,e,this.log),this.smallVideoContext.on(cr.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;ni&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return D(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(or.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Tr===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof di?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof di?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new El(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(or.RENDER,d=>{var m;(m=this.cameraTrack)==null||m.emit("render",d)}));let{width:n,height:a}=this.cameraResolution,c=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:c.width,height:c.height,image:c},this.cameraNode=new ph(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new ui(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new la(this.videoContext,this.log),n.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:c,height:d}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(c,d),c&&d&&this.waterMarkNode.resize(c,d)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext.canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof zi)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof Zr)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof qi){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let c=e.mediaTrack;return e.setOutputMediaStreamTrack(c)}if(e instanceof nn)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof zi?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof Zr?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof qi?e.source&&e.source.context.destroy():e instanceof nn&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return D(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return D(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new Me({code:Te.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,a)=>n.zIndex-a.zIndex),this.watermarkImageList.forEach(({image:n,x:a,y:c,width:d,height:m,fillVideo:l})=>{let f=l&&e||d,g=l&&r||m,T=l?0:a,E=l?0:c;s.drawImage(n,T,E,f,g)}),Bn(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex&&s.fillVideo===e.fillVideo)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return D(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return D(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return D(this,null,function*(){let r;try{r=yield Bn((e==null?void 0:e.imageElement)||e.imageUrl)}catch(f){throw new Me({code:Te.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:c="watermark",zIndex:d=2,fillVideo:m=!1}=e;this.watermarkImageList.some(f=>f.type===c)?(this.watermarkImageList=this.watermarkImageList.filter(f=>f.type!==c),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:d,type:c,imageUrl:e.imageUrl,fillVideo:m}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:d,type:c,imageUrl:e.imageUrl,fillVideo:m}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(f,g)=>f==="imageUrl"?void 0:g))})}deleteWatermark(e="watermark"){return D(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return D(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return D(this,null,function*(){var r,o,s;if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield Bn(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new Me({code:Te.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return D(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new gh(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};Ie([wE(function(e){this.log.error("update failed",e)}),ut(e=>function(...r){return D(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield $y,this.updated=new Promise((o,s)=>{e.apply(this,r).then(o,s),setTimeout(s,5e3,new Me({code:Te.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],ld.prototype,"update",1);var u0=0;var _h=class extends Ve{constructor(e){super("room");p(this,"seq",++u0);p(this,"sdkAppId");p(this,"userId");p(this,"userSig");p(this,"privateMapKey");p(this,"latencyLevel");p(this,"tinyId");p(this,"scene");p(this,"roomId");p(this,"useStringRoomId");p(this,"role","anchor");p(this,"joinParams",null);p(this,"localPublishFlag",0);p(this,"localTracks",new Set);p(this,"enableAutoPlayDialog",!0);p(this,"autoReceiveAudio",!0);p(this,"autoReceiveVideo",!0);p(this,"proxy_ws");p(this,"proxy_wt");p(this,"proxy_unified");p(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});p(this,"keyPointManager");p(this,"audioManager");p(this,"videoManager");p(this,"callDurationCalculator");p(this,"badCaseDetector");p(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});p(this,"videoDecodeFallbackType");p(this,"smallMode","canvas");p(this,"enableChorus",!1);p(this,"_isUsingCachedSchedule",!1);p(this,"_log");p(this,"_joinedTimestamp",0);p(this,"_sdkType");p(this,"heartbeatReport");p(this,"heartbeatCount",0);p(this,"quality");p(this,"enableSEI");p(this,"isDestroyed",!1);this._log=se.createLogger({parent:e.logger,id:`r${this.seq}`}),this.useStringRoomId=!!e.useStringRoomId,Nt(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Nt(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Nt(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new Py({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new Uy({room:this}),this.badCaseDetector=new Vy({room:this}),this.audioManager=new Il(this),this.videoManager=new ld(this)}get videoCodec(){return"h264"}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainAudioTrack(){for(let e of this.localTracks)if(e.mediaType&1)return e;return null}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}get publishState(){let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach(r=>{if(r.isPublished||r.isPublishing)switch(r.mediaType){case 1:e.audio=!0;break;case 4:e.bigVideo=!0,e.smallVideo=r.hasSmall;break;case 2:e.auxVideo=!0;default:break}}),e}get muteState(){var e,r,o;return{audio:!!((e=this.localMainAudioTrack)!=null&&e.muted),bigVideo:!!((r=this.localMainVideoTrack)!=null&&r.muted),auxVideo:!!((o=this.localAuxVideoTrack)!=null&&o.muted)}}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return D(this,null,function*(){return this.publish(e)})}removeTrack(e){return D(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return D(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(nt(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Nr(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(Ul([a,a]),vs(`https://${a}`)):(s&&vs(s),n&&Ul(n))}ee.once(ce.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:Qi.main,sched_back_domain:Qi.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return D(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return D(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return D(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Wr.INVALID_DESTROY),new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,ee.emit(ce.ROOM_DESTROY,{room:this})}schedule(e,r){return D(this,null,function*(){var s,n,a,c;let o=Xe();try{let{isCached:d,result:m,detailCost:l}=yield Pf({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:qt,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=d,this._log.info(`schedule cache:${+d} ${oi(m,{keysToExclude:["username","credential"]})}`),d&&ee.once(ce.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=be(be({},this.scheduleResult),m),ft((s=m.config)==null?void 0:s.retryCount)&&Wh(m.config.retryCount),nt((n=m.config)==null?void 0:n.loggerDomain)&&vs(m.config.loggerDomain),this.videoDecodeFallbackType=((a=m.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((c=m.config)==null?void 0:c.smallMode)||this.smallMode,ee.emit(ce.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:l}),Se.addSuccessEvent({key:521700,cost:Xe()-o})}catch(d){throw Se.addFailedEvent({key:521700,error:d}),d}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function Hy(i,t=!1){let e=Object.defineProperties(ir(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Tt,i.onmessageerror=Tt,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var hg=class extends Ge{constructor(t,e){super(t);let r=new Ge(t);r.next=Tt,e(r)}},EW=Je(hg,"takeUntilComplete");var Ar={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},Wy="__INLINE__WORKER__",Gy="__INLINE__WASM__",{debug:zy}=console;Ar.debug||(console.debug=()=>{});var l0=!Wy.startsWith("__"),h0=!Gy.startsWith("__");function Eh(){let i=xs(`${Ar.assetsPath?`${Ar.assetsPath}/`:""}worker.js`);return l0?URL.createObjectURL(new Blob([atob(Wy)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var hd;function Th(){return D(this,null,function*(){let i=Ar.assetsPath?`${Ar.assetsPath}/`:"";return hd||(h0?hd=new TextEncoder().encode(atob(Gy)).buffer:hd=yield fetch(xs(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),hd)})}var mg=class{constructor(){p(this,"playPort");p(this,"playPortSent",!1);p(this,"worklet");p(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return D(this,null,function*(){let t=bt("player"),e=Eh();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),se.info("global audio player worklet addModule success",e)}catch(r){throw se.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Th(),flag:Ar},numberOfInputs:2}),se.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return D(this,null,function*(){var r;yield this.init();let e=new MessageChannel;(r=this.playPort)==null||r.postMessage(null,[e.port1]),t(e.port2)})}},md=new mg;var pg=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),RW=pg?Promise.resolve().then(function(){return g0}):Promise.resolve().then(function(){return I0});var CW=pg?Promise.resolve().then(function(){return E0}):Promise.resolve().then(function(){return A0});var m0=pg?Promise.resolve().then(function(){return y0}):Promise.resolve().then(function(){return R0});function fg(...i){return D(this,null,function*(){return(yield m0).default(...i)})}var p0=i=>D(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),f0=(...t)=>D(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(p0));return i[0].multiple?o:o[0]}),g0={__proto__:null,default:f0};function yh(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return yh=function(e){this.s=e,this.n=e.next},yh.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new yh(i)}var jy=(o,s,...n)=>D(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],c=[];var d,m=!1,l=!1;try{for(var f,g=function(T){var E,y,v,M=2;for(typeof Symbol!="undefined"&&(y=Symbol.asyncIterator,v=Symbol.iterator);M--;){if(y&&(E=T[y])!=null)return E.call(T);if(v&&(E=T[v])!=null)return new yh(E.call(T));y="@@asyncIterator",v="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());m=!(f=yield g.next()).done;m=!1){let T=f.value,E=`${e}/${T.name}`;T.kind==="file"?c.push(T.getFile().then(y=>(y.directoryHandle=i,y.handle=T,Object.defineProperty(y,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>E})))):T.kind!=="directory"||!t||r&&r(T)||a.push(jy(T,t,E,r))}}catch(T){l=!0,d=T}finally{try{m&&g.return!=null&&(yield g.return())}finally{if(l)throw d}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(c)]}),_0=(...t)=>D(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return jy(e,i.recursive,void 0,i.skipDirectory)}),E0={__proto__:null,default:_0},T0=(s,...n)=>D(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],c=null;if(i instanceof Blob&&i.type?c=i.type:i.headers&&i.headers.get("content-type")&&(c=i.headers.get("content-type")),t.forEach((l,f)=>{a[f]={description:l.description||"Files",accept:{}},l.mimeTypes?(f===0&&c&&l.mimeTypes.push(c),l.mimeTypes.map(g=>{a[f].accept[g]=l.extensions||[]})):c?a[f].accept[c]=l.extensions||[]:a[f].accept["*/*"]=l.extensions||[]}),e)try{yield e.getFile()}catch(l){if(e=null,r)throw l}let d=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(d);let m=yield d.createWritable();return"stream"in i?(yield i.stream().pipeTo(m),d):"body"in i?(yield i.body.pipeTo(m),d):(yield m.write(yield i),yield m.close(),d)}),y0={__proto__:null,default:T0},S0=(...t)=>D(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(d=>d.mimeTypes||[]),...i.map(d=>d.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=d=>{typeof a=="function"&&a(),e(d)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),c=()=>{window.removeEventListener("focus",c),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",c)}),o.addEventListener("change",()=>{window.removeEventListener("focus",c),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),I0={__proto__:null,default:S0},b0=(...t)=>D(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(c=>c.webkitRelativePath.split("/").every(d=>!i[0].skipDirectory({name:d,kind:"directory"})))):a=a.filter(c=>c.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),A0={__proto__:null,default:b0},v0=(e,...r)=>D(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(c,d){return D(this,null,function*(){let m=c.getReader(),l=new ReadableStream({start:T=>function E(){return D(this,null,function*(){return m.read().then(({done:y,value:v})=>{if(!y)return T.enqueue(v),E();T.close()})})}()}),f=new Response(l),g=yield f.blob();return m.releaseLock(),new Blob([g],{type:d})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),R0={__proto__:null,default:v0};var gg=class{constructor(t){this.name=t;p(this,"ready");p(this,"worker");p(this,"ports");p(this,"ids",1);p(this,"transactions",new Map);p(this,"log");p(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){return D(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Eh(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>D(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:c}})=>{var d;if(n)(d=this.transactions.get(n))==null||d(c),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",c),s(c);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(c.value){let m=typeof c.old=="string"?c.old:`${c.old.action}ing`,l=typeof c.value=="string"?c.value:`${c.value.action}ing`;console.log(Qd(),c.group,c.name,m,"\u{1F449}",l)}break;case"log":console.log(c);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:c}));break}},r.postMessage({wasm:yield Th(),flag:Ar},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},_g=class{constructor(t,e,r){this.worker=t;p(this,"channel",new MessageChannel);p(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Eg=class i extends gg{constructor(){super("main");p(this,"switchValue",new Map);p(this,"extendChannel");p(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return D(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Er(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},ps=new Eg,gn,C0=-1;function qy(i){return console.log(i),gn.push(i.slice()),gn.length>1e3&&gn.shift(),i}function Xy(i){return D(this,null,function*(){switch(C0){case 0:this.edpl.willDecodeAudio=qy;break;case 2:this.edpl.didEncodeAudio=qy;break}yield ps.create(),ee.emit(ce.JOIN_SEND_CMD,{room:this});let t=new _g(ps,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(ee.emit(ce.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new Me({code:Te.JOIN_ROOM_FAILED,extraCode:Number(e),message:Et({key:_t.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Tg},useWt:{set:w0},enableDebug:{set(i){console.debug=i?zy:()=>{},ps.setSwitchValue("enableDebug",i)}},useV2:{set:yg},dump:{value(){if(gn||(console.warn("dump audio will be activated at next time join room"),gn=[]),!gn.length){console.warn("no audio data to dump,try it later");return}let i=[];return gn.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),fg(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;ps.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,ps.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return fg(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Ar.useHardDecoder="prefer-hardware";break;case!1:Ar.useHardDecoder="prefer-software";break;default:Ar.useHardDecoder="no-preference"}}}});function Tg(i){return D(this,null,function*(){ps.setSwitchValue("useAINS",i)})}function yg(i){return D(this,null,function*(){ps.setSwitchValue("useV2",i)})}function w0(i){return D(this,null,function*(){ps.setSwitchValue("useWt",i)})}function Jy(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function Qy(i){return D(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),Ye(Hy(r.port2),At(Qe(i,Ve.INIT)),lt(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let c=n[4]&31;if(e<=10){let m=Array.from(n.slice(0,10)).map(l=>l.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${c}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${m}`)}let d;switch(c){case 5:case 7:d="key";break;default:d="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:d,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var Sh=[];function Zy(i){var c;let t=ir();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let d=0;d<=Sh.length;d++)if(!Sh[d]){Sh[d]=this,this.index=d;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncryptFrame?new MessageChannel:null;(c=this.session)==null||c.postMessage({cmd:"pushAudio",payload:be({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=d=>{d.data==null||(typeof d.data=="number"?t.next(d.data):o&&o.port1.postMessage(qe(be({},d.data),{data:new Uint8Array(i.encodeFrame({data:d.data.data.buffer,timestamp:d.data.timestamp}).data)})))};let s=new MediaStream,n,a=d=>{let m=s.getAudioTracks()[0];m&&(n.disconnect(),s.removeTrack(m)),s.addTrack(d),this._log.info("push audio track:",d.readyState,d.getSettings().deviceId),n=bt("player").createMediaStreamSource(s),n.connect(md.worklet,0,this.index)};Ye(Qe(i,"output-media-track-changed"),At(Qe(i,"ready")),lt(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),Sh[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ye(t,en(d=>i.volume=d),Io(_l(1e3)),lt(()=>{i.volume=0})),a(i.outMediaTrack)}var aG=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Sg=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;p(this,"track");p(this,"label");p(this,"insertKeyFrame",!0);p(this,"session");p(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return D(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return D(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return D(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&ee.emit(ce.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let c=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(c.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure(null,e),e})}configure(t,e){return D(this,null,function*(){var r;t&&Object.assign(this.config,t),(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Ih(i,t){return D(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Ar.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let n=new Sg(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:c}=a.data;$a({configureBr:[a.data.bitrate,c]}),n.session&&n.configure({bitrate:c},n.session)}},this._log.info("start push",r,t),n})}function Ky(i){return D(this,null,function*(){var m;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((m=i.manager)!=null&&m.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield Ih.call(this,i,r);this._log.info("VideoEncoder created",r);let c,d=l=>D(this,null,function*(){if(c==null||c.abort("track changed"),!l)return;c=new AbortController;let{width:f,height:g,displaySurface:T}=l.getSettings();f&&(a.config.width=f),g&&(a.config.height=g);let E=$r.match(/Chrome\/(\d+)/);(E==null?void 0:E[1])==="114"&&T==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",l.readyState,l.getSettings());let y;if(typeof MediaStreamTrackProcessor!="undefined"&&!(l instanceof CanvasCaptureMediaStreamTrack))y=new MediaStreamTrackProcessor({track:l}).readable;else{let M;y=new ReadableStream({start(w){i.on("render",H=>{if(!(i.player.mode===0&&!document.hidden))try{w.enqueue(new VideoFrame(H,{timestamp:performance.now()*1e3}))}catch(B){console.warn(B)}})},pull(w){return D(this,null,function*(){if(i.player.mode===0&&Ri()&&i.player.element)return new Promise(H=>{i.player.element.requestVideoFrameCallback((B,P)=>{try{let $=new VideoFrame(i.player.element);w.enqueue($)}catch($){console.warn($)}H()})})})}})}let v="small"in i&&i.small;return v?(this.smallEncoder||(this.smallEncoder=yield Ih.call(this,i,{profile:v,type:3,trackType:o})),this.smallEncoder.track=l,this.smallEncoder.label="small",y=yield this.smallEncoder.trans(y,c,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=l,a.label=e,a.start(y,c,this)});return Ye(Qe(i,"output-media-track-changed"),At(Qe(i,"ready")),lt(d,console.error,()=>{var l;this._log.info("stop push",e,r),c.abort("unpublish"),a.close(),(l=this.smallEncoder)==null||l.close()})),d(i.outMediaTrack)})}var fs=class fs extends Ve{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;p(this,"enableInBackground",!1);p(this,"interval",400);e.on("joined",()=>{this.emit(fs.INTERVALCHANGED,this.interval)}),Ye(Qe(this,fs.INTERVALCHANGED),Wi(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ye(HE(s),ts(()=>[]))),lt(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==Ve.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(fs.INTERVALCHANGED,this.interval)}stop(){}};p(fs,"INTERVALCHANGED","intervalChanged"),Ie([Mt([Ve.INIT,Ve.OFF],Ve.ON)],fs.prototype,"start",1),Ie([Mt([],Ve.OFF)],fs.prototype,"stop",1);var bh=fs;var gs=class gs extends _h{constructor(e){super(e);p(this,"index",0);p(this,"session");p(this,"tinyid");p(this,"roomid");p(this,"openid");p(this,"socketid");p(this,"relayip");p(this,"clientip");p(this,"remotePublishedUserMap",new Map);p(this,"bussinessInfo");p(this,"token");p(this,"audioVolumeEvalution",new bh(this));p(this,"enableAIVoice",Tg);p(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:Im(),uint32_device_type:0,str_os_verion:bm(),uint32_link_type:1,str_client_version:qt,uint32_net_type:Rs[Vi.getNetworkType()],ua:navigator.userAgent,version:""}});p(this,"joinAbortController",new AbortController);p(this,"smallAbortCtrl");p(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,yg(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return D(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return D(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return D(this,null,function*(){var c,d,m;let s=Vi.getEnv(),n=Pu(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(c=this.proxy_wt)==null?void 0:c.replace("https://",""),proxy_ws:(d=this.proxy_ws)==null?void 0:d.replace("wss://",""),proxy_cloud:(m=this.scheduleResult.iceServers)!=null&&m.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:Jn(),browserInfo:Pu(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:qt,browserVersion:n.browserName+n.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield Xy.call(this,a),console.log(this),md.playAudio(l=>this.postMessage({cmd:"setAudioWorkletPort"},[l])),this.checkDestroy()})}leave(){return D(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish()),this.localTracks.clear()})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return D(this,null,function*(){let e=At(Qe(this,"left"));Ye(r=>D(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,lt(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(qe(be({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case ce.RECEIVED_PUBLISHED_USER_LIST:ee.emit(e,be({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new uh(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let l=r,f=this.remotePublishedUserMap.get(l);f&&(f.remoteVideoTrack.close(),f.remoteAuxiliaryTrack.close(),f.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(l),this.emit("remote-unpublished",f))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:l,muteState:f,flag:g}=r,T=this.remotePublishedUserMap.get(f.userId);if(!T){this.emit("remote-publish-state-changed",r);return}T.flag=g}ee.emit(ce.REMOTE_PUBLISH_STATE_CHANGED,be({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"7":this.localPublishFlag!==r.flag&&(this.localPublishFlag=r.flag,this.emit("local-publish-flag-changed",r.flag));return;case"network-quality":this.quality=be({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:c,msg_down_stream_info:d}=r,m={str_sdk_version:qt,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:Rs[kn()]},msg_event_msg:zE(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:d};ee.emit(ce.HEARTBEAT_REPORT,{room:this,report:m}),this.emit("heartbeat-report",m),ee.emit(ce.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:c}),delete r.downlinkInfo;break;case"signal-connection-state-changed":ee.emit(ce.SIGNAL_CONNECTION_STATE_CHANGED,be({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(e){return D(this,null,function*(){switch(yield this.sendMessage("publish",e.mediaType).then(r=>r.err!==0?Promise.reject(r.err):r),yr(e,e).add("mute",()=>{this.postMessage("mute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),e.mediaType){case 1:yield md.init(),Zy.call(this,e);break;default:yield Ky.call(this,e)}e.muted&&this.postMessage("mute",{mediaType:e.mediaType,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(e){return D(this,null,function*(){tr(e)})}subscribe(...e){return D(this,null,function*(){let r=e.reduce((l,f)=>f.mediaType|l,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),c=be({},a.subscribeState),d=Object.assign(new sc,c);d.mediaType|=r,ee.emit(ce.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:d});let m=yield this.sendMessage("subscribe",{mediaType:d.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(l=>d.mediaType&l).map(l=>({mediaType:l,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",m),yield Promise.all(e.filter(l=>!l.isSubscribed).map(l=>{switch(l.mediaType){case 1:return Jy.call(this,l);default:return Qy.call(this,l)}})),ee.emit(ce.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return D(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();ee.emit(ce.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return D(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Ih.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Ie([Ko(gs.prototype.afterJoin),Mt(["left",Ve.INIT],"joined"),Oy()],gs.prototype,"join",1),Ie([Mt("joined","left",{ignoreError:!0}),My()],gs.prototype,"leave",1),Ie([tl(e=>e.mediaType),xy()],gs.prototype,"publish",1),Ie([tl(e=>e.mediaType),ky()],gs.prototype,"unpublish",1),Ie([tl((...e)=>e[0].userId),Ly()],gs.prototype,"subscribe",1);var Ah=gs;va.frameWorkType=37;va.create=function(i){let t=va._create.call(this,Ah,i);return t._use(Mf,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Ar.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",qt,"created",Ar),t};Object.assign(va.prototype,{_setCurrentSpeaker(i){let t=bt("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return D(this,null,function*(){return this.startPlugin(Mf.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.640028",hardwareAcceleration:"prefer-software",optimizeForLatency:!0},fallback:"wasm"}),new Promise((e,r)=>{Ye(Qe(i,"decode-downgrade-state-changed"),Ur(o=>o.state==="STARTED"),Ni(1),nf(1e4),At(Qe(i,Ve.INIT)),lt(e,r))})})}});ep(37);var xz=va;export{xz as default};
167
- /*! Bundled license information:
168
-
169
- jszip/dist/jszip.min.js:
170
- (*!
171
-
172
- JSZip v3.10.1 - A JavaScript class for generating and reading zip files
173
- <http://stuartk.com/jszip>
174
-
175
- (c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
176
- Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
177
-
178
- JSZip uses the library pako released under the MIT license :
179
- https://github.com/nodeca/pako/blob/main/LICENSE
180
- *)
181
- */
140
+ }`});m(this,"yTextureRef");m(this,"uTextureRef");m(this,"vTextureRef");m(this,"Y");m(this,"U");m(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var MT=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")};function rv(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var iv=0,kl=class{constructor(t){m(this,"id",iv++);m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"decoder");m(this,"videoContext");m(this,"gop",0);m(this,"gop_helper",0);m(this,"waitFirstKeyFrame",!0);m(this,"startTimestamp",0);m(this,"startTime",0);m(this,"startPerformanceTime",0);m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"decodeFrameCount",0);m(this,"downgradeLevel",0);m(this,"lastDowngradeTime",0);m(this,"lastFrameDiff",0);m(this,"lastDecodeFrameTimestamp",0);m(this,"config");m(this,"gop_before_configure",[]);m(this,"videoElement");m(this,"type","wasm");m(this,"goodType");m(this,"renderer","2d");m(this,"wasmOption");m(this,"createDecoder");m(this,"_decodeSink");m(this,"isReported",!1);m(this,"track");m(this,"stateChangeOB");m(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=bt(),this.track=e,this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=Ae(e.availableState,ue.OFF),this.stopOB=bt(),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),ye(this.stateChangeOB,Ap((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),Je(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=ye(this.pipe(this.track),Je(this.stopOB),ji());ye(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),X.addFailedEvent({key:MT(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),X.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),X.addSuccessEvent({key:MT(this.type,this.renderer)}),X.addSuccessEvent({key:514704})})),ye(e,Qr(1),Le(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!fh()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,d;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!rv(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(l=>this.decode(l,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=Te();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}(this.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(d=t.getMetadata)==null?void 0:d.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>y(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",d=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${d.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(d.timestamp)),e.next(d)}),r.on("error",d=>{t.log.error(d),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new Nt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(Nt.UNAVAILABLE,l=>{t.log.error(l),e.error(7)});let d=new Ll(this.videoContext);r.on("videoCodecInfo",l=>d.resize(l.width,l.height)),r.on("videoFrame",l=>{({y:d.Y,u:d.U,v:d.V}=l),this.downgradeLevel===1?this.decodedFrameCount%2===0&&d.render(this.decodedFrameCount):d.render(this.decodedFrameCount)}),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let d=new MediaStreamTrackGenerator({kind:"video"}),l=d.writable.getWriter();t.setInputMediaStreamTrack(d),r.on("videoFrame",p=>l.write(p))}else{this.videoContext=new Lt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let d=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{d.image=p,d.update()}catch(f){delete this.goodType,t.log.error(f),e.error(11)}});let l=new Ms(this.videoContext,{name:"remotePlayer",logger:t.log});d.connect(l),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var xT=Promise.resolve(),Vc=class extends PT.EventEmitter{constructor(e){super();this.room=e;m(this,"videoContext");m(this,"_glVideoContext");m(this,"_2dVideoContext");m(this,"destination");m(this,"smallVideoContext");m(this,"smallDestination");m(this,"smallTrackSource");m(this,"smallImageSource");m(this,"_isMirror",!1);m(this,"_rotation",0);m(this,"cameraTrack");m(this,"cameraNode");m(this,"transformNode");m(this,"mixNode");m(this,"screenTrack");m(this,"screenNode");m(this,"selfModel",!1);m(this,"blurRadius",3);m(this,"arTrack");m(this,"_enableFaceCentering",!1);m(this,"_enableEffectOptimization",!1);m(this,"onAbort");m(this,"_color");m(this,"Wasm");m(this,"waterMarkNode");m(this,"_waterMarkOption");m(this,"watermarkImageList",[]);m(this,"_beautyParams");m(this,"isUsingArTrack",!1);m(this,"mixTrack");m(this,"_isMixScreen",!1);m(this,"_virtualBackground");m(this,"_virtualBackgroundAbortCallback");m(this,"virtualBackgroundInstance");m(this,"_bgAssetPath");m(this,"log");m(this,"_mat4");m(this,"_postProcessing");m(this,"_checkId",0);m(this,"_use2d",!1);m(this,"_autoSwitchRenderMode",!0);m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"updated",xT);m(this,"_updateFlag",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"vm",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.smallVideoContext=new Lt({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return fr(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Lt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new Nt({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(Lm<=22),this._glVideoContext.on(Nt.UNAVAILABLE,e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=gt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),gt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(vr||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?X.addFailedEvent({key:o,error:r}):X.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new Nt({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Qu(this.smallVideoContext,e,this.log),this.smallVideoContext.on(Nt.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;vr&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return y(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(_t.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Vt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Dr?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Dr?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new Xu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(_t.RENDER,l=>{var p;(p=this.cameraTrack)==null||p.emit("render",l)}));let{width:n,height:a}=this.cameraResolution,d=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:d.width,height:d.height,image:d},this.cameraNode=new Pl(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new wr(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new Fn(this.videoContext,this.log),n.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:d,height:l}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(d,l),d&&l&&this.waterMarkNode.resize(d,l)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext.canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof mi)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof _r)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof xo){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let d=e.mediaTrack;return e.setOutputMediaStreamTrack(d)}if(e instanceof Ps)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof mi?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof _r?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof xo?e.source&&e.source.context.destroy():e instanceof Ps&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return y(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return y(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new se({code:q.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,a)=>n.zIndex-a.zIndex),this.watermarkImageList.forEach(({image:n,x:a,y:d,width:l,height:p,fillVideo:f})=>{let g=f&&e||l,A=f&&r||p,R=f?0:a,N=f?0:d;s.drawImage(n,R,N,g,A)}),hn(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex&&s.fillVideo===e.fillVideo)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return y(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return y(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return y(this,null,function*(){let r;try{r=yield hn((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new se({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:d="watermark",zIndex:l=2,fillVideo:p=!1}=e;this.watermarkImageList.some(g=>g.type===d)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==d),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,A)=>g==="imageUrl"?void 0:A))})}deleteWatermark(e="watermark"){return y(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return y(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return y(this,null,function*(){var r,o,s;if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield hn(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new se({code:q.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return y(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new kl(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};Z([VE(function(e){this.log.error("update failed",e)}),Pe(e=>function(...r){return y(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield xT,this.updated=new Promise((o,s)=>{e.apply(this,r).then(o,s),setTimeout(s,5e3,new se({code:q.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],Vc.prototype,"update",1);var ov=0;var Ul=class extends ue{constructor(e){super("room");m(this,"seq",++ov);m(this,"sdkAppId");m(this,"userId");m(this,"userSig");m(this,"privateMapKey");m(this,"latencyLevel");m(this,"tinyId");m(this,"scene");m(this,"roomId");m(this,"useStringRoomId");m(this,"role","anchor");m(this,"joinParams",null);m(this,"localPublishFlag",0);m(this,"localTracks",new Set);m(this,"enableAutoPlayDialog",!0);m(this,"autoReceiveAudio",!0);m(this,"autoReceiveVideo",!0);m(this,"proxy_ws");m(this,"proxy_wt");m(this,"proxy_unified");m(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});m(this,"keyPointManager");m(this,"audioManager");m(this,"videoManager");m(this,"callDurationCalculator");m(this,"badCaseDetector");m(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});m(this,"videoDecodeFallbackType");m(this,"smallMode","canvas");m(this,"enableChorus",!1);m(this,"_isUsingCachedSchedule",!1);m(this,"_log");m(this,"_joinedTimestamp",0);m(this,"_sdkType");m(this,"heartbeatReport");m(this,"heartbeatCount",0);m(this,"quality");m(this,"enableSEI");m(this,"isDestroyed",!1);this._log=F.createLogger({parent:e.logger,id:`r${this.seq}`}),this.useStringRoomId=!!e.useStringRoomId,Ye(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Ye(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Ye(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new DT({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new wT({room:this}),this.badCaseDetector=new OT({room:this}),this.audioManager=new Ku(this),this.videoManager=new Vc(this)}get videoCodec(){return"h264"}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainAudioTrack(){for(let e of this.localTracks)if(e.mediaType&1)return e;return null}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}get publishState(){let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach(r=>{if(r.isPublished||r.isPublishing)switch(r.mediaType){case 1:e.audio=!0;break;case 4:e.bigVideo=!0,e.smallVideo=r.hasSmall;break;case 2:e.auxVideo=!0;default:break}}),e}get muteState(){var e,r,o;return{audio:!!((e=this.localMainAudioTrack)!=null&&e.muted),bigVideo:!!((r=this.localMainVideoTrack)!=null&&r.muted),auxVideo:!!((o=this.localAuxVideoTrack)!=null&&o.muted)}}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return y(this,null,function*(){return this.publish(e)})}removeTrack(e){return y(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return y(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Oe(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Jt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(pl([a,a]),ts(`https://${a}`)):(s&&ts(s),n&&pl(n))}U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:gi.main,sched_back_domain:gi.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return y(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return y(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return y(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new se({code:q.INVALID_OPERATION,message:We({key:He.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(ar.INVALID_DESTROY),new se({code:q.INVALID_OPERATION,message:We({key:He.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,U.emit(B.ROOM_DESTROY,{room:this})}schedule(e,r){return y(this,null,function*(){var s,n,a,d;let o=Te();try{let{isCached:l,result:p,detailCost:f}=yield rf({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:pt,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=l,this._log.info(`schedule cache:${+l} ${br(p,{keysToExclude:["username","credential"]})}`),l&&U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=Y(Y({},this.scheduleResult),p),Fe((s=p.config)==null?void 0:s.retryCount)&&um(p.config.retryCount),Oe((n=p.config)==null?void 0:n.loggerDomain)&&ts(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((d=p.config)==null?void 0:d.smallMode)||this.smallMode,U.emit(B.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:f}),X.addSuccessEvent({key:521700,cost:Te()-o})}catch(l){throw X.addFailedEvent({key:521700,error:l}),l}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function LT(i,t=!1){let e=Object.defineProperties(bt(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Ge,i.onmessageerror=Ge,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var Af=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=Ge,e(r)}},jG=Ie(Af,"takeUntilComplete");var Ht={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},kT="__INLINE__WORKER__",UT="__INLINE__WASM__",{debug:VT}=console;Ht.debug||(console.debug=()=>{});var sv=!kT.startsWith("__"),nv=!UT.startsWith("__");function Vl(){let i=ds(`${Ht.assetsPath?`${Ht.assetsPath}/`:""}worker.js`);return sv?URL.createObjectURL(new Blob([atob(kT)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var Fc;function Fl(){return y(this,null,function*(){let i=Ht.assetsPath?`${Ht.assetsPath}/`:"";return Fc||(nv?Fc=new TextEncoder().encode(atob(UT)).buffer:Fc=yield fetch(ds(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),Fc)})}var yf=class{constructor(){m(this,"playPort");m(this,"playPortSent",!1);m(this,"worklet");m(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return y(this,null,function*(){let t=ze("player"),e=Vl();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),F.info("global audio player worklet addModule success",e)}catch(r){throw F.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Fl(),flag:Ht},numberOfInputs:2}),F.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return y(this,null,function*(){var r;yield this.init();let e=new MessageChannel;(r=this.playPort)==null||r.postMessage(null,[e.port1]),t(e.port2)})}},Bc=new yf;var bf=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),KG=bf?Promise.resolve().then(function(){return uv}):Promise.resolve().then(function(){return gv});var e5=bf?Promise.resolve().then(function(){return mv}):Promise.resolve().then(function(){return _v});var av=bf?Promise.resolve().then(function(){return pv}):Promise.resolve().then(function(){return Iv});function Rf(...i){return y(this,null,function*(){return(yield av).default(...i)})}var cv=i=>y(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),dv=(...t)=>y(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(cv));return i[0].multiple?o:o[0]}),uv={__proto__:null,default:dv};function Bl(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return Bl=function(e){this.s=e,this.n=e.next},Bl.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new Bl(i)}var FT=(o,s,...n)=>y(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],d=[];var l,p=!1,f=!1;try{for(var g,A=function(R){var N,C,P,z=2;for(typeof Symbol!="undefined"&&(C=Symbol.asyncIterator,P=Symbol.iterator);z--;){if(C&&(N=R[C])!=null)return N.call(R);if(P&&(N=R[P])!=null)return new Bl(N.call(R));C="@@asyncIterator",P="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());p=!(g=yield A.next()).done;p=!1){let R=g.value,N=`${e}/${R.name}`;R.kind==="file"?d.push(R.getFile().then(C=>(C.directoryHandle=i,C.handle=R,Object.defineProperty(C,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>N})))):R.kind!=="directory"||!t||r&&r(R)||a.push(FT(R,t,N,r))}}catch(R){f=!0,l=R}finally{try{p&&A.return!=null&&(yield A.return())}finally{if(f)throw l}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(d)]}),lv=(...t)=>y(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return FT(e,i.recursive,void 0,i.skipDirectory)}),mv={__proto__:null,default:lv},hv=(s,...n)=>y(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],d=null;if(i instanceof Blob&&i.type?d=i.type:i.headers&&i.headers.get("content-type")&&(d=i.headers.get("content-type")),t.forEach((f,g)=>{a[g]={description:f.description||"Files",accept:{}},f.mimeTypes?(g===0&&d&&f.mimeTypes.push(d),f.mimeTypes.map(A=>{a[g].accept[A]=f.extensions||[]})):d?a[g].accept[d]=f.extensions||[]:a[g].accept["*/*"]=f.extensions||[]}),e)try{yield e.getFile()}catch(f){if(e=null,r)throw f}let l=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(l);let p=yield l.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),l):"body"in i?(yield i.body.pipeTo(p),l):(yield p.write(yield i),yield p.close(),l)}),pv={__proto__:null,default:hv},fv=(...t)=>y(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(l=>l.mimeTypes||[]),...i.map(l=>l.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=l=>{typeof a=="function"&&a(),e(l)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),d=()=>{window.removeEventListener("focus",d),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",d)}),o.addEventListener("change",()=>{window.removeEventListener("focus",d),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),gv={__proto__:null,default:fv},Ev=(...t)=>y(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(d=>d.webkitRelativePath.split("/").every(l=>!i[0].skipDirectory({name:l,kind:"directory"})))):a=a.filter(d=>d.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),_v={__proto__:null,default:Ev},Tv=(e,...r)=>y(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(d,l){return y(this,null,function*(){let p=d.getReader(),f=new ReadableStream({start:R=>function N(){return y(this,null,function*(){return p.read().then(({done:C,value:P})=>{if(!C)return R.enqueue(P),N();R.close()})})}()}),g=new Response(f),A=yield g.blob();return p.releaseLock(),new Blob([A],{type:l})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),Iv={__proto__:null,default:Tv};var vf=class{constructor(t){this.name=t;m(this,"ready");m(this,"worker");m(this,"ports");m(this,"ids",1);m(this,"transactions",new Map);m(this,"log");m(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){return y(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Vl(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>y(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:d}})=>{var l;if(n)(l=this.transactions.get(n))==null||l(d),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",d),s(d);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(d.value){let p=typeof d.old=="string"?d.old:`${d.old.action}ing`,f=typeof d.value=="string"?d.value:`${d.value.action}ing`;console.log(vd(),d.group,d.name,p,"\u{1F449}",f)}break;case"log":console.log(d);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:d}));break}},r.postMessage({wasm:yield Fl(),flag:Ht},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Cf=class{constructor(t,e,r){this.worker=t;m(this,"channel",new MessageChannel);m(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Nf=class i extends vf{constructor(){super("main");m(this,"switchValue",new Map);m(this,"extendChannel");m(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return y(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield wt(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},$o=new Nf,Hs,$T=-1;function BT(i){return console.log(i),Hs.push(i.slice()),Hs.length>1e3&&Hs.shift(),i}function HT(i){return y(this,null,function*(){switch($T){case 0:this.edpl.willDecodeAudio=BT;break;case 2:this.edpl.didEncodeAudio=BT;break}yield $o.create(),U.emit(B.JOIN_SEND_CMD,{room:this});let t=new Cf($o,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(U.emit(B.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new se({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:We({key:He.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Df},useWt:{set:Sv},enableDebug:{set(i){console.debug=i?VT:()=>{},$o.setSwitchValue("enableDebug",i)}},useV2:{set:wf},dump:{value(i=0){if($T=i,Hs||(console.warn("dump audio will be activated at next time join room"),Hs=[]),!Hs.length){console.warn("no audio data to dump,try it later");return}let t=[];return Hs.forEach(e=>{t.push(new Uint16Array([e.length])),t.push(e)}),Rf(new Blob(t),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;$o.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,$o.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Rf(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Ht.useHardDecoder="prefer-hardware";break;case!1:Ht.useHardDecoder="prefer-software";break;default:Ht.useHardDecoder="no-preference"}}}});function Df(i){return y(this,null,function*(){$o.setSwitchValue("useAINS",i)})}function wf(i){return y(this,null,function*(){$o.setSwitchValue("useV2",i)})}function Sv(i){return y(this,null,function*(){$o.setSwitchValue("useWt",i)})}function WT(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function GT(i){return y(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),ye(LT(r.port2),Je(Ae(i,ue.INIT)),Le(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let d=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(f=>f.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${d}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let l;switch(d){case 5:case 7:l="key";break;default:l="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:l,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var $l=[];function qT(i){var d;let t=bt();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let l=0;l<=$l.length;l++)if(!$l[l]){$l[l]=this,this.index=l;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncryptFrame?new MessageChannel:null;(d=this.session)==null||d.postMessage({cmd:"pushAudio",payload:Y({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=l=>{l.data==null||(typeof l.data=="number"?t.next(l.data):o&&o.port1.postMessage(_e(Y({},l.data),{data:new Uint8Array(i.encodeFrame({data:l.data.data.buffer,timestamp:l.data.timestamp}).data)})))};let s=new MediaStream,n,a=l=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(l),this._log.info("push audio track:",l.readyState,l.getSettings().deviceId),n=ze("player").createMediaStreamSource(s),n.connect(Bc.worklet,0,this.index)};ye(Ae(i,"output-media-track-changed"),Je(Ae(i,"ready")),Le(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),$l[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),ye(t,Ds(l=>i.volume=l),qi(Ju(1e3)),Le(()=>{i.volume=0})),a(i.outMediaTrack)}var P5=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Of=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;m(this,"track");m(this,"label");m(this,"insertKeyFrame",!0);m(this,"session");m(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return y(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return y(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return y(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&U.emit(B.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let d=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(d.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure(null,e),e})}configure(t,e){return y(this,null,function*(){var r;t&&Object.assign(this.config,t),(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Hl(i,t){return y(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Ht.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let n=new Of(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:d}=a.data;Ta({configureBr:[a.data.bitrate,d]}),n.session&&n.configure({bitrate:d},n.session)}},this._log.info("start push",r,t),n})}function zT(i){return y(this,null,function*(){var p;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((p=i.manager)!=null&&p.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield Hl.call(this,i,r);this._log.info("VideoEncoder created",r);let d,l=f=>y(this,null,function*(){if(d==null||d.abort("track changed"),!f)return;d=new AbortController;let{width:g,height:A,displaySurface:R}=f.getSettings();g&&(a.config.width=g),A&&(a.config.height=A);let N=sr.match(/Chrome\/(\d+)/);(N==null?void 0:N[1])==="114"&&R==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",f.readyState,f.getSettings());let C;if(typeof MediaStreamTrackProcessor!="undefined"&&!(f instanceof CanvasCaptureMediaStreamTrack))C=new MediaStreamTrackProcessor({track:f}).readable;else{let z;C=new ReadableStream({start(H){i.on("render",ge=>{if(!(i.player.mode===0&&!document.hidden))try{H.enqueue(new VideoFrame(ge,{timestamp:performance.now()*1e3}))}catch(Ue){console.warn(Ue)}})},pull(H){return y(this,null,function*(){if(i.player.mode===0&&zr()&&i.player.element)return new Promise(ge=>{i.player.element.requestVideoFrameCallback((Ue,W)=>{try{let we=new VideoFrame(i.player.element);H.enqueue(we)}catch(we){console.warn(we)}ge()})})})}})}let P="small"in i&&i.small;return P?(this.smallEncoder||(this.smallEncoder=yield Hl.call(this,i,{profile:P,type:3,trackType:o})),this.smallEncoder.track=f,this.smallEncoder.label="small",C=yield this.smallEncoder.trans(C,d,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=f,a.label=e,a.start(C,d,this)});return ye(Ae(i,"output-media-track-changed"),Je(Ae(i,"ready")),Le(l,console.error,()=>{var f;this._log.info("stop push",e,r),d.abort("unpublish"),a.close(),(f=this.smallEncoder)==null||f.close()})),l(i.outMediaTrack)})}var Ho=class Ho extends ue{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;m(this,"enableInBackground",!1);m(this,"interval",400);e.on("joined",()=>{this.emit(Ho.INTERVALCHANGED,this.interval)}),ye(Ae(this,Ho.INTERVALCHANGED),ui(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):ye(ZE(s),wo(()=>[]))),Le(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==ue.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(Ho.INTERVALCHANGED,this.interval)}stop(){}};m(Ho,"INTERVALCHANGED","intervalChanged"),Z([et([ue.INIT,ue.OFF],ue.ON)],Ho.prototype,"start",1),Z([et([],ue.OFF)],Ho.prototype,"stop",1);var Wl=Ho;var Wo=class Wo extends Ul{constructor(e){super(e);m(this,"index",0);m(this,"session");m(this,"tinyid");m(this,"roomid");m(this,"openid");m(this,"socketid");m(this,"relayip");m(this,"clientip");m(this,"remotePublishedUserMap",new Map);m(this,"bussinessInfo");m(this,"token");m(this,"audioVolumeEvalution",new Wl(this));m(this,"enableAIVoice",Df);m(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:Wm(),uint32_device_type:0,str_os_verion:Gm(),uint32_link_type:1,str_client_version:pt,uint32_net_type:rs[si.getNetworkType()],ua:navigator.userAgent,version:""}});m(this,"joinAbortController",new AbortController);m(this,"smallAbortCtrl");m(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,wf(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return y(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return y(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return y(this,null,function*(){var d,l,p;let s=si.getEnv(),n=hu(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(d=this.proxy_wt)==null?void 0:d.replace("https://",""),proxy_ws:(l=this.proxy_ws)==null?void 0:l.replace("wss://",""),proxy_cloud:(p=this.scheduleResult.iceServers)!=null&&p.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:yn(),browserInfo:hu(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:pt,browserVersion:n.browserName+n.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield HT.call(this,a),console.log(this),Bc.playAudio(f=>this.postMessage({cmd:"setAudioWorkletPort"},[f])),this.checkDestroy()})}leave(){return y(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish()),this.localTracks.clear()})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return y(this,null,function*(){let e=Je(Ae(this,"left")),r=this.audioManager.decodePipeline.some(o=>o);ye(o=>y(this,null,function*(){let s=new MessageChannel;s.port2.onmessage=n=>{n.data?o.next({data:n.data,port:s.port2}):o.complete()},s.port2.onmessageerror=n=>o.error(n),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:r},[s.port1])}),e,Le(({data:o,port:s})=>{var a;let n={data:o.data.buffer};for(let[d,l]of this.audioManager.decodePipeline.entries())if(l&&(n=l({frame:n,track:(a=this.remotePublishedUserMap.get(o.userId))==null?void 0:a.remoteAudioTrack}),!n))return;s.postMessage(_e(Y({},o),{data:new Uint8Array(n.data)}),[n.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case B.RECEIVED_PUBLISHED_USER_LIST:U.emit(e,Y({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new wl(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let f=r,g=this.remotePublishedUserMap.get(f);g&&(g.remoteVideoTrack.close(),g.remoteAuxiliaryTrack.close(),g.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(f),this.emit("remote-unpublished",g))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:f,muteState:g,flag:A}=r,R=this.remotePublishedUserMap.get(g.userId);if(!R){this.emit("remote-publish-state-changed",r);return}R.flag=A}U.emit(B.REMOTE_PUBLISH_STATE_CHANGED,Y({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"7":this.localPublishFlag!==r.flag&&(this.localPublishFlag=r.flag,this.emit("local-publish-flag-changed",r.flag));return;case"network-quality":this.quality=Y({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:d,msg_down_stream_info:l}=r,p={str_sdk_version:pt,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:rs[cn()]},msg_event_msg:t_(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:l};U.emit(B.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),U.emit(B.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:d}),delete r.downlinkInfo;break;case"signal-connection-state-changed":U.emit(B.SIGNAL_CONNECTION_STATE_CHANGED,Y({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(e){return y(this,null,function*(){switch(yield this.sendMessage("publish",e.mediaType).then(r=>r.err!==0?Promise.reject(r.err):r),Ft(e,e).add("mute",()=>{this.postMessage("mute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),e.mediaType){case 1:yield Bc.init(),qT.call(this,e);break;default:yield zT.call(this,e)}e.muted&&this.postMessage("mute",{mediaType:e.mediaType,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(e){return y(this,null,function*(){At(e)})}subscribe(...e){return y(this,null,function*(){let r=e.reduce((f,g)=>g.mediaType|f,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),d=Y({},a.subscribeState),l=Object.assign(new Va,d);l.mediaType|=r,U.emit(B.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:l});let p=yield this.sendMessage("subscribe",{mediaType:l.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(f=>l.mediaType&f).map(f=>({mediaType:f,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(f=>!f.isSubscribed).map(f=>{switch(f.mediaType){case 1:return WT.call(this,f);default:return GT.call(this,f)}})),U.emit(B.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return y(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();U.emit(B.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return y(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Hl.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Z([No(Wo.prototype.afterJoin),et(["left",ue.INIT],"joined"),bT()],Wo.prototype,"join",1),Z([et("joined","left",{ignoreError:!0}),RT()],Wo.prototype,"leave",1),Z([Mu(e=>e.mediaType),vT()],Wo.prototype,"publish",1),Z([Mu(e=>e.mediaType),CT()],Wo.prototype,"unpublish",1),Z([Mu((...e)=>e[0].userId),NT()],Wo.prototype,"subscribe",1);var Gl=Wo;Qn.frameWorkType=37;Qn.create=function(i){let t=Qn._create.call(this,Gl,i);return t._use(Zp,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Ht.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",pt,"created",Ht),t};Object.assign(Qn.prototype,{_setCurrentSpeaker(i){let t=ze("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return y(this,null,function*(){return this.startPlugin(Zp.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.640028",hardwareAcceleration:"prefer-software",optimizeForLatency:!0},fallback:"wasm"}),new Promise((e,r)=>{ye(Ae(i,"decode-downgrade-state-changed"),tr(o=>o.state==="STARTED"),Qr(1),vp(1e4),Je(Ae(i,ue.INIT)),Le(e,r))})})}});Sh(37);var a6=Qn;export{a6 as default};