You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
90 KiB

(()=>{var e={8483:(e,t,i)=>{"use strict";var n=i(7879);e.exports=function(e){var t,r={stun:(e||{}).stun||i(8808),turn:(e||{}).turn||i(4576)},o=(e||{}).stunCount||2,s=(e||{}).turnCount||0;function a(e,t){for(var i,o=[],s=[].concat(r[e]);s.length&&o.length<t;)i=Math.random()*s.length|0,o=o.concat(s.splice(i,1));return o.map((function(t){return"string"==typeof t||t instanceof String?n(e+":"+t):t}))}return t=[].concat(a("stun",o)),s&&(t=t.concat(a("turn",s))),t}},7879:e=>{var t=["stun:","turn:"];e.exports=function(e){var i,n,r=(e||{}).url||e,o={};return"string"==typeof r||r instanceof String?(r=r.trim(),(i=t[t.indexOf(r.slice(0,5))])?(n=(r=r.slice(5)).split("@"),o.username=e.username,o.credential=e.credential,n.length>1&&(r=n[1],n=n[0].split(":"),o.username=n[0],o.credential=(e||{}).credential||n[1]||""),o.url=i+r,o.urls=[o.url],o):e):e}},7539:e=>{"use strict";const t={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split("\n").map((e=>e.trim()))},t.splitSections=function(e){return e.split("\nm=").map(((e,t)=>(t>0?"m="+e:e).trim()+"\r\n"))},t.getDescription=function(e){const i=t.splitSections(e);return i&&i[0]},t.getMediaSections=function(e){const i=t.splitSections(e);return i.shift(),i},t.matchPrefix=function(e,i){return t.splitLines(e).filter((e=>0===e.indexOf(i)))},t.parseCandidate=function(e){let t;t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" ");const i={foundation:t[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let e=8;e<t.length;e+=2)switch(t[e]){case"raddr":i.relatedAddress=t[e+1];break;case"rport":i.relatedPort=parseInt(t[e+1],10);break;case"tcptype":i.tcpType=t[e+1];break;case"ufrag":i.ufrag=t[e+1],i.usernameFragment=t[e+1];break;default:void 0===i[t[e]]&&(i[t[e]]=t[e+1])}return i},t.writeCandidate=function(e){const t=[];t.push(e.foundation);const i=e.component;"rtp"===i?t.push(1):"rtcp"===i?t.push(2):t.push(i),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);const n=e.type;return t.push("typ"),t.push(n),"host"!==n&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&"tcp"===e.protocol.toLowerCase()&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")},t.parseIceOptions=function(e){return e.substring(14).split(" ")},t.parseRtpMap=function(e){let t=e.substring(9).split(" ");const i={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),i.name=t[0],i.clockRate=parseInt(t[1],10),i.channels=3===t.length?parseInt(t[2],10):1,i.numChannels=i.channels,i},t.writeRtpMap=function(e){let t=e.payloadType;void 0!==e.preferredPayloadType&&(t=e.preferredPayloadType);const i=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(1!==i?"/"+i:"")+"\r\n"},t.parseExtmap=function(e){const t=e.substring(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1],attributes:t.slice(2).join(" ")}},t.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+(e.attributes?" "+e.attributes:"")+"\r\n"},t.parseFmtp=function(e){const t={};let i;const n=e.substring(e.indexOf(" ")+1).split(";");for(let e=0;e<n.length;e++)i=n[e].trim().split("="),t[i[0].trim()]=i[1];return t},t.writeFmtp=function(e){let t="",i=e.payloadType;if(void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){const n=[];Object.keys(e.parameters).forEach((t=>{void 0!==e.parameters[t]?n.push(t+"="+e.parameters[t]):n.push(t)})),t+="a=fmtp:"+i+" "+n.join(";")+"\r\n"}return t},t.parseRtcpFb=function(e){const t=e.substring(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},t.writeRtcpFb=function(e){let t="",i=e.payloadType;return void 0!==e.preferredPayloadType&&(i=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach((e=>{t+="a=rtcp-fb:"+i+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"})),t},t.parseSsrcMedia=function(e){const t=e.indexOf(" "),i={ssrc:parseInt(e.substring(7,t),10)},n=e.indexOf(":",t);return n>-1?(i.attribute=e.substring(t+1,n),i.value=e.substring(n+1)):i.attribute=e.substring(t+1),i},t.parseSsrcGroup=function(e){const t=e.substring(13).split(" ");return{semantics:t.shift(),ssrcs:t.map((e=>parseInt(e,10)))}},t.getMid=function(e){const i=t.matchPrefix(e,"a=mid:")[0];if(i)return i.substring(6)},t.parseFingerprint=function(e){const t=e.substring(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},t.getDtlsParameters=function(e,i){return{role:"auto",fingerprints:t.matchPrefix(e+i,"a=fingerprint:").map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){let i="a=setup:"+t+"\r\n";return e.fingerprints.forEach((e=>{i+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"})),i},t.parseCryptoLine=function(e){const t=e.substring(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},t.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;const t=e.substring(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},t.getCryptoParameters=function(e,i){return t.matchPrefix(e+i,"a=crypto:").map(t.parseCryptoLine)},t.getIceParameters=function(e,i){const n=t.matchPrefix(e+i,"a=ice-ufrag:")[0],r=t.matchPrefix(e+i,"a=ice-pwd:")[0];return n&&r?{usernameFragment:n.substring(12),password:r.substring(10)}:null},t.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n";return e.iceLite&&(t+="a=ice-lite\r\n"),t},t.parseRtpParameters=function(e){const i={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},n=t.splitLines(e)[0].split(" ");i.profile=n[2];for(let r=3;r<n.length;r++){const o=n[r],s=t.matchPrefix(e,"a=rtpmap:"+o+" ")[0];if(s){const n=t.parseRtpMap(s),r=t.matchPrefix(e,"a=fmtp:"+o+" ");switch(n.parameters=r.length?t.parseFmtp(r[0]):{},n.rtcpFeedback=t.matchPrefix(e,"a=rtcp-fb:"+o+" ").map(t.parseRtcpFb),i.codecs.push(n),n.name.toUpperCase()){case"RED":case"ULPFEC":i.fecMechanisms.push(n.name.toUpperCase())}}}t.matchPrefix(e,"a=extmap:").forEach((e=>{i.headerExtensions.push(t.parseExtmap(e))}));const r=t.matchPrefix(e,"a=rtcp-fb:* ").map(t.parseRtcpFb);return i.codecs.forEach((e=>{r.forEach((t=>{e.rtcpFeedback.find((e=>e.type===t.type&&e.parameter===t.parameter))||e.rtcpFeedback.push(t)}))})),i},t.writeRtpDescription=function(e,i){let n="";n+="m="+e+" ",n+=i.codecs.length>0?"9":"0",n+=" "+(i.profile||"UDP/TLS/RTP/SAVPF")+" ",n+=i.codecs.map((e=>void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType)).join(" ")+"\r\n",n+="c=IN IP4 0.0.0.0\r\n",n+="a=rtcp:9 IN IP4 0.0.0.0\r\n",i.codecs.forEach((e=>{n+=t.writeRtpMap(e),n+=t.writeFmtp(e),n+=t.writeRtcpFb(e)}));let r=0;return i.codecs.forEach((e=>{e.maxptime>r&&(r=e.maxptime)})),r>0&&(n+="a=maxptime:"+r+"\r\n"),i.headerExtensions&&i.headerExtensions.forEach((e=>{n+=t.writeExtmap(e)})),n},t.parseRtpEncodingParameters=function(e){const i=[],n=t.parseRtpParameters(e),r=-1!==n.fecMechanisms.indexOf("RED"),o=-1!==n.fecMechanisms.indexOf("ULPFEC"),s=t.matchPrefix(e,"a=ssrc:").map((e=>t.parseSsrcMedia(e))).filter((e=>"cname"===e.attribute)),a=s.length>0&&s[0].ssrc;let c;const d=t.matchPrefix(e,"a=ssrc-group:FID").map((e=>e.substring(17).split(" ").map((e=>parseInt(e,10)))));d.length>0&&d[0].length>1&&d[0][0]===a&&(c=d[0][1]),n.codecs.forEach((e=>{if("RTX"===e.name.toUpperCase()&&e.parameters.apt){let t={ssrc:a,codecPayloadType:parseInt(e.parameters.apt,10)};a&&c&&(t.rtx={ssrc:c}),i.push(t),r&&(t=JSON.parse(JSON.stringify(t)),t.fec={ssrc:a,mechanism:o?"red+ulpfec":"red"},i.push(t))}})),0===i.length&&a&&i.push({ssrc:a});let p=t.matchPrefix(e,"b=");return p.length&&(p=0===p[0].indexOf("b=TIAS:")?parseInt(p[0].substring(7),10):0===p[0].indexOf("b=AS:")?1e3*parseInt(p[0].substring(5),10)*.95-16e3:void 0,i.forEach((e=>{e.maxBitrate=p}))),i},t.parseRtcpParameters=function(e){const i={},n=t.matchPrefix(e,"a=ssrc:").map((e=>t.parseSsrcMedia(e))).filter((e=>"cname"===e.attribute))[0];n&&(i.cname=n.value,i.ssrc=n.ssrc);const r=t.matchPrefix(e,"a=rtcp-rsize");i.reducedSize=r.length>0,i.compound=0===r.length;const o=t.matchPrefix(e,"a=rtcp-mux");return i.mux=o.length>0,i},t.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+="a=rtcp-rsize\r\n"),e.mux&&(t+="a=rtcp-mux\r\n"),void 0!==e.ssrc&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+"\r\n"),t},t.parseMsid=function(e){let i;const n=t.matchPrefix(e,"a=msid:");if(1===n.length)return i=n[0].substring(7).split(" "),{stream:i[0],track:i[1]};const r=t.matchPrefix(e,"a=ssrc:").map((e=>t.parseSsrcMedia(e))).filter((e=>"msid"===e.attribute));return r.length>0?(i=r[0].value.split(" "),{stream:i[0],track:i[1]}):void 0},t.parseSctpDescription=function(e){const i=t.parseMLine(e),n=t.matchPrefix(e,"a=max-message-size:");let r;n.length>0&&(r=parseInt(n[0].substring(19),10)),isNaN(r)&&(r=65536);const o=t.matchPrefix(e,"a=sctp-port:");if(o.length>0)return{port:parseInt(o[0].substring(12),10),protocol:i.fmt,maxMessageSize:r};const s=t.matchPrefix(e,"a=sctpmap:");if(s.length>0){const e=s[0].substring(10).split(" ");return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:r}}},t.writeSctpDescription=function(e,t){let i=[];return i="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&i.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),i.join("")},t.generateSessionId=function(){return Math.random().toString().substr(2,22)},t.writeSessionBoilerplate=function(e,i,n){let r;const o=void 0!==i?i:2;return r=e||t.generateSessionId(),"v=0\r\no="+(n||"thisisadapterortc")+" "+r+" "+o+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},t.getDirection=function(e,i){const n=t.splitLines(e);for(let e=0;e<n.length;e++)switch(n[e]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return n[e].substring(2)}return i?t.getDirection(i):"sendrecv"},t.getKind=function(e){return t.splitLines(e)[0].split(" ")[0].substring(2)},t.isRejected=function(e){return"0"===e.split(" ",2)[1]},t.parseMLine=function(e){const i=t.splitLines(e)[0].substring(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}},t.parseOLine=function(e){const i=t.matchPrefix(e,"o=")[0].substring(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}},t.isValidSDP=function(e){if("string"!=typeof e||0===e.length)return!1;const i=t.splitLines(e);for(let e=0;e<i.length;e++)if(i[e].length<2||"="!==i[e].charAt(1))return!1;return!0},e.exports=t},2238:function(e,t,i){var n;!function(r,o){"use strict";var s="function",a="undefined",c="object",d="string",p="major",l="model",u="name",h="type",f="vendor",m="version",g="architecture",v="console",b="mobile",C="tablet",y="smarttv",w="wearable",S="embedded",T="Amazon",R="Apple",P="ASUS",k="BlackBerry",x="Browser",_="Chrome",E="Firefox",D="Google",O="Huawei",M="LG",I="Microsoft",L="Motorola",A="Opera",j="Samsung",N="Sharp",U="Sony",F="Xiaomi",z="Zebra",V="Facebook",q="Chromium OS",$="Mac OS",G=function(e){for(var t={},i=0;i<e.length;i++)t[e[i].toUpperCase()]=e[i];return t},J=function(e,t){return typeof e===d&&-1!==B(t).indexOf(B(e))},B=function(e){return e.toLowerCase()},W=function(e,t){if(typeof e===d)return e=e.replace(/^\s\s*/,""),typeof t===a?e:e.substring(0,500)},H=function(e,t){for(var i,n,r,a,d,p,l=0;l<t.length&&!d;){var u=t[l],h=t[l+1];for(i=n=0;i<u.length&&!d&&u[i];)if(d=u[i++].exec(e))for(r=0;r<h.length;r++)p=d[++n],typeof(a=h[r])===c&&a.length>0?2===a.length?typeof a[1]==s?this[a[0]]=a[1].call(this,p):this[a[0]]=a[1]:3===a.length?typeof a[1]!==s||a[1].exec&&a[1].test?this[a[0]]=p?p.replace(a[1],a[2]):o:this[a[0]]=p?a[1].call(this,p,a[2]):o:4===a.length&&(this[a[0]]=p?a[3].call(this,p.replace(a[1],a[2])):o):this[a]=p||o;l+=2}},K=function(e,t){for(var i in t)if(typeof t[i]===c&&t[i].length>0){for(var n=0;n<t[i].length;n++)if(J(t[i][n],e))return"?"===i?o:i}else if(J(t[i],e))return"?"===i?o:i;return e},Q={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Y={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[m,[u,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[m,[u,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[u,m],[/opios[\/ ]+([\w\.]+)/i],[m,[u,A+" Mini"]],[/\bopr\/([\w\.]+)/i],[m,[u,A]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[m,[u,"Baidu"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[u,m],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[m,[u,"UC"+x]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[m,[u,"WeChat"]],[/konqueror\/([\w\.]+)/i],[m,[u,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[m,[u,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[m,[u,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[m,[u,"Smart Lenovo "+x]],[/(avast|avg)\/([\w\.]+)/i],[[u,/(.+)/,"$1 Secure "+x],m],[/\bfocus\/([\w\.]+)/i],[m,[u,E+" Focus"]],[/\bopt\/([\w\.]+)/i],[m,[u,A+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[m,[u,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[m,[u,"Dolphin"]],[/coast\/([\w\.]+)/i],[m,[u,A+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[m,[u,"MIUI "+x]],[/fxios\/([-\w\.]+)/i],[m,[u,E]],[/\bqihu|(qi?ho?o?|360)browser/i],[[u,"360 "+x]],[/(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i],[[u,/(.+)/,"$1 "+x],m],[/samsungbrowser\/([\w\.]+)/i],[m,[u,j+" Internet"]],[/(comodo_dragon)\/([\w\.]+)/i],[[u,/_/g," "],m],[/metasr[\/ ]?([\d\.]+)/i],[m,[u,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[u,"Sogou Mobile"],m],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i],[u,m],[/(lbbrowser)/i,/\[(linkedin)app\]/i],[u],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[u,V],m],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[u,m],[/\bgsa\/([\w\.]+) .*safari\//i],[m,[u,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[m,[u,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[m,[u,_+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[u,_+" WebView"],m],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[m,[u,"Android "+x]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[u,m],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[m,[u,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[m,u],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[u,[m,K,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[u,m],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[u,"Netscape"],m],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[m,[u,E+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[u,m],[/(cobalt)\/([\w\.]+)/i],[u,[m,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[g,"amd64"]],[/(ia32(?=;))/i],[[g,B]],[/((?:i[346]|x)86)[;\)]/i],[[g,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[g,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[g,"armhf"]],[/windows (ce|mobile); ppc;/i],[[g,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[g,/ower/,"",B]],[/(sun4\w)[;\)]/i],[[g,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[g,B]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[l,[f,j],[h,C]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[l,[f,j],[h,b]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[l,[f,R],[h,b]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[l,[f,R],[h,C]],[/(macintosh);/i],[l,[f,R]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[l,[f,N],[h,b]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[l,[f,O],[h,C]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[l,[f,O],[h,b]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[l,/_/g," "],[f,F],[h,b]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[l,/_/g," "],[f,F],[h,C]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[l,[f,"OPPO"],[h,b]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[l,[f,"Vivo"],[h,b]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[l,[f,"Realme"],[h,b]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[l,[f,L],[h,b]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[l,[f,L],[h,C]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[l,[f,M],[h,C]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[l,[f,M],[h,b]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[l,[f,"Lenovo"],[h,C]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[l,/_/g," "],[f,"Nokia"],[h,b]],[/(pixel c)\b/i],[l,[f,D],[h,C]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[l,[f,D],[h,b]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[l,[f,U],[h,b]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[l,"Xperia Tablet"],[f,U],[h,C]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[l,[f,"OnePlus"],[h,b]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[l,[f,T],[h,C]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[l,/(.+)/g,"Fire Phone $1"],[f,T],[h,b]],[/(playbook);[-\w\),; ]+(rim)/i],[l,f,[h,C]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[l,[f,k],[h,b]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[l,[f,P],[h,C]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[l,[f,P],[h,b]],[/(nexus 9)/i],[l,[f,"HTC"],[h,C]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[f,[l,/_/g," "],[h,b]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[l,[f,"Acer"],[h,C]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[l,[f,"Meizu"],[h,b]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[l,[f,"Ulefone"],[h,b]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[f,l,[h,b]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[f,l,[h,C]],[/(surface duo)/i],[l,[f,I],[h,C]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[l,[f,"Fairphone"],[h,b]],[/(u304aa)/i],[l,[f,"AT&T"],[h,b]],[/\bsie-(\w*)/i],[l,[f,"Siemens"],[h,b]],[/\b(rct\w+) b/i],[l,[f,"RCA"],[h,C]],[/\b(venue[\d ]{2,7}) b/i],[l,[f,"Dell"],[h,C]],[/\b(q(?:mv|ta)\w+) b/i],[l,[f,"Verizon"],[h,C]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[l,[f,"Barnes & Noble"],[h,C]],[/\b(tm\d{3}\w+) b/i],[l,[f,"NuVision"],[h,C]],[/\b(k88) b/i],[l,[f,"ZTE"],[h,C]],[/\b(nx\d{3}j) b/i],[l,[f,"ZTE"],[h,b]],[/\b(gen\d{3}) b.+49h/i],[l,[f,"Swiss"],[h,b]],[/\b(zur\d{3}) b/i],[l,[f,"Swiss"],[h,C]],[/\b((zeki)?tb.*\b) b/i],[l,[f,"Zeki"],[h,C]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[f,"Dragon Touch"],l,[h,C]],[/\b(ns-?\w{0,9}) b/i],[l,[f,"Insignia"],[h,C]],[/\b((nxa|next)-?\w{0,9}) b/i],[l,[f,"NextBook"],[h,C]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[f,"Voice"],l,[h,b]],[/\b(lvtel\-)?(v1[12]) b/i],[[f,"LvTel"],l,[h,b]],[/\b(ph-1) /i],[l,[f,"Essential"],[h,b]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[l,[f,"Envizen"],[h,C]],[/\b(trio[-\w\. ]+) b/i],[l,[f,"MachSpeed"],[h,C]],[/\btu_(1491) b/i],[l,[f,"Rotor"],[h,C]],[/(shield[\w ]+) b/i],[l,[f,"Nvidia"],[h,C]],[/(sprint) (\w+)/i],[f,l,[h,b]],[/(kin\.[onetw]{3})/i],[[l,/\./g," "],[f,I],[h,b]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[l,[f,z],[h,C]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[l,[f,z],[h,b]],[/smart-tv.+(samsung)/i],[f,[h,y]],[/hbbtv.+maple;(\d+)/i],[[l,/^/,"SmartTV"],[f,j],[h,y]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[f,M],[h,y]],[/(apple) ?tv/i],[f,[l,R+" TV"],[h,y]],[/crkey/i],[[l,_+"cast"],[f,D],[h,y]],[/droid.+aft(\w+)( bui|\))/i],[l,[f,T],[h,y]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[l,[f,N],[h,y]],[/(bravia[\w ]+)( bui|\))/i],[l,[f,U],[h,y]],[/(mitv-\w{5}) bui/i],[l,[f,F],[h,y]],[/Hbbtv.*(technisat) (.*);/i],[f,l,[h,y]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[f,W],[l,W],[h,y]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[h,y]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[f,l,[h,v]],[/droid.+; (shield) bui/i],[l,[f,"Nvidia"],[h,v]],[/(playstation [345portablevi]+)/i],[l,[f,U],[h,v]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[l,[f,I],[h,v]],[/((pebble))app/i],[f,l,[h,w]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[l,[f,R],[h,w]],[/droid.+; (glass) \d/i],[l,[f,D],[h,w]],[/droid.+; (wt63?0{2,3})\)/i],[l,[f,z],[h,w]],[/(quest( 2| pro)?)/i],[l,[f,V],[h,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[f,[h,S]],[/(aeobc)\b/i],[l,[f,T],[h,S]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[l,[h,b]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[l,[h,C]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[h,C]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[h,b]],[/(android[-\w\. ]{0,9});.+buil/i],[l,[f,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[m,[u,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[m,[u,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[u,m],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[m,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,m],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[u,[m,K,Q]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[m,K,Q],[u,"Windows"]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[m,/_/g,"."],[u,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[u,$],[m,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[m,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[u,m],[/\(bb(10);/i],[m,[u,k]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[m,[u,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[m,[u,E+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[m,[u,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[m,[u,"watchOS"]],[/crkey\/([\d\.]+)/i],[m,[u,_+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[u,q],m],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[u,m],[/(sunos) ?([\w\.\d]*)/i],[[u,"Solaris"],m],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[u,m]]},Z=function(e,t){if(typeof e===c&&(t=e,e=o),!(this instanceof Z))return new Z(e,t).getResult();var i=typeof r!==a&&r.navigator?r.navigator:o,n=e||(i&&i.userAgent?i.userAgent:""),v=i&&i.userAgentData?i.userAgentData:o,y=t?function(e,t){var i={};for(var n in e)t[n]&&t[n].length%2==0?i[n]=t[n].concat(e[n]):i[n]=e[n];return i}(Y,t):Y,w=i&&i.userAgent==n;return this.getBrowser=function(){var e,t={};return t[u]=o,t[m]=o,H.call(t,n,y.browser),t[p]=typeof(e=t[m])===d?e.replace(/[^\d\.]/g,"").split(".")[0]:o,w&&i&&i.brave&&typeof i.brave.isBrave==s&&(t[u]="Brave"),t},this.getCPU=function(){var e={};return e[g]=o,H.call(e,n,y.cpu),e},this.getDevice=function(){var e={};return e[f]=o,e[l]=o,e[h]=o,H.call(e,n,y.device),w&&!e[h]&&v&&v.mobile&&(e[h]=b),w&&"Macintosh"==e[l]&&i&&typeof i.standalone!==a&&i.maxTouchPoints&&i.maxTouchPoints>2&&(e[l]="iPad",e[h]=C),e},this.getEngine=function(){var e={};return e[u]=o,e[m]=o,H.call(e,n,y.engine),e},this.getOS=function(){var e={};return e[u]=o,e[m]=o,H.call(e,n,y.os),w&&!e[u]&&v&&"Unknown"!=v.platform&&(e[u]=v.platform.replace(/chrome os/i,q).replace(/macos/i,$)),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return n},this.setUA=function(e){return n=typeof e===d&&e.length>500?W(e,500):e,this},this.setUA(n),this};Z.VERSION="1.0.37",Z.BROWSER=G([u,m,p]),Z.CPU=G([g]),Z.DEVICE=G([l,f,h,v,b,y,C,w,S]),Z.ENGINE=Z.OS=G([u,m]),typeof t!==a?(e.exports&&(t=e.exports=Z),t.UAParser=Z):i.amdO?(n=function(){return Z}.call(t,i,t,e))===o||(e.exports=n):typeof r!==a&&(r.UAParser=Z);var X=typeof r!==a&&(r.jQuery||r.Zepto);if(X&&!X.ua){var ee=new Z;X.ua=ee.getResult(),X.ua.get=function(){return ee.getUA()},X.ua.set=function(e){ee.setUA(e);var t=ee.getResult();for(var i in t)X.ua[i]=t[i]}}}("object"==typeof window?window:this)},835:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>de});var n={};i.r(n),i.d(n,{fixNegotiationNeeded:()=>D,shimAddTrackRemoveTrack:()=>_,shimAddTrackRemoveTrackWithNative:()=>x,shimGetDisplayMedia:()=>w,shimGetSendersWithDtmf:()=>R,shimGetStats:()=>P,shimGetUserMedia:()=>y,shimMediaStream:()=>S,shimOnTrack:()=>T,shimPeerConnection:()=>E,shimSenderReceiverGetStats:()=>k});var r={};i.r(r),i.d(r,{shimAddTransceiver:()=>F,shimCreateAnswer:()=>q,shimCreateOffer:()=>V,shimGetDisplayMedia:()=>M,shimGetParameters:()=>z,shimGetUserMedia:()=>O,shimOnTrack:()=>I,shimPeerConnection:()=>L,shimRTCDataChannel:()=>U,shimReceiverGetStats:()=>j,shimRemoveStream:()=>N,shimSenderGetStats:()=>A});var o={};i.r(o),i.d(o,{shimAudioContext:()=>Y,shimCallbacksAPI:()=>J,shimConstraints:()=>W,shimCreateOfferLegacy:()=>Q,shimGetUserMedia:()=>B,shimLocalStreamsAPI:()=>$,shimRTCIceServerUrls:()=>H,shimRemoteStreamsAPI:()=>G,shimTrackEventTransceiver:()=>K});var s={};i.r(s),i.d(s,{removeExtmapAllowMixed:()=>oe,shimAddIceCandidateNullOrEmpty:()=>se,shimConnectionState:()=>re,shimMaxMessageSize:()=>ie,shimParameterlessSetLocalDescription:()=>ae,shimRTCIceCandidate:()=>ee,shimRTCIceCandidateRelayProtocol:()=>te,shimSendThrowTypeError:()=>ne});let a=!0,c=!0;function d(e,t,i){const n=e.match(t);return n&&n.length>=i&&parseInt(n[i],10)}function p(e,t,i){if(!e.RTCPeerConnection)return;const n=e.RTCPeerConnection.prototype,r=n.addEventListener;n.addEventListener=function(e,n){if(e!==t)return r.apply(this,arguments);const o=e=>{const t=i(e);t&&(n.handleEvent?n.handleEvent(t):n(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(n,o),r.apply(this,[e,o])};const o=n.removeEventListener;n.removeEventListener=function(e,i){if(e!==t||!this._eventMap||!this._eventMap[t])return o.apply(this,arguments);if(!this._eventMap[t].has(i))return o.apply(this,arguments);const n=this._eventMap[t].get(i);return this._eventMap[t].delete(i),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,o.apply(this,[e,n])},Object.defineProperty(n,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function l(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(a=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function u(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(c=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function h(){if("object"==typeof window){if(a)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function f(e,t){c&&console.warn(e+" is deprecated, please use "+t+" instead.")}function m(e){return"[object Object]"===Object.prototype.toString.call(e)}function g(e){return m(e)?Object.keys(e).reduce((function(t,i){const n=m(e[i]),r=n?g(e[i]):e[i],o=n&&!Object.keys(r).length;return void 0===r||o?t:Object.assign(t,{[i]:r})}),{}):e}function v(e,t,i){t&&!i.has(t.id)&&(i.set(t.id,t),Object.keys(t).forEach((n=>{n.endsWith("Id")?v(e,e.get(t[n]),i):n.endsWith("Ids")&&t[n].forEach((t=>{v(e,e.get(t),i)}))})))}function b(e,t,i){const n=i?"outbound-rtp":"inbound-rtp",r=new Map;if(null===t)return r;const o=[];return e.forEach((e=>{"track"===e.type&&e.trackIdentifier===t.id&&o.push(e)})),o.forEach((t=>{e.forEach((i=>{i.type===n&&i.trackId===t.id&&v(e,i,r)}))})),r}const C=h;function y(e,t){const i=e&&e.navigator;if(!i.mediaDevices)return;const n=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const t={};return Object.keys(e).forEach((i=>{if("require"===i||"advanced"===i||"mediaSource"===i)return;const n="object"==typeof e[i]?e[i]:{ideal:e[i]};void 0!==n.exact&&"number"==typeof n.exact&&(n.min=n.max=n.exact);const r=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==n.ideal){t.optional=t.optional||[];let e={};"number"==typeof n.ideal?(e[r("min",i)]=n.ideal,t.optional.push(e),e={},e[r("max",i)]=n.ideal,t.optional.push(e)):(e[r("",i)]=n.ideal,t.optional.push(e))}void 0!==n.exact&&"number"!=typeof n.exact?(t.mandatory=t.mandatory||{},t.mandatory[r("",i)]=n.exact):["min","max"].forEach((e=>{void 0!==n[e]&&(t.mandatory=t.mandatory||{},t.mandatory[r(e,i)]=n[e])}))})),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},r=function(e,r){if(t.version>=61)return r(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){const t=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=n(e.audio)}if(e&&"object"==typeof e.video){let o=e.video.facingMode;o=o&&("object"==typeof o?o:{ideal:o});const s=t.version<66;if(o&&("user"===o.exact||"environment"===o.exact||"user"===o.ideal||"environment"===o.ideal)&&(!i.mediaDevices.getSupportedConstraints||!i.mediaDevices.getSupportedConstraints().facingMode||s)){let t;if(delete e.video.facingMode,"environment"===o.exact||"environment"===o.ideal?t=["back","rear"]:"user"!==o.exact&&"user"!==o.ideal||(t=["front"]),t)return i.mediaDevices.enumerateDevices().then((i=>{let s=(i=i.filter((e=>"videoinput"===e.kind))).find((e=>t.some((t=>e.label.toLowerCase().includes(t)))));return!s&&i.length&&t.includes("back")&&(s=i[i.length-1]),s&&(e.video.deviceId=o.exact?{exact:s.deviceId}:{ideal:s.deviceId}),e.video=n(e.video),C("chrome: "+JSON.stringify(e)),r(e)}))}e.video=n(e.video)}return C("chrome: "+JSON.stringify(e)),r(e)},o=function(e){return t.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(i.getUserMedia=function(e,t,n){r(e,(e=>{i.webkitGetUserMedia(e,t,(e=>{n&&n(o(e))}))}))}.bind(i),i.mediaDevices.getUserMedia){const e=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(t){return r(t,(t=>e(t).then((e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach((e=>{e.stop()})),new DOMException("","NotFoundError");return e}),(e=>Promise.reject(o(e))))))}}}function w(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&("function"==typeof t?e.navigator.mediaDevices.getDisplayMedia=function(i){return t(i).then((t=>{const n=i.video&&i.video.width,r=i.video&&i.video.height,o=i.video&&i.video.frameRate;return i.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:o||3}},n&&(i.video.mandatory.maxWidth=n),r&&(i.video.mandatory.maxHeight=r),e.navigator.mediaDevices.getUserMedia(i)}))}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))}function S(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function T(e){if("object"==typeof e&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",(i=>{let n;n=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===i.track.id)):{track:i.track};const r=new Event("track");r.track=i.track,r.receiver=n,r.transceiver={receiver:n},r.streams=[t.stream],this.dispatchEvent(r)})),t.stream.getTracks().forEach((i=>{let n;n=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===i.id)):{track:i};const r=new Event("track");r.track=i,r.receiver=n,r.transceiver={receiver:n},r.streams=[t.stream],this.dispatchEvent(r)}))},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else p(e,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))}function R(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const i=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){let r=i.apply(this,arguments);return r||(r=t(this,e),this._senders.push(r)),r};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){n.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],i.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.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 P(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,i,n]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0===arguments.length||"function"!=typeof e))return t.apply(this,[]);const r=function(e){const t={};return e.result().forEach((e=>{const i={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach((t=>{i[t]=e.stat(t)})),t[i.id]=i})),t},o=function(e){return new Map(Object.keys(e).map((t=>[t,e[t]])))};if(arguments.length>=2){const n=function(e){i(o(r(e)))};return t.apply(this,[n,e])}return new Promise(((e,i)=>{t.apply(this,[function(t){e(o(r(t)))},i])})).then(i,n)}}function k(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>b(t,e.track,!0)))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),p(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then((t=>b(t,e.track,!1)))}}if(!("getStats"in e.RTCRtpSender.prototype)||!("getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const e=arguments[0];let t,i,n;return this.getSenders().forEach((i=>{i.track===e&&(t?n=!0:t=i)})),this.getReceivers().forEach((t=>(t.track===e&&(i?n=!0:i=t),t.track===e))),n||t&&i?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():i?i.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function x(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){if(!i)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const n=t.apply(this,arguments);return this._shimmedLocalStreams[i.id]?-1===this._shimmedLocalStreams[i.id].indexOf(n)&&this._shimmedLocalStreams[i.id].push(n):this._shimmedLocalStreams[i.id]=[i,n],n};const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();i.apply(this,arguments);const n=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(n)};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],n.apply(this,arguments)};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const i=this._shimmedLocalStreams[t].indexOf(e);-1!==i&&this._shimmedLocalStreams[t].splice(i,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),r.apply(this,arguments)}}function _(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return x(e);const i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=i.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const i=new e.MediaStream(t.getTracks());this._streams[t.id]=i,this._reverseStreams[i.id]=t,t=i}n.apply(this,[t])};const r=e.RTCPeerConnection.prototype.removeStream;function o(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],r=e._streams[n.id];i=i.replace(new RegExp(r.id,"g"),n.id)})),new RTCSessionDescription({type:t.type,sdp:i})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,i){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const n=[].slice.call(arguments,1);if(1!==n.length||!n[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find((e=>e.track===t)))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const r=this._streams[i.id];if(r)r.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const n=new e.MediaStream([t]);this._streams[i.id]=n,this._reverseStreams[n.id]=i,this.addStream(n)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],n={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?i.apply(this,[t=>{const i=o(this,t);e[0].apply(null,[i])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):i.apply(this,arguments).then((e=>o(this,e)))}};e.RTCPeerConnection.prototype[t]=n[t]}));const s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let i=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],r=e._streams[n.id];i=i.replace(new RegExp(n.id,"g"),r.id)})),new RTCSessionDescription({type:t.type,sdp:i})}(this,arguments[0]),s.apply(this,arguments)):s.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:o(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((i=>{this._streams[i].getTracks().find((t=>e.track===t))&&(t=this._streams[i])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function E(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=n[t]}))}function D(e,t){p(e,"negotiationneeded",(e=>{const i=e.target;if(!(t.version<72||i.getConfiguration&&"plan-b"===i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e}))}function O(e,t){const i=e&&e.navigator,n=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,t,n){f("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(e).then(t,n)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){const e=function(e,t,i){t in e&&!(i in e)&&(e[i]=e[t],delete e[t])},t=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(i){return"object"==typeof i&&"object"==typeof i.audio&&(i=JSON.parse(JSON.stringify(i)),e(i.audio,"autoGainControl","mozAutoGainControl"),e(i.audio,"noiseSuppression","mozNoiseSuppression")),t(i)},n&&n.prototype.getSettings){const t=n.prototype.getSettings;n.prototype.getSettings=function(){const i=t.apply(this,arguments);return e(i,"mozAutoGainControl","autoGainControl"),e(i,"mozNoiseSuppression","noiseSuppression"),i}}if(n&&n.prototype.applyConstraints){const t=n.prototype.applyConstraints;n.prototype.applyConstraints=function(i){return"audio"===this.kind&&"object"==typeof i&&(i=JSON.parse(JSON.stringify(i)),e(i,"autoGainControl","mozAutoGainControl"),e(i,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[i])}}}}function M(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(i){if(!i||!i.video){const e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===i.video?i.video={mediaSource:t}:i.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(i)})}function I(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function L(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const i=e.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=n[t]}));const i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},n=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,r,o]=arguments;return n.apply(this,[e||null]).then((e=>{if(t.version<53&&!r)try{e.forEach((e=>{e.type=i[e.type]||e.type}))}catch(t){if("TypeError"!==t.name)throw t;e.forEach(((t,n)=>{e.set(n,Object.assign({},t,{type:i[t.type]||t.type}))}))}return e})).then(r,o)}}function A(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function j(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),p(e,"track",(e=>(e.receiver._pc=e.srcElement,e))),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function N(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){f("removeStream","removeTrack"),this.getSenders().forEach((t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)}))})}function U(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function F(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]),e=[...e];const i=e.length>0;i&&e.forEach((e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")}));const n=t.apply(this,arguments);if(i){const{sender:t}=n,i=t.getParameters();(!("encodings"in i)||1===i.encodings.length&&0===Object.keys(i.encodings[0]).length)&&(i.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(i).then((()=>{delete t.sendEncodings})).catch((()=>{delete t.sendEncodings}))))}return n})}function z(e){if("object"!=typeof e||!e.RTCRtpSender)return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function V(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}function q(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>t.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):t.apply(this,arguments)}}function $(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach((i=>t.call(this,i,e))),e.getVideoTracks().forEach((i=>t.call(this,i,e)))},e.RTCPeerConnection.prototype.addTrack=function(e,...i){return i&&i.forEach((e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]})),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const i=e.getTracks();this.getSenders().forEach((e=>{i.includes(e.track)&&this.removeTrack(e)}))})}}function G(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach((e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)}))})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach((t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const i=new Event("addstream");i.stream=t,e.dispatchEvent(i)}))}),t.apply(e,arguments)}}}function J(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,i=t.createOffer,n=t.createAnswer,r=t.setLocalDescription,o=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){const n=arguments.length>=2?arguments[2]:arguments[0],r=i.apply(this,[n]);return t?(r.then(e,t),Promise.resolve()):r},t.createAnswer=function(e,t){const i=arguments.length>=2?arguments[2]:arguments[0],r=n.apply(this,[i]);return t?(r.then(e,t),Promise.resolve()):r};let a=function(e,t,i){const n=r.apply(this,[e]);return i?(n.then(t,i),Promise.resolve()):n};t.setLocalDescription=a,a=function(e,t,i){const n=o.apply(this,[e]);return i?(n.then(t,i),Promise.resolve()):n},t.setRemoteDescription=a,a=function(e,t,i){const n=s.apply(this,[e]);return i?(n.then(t,i),Promise.resolve()):n},t.addIceCandidate=a}function B(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const e=t.mediaDevices,i=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>i(W(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,i,n){t.mediaDevices.getUserMedia(e).then(i,n)}.bind(t))}function W(e){return e&&void 0!==e.video?Object.assign({},e,{video:g(e.video)}):e}function H(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,i){if(e&&e.iceServers){const t=[];for(let i=0;i<e.iceServers.length;i++){let n=e.iceServers[i];void 0===n.urls&&n.url?(f("RTCIceServer.url","RTCIceServer.urls"),n=JSON.parse(JSON.stringify(n)),n.urls=n.url,delete n.url,t.push(n)):t.push(e.iceServers[i])}e.iceServers=t}return new t(e,i)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>t.generateCertificate})}function K(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Q(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find((e=>"audio"===e.receiver.track.kind));!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const i=this.getTransceivers().find((e=>"video"===e.receiver.track.kind));!1===e.offerToReceiveVideo&&i?"sendrecv"===i.direction?i.setDirection?i.setDirection("sendonly"):i.direction="sendonly":"recvonly"===i.direction&&(i.setDirection?i.setDirection("inactive"):i.direction="inactive"):!0!==e.offerToReceiveVideo||i||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function Y(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var Z=i(7539),X=i.n(Z);function ee(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;const t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){const i=new t(e),n=X().parseCandidate(e.candidate);for(const e in n)e in i||Object.defineProperty(i,e,{value:n[e]});return i.toJSON=function(){return{candidate:i.candidate,sdpMid:i.sdpMid,sdpMLineIndex:i.sdpMLineIndex,usernameFragment:i.usernameFragment}},i}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,p(e,"icecandidate",(t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t)))}function te(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||p(e,"icecandidate",(e=>{if(e.candidate){const t=X().parseCandidate(e.candidate.candidate);"relay"===t.type&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e}))}function ie(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(e){if(!e||!e.sdp)return!1;const t=X().splitSections(e.sdp);return t.shift(),t.some((e=>{const t=X().parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")}))}(arguments[0])){const e=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const i=parseInt(t[1],10);return i!=i?-1:i}(arguments[0]),i=function(e){let i=65536;return"firefox"===t.browser&&(i=t.version<57?-1===e?16384:2147483637:t.version<60?57===t.version?65535:65536:2147483637),i}(e),n=function(e,i){let n=65536;"firefox"===t.browser&&57===t.version&&(n=65535);const r=X().matchPrefix(e.sdp,"a=max-message-size:");return r.length>0?n=parseInt(r[0].substring(19),10):"firefox"===t.browser&&-1!==i&&(n=2147483637),n}(arguments[0],e);let r;r=0===i&&0===n?Number.POSITIVE_INFINITY:0===i||0===n?Math.max(i,n):Math.min(i,n);const o={};Object.defineProperty(o,"maxMessageSize",{get:()=>r}),this._sctp=o}return i.apply(this,arguments)}}function ne(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){const i=e.send;e.send=function(){const n=arguments[0],r=n.length||n.size||n.byteLength;if("open"===e.readyState&&t.sctp&&r>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return i.apply(e,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=i.apply(this,arguments);return t(e,this),e},p(e,"datachannel",(e=>(t(e.channel,e.target),e)))}function re(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const i=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const i=new Event("connectionstatechange",e);t.dispatchEvent(i)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}}))}function oe(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t.version>=605)return;const i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const i=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:i}):t.sdp=i}return i.apply(this,arguments)}}function se(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const i=e.RTCPeerConnection.prototype.addIceCandidate;i&&0!==i.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function ae(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const i=e.RTCPeerConnection.prototype.setLocalDescription;i&&0!==i.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return i.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}return e.sdp||"offer"!==e.type&&"answer"!==e.type?i.apply(this,[e]):("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then((e=>i.apply(this,[e])))})}const ce=function({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){const i=h,a=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=d(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=d(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!e.RTCPeerConnection||!i.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=d(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype}return t}(e),c={browserDetails:a,commonShim:s,extractVersion:d,disableLog:l,disableWarnings:u,sdp:Z};switch(a.browser){case"chrome":if(!n||!E||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),c;if(null===a.version)return i("Chrome shim can not determine version, not shimming."),c;i("adapter.js shimming chrome."),c.browserShim=n,se(e,a),ae(e),y(e,a),S(e),E(e,a),T(e),_(e,a),R(e),P(e),k(e),D(e,a),ee(e),te(e),re(e),ie(e,a),ne(e),oe(e,a);break;case"firefox":if(!r||!L||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),c;i("adapter.js shimming firefox."),c.browserShim=r,se(e,a),ae(e),O(e,a),L(e,a),I(e),N(e),A(e),j(e),U(e),F(e),z(e),V(e),q(e),ee(e),re(e),ie(e,a),ne(e);break;case"safari":if(!o||!t.shimSafari)return i("Safari shim is not included in this adapter release."),c;i("adapter.js shimming safari."),c.browserShim=o,se(e,a),ae(e),H(e),Q(e),J(e),$(e),G(e),K(e),B(e),Y(e),ee(e),te(e),ie(e,a),ne(e),oe(e,a);break;default:i("Unsupported browser!")}return c}({window:"undefined"==typeof window?void 0:window}),de=ce},9119:(e,t,i)=>{const n=i(7427),r=i(8483);class o{constructor(e){this.remoteCandidatesQueue=[],this.localCandidatesQueue=[],this.iceCandidateList=[],this.candidategatheringdone=!1,this.configuration={...e,iceServers:e.iceServers&&e.iceServers.length>0?e.iceServers:r(),mediaStream:void 0!==e.mediaStream?e.mediaStream:null,mode:e.mode?e.mode:"sendrecv",id:e.id?e.id:this.generateUniqueId()},n.log(`[WebRtcPeer] configuration:\n${JSON.stringify(this.configuration,null,2)}`),this.pc=new RTCPeerConnection({iceServers:this.configuration.iceServers}),this._iceCandidateListener=e=>{if(null!==e.candidate){const t=e.candidate,i=new RTCIceCandidate(t);this.configuration.onIceCandidate(i),""!==i.candidate&&this.localCandidatesQueue.push(i)}},this.pc.addEventListener("icecandidate",this._iceCandidateListener),this._signalingStateChangeListener=async()=>{if("stable"===this.pc.signalingState)for(;this.iceCandidateList.length>0;){let e=this.iceCandidateList.shift();try{await this.pc.addIceCandidate(e)}catch(e){console.error("Error when calling RTCPeerConnection#addIceCandidate for RTCPeerConnection "+this.getId(),e)}}},this.pc.addEventListener("signalingstatechange",this._signalingStateChangeListener),this.configuration.onConnectionStateChange&&this.pc.addEventListener("connectionstatechange",this.configuration.onConnectionStateChange)}getId(){return this.configuration.id}dispose(){if(n.log("Disposing WebRtcPeer"),this.pc){if("closed"===this.pc.signalingState)return;this.pc.removeEventListener("icecandidate",this._iceCandidateListener),this._iceCandidateListener=void 0,this.pc.removeEventListener("signalingstatechange",this._signalingStateChangeListener),this._signalingStateChangeListener=void 0,this._iceConnectionStateChangeListener&&(this.pc.removeEventListener("iceconnectionstatechange",this._iceConnectionStateChangeListener),this._iceConnectionStateChangeListener=void 0),this.configuration.onConnectionStateChange&&this.pc.removeEventListener("connectionstatechange",this.configuration.onConnectionStateChange),this.configuration={},this.pc.close(),this.remoteCandidatesQueue=[],this.localCandidatesQueue=[]}}async createOffer(){if(!("addTransceiver"in this.pc))return n.error("[createOffer] Method RTCPeerConnection.addTransceiver() is NOT available; using LEGACY offerToReceive{Audio,Video}"),this.createOfferLegacy();if(n.log("[createOffer] Method RTCPeerConnection.addTransceiver() is available; using it"),"recvonly"!==this.configuration.mode){if(!this.configuration.mediaStream)throw new Error(`[WebRtcPeer.createOffer] Direction is '${this.configuration.mode}', but no stream was configured to be sent`);for(const e of this.configuration.mediaStream.getTracks()){const t={direction:this.configuration.mode,streams:[this.configuration.mediaStream]};if("video"===e.kind&&this.configuration.simulcast){const i=e.getSettings(),r=e.getConstraints(),o="object"==typeof i.width?r.width.ideal:r.width||0,s="object"==typeof i.height?r.height.ideal:r.height||0;n.info(`[createOffer] Video track dimensions: ${o}x${s}`);const a=o*s;let c=0;c=a>=518400?3:a>=129600?2:1,t.sendEncodings=[];for(let i=0;i<c;i++){const n=2**(c-i-1),r={rid:"rdiv"+n.toString(),scalabilityMode:"L1T1"};["detail","text"].includes(e.contentHint)?(r.scaleResolutionDownBy=1,r.maxFramerate=Math.floor(30/n)):r.scaleResolutionDownBy=n,t.sendEncodings.push(r)}}const i=this.pc.addTransceiver(e,t);if("video"===e.kind){let r=i.sender.getParameters(),o=!1;if(r.degradationPreference&&!r.degradationPreference.length&&(["detail","text"].includes(e.contentHint)?r.degradationPreference="maintain-resolution":r.degradationPreference="balanced",n.info(`[createOffer] Video sender Degradation Preference set: ${r.degradationPreference}`),o=!0),this.configuration.simulcast&&r.encodings.length!==t.sendEncodings.length&&(r.encodings=t.sendEncodings,o=!0),o){n.log("[createOffer] Setting new RTCRtpSendParameters to video sender");try{await i.sender.setParameters(r)}catch(e){let t="[WebRtcPeer.createOffer] Cannot set RTCRtpSendParameters to video sender";throw e instanceof Error&&(t+=`: ${e.message}`),new Error(t)}}}}}else for(const e of["audio","video"])this.configuration.mediaConstraints[e]&&(this.configuration.mediaStream=new MediaStream,this.pc.addTransceiver(e,{direction:this.configuration.mode,streams:[this.configuration.mediaStream]}));let e;try{e=await this.pc.createOffer()}catch(e){let t="[WebRtcPeer.createOffer] Browser failed creating an SDP Offer";throw e instanceof Error&&(t+=`: ${e.message}`),new Error(t)}return e}createAnswer(){return new Promise(((e,t)=>{if("getTransceivers"in this.pc){n.log("[createAnswer] Method RTCPeerConnection.getTransceivers() is available; using it");for(const e of["audio","video"]){if(!this.configuration.mediaConstraints[e])continue;let i=this.pc.getTransceivers().find((t=>t.receiver.track.kind===e));if(!i)return t(new Error(`${e} requested, but no transceiver was created from remote description`));i.direction=this.configuration.mode}this.pc.createAnswer().then((t=>e(t))).catch((e=>t(e)))}else{let i,n=!0;if(this.configuration.mediaConstraints){i="boolean"!=typeof this.configuration.mediaConstraints.audio||this.configuration.mediaConstraints.audio,n="boolean"!=typeof this.configuration.mediaConstraints.video||this.configuration.mediaConstraints.video;const r={offerToReceiveAudio:i,offerToReceiveVideo:n};this.pc.createAnswer(r).then((t=>e(t))).catch((e=>t(e)))}}}))}processLocalOffer(e){return new Promise(((t,i)=>{this.pc.setLocalDescription(e).then((()=>{const e=this.pc.localDescription;return e?(n.log("Local description set",e.sdp),t()):i("Local description is not defined")})).catch((e=>i(e)))}))}processRemoteOffer(e){return new Promise(((t,i)=>{const r={type:"offer",sdp:e};if(n.log("SDP offer received, setting remote description",r),"closed"===this.pc.signalingState)return i("RTCPeerConnection is closed when trying to set remote description");this.setRemoteDescription(r).then((()=>t())).catch((e=>i(e)))}))}processLocalAnswer(e){return new Promise(((t,i)=>{if(n.log("SDP answer created, setting local description"),"closed"===this.pc.signalingState)return i("RTCPeerConnection is closed when trying to set local description");this.pc.setLocalDescription(e).then((()=>t())).catch((e=>i(e)))}))}processRemoteAnswer(e){return new Promise(((t,i)=>{const r={type:"answer",sdp:e};if(n.log("SDP answer received, setting remote description"),"closed"===this.pc.signalingState)return i("RTCPeerConnection is closed when trying to set remote description");this.setRemoteDescription(r).then((()=>{t()})).catch((e=>i(e)))}))}async setRemoteDescription(e){return this.pc.setRemoteDescription(e)}addIceCandidate(e){return new Promise(((t,i)=>{switch(n.log("Remote ICE candidate received",e),this.remoteCandidatesQueue.push(e),this.pc.signalingState){case"closed":i(new Error("PeerConnection object is closed"));break;case"stable":this.pc.remoteDescription?this.pc.addIceCandidate(e).then((()=>t())).catch((e=>i(e))):(this.iceCandidateList.push(e),t());break;default:this.iceCandidateList.push(e),t()}}))}addIceConnectionStateChangeListener(e){this._iceConnectionStateChangeListener||(this._iceConnectionStateChangeListener=()=>{switch(this.pc.iceConnectionState){case"disconnected":const t="IceConnectionState of RTCPeerConnection "+this.configuration.id+" ("+e+') change to "disconnected". Possible network disconnection';console.warn(t),this.configuration.onIceConnectionStateException("ICE_CONNECTION_DISCONNECTED",t);break;case"failed":const i="IceConnectionState of RTCPeerConnection "+this.configuration.id+" ("+e+') to "failed"';console.error(i),this.configuration.onIceConnectionStateException("ICE_CONNECTION_FAILED",i);break;case"closed":n.log("IceConnectionState of RTCPeerConnection "+this.configuration.id+" ("+e+') change to "closed"');break;case"new":n.log("IceConnectionState of RTCPeerConnection "+this.configuration.id+" ("+e+') change to "new"');break;case"checking":n.log("IceConnectionState of RTCPeerConnection "+this.configuration.id+" ("+e+') change to "checking"');break;case"connected":n.log("IceConnectionState of RTCPeerConnection "+this.configuration.id+" ("+e+') change to "connected"');break;case"completed":n.log("IceConnectionState of RTCPeerConnection "+this.configuration.id+" ("+e+') change to "completed"')}}),this.pc.addEventListener("iceconnectionstatechange",this._iceConnectionStateChangeListener)}generateUniqueId(){return crypto.randomUUID()}get stream(){return this.pc.getLocalStreams()[0]||this.pc.getRemoteStreams()[0]}deprecatedPeerConnectionTrackApi(){for(const e of this.configuration.mediaStream.getTracks())this.pc.addTrack(e,this.configuration.mediaStream)}createOfferLegacy(){this.configuration.mediaStream&&this.deprecatedPeerConnectionTrackApi();const e=this.configuration.mediaConstraints.audio,t=this.configuration.mediaConstraints.video,i={offerToReceiveAudio:"sendonly"!==this.configuration.mode&&e,offerToReceiveVideo:"sendonly"!==this.configuration.mode&&t};return n.log("[createOfferLegacy] RTCPeerConnection.createOffer() options:",JSON.stringify(i)),this.pc.createOffer(i)}}e.exports={Recvonly:class extends o{constructor(e){e.mode="recvonly",super(e)}},Sendonly:class extends o{constructor(e){e.mode="sendonly",super(e)}}}},7081:(e,t,i)=>{const n=i(1914),r=i(6987);e.exports=class{constructor(){let e,t,i,o,s,a,c,d,p=0,l=new r(100);this.meterStream=(n,r,o,s,a)=>{if(n&&!(n.getAudioTracks().length<1))try{const c=window.AudioContext||window.webkitAudioContext;if(!c)return void s("AudioContext is inaccessible");e=new c,i=e.createAnalyser(),t=e.createMediaStreamSource(n),t.connect(i),a&&i.connect(e.destination),this.meter(i,r,o,s)}catch(e){s(e)}},this.setCanvas=e=>{o=e;const t=o[0];s=t.getContext("2d"),a=t.width,c=t.height,d="horizontal"===o.data("orientation")},this.meter=(e,t,n,r)=>{this.setCanvas(t);try{i=e,i.minDecibels=-90,i.maxDecibels=-10,i.fftSize=256;const u=$("body").css("--level-color"),h=i.frequencyBinCount,f=new Uint8Array(h);function m(){if(s.clearRect(0,0,a,c),i&&o.length>0){if(o.is(":visible")){i.getByteFrequencyData(f);let e=0;for(let t=0;t<h;++t)e+=f[t]*f[t];p=Math.sqrt(e/h),l.push(p);const t=l.min();if(n(p>t+5),s.fillStyle=u,d)s.fillRect(0,0,a*p/100,c);else{const e=c*p/100;s.fillRect(0,c-e,a,e)}}requestAnimationFrame(m)}}m()}catch(g){r(g)}},this.dispose=()=>{e&&(n.cleanStream(t.mediaStream),n.disconnect(t),n.disconnect(e.destination),e.close(),e=null),i&&(n.disconnect(i),i=null)}}}},6987:e=>{e.exports=class{constructor(e){const t=[];let i=0;this.get=e=>t[e],this.push=n=>{t[i]=n,i=(i+1)%e},this.min=()=>Math.min.apply(Math,t)}}},5741:(e,t,i)=>{const n=i(7427),r=i(5458),o=i(7081),s=i(1914),a=i(9119),c="audioinput",d="videoinput",p={type:"kurento",mode:"test"};let l,u,h,f,m,g,v,b,C,y,w,S,T,R,P=!1;function k(){if(h=r.load(),!h.video){const e=$("#video-settings .cam-resolution option:selected").data();h.video={cam:0,mic:0,width:e.width,height:e.height}}return h.fixed||(h.fixed={enabled:!1,width:120,height:90}),h}function x(){r.save(h),n.sendMessage({type:"av",area:"room",settings:h})}function _(e){const t=e||(w&&1===w.length?w[0].srcObject:null);s.cleanStream(t),w&&1===w.length&&(w[0].srcObject=null),s.cleanPeer(b),u&&u.hide(),R&&(R.dispose(),R=null)}function E(){_(),Wicket.Event.unsubscribe("/websocket/message",z)}function D(e){n.log("Local candidate"+JSON.stringify(e)),n.sendMessage({id:"iceCandidate",candidate:e},p)}function O(){S.prop("disabled",!P||h.video.cam<0&&h.video.mic<0)}function M(e,t){N((function(i){const n={videoEnabled:s.hasCam(e),audioEnabled:s.hasMic(e)};i.video&&!1===v.audioOnly&&h.video.cam>-1?(n.video={frameRate:v.camera.fps},function(e){if(s.isSafari()){let t=h.video.width;[320,640,1280].some((function(e){return t<e+1&&(t=e,!0)})),e.video.width=t<1281?t:1280}else e.video.width=v.interview?320:h.video.width,e.video.height=v.interview?260:h.video.height}(n),h.video.camDevice?n.video.deviceId={ideal:h.video.camDevice}:n.video.facingMode={ideal:"user"}):n.video=!1,i.audio&&h.video.mic>-1?(n.audio={sampleRate:v.microphone.rate,echoCancellation:v.microphone.echo,noiseSuppression:v.microphone.noise},h.video.micDevice&&(n.audio.deviceId={ideal:h.video.micDevice})):n.audio=!1,t(n)}))}function I(e,t){const i=f.find("option:selected"),r=m.find("option:selected"),c=g.find("option:selected").data();h.video.cam=1*f.val(),h.video.camDevice=i.data("device-id"),h.video.mic=1*m.val(),h.video.micDevice=r.data("device-id"),h.video.width=c.width,h.video.height=c.height,w.width(c.width).height(c.height),y.scrollLeft(Math.max(0,h.video.width/2-150)).scrollTop(Math.max(0,h.video.height/2-110)),_(),M(null,(function(i){if(!1!==i.video||!1!==i.audio){const r=s.addIceServers({mediaConstraints:i,onIceCandidate:D},e);navigator.mediaDevices.getUserMedia(i).then((e=>(s.playSrc(w[0],e,!0),r.mediaStream=e,b=new a.Sendonly(r),i.audio?(u.show(),R=new o,R.meterStream(e,u,(function(){}),n.error,!1)):u.hide(),b.createOffer()))).then((e=>{b.processLocalOffer(e),"function"==typeof t?t(e.sdp,i):(P=!0,O())})).catch((e=>n.error("Error generating the offer")))}e||O()}))}function L(e){e.find("option").remove(),e.append(n.tmpl("#settings-option-loading"))}function A(e){e.forEach((function(e){e.find("option").remove(),e.append(n.tmpl("#settings-option-disabled"))}))}function j(e,t){let i=e.find('option[value="'+t+'"]');0===i.length&&-1!==t&&(i=e.find('option[value="0"]')),i.prop("selected",!0)}function N(e){const t={audio:!1,video:!1,devices:[]};!1!==window.isSecureContext?navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices().then((e=>e.forEach((e=>{c!==e.kind&&d!==e.kind||t.devices.push({kind:e.kind,label:e.label||e.kind+" "+t.devices.length,deviceId:e.deviceId}),c===e.kind?t.audio=!0:d===e.kind&&(t.video=!0)})))).catch((()=>n.error("Unable to get the list of multimedia devices"))).finally((()=>e(t))):n.error("enumerateDevices() not supported."):n.error($("#settings-https-required").text())}function U(e){T.prop("disabled",e),f.prop("disabled",e),m.prop("disabled",e),g.prop("disabled",e)}function F(){O(),U(!1)}function z(e,t){try{if(t instanceof Blob)return;const e=JSON.parse(t);e&&"kurento"===e.type&&("test"===e.mode&&function(e){switch(n.info("Received message: ",e),e.id){case"canRecord":I(e,(function(e,t){n.info("Invoking SDP offer callback function"),n.sendMessage({id:"record",sdpOffer:e,video:!1!==t.video,audio:!1!==t.audio},p)}));break;case"canPlay":{const t=s.addIceServers({mediaConstraints:{audio:!0,video:!0},onIceCandidate:D},e);_(),b=new a.Recvonly(t),b.createOffer().then((e=>{b.processLocalOffer(e),n.sendMessage({id:"play",sdpOffer:e.sdp},p)})).catch((e=>n.error("Error generating the offer")))}break;case"playResponse":n.log("Play SDP answer received from server. Processing ..."),b.processRemoteAnswer(e.sdpAnswer).then((()=>{const e=b.stream;e&&(s.playSrc(w[0],e,!1),u.show(),R=new o,R.meterStream(e,u,(function(){}),n.error,!0))})).catch((e=>n.error(e)));break;case"startResponse":n.log("SDP answer received from server. Processing ..."),b.processRemoteAnswer(e.sdpAnswer).catch((e=>n.error(e)));break;case"iceCandidate":b.addIceCandidate(e.candidate).catch((e=>n.error("Error adding candidate: "+e)));break;case"recording":C.show().find(".time").text(e.time);break;case"recStopped":C.hide(),F();break;case"playStopped":F(),I()}}(e),"error"===e.id)&&n.error(e.message)}catch(e){n.error(e)}}e.exports={init:function(e){v=JSON.parse(JSON.stringify(e)),v.infoMsg&&n.alert("info",v.infoMsg,0),l=$("#video-settings"),u=l.find(".level-meter"),f=l.find("select.cam").change((function(){I()})),m=l.find("select.mic").change((function(){I()})),g=l.find("select.cam-resolution").change((function(){I()})),y=l.find(".vid-block .video-conainer"),C=l.find(".timer"),w=y.find("video"),S=l.find(".rec-start").click((function(){S.prop("disabled",!0),U(!0),n.sendMessage({id:"wannaRecord"},p)})),T=l.find(".play").click((function(){S.prop("disabled",!0),U(!0),n.sendMessage({id:"wannaPlay"},p)})),l.find(".btn-save").off().click((function(){x(),E(),l.modal("hide")})),l.find(".btn-cancel").off().click((function(){E(),l.modal("hide")})),l.off().on("hidden.bs.modal",(function(){E()})),v.width=300,v.height=200,v.mode="settings",v.rights=(v.rights||[]).join(),delete v.keycode,l.find(".modal-body input, .modal-body button").prop("disabled",!0);const t=l.find(".cam-resolution").parents(".sett-row");v.interview?t.hide():t.show(),k(),x()},open:function(){Wicket.Event.subscribe("/websocket/message",z),P=!1,C.hide(),T.prop("disabled",!0),l.modal("show"),k(),!1!==window.isSecureContext?navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices?(L(f),L(m),N((function(e){e.audio||e.video?navigator.mediaDevices.getUserMedia(e).then((t=>navigator.mediaDevices.enumerateDevices().catch((function(e){throw e})).finally((()=>_(t)))||e.devices)).catch((function(){return e.devices})).then((e=>{let t=0,i=0;k(),A([f,m]),e.forEach((e=>{if(c===e.kind){const t=$("<option></option>").attr("value",i).text(e.label).data("device-id",e.deviceId);m.append(t),i++}else if(d===e.kind){const i=$("<option></option>").attr("value",t).text(e.label).data("device-id",e.deviceId);f.append(i),t++}})),j(f,h.video.cam),j(m,h.video.mic),g.find("option").each((function(){const e=$(this).data();if(e.width===h.video.width&&e.height===h.video.height)return $(this).prop("selected",!0),!1})),I()})).catch((function(e){A([f,m]),n.error(e)})):A([f,m])}))):n.error("enumerateDevices() not supported."):n.error($("#settings-https-required").text())},close:function(){E(),l&&l.modal("hide")},load:k,save:x,constraints:M}},1914:(e,t,i)=>{const n=i(7427),r=i(5458),o=new(i(2238))("undefined"!=typeof window&&window.navigator?window.navigator.userAgent:"").getBrowser(),s=".room-block .wb-block",a=".room-block .wb-block .wb-tab-content",c=".video.user-video",d="VIDEO",p="AUDIO";function l(){return"Safari"===o.name}function u(){return"Chrome"===o.name||"Chromium"===o.name}function h(){return"Edge"===o.name&&!("MSGestureEvent"in window)}function f(e){return!!e&&"SCREEN"===e.type&&e.activities.includes("SCREEN")}function m(e){return!!e&&"SCREEN"===e.type&&e.activities.includes("RECORD")}function g(e){if(!e)return!0;const t=!1!==e.camEnabled;return e.activities.includes(d)&&t}function v(e){const t=$(e),i=t.offset();return{left:i.left,top:i.top,right:i.left+t.width(),bottom:i.top+t.height()}}function b(){const e=$(s);return e.find(".wb-area .tabs .wb-tab-content").length>0?$(a):e}function C(e,t,i){let n,r=e.bottom;do{n=!0;for(let o=0;o<i.length;++o){const s=i[o];if(r=Math.min(r,s.bottom),t.left<s.right&&t.right>s.left&&t.top<s.bottom&&t.bottom>s.top&&(t.left=s.right+20,n=!1),t.right>=e.right&&(t.left=e.left,t.top=Math.max(r,t.top)+10,n=!1),t.bottom>=e.bottom){t.top=e.top,n=!0;break}}}while(!n);return{left:t.left,top:t.top}}function y(e,t,i){t.bottom=e.bottom;let n,r=e.bottom;do{n=!0;for(let o=0;o<i.length;++o){const s=i[o];if(r=Math.min(r,s.top),t.left<s.right&&t.right>s.left&&t.top<s.bottom&&t.bottom>s.top&&(t.left=s.right+20,n=!1),t.right>=e.right&&(t.left=e.left,t.bottom=Math.min(r,t.top)-10,n=!1),t.top<=e.top){t.top=e.top,n=!0;break}}}while(!n);return{left:t.left,top:t.top}}function w(e,t,i,n){if(Room.getOptions().interview)return{left:0,top:0};const r=b(),o=r.offset(),s={left:o.left,top:o.top,right:o.left+r.width(),bottom:o.top+r.height()};return(n||C)(s,{_left:s.left,_top:s.top,_right:s.left+t,_bottom:s.top+i,get left(){return this._left},set left(e){this._left=e,this._right=e+t},get right(){return this._right},get top(){return this._top},set top(e){this._top=e,this._bottom=e+i},set bottom(e){this._bottom=e,this._top=e-i},get bottom(){return this._bottom}},e)}function S(e){const t=$("#ask-permission");$(".sidebar").confirmation({title:t.attr("title"),placement:r.isRtl?"right":"left",singleton:!0,rootSelector:".sidebar",html:!0,content:t.html(),buttons:[{class:"btn btn-sm btn-warning",label:t.data("btn-ok"),value:t.data("btn-ok"),onClick:function(){e(),$(".sidebar").confirmation("dispose")}}]}),$(".sidebar").confirmation("show")}e.exports={VIDWIN_SEL:c,VID_SEL:".video-container[id!=user-video]",CAM_ACTIVITY:d,MIC_ACTIVITY:p,getVid:function(e){return"video"+e},isSharing:f,isRecording:m,hasMic:function(e){if(!e)return!0;const t=!1!==e.micEnabled;return e.activities.includes(p)&&t},hasCam:g,hasVideo:function(e){return g(e)||f(e)||m(e)},hasActivity:function(e,t){return!!e&&e.activities.includes(t)},getRects:function(e,t){const i=[],n=$(e);for(let e=0;e<n.length;++e)t!==$(n[e]).attr("aria-describedby")&&i.push(v(n[e]));return i},getPos:w,container:b,arrange:function(){const e=[];$(c).each((function(){const t=$(this);t.css(w(e,t.width(),t.height())),e.push(v(t))}))},arrangeResize:function(e){const t=[],i={width:120,height:90};function n(e){return $(e).find(".video-container.ui-dialog-content")}e.fixed.enabled&&(i.width=e.fixed.width,i.height=e.fixed.height),$(c).toArray().sort(((e,t)=>{const i=n(e).data().stream(),r=n(t).data().stream();return r.level-i.level||i.user.displayName.localeCompare(r.user.displayName)})).forEach((e=>{const r=$(e);n(r).dialog("option","width",i.width).dialog("option","height",i.height),r.css(w(t,r.width(),r.height(),y)),t.push(v(r))}))},cleanStream:function(e){e&&e.getTracks().forEach((e=>e.stop()))},cleanPeer:function(e){if(e)try{const t=e.pc;t&&(t.getSenders().forEach((e=>{try{e.track&&e.track.stop()}catch(e){n.log("Failed to clean sender"+e)}})),t.getReceivers().forEach((e=>{try{e.track&&e.track.stop()}catch(e){n.log("Failed to clean receiver"+e)}}))),e.dispose()}catch(e){}},addIceServers:function(e,t){return t&&t.iceServers&&t.iceServers.length>0&&(e.iceServers=t.iceServers),e},setPos:function(e,t){e.dialog("instance")&&e.dialog("widget").css(t)},askPermission:S,disconnect:function(e){try{e.disconnect()}catch(e){}},sharingSupported:function(){return"Edge"===o.name&&o.major>16||"function"==typeof navigator.mediaDevices.getDisplayMedia&&("Firefox"===o.name||"Opera"===o.name||"Yandex"===o.name||l()||u()||h()||"Mozilla"===o.name&&o.major>4)},highlight:function e(t,i,n){!t||t.length<1||t.hasClass("disabled")||n<0||t.addClass(i).delay(2e3).queue((function(r){t.removeClass(i).delay(2e3).queue((function(r){e(t,i,--n),r()})),r()}))},playSrc:function(e,t,i){t&&e&&(e.srcObject=t,e.paused&&e.play().then((()=>e.muted=i)).catch((t=>{"NotAllowedError"===t.name&&S((()=>e.play().then((()=>e.muted=i))))})))},browser:o,isEdge:function(){return"Edge"===o.name&&"MSGestureEvent"in window},isEdgeChromium:h,isChrome:u,isSafari:l}},7427:e=>{"use strict";e.exports=OmUtil},5458:e=>{"use strict";e.exports=Settings},8808:e=>{"use strict";e.exports=JSON.parse('["stun.l.google.com:19302","stun1.l.google.com:19302","stun2.l.google.com:19302","stun3.l.google.com:19302","stun4.l.google.com:19302","stun.ekiga.net","stun.ideasip.com","stun.schlund.de","stun.stunprotocol.org:3478","stun.voiparound.com","stun.voipbuster.com","stun.voipstunt.com","stun.voxgratia.org"]')},4576:e=>{"use strict";e.exports=[]}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,i),o.exports}i.amdO={},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i(835),!1===window.hasOwnProperty("isSecureContext")&&(window.isSecureContext="https:"==window.location.protocol||-1!==["localhost","127.0.0.1"].indexOf(window.location.hostname)),Object.assign(window,{VideoUtil:i(1914),MicLevel:i(7081),WebRtcPeer:i(9119),VideoSettings:i(5741)})})();