/** * AgoraWebSDK_N-v4.5.0-0-g87245ad6 Copyright AgoraInc. */ /* Determine if an object is a Buffer @author Feross Aboukhadijeh @license MIT ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. *****************************************************************************/ 'use strict';!function(ub,Db){"object"==typeof exports&&"undefined"!=typeof module?module.exports=Db():"function"==typeof define&&define.amd?define(Db):(ub="undefined"!=typeof globalThis?globalThis:ub||self).AgoraRTC=Db()}(this,function(){function ub(d,f,a){return d(a={path:f,exports:{},require:function(a,c){throw Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");}},a.exports),a.exports}function Db(d,f,a){return(d=d.match(f))&&d.length>=a&&pa(d[a],10)}function jc(d, f,a){if(d.RTCPeerConnection){d=d.RTCPeerConnection.prototype;var b=d.addEventListener;d.addEventListener=function(c,d){if(c!==f)return b.apply(this,arguments);let e=b=>{(b=a(b))&&d(b)};return this._eventMap=this._eventMap||{},this._eventMap[d]=e,b.apply(this,[c,e])};var c=d.removeEventListener;d.removeEventListener=function(a,b){if(a!==f||!this._eventMap||!this._eventMap[b])return c.apply(this,arguments);let d=this._eventMap[b];return delete this._eventMap[b],c.apply(this,[a,d])};Y(d,"on"+f,{get(){return this["_on"+ f]},set(a){this["_on"+f]&&(this.removeEventListener(f,this["_on"+f]),delete this["_on"+f]);a&&this.addEventListener(f,this["_on"+f]=a)},enumerable:!0,configurable:!0})}}function dl(d){return"boolean"!=typeof d?Error("Argument type: "+typeof d+". Please use a boolean."):(kg=d,d?"adapter.js logging disabled":"adapter.js logging enabled")}function el(d){return"boolean"!=typeof d?Error("Argument type: "+typeof d+". Please use a boolean."):(lg=!d,"adapter.js deprecation warnings "+(d?"disabled":"enabled"))} function kb(){"object"!=typeof window||kg||"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}function pd(d,f){lg&&console.warn(d+" is deprecated, please use "+f+" instead.")}function Eb(d){let {navigator:f}=d,a={browser:null,version:null};if(void 0===d||!d.navigator)return a.browser="Not a browser.",a;if(f.mozGetUserMedia)a.browser="firefox",a.version=Db(f.userAgent,/Firefox\/(\d+)\./,1);else if(f.webkitGetUserMedia||!1===d.isSecureContext&&d.webkitRTCPeerConnection&& !d.RTCIceGatherer)a.browser="chrome",a.version=Db(f.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(f.mediaDevices&&f.userAgent.match(/Edge\/(\d+).(\d+)$/))a.browser="edge",a.version=Db(f.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!d.RTCPeerConnection||!f.userAgent.match(/AppleWebKit\/(\d+)\./))return a.browser="Not a supported browser.",a;a.browser="safari";a.version=Db(f.userAgent,/AppleWebKit\/(\d+)\./,1);a.supportsUnifiedPlan=d.RTCRtpTransceiver&&"currentDirection"in d.RTCRtpTransceiver.prototype}return a} function mg(d){var f;return"[object Object]"===Object.prototype.toString.call(d)?qd(f=V(d)).call(f,function(a,b){var c="[object Object]"===Object.prototype.toString.call(d[b]);let e=c?mg(d[b]):d[b];c=c&&!V(e).length;return void 0===e||c?a:Ga(a,{[b]:e})},{}):d}function ng(d,f,a){let b=a?"outbound-rtp":"inbound-rtp",c=new aa;if(null===f)return c;let e=[];return q(d).call(d,a=>{"track"===a.type&&a.trackIdentifier===f.id&&e.push(a)}),q(e).call(e,a=>{q(d).call(d,e=>{e.type===b&&e.trackId===a.id&&function ua(a, b,c){var d;b&&!c.has(b.id)&&(c.set(b.id,b),q(d=V(b)).call(d,d=>{if(og(d).call(d,"Id"))ua(a,a.get(b[d]),c);else if(og(d).call(d,"Ids")){var e;q(e=b[d]).call(e,b=>{ua(a,a.get(b),c)})}}))}(d,e,c)})}),c}function pg(d){let f=d&&d.navigator;if(f.mediaDevices){var a=Eb(d),b=function(a){var b;if("object"!=typeof a||a.mandatory||a.optional)return a;const c={};var d;(q(b=V(a)).call(b,b=>{if("require"!==b&&"advanced"!==b&&"mediaSource"!==b){var d="object"==typeof a[b]?a[b]:{ideal:a[b]};void 0!==d.exact&&"number"== typeof d.exact&&(d.min=d.max=d.exact);var e=function(a,b){return a?a+b.charAt(0).toUpperCase()+Ha(b).call(b,1):"deviceId"===b?"sourceId":b};if(void 0!==d.ideal){c.optional=c.optional||[];let a={};"number"==typeof d.ideal?(a[e("min",b)]=d.ideal,c.optional.push(a),a={},a[e("max",b)]=d.ideal,c.optional.push(a)):(a[e("",b)]=d.ideal,c.optional.push(a))}var g;void 0!==d.exact&&"number"!=typeof d.exact?(c.mandatory=c.mandatory||{},c.mandatory[e("",b)]=d.exact):q(g=["min","max"]).call(g,a=>{void 0!==d[a]&& (c.mandatory=c.mandatory||{},c.mandatory[e(a,b)]=d[a])})}}),a.advanced)&&(c.optional=m(d=c.optional||[]).call(d,a.advanced));return c},c=function(c,d){if(61<=a.version)return d(c);if((c=JSON.parse(w(c)))&&"object"==typeof c.audio){var e=function(a,b,c){b in a&&!(c in a)&&(a[c]=a[b],delete a[b])};e((c=JSON.parse(w(c))).audio,"autoGainControl","googAutoGainControl");e(c.audio,"noiseSuppression","googNoiseSuppression");c.audio=b(c.audio)}if(c&&"object"==typeof c.video){let g=c.video.facingMode;g=g&& ("object"==typeof g?g:{ideal:g});e=66>a.version;if(!(!g||"user"!==g.exact&&"environment"!==g.exact&&"user"!==g.ideal&&"environment"!==g.ideal||f.mediaDevices.getSupportedConstraints&&f.mediaDevices.getSupportedConstraints().facingMode&&!e)){let a;if(delete c.video.facingMode,"environment"===g.exact||"environment"===g.ideal?a=["back","rear"]:"user"!==g.exact&&"user"!==g.ideal||(a=["front"]),a)return f.mediaDevices.enumerateDevices().then(e=>{e=I(e).call(e,a=>"videoinput"===a.kind);let h=R(e).call(e, b=>qg(a).call(a,a=>{var c;return ba(c=b.label.toLowerCase()).call(c,a)}));return!h&&e.length&&ba(a).call(a,"back")&&(h=e[e.length-1]),h&&(c.video.deviceId=g.exact?{exact:h.deviceId}:{ideal:h.deviceId}),c.video=b(c.video),rg("chrome: "+w(c)),d(c)})}c.video=b(c.video)}return rg("chrome: "+w(c)),d(c)},e=function(b){return 64<=a.version?b:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError", TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[b.name]||b.name,message:b.message,constraint:b.constraint||b.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};d=function(a,b,d){c(a,a=>{f.webkitGetUserMedia(a,b,a=>{d&&d(e(a))})})};if(f.getUserMedia=ra(d).call(d,f),f.mediaDevices.getUserMedia){var g; let a=ra(g=f.mediaDevices.getUserMedia).call(g,f.mediaDevices);f.mediaDevices.getUserMedia=function(b){return c(b,b=>a(b).then(a=>{var c;if(b.audio&&!a.getAudioTracks().length||b.video&&!a.getVideoTracks().length)throw q(c=a.getTracks()).call(c,a=>{a.stop()}),new DOMException("","NotFoundError");return a},a=>A.reject(e(a))))}}}}function sg(d){d.MediaStream=d.MediaStream||d.webkitMediaStream}function tg(d){if("object"!=typeof d||!d.RTCPeerConnection||"ontrack"in d.RTCPeerConnection.prototype)jc(d, "track",d=>(d.transceiver||Y(d,"transceiver",{value:{receiver:d.receiver}}),d));else{Y(d.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(a){this._ontrack&&this.removeEventListener("track",this._ontrack);this.addEventListener("track",this._ontrack=a)},enumerable:!0,configurable:!0});let f=d.RTCPeerConnection.prototype.setRemoteDescription;d.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=a=>{var b;a.stream.addEventListener("addtrack", b=>{let c;var g;d.RTCPeerConnection.prototype.getReceivers?c=R(g=this.getReceivers()).call(g,a=>a.track&&a.track.id===b.track.id):c={track:b.track};g=new Event("track");g.track=b.track;g.receiver=c;g.transceiver={receiver:c};g.streams=[a.stream];this.dispatchEvent(g)});q(b=a.stream.getTracks()).call(b,b=>{let c;var g;d.RTCPeerConnection.prototype.getReceivers?c=R(g=this.getReceivers()).call(g,a=>a.track&&a.track.id===b.id):c={track:b};g=new Event("track");g.track=b;g.receiver=c;g.transceiver={receiver:c}; g.streams=[a.stream];this.dispatchEvent(g)})},this.addEventListener("addstream",this._ontrackpoly)),f.apply(this,arguments)}}}function ug(d){if("object"==typeof d&&d.RTCPeerConnection&&!("getSenders"in d.RTCPeerConnection.prototype)&&"createDTMFSender"in d.RTCPeerConnection.prototype){let f=function(a,b){return{track:b,get dtmf(){return void 0===this._dtmf&&("audio"===b.kind?this._dtmf=a.createDTMFSender(b):this._dtmf=null),this._dtmf},_pc:a}};if(!d.RTCPeerConnection.prototype.getSenders){d.RTCPeerConnection.prototype.getSenders= function(){var a;return this._senders=this._senders||[],Ha(a=this._senders).call(a)};let a=d.RTCPeerConnection.prototype.addTrack;d.RTCPeerConnection.prototype.addTrack=function(b,c){let d=a.apply(this,arguments);return d||(d=f(this,b),this._senders.push(d)),d};let b=d.RTCPeerConnection.prototype.removeTrack;d.RTCPeerConnection.prototype.removeTrack=function(a){var c;b.apply(this,arguments);let d=J(c=this._senders).call(c,a);var e;-1!==d&&Ia(e=this._senders).call(e,d,1)}}let a=d.RTCPeerConnection.prototype.addStream; d.RTCPeerConnection.prototype.addStream=function(b){var c;this._senders=this._senders||[];a.apply(this,[b]);q(c=b.getTracks()).call(c,a=>{this._senders.push(f(this,a))})};let b=d.RTCPeerConnection.prototype.removeStream;d.RTCPeerConnection.prototype.removeStream=function(a){var c;this._senders=this._senders||[];b.apply(this,[a]);q(c=a.getTracks()).call(c,a=>{var b;let c=R(b=this._senders).call(b,b=>b.track===a);var d,e;c&&Ia(d=this._senders).call(d,J(e=this._senders).call(e,c),1)})}}else if("object"== typeof d&&d.RTCPeerConnection&&"getSenders"in d.RTCPeerConnection.prototype&&"createDTMFSender"in d.RTCPeerConnection.prototype&&d.RTCRtpSender&&!("dtmf"in d.RTCRtpSender.prototype)){let f=d.RTCPeerConnection.prototype.getSenders;d.RTCPeerConnection.prototype.getSenders=function(){let a=f.apply(this,[]);return q(a).call(a,a=>a._pc=this),a};Y(d.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null), this._dtmf}})}}function vg(d){if(d.RTCPeerConnection){var f=d.RTCPeerConnection.prototype.getStats;d.RTCPeerConnection.prototype.getStats=function(){let [a,b,c]=arguments;if(0{var c;const d={id:a.id,timestamp:a.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[a.type]|| a.type};q(c=a.names()).call(c,b=>{d[b]=a.stat(b)});b[d.id]=d}),b},g=function(a){var b;return new aa(E(b=V(a)).call(b,b=>[b,a[b]]))};return 2<=arguments.length?f.apply(this,[function(a){b(g(d(a)))},a]):(new A((a,b)=>{f.apply(this,[function(b){a(g(d(b)))},b])})).then(b,c)}}}function wg(d){if("object"==typeof d&&d.RTCPeerConnection&&d.RTCRtpSender&&d.RTCRtpReceiver){if(!("getStats"in d.RTCRtpSender.prototype)){let a=d.RTCPeerConnection.prototype.getSenders;a&&(d.RTCPeerConnection.prototype.getSenders= function(){let b=a.apply(this,[]);return q(b).call(b,a=>a._pc=this),b});let b=d.RTCPeerConnection.prototype.addTrack;b&&(d.RTCPeerConnection.prototype.addTrack=function(){let a=b.apply(this,arguments);return a._pc=this,a});d.RTCRtpSender.prototype.getStats=function(){let a=this;return this._pc.getStats().then(b=>ng(b,a.track,!0))}}if(!("getStats"in d.RTCRtpReceiver.prototype)){let a=d.RTCPeerConnection.prototype.getReceivers;a&&(d.RTCPeerConnection.prototype.getReceivers=function(){let b=a.apply(this, []);return q(b).call(b,a=>a._pc=this),b});jc(d,"track",a=>(a.receiver._pc=a.srcElement,a));d.RTCRtpReceiver.prototype.getStats=function(){let a=this;return this._pc.getStats().then(b=>ng(b,a.track,!1))}}if("getStats"in d.RTCRtpSender.prototype&&"getStats"in d.RTCRtpReceiver.prototype){var f=d.RTCPeerConnection.prototype.getStats;d.RTCPeerConnection.prototype.getStats=function(){if(0{a.track===c&&(d?h=!0:d=a)}),q(b=this.getReceivers()).call(b,a=>(a.track===c&&(g?h=!0:g=a),a.track===c)),h||d&&g?A.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):d?d.getStats():g?g.getStats():A.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return f.apply(this,arguments)}}}}function xg(d){d.RTCPeerConnection.prototype.getLocalStreams=function(){var a;return this._shimmedLocalStreams=this._shimmedLocalStreams|| {},E(a=V(this._shimmedLocalStreams)).call(a,a=>this._shimmedLocalStreams[a][0])};let f=d.RTCPeerConnection.prototype.addTrack;d.RTCPeerConnection.prototype.addTrack=function(a,b){var c;if(!b)return f.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let d=f.apply(this,arguments);return this._shimmedLocalStreams[b.id]?-1===J(c=this._shimmedLocalStreams[b.id]).call(c,d)&&this._shimmedLocalStreams[b.id].push(d):this._shimmedLocalStreams[b.id]=[b,d],d};let a=d.RTCPeerConnection.prototype.addStream; d.RTCPeerConnection.prototype.addStream=function(b){var c,d,e;this._shimmedLocalStreams=this._shimmedLocalStreams||{};q(c=b.getTracks()).call(c,a=>{var b;if(R(b=this.getSenders()).call(b,b=>b.track===a))throw new DOMException("Track already exists.","InvalidAccessError");});let f=this.getSenders();a.apply(this,arguments);c=I(d=this.getSenders()).call(d,a=>-1===J(f).call(f,a));this._shimmedLocalStreams[b.id]=m(e=[b]).call(e,c)};let b=d.RTCPeerConnection.prototype.removeStream;d.RTCPeerConnection.prototype.removeStream= function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[a.id],b.apply(this,arguments)};let c=d.RTCPeerConnection.prototype.removeTrack;d.RTCPeerConnection.prototype.removeTrack=function(a){var b;(this._shimmedLocalStreams=this._shimmedLocalStreams||{},a)&&q(b=V(this._shimmedLocalStreams)).call(b,b=>{var c;let d=J(c=this._shimmedLocalStreams[b]).call(c,a);var e;-1!==d&&Ia(e=this._shimmedLocalStreams[b]).call(e,d,1);1===this._shimmedLocalStreams[b].length&& delete this._shimmedLocalStreams[b]});return c.apply(this,arguments)}}function yg(d){function f(a,b){var c;let d=b.sdp;return q(c=V(a._reverseStreams||[])).call(c,b=>{b=a._reverseStreams[b];d=d.replace(new RegExp(a._streams[b.id].id,"g"),b.id)}),new RTCSessionDescription({type:b.type,sdp:d})}function a(a,b){var c;let d=b.sdp;return q(c=V(a._reverseStreams||[])).call(c,b=>{b=a._reverseStreams[b];d=d.replace(new RegExp(b.id,"g"),a._streams[b.id].id)}),new RTCSessionDescription({type:b.type,sdp:d})} var b;if(d.RTCPeerConnection){var c=Eb(d);if(d.RTCPeerConnection.prototype.addTrack&&65<=c.version)return xg(d);var e=d.RTCPeerConnection.prototype.getLocalStreams;d.RTCPeerConnection.prototype.getLocalStreams=function(){let a=e.apply(this);return this._reverseStreams=this._reverseStreams||{},E(a).call(a,a=>this._reverseStreams[a.id])};var g=d.RTCPeerConnection.prototype.addStream;d.RTCPeerConnection.prototype.addStream=function(a){var b;(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams|| {},q(b=a.getTracks()).call(b,a=>{var b;if(R(b=this.getSenders()).call(b,b=>b.track===a))throw new DOMException("Track already exists.","InvalidAccessError");}),this._reverseStreams[a.id])||(b=new d.MediaStream(a.getTracks()),this._streams[a.id]=b,this._reverseStreams[b.id]=a,a=b);g.apply(this,[a])};var h=d.RTCPeerConnection.prototype.removeStream;d.RTCPeerConnection.prototype.removeStream=function(a){this._streams=this._streams||{};this._reverseStreams=this._reverseStreams||{};h.apply(this,[this._streams[a.id]|| a]);delete this._reverseStreams[this._streams[a.id]?this._streams[a.id].id:a.id];delete this._streams[a.id]};d.RTCPeerConnection.prototype.addTrack=function(a,b){var c,e,g;if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let h=Ha([]).call(arguments,1);if(1!==h.length||!R(c=h[0].getTracks()).call(c,b=>b===a))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.", "NotSupportedError");if(R(e=this.getSenders()).call(e,b=>b.track===a))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{};this._reverseStreams=this._reverseStreams||{};(c=this._streams[b.id])?(c.addTrack(a),A.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))})):(c=new d.MediaStream([a]),this._streams[b.id]=c,this._reverseStreams[c.id]=b,this.addStream(c));return R(g=this.getSenders()).call(g,b=>b.track===a)};q(b=["createOffer", "createAnswer"]).call(b,function(a){let b=d.RTCPeerConnection.prototype[a];d.RTCPeerConnection.prototype[a]={[a](){const a=arguments;return arguments.length&&"function"==typeof arguments[0]?b.apply(this,[b=>{b=f(this,b);a[0].apply(null,[b])},b=>{a[1]&&a[1].apply(null,b)},arguments[2]]):b.apply(this,arguments).then(a=>f(this,a))}}[a]});var p=d.RTCPeerConnection.prototype.setLocalDescription;d.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]= a(this,arguments[0]),p.apply(this,arguments)):p.apply(this,arguments)};var r=Z(d.RTCPeerConnection.prototype,"localDescription");Y(d.RTCPeerConnection.prototype,"localDescription",{get(){let a=r.get.apply(this);return""===a.type?a:f(this,a)}});d.RTCPeerConnection.prototype.removeTrack=function(a){var b;if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!a._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.", "TypeError");if(a._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let c;this._streams=this._streams||{};q(b=V(this._streams)).call(b,b=>{var d;R(d=this._streams[b].getTracks()).call(d,b=>a.track===b)&&(c=this._streams[b])});c&&(1===c.getTracks().length?this.removeStream(this._reverseStreams[c.id]):c.removeTrack(a.track),this.dispatchEvent(new Event("negotiationneeded")))}}}function se(d){let f=Eb(d);if(!d.RTCPeerConnection&&d.webkitRTCPeerConnection&& (d.RTCPeerConnection=d.webkitRTCPeerConnection),d.RTCPeerConnection){var a;53>f.version&&q(a=["setLocalDescription","setRemoteDescription","addIceCandidate"]).call(a,function(a){let b=d.RTCPeerConnection.prototype[a];d.RTCPeerConnection.prototype[a]={[a](){return arguments[0]=new ("addIceCandidate"===a?d.RTCIceCandidate:d.RTCSessionDescription)(arguments[0]),b.apply(this,arguments)}}[a]});var b=d.RTCPeerConnection.prototype.addIceCandidate;d.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]? 78>f.version&&arguments[0]&&""===arguments[0].candidate?A.resolve():b.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),A.resolve())}}}function zg(d){jc(d,"negotiationneeded",d=>{if("stable"===d.target.signalingState)return d})}function Ag(d,f,a,b,c){f=G.writeRtpDescription(d.kind,f);if(f+=G.writeIceParameters(d.iceGatherer.getLocalParameters()),f+=G.writeDtlsParameters(d.dtlsTransport.getLocalParameters(),"offer"===a?"actpass":c||"active"),f+="a=mid:"+d.mid+"\r\n",d.rtpSender&&d.rtpReceiver? f+="a=sendrecv\r\n":d.rtpSender?f+="a=sendonly\r\n":d.rtpReceiver?f+="a=recvonly\r\n":f+="a=inactive\r\n",d.rtpSender)a=d.rtpSender._initialTrackId||d.rtpSender.track.id,d.rtpSender._initialTrackId=a,b="msid:"+(b?b.id:"-")+" "+a+"\r\n",f=f+("a="+b)+("a=ssrc:"+d.sendEncodingParameters[0].ssrc+" "+b),d.sendEncodingParameters[0].rtx&&(f+="a=ssrc:"+d.sendEncodingParameters[0].rtx.ssrc+" "+b,f+="a=ssrc-group:FID "+d.sendEncodingParameters[0].ssrc+" "+d.sendEncodingParameters[0].rtx.ssrc+"\r\n");return f+= "a=ssrc:"+d.sendEncodingParameters[0].ssrc+" cname:"+G.localCName+"\r\n",d.rtpSender&&d.sendEncodingParameters[0].rtx&&(f+="a=ssrc:"+d.sendEncodingParameters[0].rtx.ssrc+" cname:"+G.localCName+"\r\n"),f}function rd(d,f){var a={codecs:[],headerExtensions:[],fecMechanisms:[]},b=function(a,b){a=parseInt(a,10);for(var c=0;cA.reject(function(a){return{name:{PermissionDeniedError:"NotAllowedError"}[a.name]||a.name,message:a.message,constraint:a.constraint,toString(){return this.name}}}(a)))}}function Dg(d){var f;"getDisplayMedia"in d.navigator&&d.navigator.mediaDevices&&(d.navigator.mediaDevices&&"getDisplayMedia"in d.navigator.mediaDevices||(d.navigator.mediaDevices.getDisplayMedia=ra(f=d.navigator.getDisplayMedia).call(f,d.navigator)))}function ue(d){let f=Eb(d);if(d.RTCIceGatherer&& (d.RTCIceCandidate||(d.RTCIceCandidate=function(a){return a}),d.RTCSessionDescription||(d.RTCSessionDescription=function(a){return a}),15025>f.version)){let a=Z(d.MediaStreamTrack.prototype,"enabled");Y(d.MediaStreamTrack.prototype,"enabled",{set(b){a.set.call(this,b);let c=new Event("enabled");c.enabled=b;this.dispatchEvent(c)}})}!d.RTCRtpSender||"dtmf"in d.RTCRtpSender.prototype||Y(d.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=new d.RTCDtmfSender(this): "video"===this.track.kind&&(this._dtmf=null)),this._dtmf}});d.RTCDtmfSender&&!d.RTCDTMFSender&&(d.RTCDTMFSender=d.RTCDtmfSender);let a=fl(d,f.version);d.RTCPeerConnection=function(b){return b&&b.iceServers&&(b.iceServers=function(a,b){let c=!1;return a=JSON.parse(w(a)),I(a).call(a,a=>{if(a&&(a.urls||a.url)){var b=a.urls||a.url;a.url&&!a.urls&&pd("RTCIceServer.url","RTCIceServer.urls");let d="string"==typeof b;return d&&(b=[b]),b=I(b).call(b,a=>0===J(a).call(a,"stun:")?!1:(a=sd(a).call(a,"turn")&& !sd(a).call(a,"turn:[")&&ba(a).call(a,"transport=udp"))&&!c?(c=!0,!0):a&&!c),delete a.url,a.urls=d?b[0]:b,!!b.length}})}(b.iceServers,f.version),kb("ICE servers after filtering:",b.iceServers)),new a(b)};d.RTCPeerConnection.prototype=a.prototype}function Eg(d){!d.RTCRtpSender||"replaceTrack"in d.RTCRtpSender.prototype||(d.RTCRtpSender.prototype.replaceTrack=d.RTCRtpSender.prototype.setTrack)}function Fg(d){let f=Eb(d),a=d&&d.navigator;d=d&&d.MediaStreamTrack;if(a.getUserMedia=function(b,d,g){pd("navigator.getUserMedia", "navigator.mediaDevices.getUserMedia");a.mediaDevices.getUserMedia(b).then(d,g)},!(55f.version)&&q(a=["setLocalDescription","setRemoteDescription","addIceCandidate"]).call(a, function(a){let b=d.RTCPeerConnection.prototype[a];d.RTCPeerConnection.prototype[a]={[a](){return arguments[0]=new ("addIceCandidate"===a?d.RTCIceCandidate:d.RTCSessionDescription)(arguments[0]),b.apply(this,arguments)}}[a]});var b=d.RTCPeerConnection.prototype.addIceCandidate;d.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?68>f.version&&arguments[0]&&""===arguments[0].candidate?A.resolve():b.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),A.resolve())}; var c={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},e=d.RTCPeerConnection.prototype.getStats;d.RTCPeerConnection.prototype.getStats=function(){let [a,b,d]=arguments;return e.apply(this,[a||null]).then(a=>{if(53>f.version&&!b)try{q(a).call(a,a=>{a.type=c[a.type]||a.type})}catch(t){if("TypeError"!==t.name)throw t;q(a).call(a,(b,d)=>{a.set(d,Ga({},b,{type:c[b.type]||b.type}))})}return a}).then(b, d)}}}function Hg(d){if("object"==typeof d&&d.RTCPeerConnection&&d.RTCRtpSender&&!(d.RTCRtpSender&&"getStats"in d.RTCRtpSender.prototype)){var f=d.RTCPeerConnection.prototype.getSenders;f&&(d.RTCPeerConnection.prototype.getSenders=function(){let a=f.apply(this,[]);return q(a).call(a,a=>a._pc=this),a});var a=d.RTCPeerConnection.prototype.addTrack;a&&(d.RTCPeerConnection.prototype.addTrack=function(){let b=a.apply(this,arguments);return b._pc=this,b});d.RTCRtpSender.prototype.getStats=function(){return this.track? this._pc.getStats(this.track):A.resolve(new aa)}}}function Ig(d){if("object"==typeof d&&d.RTCPeerConnection&&d.RTCRtpSender&&!(d.RTCRtpSender&&"getStats"in d.RTCRtpReceiver.prototype)){var f=d.RTCPeerConnection.prototype.getReceivers;f&&(d.RTCPeerConnection.prototype.getReceivers=function(){let a=f.apply(this,[]);return q(a).call(a,a=>a._pc=this),a});jc(d,"track",a=>(a.receiver._pc=a.srcElement,a));d.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}}function Jg(d){!d.RTCPeerConnection|| "removeStream"in d.RTCPeerConnection.prototype||(d.RTCPeerConnection.prototype.removeStream=function(d){var a;pd("removeStream","removeTrack");q(a=this.getSenders()).call(a,a=>{var b;a.track&&ba(b=d.getTracks()).call(b,a.track)&&this.removeTrack(a)})})}function Kg(d){d.DataChannel&&!d.RTCDataChannel&&(d.RTCDataChannel=d.DataChannel)}function Lg(d){if("object"==typeof d&&d.RTCPeerConnection){if("getLocalStreams"in d.RTCPeerConnection.prototype||(d.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams|| (this._localStreams=[]),this._localStreams}),!("addStream"in d.RTCPeerConnection.prototype)){let f=d.RTCPeerConnection.prototype.addTrack;d.RTCPeerConnection.prototype.addStream=function(a){var b,c,d;this._localStreams||(this._localStreams=[]);ba(b=this._localStreams).call(b,a)||this._localStreams.push(a);q(c=a.getAudioTracks()).call(c,b=>f.call(this,b,a));q(d=a.getVideoTracks()).call(d,b=>f.call(this,b,a))};d.RTCPeerConnection.prototype.addTrack=function(a,b){var c;b&&(this._localStreams?ba(c=this._localStreams).call(c, b)||this._localStreams.push(b):this._localStreams=[b]);return f.call(this,a,b)}}"removeStream"in d.RTCPeerConnection.prototype||(d.RTCPeerConnection.prototype.removeStream=function(d){var a,b,c;this._localStreams||(this._localStreams=[]);let e=J(a=this._localStreams).call(a,d);if(-1!==e){Ia(b=this._localStreams).call(b,e,1);var g=d.getTracks();q(c=this.getSenders()).call(c,a=>{ba(g).call(g,a.track)&&this.removeTrack(a)})}})}}function Mg(d){if("object"==typeof d&&d.RTCPeerConnection&&("getRemoteStreams"in d.RTCPeerConnection.prototype||(d.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in d.RTCPeerConnection.prototype))){Y(d.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(a){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly));this.addEventListener("addstream",this._onaddstream=a);this.addEventListener("track",this._onaddstreampoly= a=>{var b;q(b=a.streams).call(b,a=>{var b;(this._remoteStreams||(this._remoteStreams=[]),ba(b=this._remoteStreams).call(b,a))||(this._remoteStreams.push(a),b=new Event("addstream"),b.stream=a,this.dispatchEvent(b))})})}});let f=d.RTCPeerConnection.prototype.setRemoteDescription;d.RTCPeerConnection.prototype.setRemoteDescription=function(){let a=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(b){var c;q(c=b.streams).call(c,b=>{var c;(a._remoteStreams|| (a._remoteStreams=[]),0<=J(c=a._remoteStreams).call(c,b))||(a._remoteStreams.push(b),c=new Event("addstream"),c.stream=b,a.dispatchEvent(c))})}),f.apply(a,arguments)}}}function Ng(d){if("object"==typeof d&&d.RTCPeerConnection){d=d.RTCPeerConnection.prototype;var f=d.createOffer,a=d.createAnswer,b=d.setLocalDescription,c=d.setRemoteDescription,e=d.addIceCandidate;d.createOffer=function(a,b){let c=f.apply(this,[2<=arguments.length?arguments[2]:arguments[0]]);return b?(c.then(a,b),A.resolve()):c};d.createAnswer= function(b,c){let d=a.apply(this,[2<=arguments.length?arguments[2]:arguments[0]]);return c?(d.then(b,c),A.resolve()):d};var g=function(a,c,d){a=b.apply(this,[a]);return d?(a.then(c,d),A.resolve()):a};d.setLocalDescription=g;g=function(a,b,d){a=c.apply(this,[a]);return d?(a.then(b,d),A.resolve()):a};d.setRemoteDescription=g;g=function(a,b,c){a=e.apply(this,[a]);return c?(a.then(b,c),A.resolve()):a};d.addIceCandidate=g}}function Og(d){let f=d&&d.navigator;if(f.mediaDevices&&f.mediaDevices.getUserMedia){var a; d=f.mediaDevices;let b=ra(a=d.getUserMedia).call(a,d);f.mediaDevices.getUserMedia=a=>b(Pg(a))}var b;!f.getUserMedia&&f.mediaDevices&&f.mediaDevices.getUserMedia&&(f.getUserMedia=ra(b=function(a,b,d){f.mediaDevices.getUserMedia(a).then(b,d)}).call(b,f))}function Pg(d){return d&&void 0!==d.video?Ga({},d,{video:mg(d.video)}):d}function Qg(d){let f=d.RTCPeerConnection;d.RTCPeerConnection=function(a,b){if(a&&a.iceServers){let b=[];for(let c=0;cf.generateCertificate})}function Rg(d){"object"==typeof d&&d.RTCPeerConnection&&"receiver"in d.RTCTrackEvent.prototype&&!d.RTCTransceiver&&Y(d.RTCTrackEvent.prototype,"transceiver", {get(){return{receiver:this.receiver}}})}function Sg(d){let f=d.RTCPeerConnection.prototype.createOffer;d.RTCPeerConnection.prototype.createOffer=function(a){if(a){var b,c;void 0!==a.offerToReceiveAudio&&(a.offerToReceiveAudio=!!a.offerToReceiveAudio);let d=R(b=this.getTransceivers()).call(b,a=>"audio"===a.receiver.track.kind);!1===a.offerToReceiveAudio&&d?"sendrecv"===d.direction?d.setDirection?d.setDirection("sendonly"):d.direction="sendonly":"recvonly"===d.direction&&(d.setDirection?d.setDirection("inactive"): d.direction="inactive"):!0!==a.offerToReceiveAudio||d||this.addTransceiver("audio");void 0!==a.offerToReceiveVideo&&(a.offerToReceiveVideo=!!a.offerToReceiveVideo);b=R(c=this.getTransceivers()).call(c,a=>"video"===a.receiver.track.kind);!1===a.offerToReceiveVideo&&b?"sendrecv"===b.direction?b.setDirection?b.setDirection("sendonly"):b.direction="sendonly":"recvonly"===b.direction&&(b.setDirection?b.setDirection("inactive"):b.direction="inactive"):!0!==a.offerToReceiveVideo||b||this.addTransceiver("video")}return f.apply(this, arguments)}}function td(d){if(d.RTCIceCandidate&&!(d.RTCIceCandidate&&"foundation"in d.RTCIceCandidate.prototype)){var f=d.RTCIceCandidate;d.RTCIceCandidate=function(a){var b;if("object"==typeof a&&a.candidate&&0===J(b=a.candidate).call(b,"a=")&&((a=JSON.parse(w(a))).candidate=a.candidate.substr(2)),a.candidate&&a.candidate.length){b=new f(a);a=G.parseCandidate(a.candidate);let c=Ga(b,a);return c.toJSON=function(){return{candidate:c.candidate,sdpMid:c.sdpMid,sdpMLineIndex:c.sdpMLineIndex,usernameFragment:c.usernameFragment}}, c}return new f(a)};d.RTCIceCandidate.prototype=f.prototype;jc(d,"icecandidate",a=>(a.candidate&&Y(a,"candidate",{value:new d.RTCIceCandidate(a.candidate),writable:"false"}),a))}}function Hc(d){if(d.RTCPeerConnection){var f=Eb(d);"sctp"in d.RTCPeerConnection.prototype||Y(d.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});var a=function(a){if(!a||!a.sdp)return!1;a=G.splitSections(a.sdp);return a.shift(),qg(a).call(a,a=>{var b;return(a=G.parseMLine(a))&&"application"=== a.kind&&-1!==J(b=a.protocol).call(b,"SCTP")})},b=function(a){a=a.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===a||2>a.length)return-1;a=pa(a[1],10);return a!=a?-1:a},c=function(a){let b=65536;return"firefox"===f.browser&&(b=57>f.version?-1===a?16384:2147483637:60>f.version?57===f.version?65535:65536:2147483637),b},e=function(a,b){let c=65536;"firefox"===f.browser&&57===f.version&&(c=65535);a=G.matchPrefix(a.sdp,"a=max-message-size:");return 0a});this._sctp=d}return g.apply(this,arguments)}}}function Ic(d){function f(a,c){let b=a.send;a.send=function(){var d=arguments[0];d=d.length||d.size||d.byteLength;if("open"===a.readyState&&c.sctp&&d>c.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+c.sctp.maxMessageSize+" bytes)");return b.apply(a,arguments)}}if(d.RTCPeerConnection&&"createDataChannel"in d.RTCPeerConnection.prototype){var a=d.RTCPeerConnection.prototype.createDataChannel; d.RTCPeerConnection.prototype.createDataChannel=function(){let b=a.apply(this,arguments);return f(b,this),b};jc(d,"datachannel",a=>(f(a.channel,a.target),a))}}function we(d){var f;if(d.RTCPeerConnection&&!("connectionState"in d.RTCPeerConnection.prototype)){var a=d.RTCPeerConnection.prototype;Y(a,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0});Y(a,"onconnectionstatechange",{get(){return this._onconnectionstatechange|| null},set(a){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange);a&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=a)},enumerable:!0,configurable:!0});q(f=["setLocalDescription","setRemoteDescription"]).call(f,b=>{let c=a[b];a[b]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=a=>{let b=a.target;if(b._lastConnectionState!==b.connectionState){b._lastConnectionState= b.connectionState;let c=new Event("connectionstatechange",a);b.dispatchEvent(c)}return a},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),c.apply(this,arguments)}})}}function xe(d){if(d.RTCPeerConnection){var f=Eb(d);if(!("chrome"===f.browser&&71<=f.version)){var a=d.RTCPeerConnection.prototype.setRemoteDescription;d.RTCPeerConnection.prototype.setRemoteDescription=function(b){var c,d;b&&b.sdp&&-1!==J(c=b.sdp).call(c,"\na=extmap-allow-mixed")&&(b.sdp=I(d=b.sdp.split("\n")).call(d, a=>"a=extmap-allow-mixed"!==Xb(a).call(a)).join("\n"));return a.apply(this,arguments)}}}}function kc(d){return"string"==typeof d?Ga({},gl[d]):d}function ye(d){return"string"==typeof d?Ga({},hl[d]):d}function ud(d){return"string"==typeof d?Ga({},il[d]):d}function vd(d){return"string"==typeof d?Ga({},jl[d]):d}function Yb(d,f){var a;ba(a=V(v)).call(a,d)&&(v[d]=f)}function lc(d,f,a){return{sampleRate:d,stereo:f,bitrate:a}}function K(d,f,a,b,c){return{width:d,height:f,frameRate:a,bitrateMin:b,bitrateMax:c}} function eb(d,f,a,b,c){return{width:{max:d},height:{max:f},frameRate:a,bitrateMin:b,bitrateMax:c}}function ze(d,f){return{numSpatialLayers:d,numTemporalLayers:f}}function Tg(d){return"[object Array]"===mc.call(d)}function Ug(d){return null!==d&&"object"==typeof d}function Vg(d){return"[object Function]"===mc.call(d)}function wd(d,f){if(null!=d)if("object"!=typeof d&&(d=[d]),Tg(d))for(var a=0,b=d.length;ab||c&&("number"!=typeof d||0!=d%1)){var e,g;throw new n(l.INVALID_PARAMS,m(e=m(g="invalid ".concat(f,": the value range is [")).call(g,a,", ")).call(e,b,"]. integer only"));}}function Fa(d,f,a=1,b=255,c=!0){if(null==d)throw new n(l.INVALID_PARAMS,"".concat(f||"param"," cannot be empty"));var e,g,h;if(!ch(d,a,b,c))throw new n(l.INVALID_PARAMS,m(e=m(g=m(h="Invalid ".concat(f||"string param",": Length of the string: [")).call(h, a,",")).call(g,b,"].")).call(e,c?" ASCII characters only.":""));}function dh(d,f){if(!Pb(d))throw new n(l.INVALID_PARAMS,"".concat(f," should be an array"));}function Ce(d){if("string"!=typeof d||!/^[a-zA-Z0-9 !#\$%&\(\)\+\-:;<=\.>\?@\[\]\^_\{\}\|~,]{1,64}$/.test(d))throw k.error("Invalid Channel Name ".concat(d)),new n(l.INVALID_PARAMS,"The length must be within 64 bytes. The supported characters: a-z,A-Z,0-9,space,!, #, $, %, &, (, ), +, -, :, ;, <, =, ., >, ?, @, [, ], ^, _, {, }, |, ~, ,");} function De(d){var f;if(!("number"==typeof d&&Math.floor(d)===d&&0<=d&&4294967295>=d||ch(d,1,255)))throw k.error(m(f="Invalid UID ".concat(d," ")).call(f,typeof d)),new n(l.INVALID_PARAMS,"[String uid] Length of the string: [1,255]. ASCII characters only. [Number uid] The value range is [0,10000]");}function ch(d,f=1,a=255,b=!0){if(f="string"==typeof d&&d.length<=a&&d.length>=f){if(!(b=!b))a:if("string"!=typeof d)b=!1;else{for(b=0;bf||255d.length)return!1; try{q(d).call(d,d=>{if(!d.urls)throw Error();})}catch(f){return!1}return!0}function gh(d){return Fa(d.turnServerURL,"turnServerURL"),Fa(d.username,"username"),Fa(d.password,"password"),d.udpport&&W(d.udpport,"udpport",1,99999,!0),d.forceturn&&Be(d.forceturn,"forceturn"),d.security&&Be(d.security,"security"),d.tcpport&&W(d.tcpport,"tcpport",1,99999,!0),!0}function hh(d){return void 0!==d.level&&Ka(d.level,"level",[1,2]),!0}function Ee(d,f){Fa(d.url,"".concat(f,".url"),1,1E3,!1);null==d.x||W(d.x,"".concat(f, ".x"),0,1E4);null==d.y||W(d.y,"".concat(f,".y"),0,1E4);null==d.width||W(d.width,"".concat(f,".width"),0,1E4);null==d.height||W(d.height,"".concat(f,".height"),0,1E4);null==d.zOrder||W(d.zOrder,"".concat(f,".zOrder"),0,255);null==d.alpha||W(d.alpha,"".concat(f,".alpha"),0,1,!1)}function ih(d){if(!d.channelName)throw new n(l.INVALID_PARAMS,"invalid channelName in info");if(!d.uid||"number"!=typeof d.uid)throw new n(l.INVALID_PARAMS,"invalid uid in info, uid must be a number");return d.token&&Fa(d.token, "info.token",1,2047),De(d.uid),Ce(d.channelName),!0}function jh(d){return Ka(d,"mediaSource",["screen","window","application"]),!0}function na(d){var f,a,b,c;d=d||navigator.userAgent;let e=d.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];if("Chrome"===e[1]){var g=d.match(/(OPR(?=\/))\/?(\d+)/i);null!==g&&(e=g)}"Safari"===e[1]&&(g=d.match(/version\/(\d+)/i),null!==g&&(e[2]=g[1]));-1!==J(f=d.toLowerCase()).call(f,"qqbrowser")&&(f=d.match(/(qqbrowser(?=\/))\/?(\d+)/i),null!== f&&(e=f));-1!==J(a=d.toLowerCase()).call(a,"micromessenger")&&(a=d.match(/(micromessenger(?=\/))\/?(\d+)/i),null!==a&&(e=a));-1!==J(b=d.toLowerCase()).call(b,"edge")&&(b=d.match(/(edge(?=\/))\/?(\d+)/i),null!==b&&(e=b));-1!==J(c=d.toLowerCase()).call(c,"trident")&&(c=/\brv[ :]+(\d+)/g.exec(d)||[],null!==c&&(e=["","IE",c[1]]));c=null;b=[{s:X.WIN_10,r:/(Windows 10.0|Windows NT 10.0)/},{s:X.WIN_81,r:/(Windows 8.1|Windows NT 6.3)/},{s:X.WIN_8,r:/(Windows 8|Windows NT 6.2)/},{s:X.WIN_7,r:/(Windows 7|Windows NT 6.1)/}, {s:X.WIN_VISTA,r:/Windows NT 6.0/},{s:X.WIN_SERVER_2003,r:/Windows NT 5.2/},{s:X.WIN_XP,r:/(Windows NT 5.1|Windows XP)/},{s:X.WIN_2000,r:/(Windows NT 5.0|Windows 2000)/},{s:X.ANDROID,r:/Android/},{s:X.OPEN_BSD,r:/OpenBSD/},{s:X.SUN_OS,r:/SunOS/},{s:X.LINUX,r:/(Linux|X11)/},{s:X.IOS,r:/(iPhone|iPad|iPod)/},{s:X.MAC_OS_X,r:/Mac OS X/},{s:X.MAC_OS,r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:X.QNX,r:/QNX/},{s:X.UNIX,r:/UNIX/},{s:X.BEOS,r:/BeOS/},{s:X.OS_2,r:/OS\/2/},{s:X.SEARCH_BOT,r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}]; for(let e in b)if(a=b[e],a.r.test(d)){c=a.s;break}return{name:e[1],version:e[2],os:c}}function Kc(){return na().name===ca.CHROME}function Ad(){return na().name===ca.FIREFOX}function kh(){return window.navigator.appVersion&&null!==window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)&&35>=window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)[1]}function Bd(){let d=na();return d.name===ca.EDGE||d.name===ca.SAFARI?!1:!!navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]./i)}function lh(d, f){var a=V(d);if(ea){var b=ea(d);f&&(b=I(b).call(b,function(a){return Z(d,a).enumerable}));a.push.apply(a,b)}return a}function vb(d){for(var f=1;fd?1:.17<=d&&.36>d?2:.36<=d&&.59>d?3:.59<=d&&1>=d?4:1{window.setTimeout(f,d)})}function nl(d){let f=new n(l.TIMEOUT,"timeout");return new A((a,b)=>{window.setTimeout(()=>b(f),d)})}function qa(d=7,f){var a,b;let c=Math.random().toString(16).substr(2,d).toLowerCase();return c.length===d?m(a="".concat(f)).call(a,c):m(b="".concat(f)).call(b,c)+qa(d-c.length,"")}function ph(d){return new A((f,a)=>{let b=document.createElement("video"); b.setAttribute("autoplay","");b.setAttribute("muted","");b.muted=!0;b.autoplay=!0;b.setAttribute("playsinline","");b.setAttribute("style","position: absolute; top: 0; left: 0; width: 1px; height: 1px");document.body.appendChild(b);b.addEventListener("playing",()=>{!b.videoWidth&&Ad()||(document.body.removeChild(b),f([b.videoWidth,b.videoHeight]))});b.srcObject=new MediaStream([d])})}function Lc(d){return A.all(E(d).call(d,d=>d.then(a=>{throw a;},a=>a))).then(d=>{throw d;},d=>d)}function La(d,f,...a){return 0=== d.getListeners(f).length?A.reject(new n(l.UNEXPECTED_ERROR,"can not emit promise")):new A((b,c)=>{d.emit(f,...a,b,c)})}function Pa(d,f,...a){return 0===d.getListeners(f).length?A.resolve():La(d,f,...a)}function Zb(d,f,...a){return 0===d.getListeners(f).length?null:Mc(d,f,...a)}function Mc(d,f,...a){let b=null,c=null;if(d.emit(f,...a,a=>{b=a},a=>{c=a}),null!==c)throw c;if(null===b)throw new n(l.UNEXPECTED_ERROR,"handler is not sync");return b}function Nc(d,f){f=J(d).call(d,f);-1!==f&&Ia(d).call(d, f,1)}function qh(d){let f=[];return q(d).call(d,a=>{-1===J(f).call(f,a)&&f.push(a)}),f}function Za(d){A.resolve().then(d)}function Oc(d,f){rh[f]||(rh[f]=!0,d())}function Ge(d){d=window.atob(d);let f=new Uint8Array(new ArrayBuffer(d.length));for(let a=0;aa?"number"!=typeof a?a.max||a.exact||a.ideal||a.min||c:a:c;d={audio:!1, video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:d,maxHeight:a(f.height,1080),maxWidth:a(f.width,1920)}}};return f.frameRate&&"number"!=typeof f.frameRate?(d.video.mandatory.maxFrameRate=f.frameRate.max,d.video.mandatory.minFrameRate=f.frameRate.min):"number"==typeof f.frameRate&&(d.video.mandatory.maxFrameRate=f.frameRate),await navigator.mediaDevices.getUserMedia(d)}async function ol(d){let f=await function(a){return new A((b,c)=>{const d=document.createElement("div");d.innerText= "share screen";d.setAttribute("style","text-align: center; height: 25px; line-height: 25px; border-radius: 4px 4px 0 0; background: #D4D2D4; border-bottom: solid 1px #B9B8B9;");const g=document.createElement("div");g.setAttribute("style","width: 100%; height: 500px; padding: 15px 25px ; box-sizing: border-box;");const h=document.createElement("div");h.innerText="Agora Web Screensharing wants to share the contents of your screen with webdemo.agorabeckon.com. Choose what you'd like to share.";h.setAttribute("style", "height: 12%;");const f=document.createElement("div");f.setAttribute("style","width: 100%; height: 80%; background: #FFF; border: solid 1px #CBCBCB; display: flex; flex-wrap: wrap; justify-content: space-around; overflow-y: scroll; padding: 0 15px; box-sizing: border-box;");const r=document.createElement("div");r.setAttribute("style","text-align: right; padding: 16px 0;");const t=document.createElement("button");t.innerHTML="cancel";t.setAttribute("style","width: 85px;");t.onclick=()=>{document.body.removeChild(y); const a=Error("NotAllowedError");a.name="NotAllowedError";c(a)};r.appendChild(t);g.appendChild(h);g.appendChild(f);g.appendChild(r);const y=document.createElement("div");y.setAttribute("style","position: fixed; z-index: 99999999; top: 50%; left: 50%; width: 620px; height: 525px; background: #ECECEC; border-radius: 4px; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);");y.appendChild(d);y.appendChild(g);document.body.appendChild(y);E(a).call(a,a=>{if(a.id){const c=document.createElement("div"); c.setAttribute("style","width: 30%; height: 160px; padding: 20px 0; text-align: center;box-sizing: content-box;");let d=a.thumbnail;const {width:e}=d.getSize();1920'+ (a.name.replace(/[\u00A0-\u9999<>&]/g,function(a){return"&#"+a.charCodeAt(0)+";"})+"");c.onclick=()=>{document.body.removeChild(y);b(a.id)};f.appendChild(c)}})})}(await th(d.mediaSource));return await sh(f,d)}async function th(d){let f=["window","screen"];"application"!==d&&"window"!==d||(f=["window"]);"screen"===d&&(f=["screen"]);let a=uh();if(!a)throw new n(l.ELECTRON_IS_NULL);d=null;try{d=a.desktopCapturer.getSources({types:f})}catch(b){d=null}d&&d.then||(d=new A((b,c)=>{a.desktopCapturer.getSources({types:f}, (a,d)=>{a?c(a):b(d)})}));try{return await d}catch(b){throw new n(l.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,b.toString());}}function uh(){if(Ed)return Ed;try{return Ed=window.require("electron"),Ed}catch(d){return null}}async function xb(d,f){let a=0,b=null;for(;2>a;)try{b=await pl(d,f,0{try{chrome.runtime.sendMessage(e,{getStream:!0},c=>{if(!c||!c.streamId)return k.error("[".concat(g,"] No response from Chrome Plugin. Plugin not installed properly"),c),void b(new n(l.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));a(c.streamId)})}catch(y){var c;k.error(m(c="[".concat(g,"] AgoraRTC screensharing plugin is not accessible(")).call(c,e,")"),y.toString());b(new n(l.CHROME_PLUGIN_NOT_INSTALL))}}));d.screen.mandatory.chromeMediaSourceId= c;nc(a,await navigator.mediaDevices.getUserMedia({video:{mandatory:d.screen.mandatory}}))}else if(b.getDisplayMedia)d.screen.mediaSource&&jh(d.screen.mediaSource),c={width:d.screen.width,height:d.screen.height,frameRate:d.screen.frameRate,displaySurface:"screen"===d.screen.mediaSource?"monitor":d.screen.mediaSource},k.debug("[".concat(f,"] getDisplayMedia:"),w({video:c,audio:!!d.screenAudio})),nc(a,await navigator.mediaDevices.getDisplayMedia({video:c,audio:!!d.screenAudio}));else{if(!Ad())throw k.error("[".concat(f, "] This browser does not support screenSharing")),new n(l.NOT_SUPPORTED,"This browser does not support screen sharing");d.screen.mediaSource&&jh(d.screen.mediaSource);b={video:{mediaSource:d.screen.mediaSource,width:d.screen.width,height:d.screen.height,frameRate:d.screen.frameRate}};k.debug(m(c="[".concat(f,"] getUserMedia: ")).call(c,w(b)));nc(a,await navigator.mediaDevices.getUserMedia(b))}var e,g;if(!d.video&&!d.audio)return a;d={video:d.video,audio:d.audio};k.debug("[".concat(f,"] GetUserMedia"), w(d));f=na();let h;c=null;f.name!==ca.SAFARI&&f.os!==X.IOS||(c=await He.lock());try{h=await navigator.mediaDevices.getUserMedia(d)}catch(p){throw c&&c(),p;}return d.audio&&(vh=!0),d.video&&(wh=!0),nc(a,h),c&&c(),a}function Fd(d,f){switch(d){case "Starting video failed":case "OverconstrainedError":case "TrackStartError":var a;return new n(l.MEDIA_OPTION_INVALID,m(a="".concat(d,": ")).call(a,f));case "NotFoundError":case "DevicesNotFoundError":var b;return new n(l.DEVICE_NOT_FOUND,m(b="".concat(d,": ")).call(b, f));case "NotSupportedError":var c;return new n(l.NOT_SUPPORTED,m(c="".concat(d,": ")).call(c,f));case "NotReadableError":var e;return new n(l.NOT_READABLE,m(e="".concat(d,": ")).call(e,f));case "InvalidStateError":case "NotAllowedError":case "PERMISSION_DENIED":case "PermissionDeniedError":var g;return new n(l.PERMISSION_DENIED,m(g="".concat(d,": ")).call(g,f));case "ConstraintNotSatisfiedError":var h;return new n(l.CONSTRAINT_NOT_SATISFIED,m(h="".concat(d,": ")).call(h,f));default:var p;return k.error("getUserMedia unexpected error", d),new n(l.UNEXPECTED_ERROR,m(p="".concat(d,": ")).call(p,f))}}function nc(d,f){let a=d.getVideoTracks()[0],b=d.getAudioTracks()[0],c=f.getVideoTracks()[0];(f=f.getAudioTracks()[0])&&(b&&d.removeTrack(b),d.addTrack(f));c&&(a&&d.removeTrack(a),d.addTrack(c))}function xh(d,f){var a=V(d);if(ea){var b=ea(d);f&&(b=I(b).call(b,function(a){return Z(d,a).enumerable}));a.push.apply(a,b)}return a}function yb(d,f,a){return new A((b,c)=>{f.timeout=f.timeout||v.HTTP_CONNECT_TIMEOUT;f.responseType=f.responseType|| "json";f.data&&!a?(f.data=w(f.data),yh+=Cd(f.data)):a&&(yh+=f.data.size);f.headers=f.headers||{};f.headers["Content-Type"]=f.headers["Content-Type"]||"application/json";f.method="POST";f.url=d;zb.request(f).then(a=>{"string"==typeof a.data?Ie+=Cd(a.data):a.data instanceof ArrayBuffer||a.data instanceof Uint8Array?Ie+=a.data.byteLength:Ie+=Cd(w(a.data));b(a.data)}).catch(a=>{zb.isCancel(a)?c(new n(l.OPERATION_ABORTED,"cancel token canceled")):"ECONNABORTED"===a.code?c(new n(l.NETWORK_TIMEOUT,a.message)): a.response?c(new n(l.NETWORK_RESPONSE_ERROR,a.response.status)):c(new n(l.NETWORK_ERROR,a.message))})})}async function ql(d,f){let a=new Blob([f.data],{type:"buffer"});return await yb(d,function(a){for(var b=1;b{await wb(e);e*=c.timeoutFactor;e=Math.min(c.maxRetryTimeout,e)},h=!1;b=new A(async(b,e)=>{f=f||(()=>!1);a=a||(()=>!0);for(let p=0;ph=!0,b}function tl(){Bh?(k.info("create audio context"),pc=new Bh,pc.onstatechange=()=>{Pc.emit("state-change")},function(d){function f(c){"running"===d.state?a(!1):"closed"!==d.state&&(a(!0),c?d.resume().then(b,b):a(!1))}function a(a){if(g!==a){g=a;for(let b=0,d=e;b{var b;return d._inputNodes||(d._inputNodes=[]),ba(b=d._inputNodes).call(b,a)||(a instanceof AudioNode?(d._inputNodes.push(a),f.call(d,a,c,e)):f.call(d,a,c)),d};d.disconnect=(b,c,e)=>{a.call(d);b?Nc(d._inputNodes,b):d._inputNodes=[];for(let a of d._inputNodes)f.call(d,a)}}}function Le(d,f){let a=1/f,b=Qc(),c=b.createGain();c.gain.value=0;c.connect(b.destination); let e=!1,g=()=>{if(e)return void(c=null);const h=b.createOscillator();h.onended=g;h.connect(c);h.start(0);h.stop(b.currentTime+a);d(b.currentTime)};return g(),()=>{e=!0}}function Ch(d,f){var a=V(d);if(ea){var b=ea(d);f&&(b=I(b).call(b,function(a){return Z(d,a).enumerable}));a.push.apply(a,b)}return a}function Me(d){for(var f=1;f{h=x();var a=await yb(r,{data:g,cancelToken:b,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"}});if(p=x()-h,0!==a.code){var c=new n(l.UNEXPECTED_RESPONSE,"live streaming ap error, code"+a.code,{retry:!0,responseTime:p}); throw k.error(c.toString()),c;}a=JSON.parse(a.json_body);if(200!==a.code)throw a=new n(l.UNEXPECTED_RESPONSE,m(c="live streaming app center error, code: ".concat(a.code,", reason: ")).call(c,a.reason),{code:a.code,responseTime:p}),k.error(a.toString()),a;if(!a.servers||0===a.servers.length)throw c=new n(l.UNEXPECTED_RESPONSE,"live streaming app center empty server",{code:a.code,responseTime:p}),k.error(c.toString()),c;c=function(a,b){var c;return{addressList:E(c=a.servers).call(c,a=>{var c,d;return m(c= m(d="wss://".concat(a.address.replace(/\./g,"-"),".edge.agora.io:")).call(d,a.wss,"?serviceName=")).call(c,encodeURIComponent(b))}),workerToken:a.workerToken,vid:a.vid}}(a,f);return v.LIVE_STREAMING_ADDRESS&&(c.addressList=v.LIVE_STREAMING_ADDRESS instanceof Array?v.LIVE_STREAMING_ADDRESS:[v.LIVE_STREAMING_ADDRESS]),function(a){for(var b=1;b(u.apworkerEvent(a.sid,{success:!0,sc:200,serviceName:f,responseDetail:w(b.addressList),firstSuccess:0===c,responseTime:p,serverIp:d[c%d.length]}),!1),(b,c)=>(u.apworkerEvent(a.sid,{success:!1,sc:b.data&&b.data.code||200,serviceName:f,responseTime:p,serverIp:d[c%d.length]}),!!(b.code!==l.OPERATION_ABORTED&&b.code!==l.UNEXPECTED_RESPONSE||b.data&&b.data.retry)&&(r=d[(c+1)%d.length],!0)),c)}function Fh({url:d, areaCode:f},a,b,c){let e=x(),g={opid:133,flag:4096,ts:x(),key:a.token,cname:a.cname,sid:a.sid,detail:{6:a.stringUid,11:f},uid:a.uid||0};a.multiIP&&a.multiIP.gateway_ip&&(g.detail[5]=w({vocs_ip:[a.multiIP.uni_lbs_ip],vos_ip:[a.multiIP.gateway_ip]}));return Fb(async()=>{let a=await yb(d+"".concat(-1===J(d).call(d,"?")?"?":"&","action=wrtc_gateway"),{data:g,cancelToken:b,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":69}});if(a.addresses&&0===a.addresses.length&&0===a.code)throw new n(l.VOID_GATEWAY_ADDRESS, "",{retry:!0,csIp:a.detail&&a.detail[502]});if(v.GATEWAY_ADDRESS&&0({ip:b.ip,port:b.port,ticket:a.addresses[0]&&a.addresses[0].ticket}));a.addresses=b}return function(a,b){var c;let d=[".agora.io",".sd-rtn.com"],e=d[1]&&-1!==J(b).call(b,d[1])?1:0;return a.addresses=a.addresses||[],{gatewayAddrs:E(c=a.addresses).call(c,a=>{var b,c,g;return a.ip.match(/^[\.:\d]+$/)?m(b=m(c="".concat(a.ip.replace(/[^\d]/g, "-"),".edge")).call(c,d[e++%d.length],":")).call(b,a.port):(k.info("Cannot recognized as IP address ".concat(a.ip,". Used As Host instead")),m(g="".concat(a.ip,":")).call(g,a.port))}),uid:a.uid,cid:a.cid,vid:a.detail&&a.detail[8],uni_lbs_ip:a.detail&&a.detail[1],res:a,csIp:a.detail&&a.detail[502]}}(a,d)},b=>{if(0===b.res.code)return u.joinChooseServer(a.sid,{lts:e,succ:!0,csAddr:d,serverList:b.gatewayAddrs,ec:null,cid:b.res.cid.toString(),uid:b.res.uid.toString(),csIp:b.csIp}),!1;let c=Gd(b.res.code); throw new n(l.CAN_NOT_GET_GATEWAY_SERVER,c.desc,{retry:c.retry,csIp:b.csIp});},b=>{return b.code!==l.OPERATION_ABORTED&&(b.code===l.CAN_NOT_GET_GATEWAY_SERVER||b.code===l.VOID_GATEWAY_ADDRESS?(u.joinChooseServer(a.sid,{lts:e,succ:!1,csAddr:d,serverList:null,ec:b.message,csIp:b.data&&b.data.csIp}),k.warning(m(c=m(g=m(h="[".concat(a.clientId,"] Choose server ")).call(h,d," failed, message: ")).call(g,b.message,", retry: ")).call(c,b.data.retry)),b.data.retry):(u.joinChooseServer(a.sid,{lts:e,succ:!1, csAddr:d,serverList:null,ec:b.code,csIp:b.data&&b.data.csIp}),k.warning("[".concat(a.clientId,"] Choose server network error, retry"),b),!0));var c,g,h},c)}async function Gh(d,f,a){return{gatewayInfo:await async function(a,c,d){var b,e;const f=E(b=Ha(e=v.WEBCS_DOMAIN).call(e,0,v.AJAX_REQUEST_CONCURRENT)).call(b,b=>{var c;return{url:a.proxyServer?m(c="https://".concat(a.proxyServer,"/ap/?url=")).call(c,b+"/api/v1"):"https://".concat(b,"/api/v1"),areaCode:Qe()}});let r=null;return r=await Lc([(async()=> await Hd({fragementLength:v.FRAGEMENT_LENGTH,referenceList:f,asyncMapHandler:b=>(k.debug("[".concat(a.clientId,"] Connect to choose_server:"),b.url),Fh(b,a,c,d)),allFailedhandler:a=>{throw a[0];}}))(),(async()=>{var b;if(await wb(1E3),null!==r)return r;const e=E(b=v.WEBCS_DOMAIN_BACKUP_LIST).call(b,b=>{var c;return{url:a.proxyServer?m(c="https://".concat(a.proxyServer,"/ap/?url=")).call(c,b+"/api/v1"):"https://".concat(b,"/api/v1"),areaCode:Qe()}});return await Hd({fragementLength:v.FRAGEMENT_LENGTH, referenceList:e,asyncMapHandler:b=>(k.debug("[".concat(a.clientId,"] Connect to backup choose_server:"),b.url),Fh(b,a,c,d)),allFailedhandler:a=>{throw a[0];}})})()]),r}(d,f,a)}}async function vl(d,f,a){var b,c,e;if("disabled"!==d.cloudProxyServer){var g=await async function(a,b,c){var d,e=x(),g=E(d=v.PROXY_CS).call(d,b=>{var c;return a.proxyServer?m(c="https://".concat(a.proxyServer,"/ap/?url=")).call(c,b+"/api/v1"):"https://".concat(b,"/api/v1")});if("proxy3"===a.cloudProxyServer||"proxy4"===a.cloudProxyServer|| "proxy5"===a.cloudProxyServer){e=E(g).call(g,a=>({url:a,areaCode:Qe()}));var h=null;h=await Hd({fragementLength:v.FRAGEMENT_LENGTH,referenceList:e,asyncMapHandler:d=>function({url:a,areaCode:b},c,d,e){const g=x(),h={opid:133,flag:"proxy5"===c.cloudProxyServer?4194304:1048576,ts:+new Date,key:c.token,cname:c.cname,sid:c.sid,detail:{6:c.stringUid,11:b},uid:c.uid||0};return Fb(async()=>await yb(a,{data:h,cancelToken:d,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":69}}),b=>{var d;if(0===b.code)return u.joinWebProxyAP(c.sid, {lts:g,sucess:1,apServerAddr:a,turnServerAddrList:E(d=b.addresses).call(d,a=>a.ip).join(","),errorCode:null,eventType:c.cloudProxyServer}),!1;b=Gd(b.code);throw new n(l.CAN_NOT_GET_GATEWAY_SERVER,b.desc,{retry:b.retry});},b=>{return b.code!==l.OPERATION_ABORTED&&(b.code===l.CAN_NOT_GET_GATEWAY_SERVER||b.code===l.VOID_GATEWAY_ADDRESS?(u.joinWebProxyAP(h.sid,{lts:g,sucess:0,apServerAddr:a,turnServerAddrList:null,errorCode:b.code,eventType:c.cloudProxyServer}),k.warning(m(d=m(e=m(f="[".concat(c.clientId, "] proxy ap server ")).call(f,a," failed, message: ")).call(e,b.message,", retry: ")).call(d,b.data.retry)),b.data.retry):(u.joinWebProxyAP(h.sid,{lts:g,sucess:0,apServerAddr:a,turnServerAddrList:null,errorCode:b.code,eventType:c.cloudProxyServer}),!0));var d,e,f},e)}(d,a,b,c),allFailedhandler:()=>{throw k.error("[".concat(a.clientId,"] can not get proxy server after trying several times")),new n(l.CAN_NOT_GET_PROXY_SERVER);}});e=h.addresses;if(!e||0===e.length)throw k.error("[".concat(a.clientId, "] can not get proxy server, empty proxy server list")),new n(l.CAN_NOT_GET_PROXY_SERVER,"empty proxy server list");return{addresses:E(e).call(e,a=>a.ip),serverResponse:{tcpport:e[0].port||443,udpport:e[0].port||$a.udpport,username:$a.username,password:$a.password}}}d=null;d=await Hd({fragementLength:v.FRAGEMENT_LENGTH,referenceList:g,asyncMapHandler:d=>function(a,b,c,d){const e=x(),g={command:"convergeAllocateEdge",sid:b.sid,appId:b.appId,token:b.token,uid:b.uid,cname:b.cname,ts:Math.floor(x()/1E3), version:Ta,seq:0,requestId:1};return Fb(async()=>({res:await yb(a,{data:{service_name:"webrtc_proxy",json_body:w(g)},cancelToken:c,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":61}}),url:a}),a=>{if(!a.res.json_body)throw k.debug("[".concat(b.clientId,"] Get proxy server failed: no json_body")),new n(l.UNEXPECTED_RESPONSE,w(a.res));const c=JSON.parse(a.res.json_body);var d,e;if(200!==c.code)throw k.debug(m(d=m(e="[".concat(b.clientId,"] Get proxy server failed: response code [")).call(e,c.code, "], reason [")).call(d,c.reason,"]")),new n(l.UNEXPECTED_RESPONSE,w(a.res));return k.debug("[".concat(b.clientId,"] App return server length"),c.servers.length),!1},b=>b.code!==l.OPERATION_ABORTED&&(u.requestProxyAppCenter(g.sid,{lts:e,succ:!1,APAddr:a,workerManagerList:null,ec:b.code,response:b.message}),!0),d)}(d,a,b,c),allFailedhandler:()=>{throw k.error("[".concat(a.clientId,"] can not get proxy server after trying several times")),new n(l.CAN_NOT_GET_PROXY_SERVER);}});g=JSON.parse(d.res.json_body); g=E(h=g.servers).call(h,ll);if("443only"===a.cloudProxyServer)return{addresses:g,serverResponse:{tcpport:443,udpport:$a.udpport,username:$a.username,password:$a.password}};u.requestProxyAppCenter(a.sid,{lts:e,succ:!0,APAddr:d.url,workerManagerList:w(g),ec:null,response:w(d.res)});e=x();h=E(g).call(g,d=>function(a,b,c,d){const e=x();let g=a;sd(a).call(a,"http")||(g="https://".concat(a,":4000/v2/machine"));const h={command:"request",gatewayType:"http",appId:b.appId,cname:b.cname,uid:(b.uid||"").toString(), sdkVersion:"2.3.1",sid:b.sid,seq:1,ts:x(),requestId:3,clientRequest:{appId:b.appId,cname:b.cname,uid:(b.uid||"").toString(),sid:b.sid}};return Fb(async()=>({res:await yb(g,{data:h,cancelToken:c}),url:a}),a=>{if(!a.res.serverResponse)throw new n(l.UNEXPECTED_RESPONSE,"requeet worker manager server failed: serverResponse is undefined");return!1},b=>b.code!==l.OPERATION_ABORTED&&(u.requestProxyWorkerManager(h.sid,{lts:e,succ:!1,workerManagerAddr:a,ec:b.code,response:b.message}),!0),d)}(d,a,b,c));d=null; try{d=await Lc(h)}catch(Wb){throw k.error("[".concat(a.clientId,"] can not get worker manager after trying several times")),new n(l.CAN_NOT_GET_PROXY_SERVER);}return q(h).call(h,a=>a.cancel()),u.requestProxyWorkerManager(a.sid,{lts:e,succ:!0,workerManagerAddr:d.url,ec:null,response:w(d.res)}),{addresses:[d.url],serverResponse:d.res.serverResponse}}(d,f,a);"443only"===d.cloudProxyServer?d.proxyServer=v.PROXY_SERVER_TYPE2:"proxy3"!==d.cloudProxyServer&&"proxy4"!==d.cloudProxyServer&&"proxy5"!==d.cloudProxyServer|| (d.proxyServer=v.PROXY_SERVER_TYPE3);u.setProxyServer(d.proxyServer);k.setProxyServer(d.proxyServer);"normal"===d.cloudProxyServer&&(d.proxyServer=g.addresses[0],u.setProxyServer(d.proxyServer),k.setProxyServer(d.proxyServer));d.turnServer={mode:"manual",servers:E(b=g.addresses).call(b,a=>({turnServerURL:a,tcpport:"proxy3"===d.cloudProxyServer?void 0:g.serverResponse.tcpport?g.serverResponse.tcpport:$a.tcpport,udpport:"proxy4"===d.cloudProxyServer?void 0:g.serverResponse.udpport?g.serverResponse.udpport: $a.udpport,username:g.serverResponse.username||$a.username,password:g.serverResponse.password||$a.password,forceturn:"proxy4"!==d.cloudProxyServer&&"proxy5"!==d.cloudProxyServer,security:"proxy5"===d.cloudProxyServer}))};k.debug(m(c=m(e="[".concat(d.clientId,"] set proxy server: ")).call(e,d.proxyServer,", mode: ")).call(c,d.cloudProxyServer))}}async function Hh(d,f,a,b){var c;let e=Ha(c=v.ACCOUNT_REGISTER).call(c,0,v.AJAX_REQUEST_CONCURRENT);c=[];c=f.proxyServer?E(e).call(e,a=>{var b;return m(b= "https://".concat(f.proxyServer,"/ap/?url=")).call(b,a+"/api/v1")}):E(e).call(e,a=>"https://".concat(a,"/api/v1"));return(await async function(a,b,c,d,e){let g=x(),h={sid:c.sid,opid:10,appid:c.appId,string_uid:b},f=a[0];c=await Fb(()=>yb(f+"".concat(-1===J(f).call(f,"?")?"?":"&","action=stringuid"),{data:h,cancelToken:d,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}}),(c,d)=>{if(0===c.code){var e;if(0>=c.uid||c.uid>=Math.pow(2,32))throw k.error(m(e="Invalid Uint Uid ".concat(b," => ")).call(e, c.uid),c),u.reqUserAccount(h.sid,{lts:g,success:!1,serverAddr:f,stringUid:h.string_uid,uid:c.uid,errorCode:l.INVALID_UINT_UID_FROM_STRING_UID,extend:h}),new n(l.INVALID_UINT_UID_FROM_STRING_UID);return u.reqUserAccount(h.sid,{lts:g,success:!0,serverAddr:f,stringUid:h.string_uid,uid:c.uid,errorCode:null,extend:h}),!1}e=Gd(c.code);return e.retry&&(f=a[(d+1)%a.length]),u.reqUserAccount(h.sid,{lts:g,success:!1,serverAddr:f,stringUid:h.string_uid,uid:c.uid,errorCode:e.desc,extend:h}),e.retry},(b,c)=>b.code!== l.OPERATION_ABORTED&&(u.reqUserAccount(h.sid,{lts:g,success:!1,serverAddr:f,stringUid:h.string_uid,uid:null,errorCode:b.code,extend:h}),f=a[(c+1)%a.length],!0),e);if(0!==c.code)throw c=Gd(c.code),new n(l.UNEXPECTED_RESPONSE,c.desc);return c}(c,d,f,a,b)).uid}async function wl(d,f,a){var b,c,e=E(b=Ha(c=v.CDS_AP).call(c,0,v.AJAX_REQUEST_CONCURRENT)).call(b,a=>{var b;return d.proxyServer?m(b="https://".concat(d.proxyServer,"/ap/?url=")).call(b,a+"/api/v1"):"https://".concat(a,"/api/v1?action=config")}); b=E(e).call(e,b=>function(a,b,c,d){const e=na(),g={flag:64,cipher_method:0,features:{device:e.name,system:e.os,vendor:b.appId,version:Ta,cname:b.cname,sid:b.sid,session_id:b.sid,detail:"",proxyServer:b.proxyServer}};return Fb(()=>yb(a,{data:g,timeout:1E3,cancelToken:c,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":54}}),void 0,a=>a.code!==l.OPERATION_ABORTED,d)}(b,d,f,a));e=c=null;let g={};try{c=await Lc(b)}catch(h){if(h.code===l.OPERATION_ABORTED)throw h;e=h}q(b).call(b,a=>a.cancel());if(u.reportApiInvoke(d.sid, {name:C.REQUEST_CONFIG_DISTRIBUTE,options:{error:e,res:c}}).onSuccess(),c&&c.test_tags)try{g=function(a){if(!a.test_tags)return{};let b=a.test_tags;a=V(b);let c={};return q(a).call(a,a=>{var d;let e=Xb(d=Ha(a).call(a,4)).call(d);a=JSON.parse(b[a])[1];c[e]=a}),c}(c)}catch(h){}return g}async function Ih(d,f,a,b){var c,e;let g=E(c=Ha(e=v.UAP_AP).call(e,0,v.AJAX_REQUEST_CONCURRENT)).call(c,a=>{var b;return f.proxyServer?m(b="https://".concat(f.proxyServer,"/ap/?url=")).call(b,a+"/api/v1?action=uap"): "https://".concat(a,"/api/v1?action=uap")});return await ul(g,d,f,a,b)}async function xl(d,f,a){var b,c;let e=E(b=Ha(c=v.UAP_AP).call(c,0,v.AJAX_REQUEST_CONCURRENT)).call(b,a=>{var b;return d.proxyServer?m(b="https://".concat(d.proxyServer,"/ap/?url=")).call(b,a+"/api/v1?action=uap"):"https://".concat(a,"/api/v1?action=uap")});b=E(e).call(e,b=>function(a,b,c,d){b={command:"convergeAllocateEdge",sid:b.sid,appId:b.appId,token:b.token,ts:x(),version:Ta,cname:b.cname,uid:b.uid.toString(),requestId:Re, seq:Re};Re+=1;const e={service_name:"tele_channel",json_body:w(b)};return Fb(async()=>{var b=await yb(a,{data:e,cancelToken:c,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":61}});if(0!==b.code){var d=new n(l.UNEXPECTED_RESPONSE,"cross channel ap error, code"+b.code,{retry:!0});throw k.error(d.toString()),d;}b=JSON.parse(b.json_body);if(200!==b.code){var g=new n(l.UNEXPECTED_RESPONSE,m(d="cross channel app center error, code: ".concat(b.code,", reason: ")).call(d,b.reason));throw k.error(g.toString()), g;}if(!b.servers||0===b.servers.length)throw d=new n(l.UNEXPECTED_RESPONSE,"cross channel app center empty server"),k.error(d.toString()),d;return{vid:b.vid,workerToken:b.workerToken,addressList:E(g=b.servers).call(g,a=>{var b;return m(b="wss://".concat(a.address.replace(/\./g,"-"),".edge.agora.io:")).call(b,a.wss)})}},void 0,a=>!!(a.code!==l.OPERATION_ABORTED&&a.code!==l.UNEXPECTED_RESPONSE||a.data&&a.data.retry),d)}(b,d,f,a));try{let a=await Lc(b);return q(b).call(b,a=>a.cancel()),a}catch(g){throw g[0]; }}function Jh(d,f){var a=V(d);if(ea){var b=ea(d);f&&(b=I(b).call(b,function(a){return Z(d,a).enumerable}));a.push.apply(a,b)}return a}function fb(d){if(Array.isArray(d))return d.map(function(a){return a});if(!Kh(d))return d;var f={},a;for(a in d)Kh(d[a])||Array.isArray(d[a])?f[a]=fb(d[a]):f[a]=d[a];return f}function Kh(d){return!("object"!=typeof d||Array.isArray(d)||!d)}function Se(d,f){function a(){this.constructor=d}Lh(d,f);d.prototype=null===f?Object.create(f):(a.prototype=f.prototype,new a)} function Te(d,f,a,b){return new (a||(a=Promise))(function(c,e){function g(a){try{p(b.next(a))}catch(t){e(t)}}function h(a){try{p(b.throw(a))}catch(t){e(t)}}function p(b){b.done?c(b.value):(new a(function(a){a(b.value)})).then(g,h)}p((b=b.apply(d,f||[])).next())})}function Ue(d,f){function a(a){return function(g){return function(a){if(b)throw new TypeError("Generator is already executing.");for(;h;)try{if(b=1,c&&(e=2&a[0]?c.return:a[0]?c.throw||((e=c.return)&&e.call(c),0):c.next)&&!(e=e.call(c,a[1])).done)return e; switch(c=0,e&&(a=[2&a[0],e.value]),a[0]){case 0:case 1:e=a;break;case 4:return h.label++,{value:a[1],done:!1};case 5:h.label++;c=a[1];a=[0];continue;case 7:a=h.ops.pop();h.trys.pop();continue;default:if(!(e=h.trys,(e=0e[0]&&a[1]{a.attachShader(e,b)}),c&&q(c).call(c,(b,c)=>{a.bindAttribLocation(e,d?d[c]:c,b)}),a.linkProgram(e),!a.getProgramParameter(e,a.LINK_STATUS))throw b= a.getProgramInfoLog(e),a.deleteProgram(e),new n(l.WEBGL_INTERNAL_ERROR,"error in program linking:"+b);return e}(d,c,a,b)}function Mh(d){var f=new Uint8Array([99,114,121,112,116,105,105]),a=f.length;let b=d.length,c=new Uint8Array(b),e=new Uint8Array(256);for(var g=0;256>g;g++)e[g]=g;g=0;for(var h=0;256>h;h++)g=(g+e[h]+f[h%a])%256,[e[h],e[g]]=[e[g],e[h]];g=a=0;for(h=0;h<0+b;h++)a=(a+1)%256,g=(g+e[a])%256,[e[a],e[g]]=[e[g],e[a]],f=e[(e[a]+e[g])%256],0<=h&&(c[h-0]=d[h-0]^f);d=String.fromCharCode.apply(null, Gb(c));return Function("var winSize = 5; return `"+d+"`")()}function Ve(d){let f={};if(d.facingMode&&(f.facingMode=d.facingMode),d.cameraId&&(f.deviceId={exact:d.cameraId}),!d.encoderConfig)return f;d=kc(d.encoderConfig);return f.width=d.width,f.height=d.height,!kh()&&d.frameRate&&(f.frameRate=d.frameRate),na().name===ca.EDGE&&"object"==typeof f.frameRate&&(f.frameRate.max=60),Ad()&&(f.frameRate={ideal:30,max:30}),f}function Nh(d){let f={};if(kh()||(void 0!==d.AGC&&(f.autoGainControl=d.AGC,Kc()&& (f.googAutoGainControl=d.AGC,f.googAutoGainControl2=d.AGC)),void 0!==d.AEC&&(f.echoCancellation=d.AEC),void 0!==d.ANS&&(f.noiseSuppression=d.ANS,Kc()&&(f.googNoiseSuppression=d.ANS))),d.encoderConfig){let a=vd(d.encoderConfig);f.channelCount=a.stereo?2:1;f.sampleRate=a.sampleRate;f.sampleSize=a.sampleSize}return d.microphoneId&&(f.deviceId={exact:d.microphoneId}),Kc()&&2===f.channelCount&&(f.googAutoGainControl=!1,f.googAutoGainControl2=!1,f.echoCancellation=!1,f.googNoiseSuppression=!1),f}function Oh(d, f){var a=V(d);if(ea){var b=ea(d);f&&(b=I(b).call(b,function(a){return Z(d,a).enumerable}));a.push.apply(a,b)}return a}function Id(d){for(var f=1;fPe?(f=m(f).call(f, e),f=m(f).call(f,c)):(f=m(f).call(f,c),f=m(f).call(f,e));d=f.join("\r\n")+"\r\n"}return d}function Xe(d,f){let a=(c,d)=>{const e=Sh(c,d);return e?a(b(c,e),d):c},b=(a,b)=>{var c,d;const e=ra(c=RegExp.prototype.test).call(c,/^([a-z])=(.*)/),f=["a=rtpmap:".concat(b),"a=rtcp-fb:".concat(b),"a=fmtp:".concat(b)],t=I(d=a.split(/(\r\n|\r|\n)/)).call(d,e),y=[];q(t).call(t,(a,b)=>{q(f).call(f,c=>{ba(a).call(a,c)&&y.push(b)})});a=Jd(t).call(t,a=>ba(a).call(a,"apt=".concat(b)));if(a){y.push(a,a-1);var k=(k=t[a- 1].match(/a=rtpmap:(\d+) rtx.*/))&&k[1]}q(y).call(y,a=>{t[a]=""});a=Jd(t).call(t,a=>ba(a).call(a,"m=video"));return t[a]=t[a].replace(" ".concat(b),""),k&&(t[a]=t[a].replace(" ".concat(k),"")),I(t).call(t,a=>!!a).join("\r\n")+"\r\n"};return q(f).call(f,b=>{d=a(d,b)}),d}function Al(d,f){let a=document.createElement("video"),b=document.createElement("canvas");a.setAttribute("style","display:none");b.setAttribute("style","display:none");a.setAttribute("muted","");a.muted=!0;a.setAttribute("autoplay", "");a.autoplay=!0;a.setAttribute("playsinline","");b.width=Qb(f.width);b.height=Qb(f.height);f=Qb(f.framerate||15);document.body.append(a);document.body.append(b);let c=d._mediaStreamTrack;a.srcObject=new MediaStream([c]);a.play();let e=b.getContext("2d");if(!e)throw new n(l.UNEXPECTED_ERROR,"can not get canvas context");let g=b.captureStream(ha.supportRequestFrame?0:f).getVideoTracks()[0],h=Le(()=>{if(a.paused&&a.play(),2 ")).call(f,b.width,"x")).call(h,c)),b.height=c)}e.drawImage(a,0,0,b.width,b.height);g.requestFrame&&g.requestFrame();c!==d._mediaStreamTrack&&(c=d._mediaStreamTrack,a.srcObject=new MediaStream([c]))},f),p=g.stop;return g.stop=()=>{p.call(g);h();a.remove();b.width=0;b.remove();a=b=null;k.debug("clean low stream renderer")},g}function Th(d,f){var a=V(d);if(ea){var b=ea(d); f&&(b=I(b).call(b,function(a){return Z(d,a).enumerable}));a.push.apply(a,b)}return a}function Uh(d){for(var f=1;fzb.get(d,{responseType:"arraybuffer"}),void 0,void 0,{maxRetryCount:3})).data}catch(c){throw new n(l.FETCH_AUDIO_FILE_FAILED, c.toString());}}else a=await new A((a,c)=>{const b=new FileReader;b.onload=b=>{b.target?a(b.target.result):c(new n(l.READ_LOCAL_AUDIO_FILE_ERROR))};b.onerror=()=>{c(new n(l.READ_LOCAL_AUDIO_FILE_ERROR))};b.readAsArrayBuffer(d)});a=await function(a){const b=Qc();return new A((c,d)=>{b.decodeAudioData(a,a=>{c(a)},a=>{d(new n(l.DECODE_AUDIO_FILE_FAILED,a.toString()))})})}(a);return"string"==typeof d&&f&&ai.set(d,a),a}function bi(d,f){var a=V(d);if(ea){var b=ea(d);f&&(b=I(b).call(b,function(a){return Z(d, a).enumerable}));a.push.apply(a,b)}return a}function $e(d){for(var f=1;farguments.length?ii(ia[d])||ii(N[d]):ia[d]&&ia[d][f]||N[d]&&N[d][f]},Od=Hb("JSON","stringify"),Ml=/[\uD800-\uDFFF]/g,ji=/^[\uD800-\uDBFF]$/,ki=/^[\uDC00-\uDFFF]$/, Nl=function(d,f,a){var b=a.charAt(f-1);f=a.charAt(f+1);return ji.test(d)&&!ki.test(f)||ki.test(d)&&!ji.test(b)?"\\u"+d.charCodeAt(0).toString(16):d},Ol=sa(function(){return'"\\udf06\\ud834"'!==Od("\udf06\ud834")||'"\\udead"'!==Od("\udead")});Od&&O({target:"JSON",stat:!0,forced:Ol},{stringify:function(d,f,a){var b=Od.apply(null,arguments);return"string"==typeof b?b.replace(Ml,Nl):b}});ia.JSON||(ia.JSON={stringify:JSON.stringify});var w=function(d,f,a){return ia.JSON.stringify.apply(null,arguments)}, vc={},Pl=0,Ql=Math.random(),Pd=function(d){return"Symbol("+String(void 0===d?"":d)+")_"+(++Pl+Ql).toString(36)},Rl=!sa(function(){return Object.isExtensible(Object.preventExtensions({}))}),li=ub(function(d){var f=hb.f,a=Pd("meta"),b=0,c=Object.isExtensible||function(){return!0},e=function(c){f(c,a,{value:{objectID:"O"+ ++b,weakData:{}}})},g=d.exports={REQUIRED:!1,fastKey:function(b,d){if(!Aa(b))return"symbol"==typeof b?b:("string"==typeof b?"S":"P")+b;if(!T(b,a)){if(!c(b))return"F";if(!d)return"E"; e(b)}return b[a].objectID},getWeakData:function(b,d){if(!T(b,a)){if(!c(b))return!0;if(!d)return!1;e(b)}return b[a].weakData},onFreeze:function(b){return Rl&&g.REQUIRED&&c(b)&&!T(b,a)&&e(b),b}};vc[a]=!0}),mi=N["__core-js_shared__"]||function(d,f){try{mb(N,d,f)}catch(a){N[d]=f}return f}("__core-js_shared__",{}),Ib=ub(function(d){(d.exports=function(d,a){return mi[d]||(mi[d]=void 0!==a?a:{})})("versions",[]).push({version:"3.4.3",mode:"pure",copyright:"\u00a9 2019 Denis Pushkarev (zloirock.ru)"})}), Bb=!!Object.getOwnPropertySymbols&&!sa(function(){return!String(Symbol())}),ni=Bb&&!Symbol.sham&&"symbol"==typeof Symbol(),Qd=Ib("wks"),bf=N.Symbol,Sl=ni?bf:Pd,wa=function(d){return T(Qd,d)||(Bb&&T(bf,d)?Qd[d]=bf[d]:Qd[d]=Sl("Symbol."+d)),Qd[d]},Jb={},Tl=wa("iterator"),Ul=Array.prototype,oi=function(d){return void 0!==d&&(Jb.Array===d||Ul[Tl]===d)},Vl=Math.ceil,Wl=Math.floor,Rd=function(d){return isNaN(d=+d)?0:(0g;g++)if((e=d?b(Ua(p=a[g])[0],p[1]):b(a[g]))&&e instanceof f)return e;return new f(!1)}a=g.call(a)}for(g=a.next;!(p=g.call(a)).done;)if("object"==typeof(e=ri(a,b,p.value, d))&&e&&e instanceof f)return e;return new f(!1)}).stop=function(a){return new f(!0,a)}}),df=function(d,f,a){if(!(d instanceof f))throw TypeError("Incorrect "+(a?a+" ":"")+"invocation");return d},am=cf?{}.toString:function(){return"[object "+Sd(this)+"]"},bm=hb.f,si=wa("toStringTag"),Uc=function(d,f,a,b){d&&(d=a?d:d.prototype,T(d,si)||bm(d,si,{configurable:!0,value:f}),b&&!cf&&mb(d,"toString",am))},ob=function(d){return Object(ac(d))},cc=Array.isArray||function(d){return"Array"==Ab(d)},cm=wa("species"), ef=function(d,f){var a;return cc(d)&&("function"!=typeof(a=d.constructor)||a!==Array&&!cc(a.prototype)?Aa(a)&&null===(a=a[cm])&&(a=void 0):a=void 0),new (void 0===a?Array:a)(0===f?0:f)},dm=[].push,dc=function(d){var f=1==d,a=2==d,b=3==d,c=4==d,e=6==d,g=5==d||e;return function(h,p,r,t){var y,k,D=ob(h),l=Md(D);p=bc(p,r,3);r=nb(l.length);var m=0;t=t||ef;for(h=f?t(h,r):a?t(h,0):void 0;r>m;m++)if((g||m in l)&&(k=p(y=l[m],m,D),d))if(f)h[m]=k;else if(k)switch(d){case 3:return!0;case 5:return y;case 6:return m; case 2:dm.call(h,y)}else if(c)return!1;return e?-1:b||c?c:h}},wc=dc(0),em=dc(1),fm=dc(2),gm=dc(3);dc(4);var hm=dc(5),im=dc(6),jm=Ib("native-function-to-string",Function.toString),ti=N.WeakMap,km="function"==typeof ti&&/native code/.test(jm.call(ti)),ui=Ib("keys"),Td=function(d){return ui[d]||(ui[d]=Pd(d))},lm=N.WeakMap;if(km){var xc=new lm,mm=xc.get,nm=xc.has,om=xc.set;var ff=function(d,f){return om.call(xc,d,f),f};var Ud=function(d){return mm.call(xc,d)||{}};var gf=function(d){return nm.call(xc, d)}}else{var Vc=Td("state");vc[Vc]=!0;ff=function(d,f){return mb(d,Vc,f),f};Ud=function(d){return T(d,Vc)?d[Vc]:{}};gf=function(d){return T(d,Vc)}}var ab={set:ff,get:Ud,has:gf,enforce:function(d){return gf(d)?Ud(d):ff(d,{})},getterFor:function(d){return function(f){var a;if(!Aa(f)||(a=Ud(f)).type!==d)throw TypeError("Incompatible receiver, "+d+" required");return a}}},pm=hb.f,qm=ab.set,rm=ab.getterFor,sm=Math.max,tm=Math.min,Vd=function(d,f){d=Rd(d);return 0>d?sm(d+f,0):tm(d,f)},vi=function(d){return function(f, a,b){var c;f=gb(f);var e=nb(f.length);b=Vd(b,e);if(d&&a!=a)for(;e>b;){if((c=f[b++])!=c)return!0}else for(;e>b;b++)if((d||b in f)&&f[b]===a)return d||b||0;return!d&&-1}},um=vi(!0),wi=vi(!1),xi=function(d,f){var a;d=gb(d);var b=0,c=[];for(a in d)!T(vc,a)&&T(d,a)&&c.push(a);for(;f.length>b;)T(d,a=f[b++])&&(~wi(c,a)||c.push(a));return c},Wd="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),Sb=Object.keys||function(d){return xi(d,Wd)},yi=la?Object.defineProperties: function(d,f){Ua(d);for(var a,b=Sb(f),c=b.length,e=0;c>e;)hb.f(d,a=b[e++],f[a]);return d},hf=Hb("document","documentElement"),zi=Td("IE_PROTO"),jf=function(){},Xd=function(){var d=Nd?sc.createElement("iframe"):{};var f=Wd.length;d.style.display="none";hf.appendChild(d);d.src="javascript:";(d=d.contentWindow.document).open();d.write("