@bdky/aaas-pilot-kit 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js
CHANGED
|
@@ -280,6 +280,6 @@ class EnergyGateProcessor extends AudioWorkletProcessor {
|
|
|
280
280
|
}
|
|
281
281
|
|
|
282
282
|
registerProcessor('energy-gate-processor', EnergyGateProcessor);
|
|
283
|
-
`}}se=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),o7("design:type",Function),o7("design:paramtypes",["undefined"==typeof AudioContext?Object:AudioContext,"undefined"==typeof IEnergyGateOptions?Object:IEnergyGateOptions])],se);class st{constructor(e,r={}){var i,n,o,s;this.isMonitoring=!1,this.startMonitoring=()=>{this.isMonitoring||(document.addEventListener("visibilitychange",this.boundHandleVisibilityChange),this.context.addEventListener("statechange",this.boundHandleStateChange),window.addEventListener("pagehide",this.boundHandleVisibilityChange),window.addEventListener("pageshow",this.boundHandleVisibilityChange),this.isMonitoring=!0)},this.stopMonitoring=()=>{this.isMonitoring&&(document.removeEventListener("visibilitychange",this.boundHandleVisibilityChange),this.context.removeEventListener("statechange",this.boundHandleStateChange),window.removeEventListener("pagehide",this.boundHandleVisibilityChange),window.removeEventListener("pageshow",this.boundHandleVisibilityChange),this.isMonitoring=!1)},this.ensureRunning=async()=>{let e=this.context.state;if("running"===e)return!0;if("suspended"===e)try{return await this.context.resume(),"running"===this.context.state}catch(e){return console.error("[AudioContextLifecycle] Resume failed:",e),!1}return"closed"===e&&console.error("[AudioContextLifecycle] Context is closed, cannot resume"),!1},this.getState=()=>this.context.state,this.dispose=()=>{this.stopMonitoring()},this.handleVisibilityChange=()=>{document.hidden?"running"===this.context.state&&this.options.onSuspended():this.options.autoResume&&"suspended"===this.context.state&&this.ensureRunning().then(e=>{e&&this.options.onResumed()}).catch(e=>{console.error("[AudioContextLifecycle] Auto-resume failed:",e)})},this.handleStateChange=()=>{switch(this.context.state){case"suspended":this.options.onSuspended();break;case"running":this.options.onResumed();break;case"interrupted":this.options.onInterrupted();break;case"closed":this.stopMonitoring()}},this.context=e,this.options={onSuspended:null!=(i=r.onSuspended)?i:()=>{},onResumed:null!=(n=r.onResumed)?n:()=>{},onInterrupted:null!=(o=r.onInterrupted)?o:()=>{},autoResume:null==(s=r.autoResume)||s},this.boundHandleVisibilityChange=this.handleVisibilityChange.bind(this),this.boundHandleStateChange=this.handleStateChange.bind(this)}}function sr(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function si(e,r){return function(i,n){r(i,n,e)}}(a9=(a8=cp||(cp={})).EMessageType||(a8.EMessageType={}))[a9.Query=0]="Query",a9[a9.Event=1]="Event";class sn{constructor(e,r,i,n){var o=this;this.opts=e,this.signalingService=r,this.errorManager=i,this.disabled=!1,this.mutedByUser=!1,this.muted=!1,this.emitter=new rd,this.started=!1,this.customSessionId=null,this.energyGate=null,this.audioContext=null,this.audioContextLifecycle=null,this.lastCheckResult=null,this.lastCheckTime=0,this.CHECK_CACHE_TTL=5e3,this.mute=e=>{var r;null==(r=this.signalingService)||r.Mute(e),this.muted=e},this.setMutedByUser=e=>{this.mutedByUser=e},this.tryUnmuteAsr=()=>!this.disabled&&!this.mutedByUser&&(this.muted&&this.mute(!1),!0),this.disable=()=>{this.disabled=!0},this.enable=()=>{this.disabled=!1},this.setPlaybackSuppressionEnabled=e=>{this.energyGate&&this.energyGate.setSuppressionEnabled(e)},this.checkAudioDevice=async e=>{var r;let i=Date.now();if(!(null==e?void 0:e.forceCheck)&&(null==(r=this.lastCheckResult)?void 0:r.available)&&i-this.lastCheckTime<this.CHECK_CACHE_TTL)return this.lastCheckResult;let n=new o6(e),o=await n.checkAudioDevice();return this.lastCheckResult=o,this.lastCheckTime=i,await this.emitter.emit("device_check_completed",o),!o.available&&o.error&&this.errorManager.handleError(this.mapToAsrError(o)),o},this.setupPlaybackSuppression=async function(e){var r,i,n,s,a,c;let d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"[ASR]",l=null==(r=o.opts.asr)?void 0:r.config;if(!(null==l?void 0:l.enablePlaybackSuppression))return e;try{o.audioContext=new AudioContext,o.audioContextLifecycle=new st(o.audioContext,{onSuspended:()=>{o.opts.enableDebugMode&&console.log(`${d} AudioContext suspended (页面后台或锁屏)`)},onResumed:()=>{o.opts.enableDebugMode&&console.log(`${d} AudioContext resumed (页面前台)`)},onInterrupted:()=>{o.opts.enableDebugMode&&console.log(`${d} AudioContext interrupted (如来电)`)},autoResume:!0}),o.audioContextLifecycle.startMonitoring(),await o.audioContextLifecycle.ensureRunning();let r=o.audioContext.createMediaStreamSource(e);o.energyGate=new se(o.audioContext,{suppressionEnergyMultiplier:null==(i=l.playbackSuppressionConfig)?void 0:i.energyMultiplier,idleThreshold:null==(n=l.playbackSuppressionConfig)?void 0:n.idleThreshold,smoothingFactor:null==(s=l.playbackSuppressionConfig)?void 0:s.smoothingFactor,suppressionActivationDelay:null==(a=l.playbackSuppressionConfig)?void 0:a.activationDelay,suppressionRecoveryDelay:null==(c=l.playbackSuppressionConfig)?void 0:c.recoveryDelay,debug:o.opts.enableDebugMode}),r.connect(o.energyGate.input),o.energyGate.start();let u=o.energyGate.getOutputStream();return console.log(`${d} 外部播放抑制已启用`),u}catch(r){return console.warn(`${d} 外部播放抑制启动失败,将使用原始音频流`,r),e}},this.cleanupPlaybackSuppression=()=>{this.energyGate&&(this.energyGate.dispose(),this.energyGate=null),this.audioContextLifecycle&&(this.audioContextLifecycle.dispose(),this.audioContextLifecycle=null),this.audioContext&&("closed"!==this.audioContext.state&&this.audioContext.close().catch(()=>{}),this.audioContext=null)},this.handleMicrophoneCheckFailure=async(e,r,i)=>{switch(await this.emitter.emit("device_check_completed",r),e){case"error":return!1;case"warn":return console.warn("[AaaSPilotKit] 麦克风检测失败,已降级为仅文本输入模式",{error:r.error,message:r.message,permissionState:r.permissionState,devices:r.devices}),!0;case"silent":return!0;case"prompt":if(!i)return console.warn('[AaaSPilotKit] microphoneFailureHandling 设置为 "prompt" 但未提供 onMicrophoneCheckFailed 回调,降级为 "error" 策略'),!1;try{let e=await i(r);return e&&console.info("[AaaSPilotKit] 用户确认继续(仅文本模式)"),e}catch(e){return console.error("[AaaSPilotKit] onMicrophoneCheckFailed 回调执行失败",e),!1}default:return console.error(`[AaaSPilotKit] 未知的 microphoneFailureHandling 策略: ${e}`),!1}},this._stop=async()=>{this.started&&(await this.signalingService.Stop(),this.started=!1,this.disabled=!1)},this._dispose=()=>{this.stop().finally(()=>{this.signalingService.Dispose()}).catch(iA),this.emitter.clearListeners(),this.lastCheckTime=0,this.disabled=!1,this.cleanupPlaybackSuppression()},this.mapToAsrError=e=>new({[o4.NO_API_SUPPORT]:is,[o4.INSECURE_CONTEXT]:ia,[o4.NO_DEVICE_FOUND]:ii,[o4.PERMISSION_DENIED]:r7,[o4.PERMISSION_DISMISSED]:ic,[o4.DEVICE_IN_USE]:io,[o4.TIMEOUT]:id,[o4.UNKNOWN_ERROR]:r8})[e.error](e.message,{passedLevel:e.passedLevel,devices:e.devices,permissionState:e.permissionState}),this.streamManager=n}get sessionId(){return this.customSessionId?this.customSessionId:this.started&&this.signalingService?this.signalingService.GetSessionID():null}}function so(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function ss(e,r){return function(i,n){r(i,n,e)}}sn=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),si(0,ev(ru.IOptions)),si(0,eR()),si(1,ev(ru.SignalingService)),si(1,eR()),si(2,ev(ru.ErrorManager)),si(3,ev(ru.MediaStreamManager)),sr("design:type",Function),sr("design:paramtypes",["undefined"==typeof IResolvedOptions?Object:IResolvedOptions,"undefined"==typeof BaseSignalingService?Object:BaseSignalingService,void 0===iP?Object:iP,"undefined"==typeof MediaStreamManager?Object:MediaStreamManager])],sn);class sa{static #z=this.GET_ACCESS_TOKEN_REQUEST_URI="employee-console/v1/access/r/ai-agent/get_digital_token";constructor(e,r,i){this.opts=e,this.request=r,this.errorManager=i,this.emitter=new rd,this._isRendering=!1,this._isMuted=!1,this._canInterrupt=!0,this.ssmlHandlers=[],this.token="",this.latencyStartMap=new Map,this.getAccessToken=async()=>{try{let{data:e}=await this.request.client.get(sa.GET_ACCESS_TOKEN_REQUEST_URI,{retry:3,timeout:15e3}).json();return e.authorization}catch(e){throw e instanceof Error&&this.errorManager.handleError(new ig(e.message)),e}}}get isRendering(){return this._isRendering}get isMuted(){return this._isMuted}get canInterrupt(){return this._canInterrupt}setIsRendering(e){this._isRendering=e}setIsMuted(e){this._isMuted=e}setCanInterrupt(e){this._canInterrupt=e}registerSSMLHandler(e){return this.ssmlHandlers.push(e),this}runSsmlHandlers(e){let r=e;for(let e of this.ssmlHandlers)r=e(r);return r}}sa=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),ss(0,ev(ru.IOptions)),ss(1,ev(ru.CommonRequest)),ss(2,ev(ru.ErrorManager)),so("design:type",Function),so("design:paramtypes",["undefined"==typeof IOptions?Object:IOptions,void 0===rK?Object:rK,void 0===iP?Object:iP])],sa);let sc=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:500;return new Promise(r=>setTimeout(r,e))};function sd(e,r){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),i.push.apply(i,n)}return i}function sl(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?sd(Object(i),!0).forEach(function(r){sv(e,r,i[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):sd(Object(i)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(i,r))})}return e}function su(e){return(su="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function sp(e,r){if(!(e instanceof r))throw TypeError("Cannot call a class as a function")}function sh(e,r){for(var i=0;i<r.length;i++){var n=r[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,sm(n.key),n)}}function sf(e,r,i){return r&&sh(e.prototype,r),i&&sh(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}function sv(e,r,i){return(r=sm(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e}function sm(e){var r=function(e,r){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,r||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:String(r)}(ch||(ch={})).INIT="INIT";var sg=function(){function e(r){sp(this,e),sv(this,"iframeId",void 0),this.iframeId=r}return sf(e,[{key:"registerMessageReceived",value:function(e){void 0!==window.addEventListener&&"function"==typeof e&&window.addEventListener("message",e,!1)}},{key:"removeMessageReceived",value:function(e){void 0!==window.addEventListener&&window.removeEventListener("message",e,!1)}},{key:"sendMessageToIframe",value:function(e,r){if(this.iframeId){var i=document.getElementById(this.iframeId);e&&null!==i&&i.contentWindow.postMessage({type:e,content:r},"*")}else if(window.self!==window.top&&window&&window.parent&&window.parent.postMessage){var n=JSON.parse(JSON.stringify(r||{}));window.parent.postMessage({type:e,content:n},"*")}}},{key:"sendCommand",value:function(e){this.sendMessageToIframe("command",e)}},{key:"sendMessage",value:function(e){var r=e.requestId,i=void 0===r?ix():r;return this.sendMessageToIframe("message",sl(sl({},e),{},{requestId:i})),i}},{key:"textRender",value:function(e){return this.sendMessage({action:"TEXT_RENDER",body:e})}},{key:"textQuery",value:function(e){return this.sendMessage({action:"TEXT_QUERY",body:e})}},{key:"changeBackGround",value:function(e){return this.textRender("<display><background><type>image</type><source>http</source><value>".concat(e,"</value></background></display>"))}},{key:"mute",value:function(e){this.sendCommand({subType:"mute",subContent:e})}},{key:"muteAudio",value:function(e){this.sendCommand({subType:"muteAudio",subContent:e})}},{key:"muteRemoteAudio",value:function(e){this.sendCommand({subType:"muteRemoteAudio",subContent:e})}},{key:"playVideo",value:function(e){this.sendCommand({subType:"playVideo",subContent:e})}},{key:"sendAudioData",value:function(e){this.sendMessageToIframe("audioData",e)}},{key:"onStateUpdate",value:function(e){this.sendMessageToIframe("state",e)}},{key:"sendRtcState",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToIframe("rtcState",e)}},{key:"sendWsState",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToIframe("wsState",e)}}]),e}();sf(function e(r){sp(this,e),sv(this,"iframeId",void 0),sv(this,"namespace","dhIframeNameSpace"),sv(this,"listener",null),this.iframeId=r},[{key:"onEventListener",value:function(e){var r=this;return function(i){if("object"===su(i.data))if("onListener"===i.data.type&&i.data.content.listenerId){var n=window[r.namespace][i.data.content.listenerId];null==n||n(i.data.content.data)}else"onListenerRemove"===i.data.type&&i.data.content.listenerId?delete window[r.namespace][i.data.content.listenerId]:i.data.listenerId?e(i.data,function(e){r.sendMessage("onListener",{listenerId:i.data.listenerId,data:e})},function(){r.sendMessage("onListenerRemove",{listenerId:i.data.listenerId})}):e(i.data)}}},{key:"registerMessageReceived",value:function(e){void 0!==window.addEventListener&&"function"==typeof e&&(this.listener=this.onEventListener(e),window.addEventListener("message",this.listener,!1))}},{key:"removeMessageReceived",value:function(){void 0!==window.addEventListener&&this.listener&&(window[this.namespace]=void 0,window.removeEventListener("message",this.listener,!1))}},{key:"sendMessage",value:function(e,r,i){var n=this;if(this.iframeId){var o="";i&&(o=ix(),window[this.namespace]||(window[this.namespace]={}),window[this.namespace][o]=i);var s=document.getElementById(this.iframeId);return e&&null!==s&&s.contentWindow.postMessage({type:e,content:r,listenerId:o},"*"),function(){o&&(window[n.namespace][o]=void 0)}}if(window.self!==window.top&&window&&window.parent&&window.parent.postMessage){var a=JSON.parse(JSON.stringify(r||{}));window.parent.postMessage({type:e,content:a},"*")}}},{key:"textRender",value:function(e,r){return this.sendMessage("TEXT_RENDER",e,r)}},{key:"textMTRender",value:function(e,r){return this.sendMessage("TEXT_MT_RENDER",e,r)}},{key:"audioRender",value:function(e,r){return this.sendMessage("AUDIO_RENDER",e,r)}},{key:"textQuery",value:function(e,r){return this.sendMessage("TEXT_QUERY",e,r)}},{key:"startAudioQuery",value:function(e,r){return this.sendMessage("AUDIO_QUERY_START",e,r)}},{key:"stopAudioQuery",value:function(){return this.sendMessage("AUDIO_QUERY_STOP",{})}},{key:"setModelPackage",value:function(e,r){return this.sendMessage("SET_MODEL_URLS",{urls:e,needInitConfig:r})}},{key:"changeCamera",value:function(e){return this.sendMessage("CHANGE_CAMERA",e)}},{key:"changeParts",value:function(e){return this.sendMessage("CHANGE_PARTS",e)}},{key:"setRenderConfig",value:function(e){return this.sendMessage("SET_RENDER_CONFIG",e)}},{key:"animojiRender",value:function(e,r){return this.sendMessage("ANIMOJI_RENDER",e,r)}},{key:"destroy",value:function(){return this.sendMessage("DESTROY",{})}},{key:"startAudioRender",value:function(e,r){return this.sendMessage("AUDIO_RENDER_START",e,r)}},{key:"stopAudioRender",value:function(){return this.sendMessage("AUDIO_RENDER_STOP",{})}},{key:"interrupt",value:function(){return this.sendMessage("INTERRUPT",{})}},{key:"load",value:function(e){return this.sendMessage("LOAD",e)}},{key:"onStateUpdate",value:function(e){this.sendMessage("state",e)}}]);class sy extends sa{get ready(){return!!this.iframeController&&!!this.token}constructor(...e){super(...e),this.origin="https://open.xiling.baidu.com",this.iframeId=ix(),this.iframeController=null,this.iframe=null,this.$iframeContainer=null,this.requestId=ix(),this.isWSConnected=!1,this.isRtcReady=!1,this.silenceMessageRequestIds=[],this.isStreamTextRendering=!1,this.wsClosedCount=0,this.mount=async e=>{if(!e)return void this.errorManager.handleError(new iu("容器元素不能为空"));if(this.$iframeContainer=e,this.iframe){e.contains(this.iframe)||e.appendChild(this.iframe);return}this.opts.enableDebugMode&&"development"===this.opts.env&&!this.opts.token?this.token=await this.getAccessToken():this.token=this.opts.token,this.iframe=document.createElement("iframe"),this.applyOptions(),e.appendChild(this.iframe),this.iframeController=new sg(this.iframeId),this.bindEvents()},this.bindEvents=()=>{var e,r;return this.ready&&(null==(e=this.iframe)||e.addEventListener("error",this.onIFrameErrorHandler),null==(r=this.iframeController)||r.registerMessageReceived(this.onMessageHandler)),this},this.unbindEvents=()=>{var e,r;return this.ready&&(null==(e=this.iframe)||e.removeEventListener("error",this.onIFrameErrorHandler),null==(r=this.iframeController)||r.removeMessageReceived(this.onMessageHandler)),this},this.cancelMute=()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"muteAudio",subContent:!1}),setTimeout(()=>{this._isMuted=!1},1500)},this.muteHuman=()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"muteAudio",subContent:!0}),setTimeout(()=>{this._isMuted=!0},1500)},this.play=async()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"playVideo",subContent:!0})},this.pause=()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"playVideo",subContent:!1})},this.renderPlainText=e=>{var r;if(!this.ready)return this;let i=this.runSsmlHandlers(e);return this.refreshRequestId(),null==(r=this.iframeController)||r.sendMessage({action:"TEXT_RENDER",body:i,requestId:this.requestId}),this},this.renderStreamText=(e,r)=>{var i,n,o;if(!this.ready)return this;let s=this.runSsmlHandlers(e);return r?(this.isStreamTextRendering||this.refreshRequestId(),null==(n=this.iframeController)||n.sendMessage({action:"TEXT_STREAM_RENDER",body:JSON.stringify({first:!this.isStreamTextRendering,last:!0,text:s}),requestId:this.requestId}),this.isStreamTextRendering=!1):this.isStreamTextRendering?null==(i=this.iframeController)||i.sendMessage({action:"TEXT_STREAM_RENDER",body:JSON.stringify({first:!1,last:!1,text:s}),requestId:this.requestId}):(this.refreshRequestId(),this.isStreamTextRendering=!0,this.latencyStartMap.set(this.requestId,performance.now()),null==(o=this.iframeController)||o.sendMessage({action:"TEXT_STREAM_RENDER",body:JSON.stringify({first:!0,last:!1,text:s}),requestId:this.requestId})),this},this.interrupt=()=>{var e;return this.ready&&(null==(e=this.iframeController)||e.sendMessage({action:"TEXT_RENDER",body:"<interrupt></interrupt>",requestId:this.requestId}),this.isRendering||this.onRenderFinished(this.requestId)),this},this.sendSilenceMessage=()=>{var e;if(!this.ready)return this;let r=ix();return null==(e=this.iframeController)||e.sendMessage({action:"TEXT_RENDER",body:"",requestId:r}),this.silenceMessageRequestIds.push(r),this.emitter.emit("send_silence_message",{requestId:r}).catch(iA),this},this.dispose=()=>{if(this.unbindEvents(),this.silenceMessageRequestIds=[],this.ssmlHandlers=[],this.wsClosedCount=0,this.isStreamTextRendering=!1,this.emitter.clearListeners(),this.latencyStartMap.clear(),this.iframe){var e;null==(e=this.$iframeContainer)||e.removeChild(this.iframe),this.iframe=null,this.iframeController=null}return this},this.GetRequestId=()=>this.requestId,this.checkIsReady=()=>{let e=this.isWSConnected&&this.isRtcReady;return e&&this.emitter.emit("ready").catch(iA),e},this.onIFrameErrorHandler=e=>{let r=new ip(`数字人iframe加载失败: ${e.message}`,{context:{method:"onIFrameErrorHandler",iframeId:this.iframeId,filename:e.filename,lineno:e.lineno,colno:e.colno,type:e.type,target:e.target}});this.errorManager.handleError(r)},this.onMessageHandler=e=>{if(e.origin!==this.origin)return;let r=e.data;switch(r.type){case"msg":this.onReceiveMsgTypedMessageHandler(r);break;case"rtcState":this.onReceiveRtcStateTypedMessageHandler(r);break;case"wsState":this.onReceiveWsStateTypedMessageHandler(r)}},this.onReceiveMsgTypedMessageHandler=e=>{let r=e.content.requestId;if((1004===e.content.code||3001===e.content.code)&&(this.emitter.emit("reach_session_limit",{requestId:r}).catch(iA),this.errorManager.handleError(new iy("资源配额已用尽,请联系技术支持申请扩容"))),["RENDER_START","FINISHED","DOWN_SUBTITLE","RENDER_INTERRUPTED","DOWN_SUBTITLE","TEXT_RENDER","TEXT_STREAM_RENDER"].includes(e.content.action)){if(r!==this.requestId)return;switch(e.content.action){case"RENDER_START":this._isRendering=!0,this.emitter.emit("is_rendering_change",!0).catch(iA);break;case"FINISHED":case"RENDER_INTERRUPTED":this.onRenderFinished(r);break;case"DOWN_SUBTITLE":{let i=JSON.parse(e.content.body);if(this.silenceMessageRequestIds.includes(r))this.silenceMessageRequestIds=this.silenceMessageRequestIds.filter(e=>e!==r);else{let e,n=this.latencyStartMap.get(r);void 0!==n&&(e=performance.now()-n,this.latencyStartMap.clear()),this.emitter.emit("render_subtitle",{subtitle:i,requestId:r,latency:e}).catch(iA)}break}case"TEXT_RENDER":case"TEXT_STREAM_RENDER":0!==e.content.code&&this.onRenderFinished(r)}return}switch(e.content.action){case"RENDER_ERROR":this.onRenderFinished(r),this.errorManager.handleError(new ih("数字员工文本驱动渲染失败,请确认配置后重试",{requestId:r,context:{msg:e.content.message}}));break;case"DISCONNECT_ALERT":this.emitter.emit("disconnect_alert",{requestId:r}).catch(iA);break;case"TIMEOUT_EXIT":this.onRenderFinished(r),this.emitter.emit("timeout",{requestId:e.content.requestId}).catch(iA)}},this.onReceiveRtcStateTypedMessageHandler=e=>{if(e.content.action,"localVideoMuted"===e.content.action&&e.content.body&&(this._isMuted=!0),"remotevideoon"===e.content.action&&(this.isRtcReady=!0,this.checkIsReady(),this.iframe&&(this.iframe.style.opacity="1")),"error"===e.content.action){let r="string"==typeof e.content.body?e.content.body:"";this.errorManager.handleError(new im("RTC 房间连接失败,请检查网络后重试"+r))}},this.onReceiveWsStateTypedMessageHandler=e=>{1===e.content.readyState?(this.isWSConnected=!0,this.wsClosedCount=0,this.checkIsReady()):(3===e.content.readyState||2===e.content.readyState)&&(this.isWSConnected=!1),3===e.content.readyState&&(this.wsClosedCount++,this.wsClosedCount>=3&&(this.emitter.emit("reconnect_failed").catch(iA),this.errorManager.handleError(new iv("检测到 Websocket 链接异常断开,如长时间无法恢复,请联系技术支持。"))))},this.applyOptions=()=>{var e,r,i,n,o,s,a,c,d,l,u,p,h,f;if(!this.iframe)return;this.iframe.id=this.iframeId,this.iframe.allow="autoplay",this.iframe.style.border="none",this.iframe.style.opacity="0",this.iframe.style.pointerEvents="none",this.iframe.style.overflow="hidden";let v=null!=(o=null==(e=this.opts)?void 0:e.scaleX)?o:1,m=null!=(s=null==(r=this.opts)?void 0:r.scaleY)?s:1,g=null!=(a=null==(i=this.opts)?void 0:i.translateX)?a:0,y=null!=(c=null==(n=this.opts)?void 0:n.translateY)?c:0;this.iframe.style.width=`${100*v}% `,this.iframe.style.height=`${100*m}%`,this.iframe.style.transform=`translate(${g}px, ${y}px)`;let b=new URLSearchParams(Object.entries({figureId:this.opts.figureId,ttsPer:this.opts.ttsPer,initMode:"noAudio","cp-inactiveDisconnectSec":null!=(d=this.opts.timeoutSec)?d:130,"cp-preAlertSec":null!=(l=this.opts.disconnectAlertSec)?l:10,mode:"crop",resolutionWidth:null!=(u=this.opts.figureResolutionWidth)?u:1920,resolutionHeight:null!=(p=this.opts.figureResolutionHeight)?p:1080,ttsSpeed:null!=(h=this.opts.speechSpeed)?h:6,"cp-ttsSample":this.opts.ttsSample,"cp-minSplitLen":this.opts.minSplitLen,"cp-ttsModel":this.opts.ttsModel,"cp-positionV2":JSON.stringify(this.opts.position),"cp-ttsLang":iV(this.opts.lang),autoChromaKey:this.opts.autoChromaKey,closeLog:null==(f=this.opts.enableDebugMode)||f,token:this.token}).filter(e=>{let[,r]=e;return null!=r&&""!==r}).reduce((e,r)=>{let[i,n]=r;return e[i]=String(n),e},{})).toString();this.iframe.src=`${this.origin}/cloud/realtime?${b}`},this.refreshRequestId=()=>{this.requestId=ix()},this.onRenderFinished=e=>{this._isRendering=!1,this.isStreamTextRendering=!1,this.emitter.emit("is_rendering_change",!1).catch(iA),this.refreshRequestId(),this.emitter.emit("render_finished",{requestId:e}).catch(iA)}}}function sb(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function sS(e,r){return function(i,n){r(i,n,e)}}sy=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],sy);class sC{static #z=this.ENTRY_EMITTER_NAME="AaaSPilotKitEmitter";constructor(e,r,i,n,o,s){this.opts=e,this.errorManager=r,this.agentService=i,this.asrService=n,this.digitalHumanService=o,this.conversationService=s,this.interruptible=!0,this.isRenderingMultiModConversation=!1,this.isDigitalHumanServiceReady=!1,this.isAsrServiceReady=!1,this.lastReplyStartRequestId=null,this.aiWorkerMessageCache=null,this.multiModAbortControllers=[],this.playWaitForListener=null,this.queryStartTime=0,this.mount=async e=>{var r,i;let n=null!=e?e:null==(r=(i=this.opts).getMountContainer)?void 0:r.call(i);n&&(await Promise.all([this.digitalHumanService.mount(n),this.asrService.preloadDeps()]),await this.asrService.start(),this.isAsrServiceReady=!0,this.checkServiceReady())},this.getOptions=()=>this.opts,this.checkNeedsManualActivation=()=>"cloud-native"!==this.opts.rendererMode&&(r4()||r6()),this.activateManually=async()=>{if(this.digitalHumanService instanceof sy){let e,r;this.digitalHumanService.cancelMute(),r=(e=new(r2())).getUA(),("WeChat"===e.getBrowser().name||/MicroMessenger/i.test(r))&&(r4()||r6())&&await sc(500)}},this.keepAlive=()=>(this.digitalHumanService.sendSilenceMessage(),this),this.playWaitFor=async(e,r)=>(this.playWaitForListener&&this.digitalHumanService.emitter.off("render_finished",this.playWaitForListener),this.digitalHumanService.isRendering)?await new Promise(i=>{this.playWaitForListener=()=>{r&&!r()?i(!1):(this.digitalHumanService.renderPlainText(e),this.playWaitForListener&&this.digitalHumanService.emitter.off("render_finished",this.playWaitForListener),i(!0))},this.digitalHumanService.emitter.on("render_finished",this.playWaitForListener)}):(this.digitalHumanService.renderPlainText(e),!0),this.playFromFullText=e=>(this.digitalHumanService.renderPlainText(e),this),this.playFromStreamText=(e,r)=>(this.digitalHumanService.renderStreamText(e,r),this),this.mute=e=>(this.asrService.setMutedByUser(e),this.emitter.emit("mute",e).catch(iA),e?(this.asrService.mute(!0),this.conversationService.currentClientConversation&&this.query(this.conversationService.currentClientConversation.text,!0).catch(iA)):this.asrService.muted&&this.asrService.mute(!1),this),this.interrupt=()=>(this.interruptAIWorkerConversation(),this),this.playPrologue=()=>{this.opts.prologue&&this.opts.prologue.length>0?this.playFromFullText(this.opts.prologue):this.agentService.query("").catch(iA)},this.query=async(e,r)=>{if(this.checkServiceReady()){if(this.agentService.sessionId||this.agentService.setSessionId(ix()),this.digitalHumanService.sendSilenceMessage(),this.agentService.queryId||this.agentService.setQueryId(ix()),r){if(this.agentService.checkIsRepeat())return;this.agentService.setLastQueryId(this.agentService.queryId)}if(await this.emitter.emit("asr_message",{text:e,completed:r,id:this.agentService.queryId,sessionId:this.agentService.sessionId}),await this.handleClientConversation(e),r){this.asrService.mute(!0);let r=async()=>{this.agentService.setQueryId(""),this.digitalHumanService.canInterrupt&&(this.asrService.tryUnmuteAsr(),await this.emitter.emit("asr_start"),this.digitalHumanService.emitter.off("render_subtitle",r))};this.digitalHumanService.emitter.on("render_subtitle",r);let i=async()=>{this.agentService.setQueryId(""),this.asrService.tryUnmuteAsr(),await this.emitter.emit("asr_start"),this.digitalHumanService.emitter.off("render_finished",i)};this.digitalHumanService.emitter.on("render_finished",i),this.handleClientConversationCompleted(),this.queryStartTime=performance.now(),await this.agentService.query(e)}}},this.input=e=>(this.digitalHumanService.isRendering&&!this.interruptible||this.query(e,!0).catch(iA),this),this.dispose=()=>(this.agentService.dispose(),this.asrService.dispose(),this.digitalHumanService.dispose(),this.conversationService.dispose(),this.emitter.clearListeners(),this.isDigitalHumanServiceReady=!1,this.isAsrServiceReady=!1,this.aiWorkerMessageCache=null,this.isRenderingMultiModConversation=!1,this.multiModAbortControllers=[],this.lastReplyStartRequestId=null,this),this.setInterruptible=e=>(this.interruptible=e,this),this.checkAudioDevice=async e=>this.asrService.checkAudioDevice(e),this.bindAsrServiceEvents=()=>{this.asrService.emitter.on("start",this.handleAsrServiceStarted),this.asrService.emitter.on("message",this.handleAsrMessage),this.asrService.emitter.on("device_check_completed",this.handleDeviceCheckCompleted)},this.bindAgentServiceEvents=()=>{this.agentService.emitter.on("data",this.handleAgentAnswer),this.agentService.emitter.on("completed",this.handleAgentAnswerCompleted),this.agentService.emitter.on("instruction_received",this.handleAgentInstructionReceived),this.agentService.emitter.on("usage_quota_reached",async e=>{await this.emitter.emit("busy",{...e})}),this.agentService.emitter.on("ttft",this.handleTtft)},this.bindDigitalHumanServiceEvents=()=>{this.digitalHumanService.bindEvents(),this.digitalHumanService.emitter.once("ready").then(()=>{this.isDigitalHumanServiceReady=!0,this.checkServiceReady()}),this.digitalHumanService.emitter.on("render_subtitle",this.aiWorkerSubtitleToConversation),this.digitalHumanService.emitter.on("is_rendering_change",e=>{this.asrService.setPlaybackSuppressionEnabled(e),this.emitter.emit("is_rendering_change",e).catch(iA)}),this.digitalHumanService.emitter.on("render_subtitle",async e=>{await this.emitter.emit("render_start",{...e,sessionId:this.agentService.sessionId,queryId:this.agentService.queryId});let{requestId:r}=e;if(r!==this.lastReplyStartRequestId){this.lastReplyStartRequestId=r;let i=this.agentService.getResponseManager().getLastResponse();this.emitter.emit("reply_start",{agentResponse:i,latency:e.latency,requestId:e.requestId}).catch(iA)}}),this.digitalHumanService.emitter.on("disconnect_alert",e=>{let r=this.digitalHumanService.emitter.on("render_finished",()=>{this.asrService.mute(!0),this.emitter.emit("inactivity",e).catch(iA),r()}),i=this.digitalHumanService.emitter.on("send_silence_message",()=>{r(),i()});this.playFromFullText(this.opts.inactivityPrompt)}),this.digitalHumanService.emitter.on("reach_session_limit",async e=>{this.isDigitalHumanServiceReady&&this.isAsrServiceReady&&await this.emitter.emit("busy",{...e})}),this.digitalHumanService.emitter.on("reconnect_failed",async()=>{await this.emitter.emit("busy",{requestId:"reconnect_failed"})});let e=this.digitalHumanService.emitter.on("render_finished",()=>{this.asrService.tryUnmuteAsr(),e()})},this.bindErrorEvents=()=>{this.errorManager.on(e=>{let r=this.errorManager.createMonitoringError(e);this.emitter.emit("error",e).catch(iA);try{this.weirwood.error.captureException(r)}catch(e){console.error(e)}})},this.bindEvents=()=>{this.bindErrorEvents(),this.bindAsrServiceEvents(),this.bindAgentServiceEvents(),this.bindDigitalHumanServiceEvents()},this.registerFormatters=()=>{var e,r;let i=null!=(e=this.opts.speechFormatters)?e:[],n=null!=(r=this.opts.conversationFormatters)?r:[];for(let e of i)this.digitalHumanService.registerSSMLHandler(e);for(let e of n)this.conversationService.registerAIWorkerConversationFormatter(e)},this.aiWorkerSubtitleToConversation=async e=>{let r=e.subtitle;if(this.isRenderingMultiModConversation)return;let i=this.conversationService;await this.createNewAIWorkerConversation();let n=i.currentAIWorkerConversation;n&&this.handleAIWorkerConversationChange(n);let o=i.runAIWorkerConversationFormatters(r.content);if(null==n||n.appendText(o),r.completed){let e=i.currentAIWorkerConversation;e&&e.markAsEnded(),i.setCurrentConversation(null)}},this.handleAgentAnswer=e=>{let{answer:r}=e;nF.isXml(r)?this.handleXmlAgentAnswer(e).catch(iA):(this.aiWorkerMessageCache&&this.playFromStreamText(this.aiWorkerMessageCache,!1),this.aiWorkerMessageCache=r)},this.handleXmlAgentAnswer=async e=>{let{answer:r}=e,i=this.conversationService;await this.createNewAIWorkerConversation();let n=i.currentAIWorkerConversation;if(!n)return;let o=()=>{this.emitter.emit("conversation_change",{...n.toJSON(),text:n.fulltext,completed:!1})};n.emitter.on("content_change",o),this.isRenderingMultiModConversation=!0;let s=i.runAIWorkerConversationFormatters(r),a=n.createContentsFromXmlString(s),c=new AbortController;for(let e of(this.multiModAbortControllers.push(c),a)){if(c.signal.aborted){n.emitter.off("content_change",o);break}if(nz.isTextContent(e)){let r=e.getConfig().content;this.playFromFullText(r),await this.digitalHumanService.emitter.once("render_subtitle")}n.addContentRenderTask(e),n.contents.push(e),await n.emitter.once("queue_empty")}n.markAsEnded(),this.isRenderingMultiModConversation=!1,n.emitter.off("content_change",o),await this.emitter.emit("conversation_change",{...n.toJSON(),text:n.fulltext,completed:!0})},this.createNewAIWorkerConversation=async()=>{let e=this.conversationService;if(!e.currentAIWorkerConversation){let r=nz.create(this.opts);e.setCurrentConversation(r),e.add(r),await this.emitter.emit("conversation_add",r)}},this.handleAgentAnswerCompleted=async()=>{if(this.aiWorkerMessageCache){this.playFromStreamText(this.aiWorkerMessageCache,!0),this.aiWorkerMessageCache=null;return}this.agentService.setQueryId(""),this.asrService.tryUnmuteAsr(),await this.emitter.emit("asr_start")},this.handleAgentInstructionReceived=e=>{this.emitter.emit("instruction_received",e).catch(iA)},this.handleTtft=async e=>{let r=e.timestamp-this.queryStartTime;await this.emitter.emit("ttft",{...e,totalLatency:r})},this.handleAsrServiceStarted=async()=>{"baidu"===this.opts.asr.provider&&await sc(800),this.asrService.mute(!0),this.interruptible&&this.emitter.once("render_start").then(()=>{this.asrService.tryUnmuteAsr()})},this.handleAsrMessage=async e=>{this.digitalHumanService.isRendering&&!this.digitalHumanService.canInterrupt||this.asrService.mutedByUser||e.type===cp.EMessageType.Query&&(this.opts.enableDebugMode&&console.log("message",e,this.agentService.sessionId,Date.now()),await this.query(iz(e.data,this.opts.hotWordReplacementRules),e.completed))},this.handleDeviceCheckCompleted=async e=>{await this.emitter.emit("microphone_available",{available:e.available,error:e.error,userMessage:e.error?o8(e.error):void 0,devices:e.devices,permissionState:e.permissionState})},this.handleClientConversation=async e=>{let r=this.conversationService;if(!r.currentClientConversation){let e=iJ.create(this.opts);r.setCurrentConversation(e),r.add(e),await this.emitter.emit("conversation_add",e)}let i=r.currentClientConversation;(this.digitalHumanService.isRendering||this.isRenderingMultiModConversation)&&this.interruptAIWorkerConversation(),null==i||i.appendText(e)},this.handleClientConversationCompleted=()=>{this.conversationService.setCurrentConversation(null)},this.interruptAIWorkerConversation=()=>{for(let e of(this.aiWorkerMessageCache&&this.digitalHumanService.renderStreamText(this.aiWorkerMessageCache,!0),this.multiModAbortControllers))e.abort();this.multiModAbortControllers=[];let e=this.digitalHumanService.GetRequestId();this.digitalHumanService.interrupt(),this.conversationService.interruptAll(),this.agentService.abort(),this.aiWorkerMessageCache=null,this.emitter.emit("interrupt",{requestId:e,queryId:this.agentService.queryId?this.agentService.queryId:this.agentService.lastQueryId,sessionId:this.agentService.sessionId}).catch(iA)},this.checkServiceReady=()=>!!this.isDigitalHumanServiceReady&&!!this.isAsrServiceReady&&(this.emitter.emit("ready").catch(iA),!0),this.handleAIWorkerConversationChange=e=>{let r=i=>{this.emitter.emit("conversation_change",{...e.toJSON(),text:e.fulltext,completed:i.completed}).catch(iA),i.completed&&e.emitter.off("content_change",r)},i=()=>{e.emitter.off("interrupt",i),e.emitter.off("content_change",r)};e.emitter.on("content_change",r),e.emitter.on("interrupt",i)},this.weirwood=new o3({common:{buildid:"AAAS_PILOT_KIT_1.0.0",token:"8f3abab4743f4114bd632999224323af"},error:{collectWindowErrors:!1,collectUnhandledRejections:!1,collectResourceLoadErrors:!1,ignoreUrls:["localhost","127.0.0.1"]},perf:{disable:!0}}),this.emitter=new rd(this.opts.enableDebugMode?{debug:{name:sC.ENTRY_EMITTER_NAME,enabled:!0}}:void 0),this.bindEvents(),this.registerFormatters(),this.interruptible=this.opts.interruptible}}sC=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),sS(0,ev(ru.IOptions)),sS(0,eR()),sS(1,ev(ru.ErrorManager)),sS(2,ev(ru.AgentService)),sS(3,ev(ru.ASRService)),sS(4,ev(ru.DigitalHumanService)),sS(5,ev(ru.ConversationService)),sb("design:type",Function),sb("design:paramtypes",["undefined"==typeof IResolvedOptions?Object:IResolvedOptions,void 0===iP?Object:iP,"undefined"==typeof AS?Object:AS,void 0===sn?Object:sn,void 0===sa?Object:sa,void 0===nq?Object:nq])],sC);let sw=[239,187,191],sR=e=>async(r,i,n)=>{if(!n.ok||!n.body)return;let o=!1,s=r=>{var i;o||(o=!0,null==(i=e.onCompleted)||i.call(e,r))},a=n.body.getReader(),c=new TextDecoder("utf8"),d=function(e){let r,i,n,o,s,a,c;return d(),{feed:function(d){var l;i=i?i+d:d,r&&(l=i,sw.every((e,r)=>l.charCodeAt(r)===e))&&(i=i.slice(sw.length)),r=!1;let u=i.length,p=0,h=!1;for(;p<u;){let r;h&&("\n"===i[p]&&++p,h=!1);let d=-1,l=o;for(let e=n;d<0&&e<u;++e)":"===(r=i[e])&&l<0?l=e-p:"\r"===r?(h=!0,d=e-p):"\n"===r&&(d=e-p);if(d<0){n=u-p,o=l;break}n=0,o=-1,function(r,i,n,o){if(0===o){c.length>0&&(e({type:"event",id:s,event:a||void 0,data:c.slice(0,-1)}),c="",s=void 0),a=void 0;return}let d=n<0,l=r.slice(i,i+(d?o:n)),u=0;u=d?o:" "===r[i+n+1]?n+2:n+1;let p=i+u,h=o-u,f=r.slice(p,p+h).toString();if("data"===l)c+=f?"".concat(f,"\n"):"\n";else if("event"===l)a=f;else if("id"!==l||f.includes("\0")){if("retry"===l){let r=parseInt(f,10);Number.isNaN(r)||e({type:"reconnect-interval",value:r})}}else s=f}(i,p,l,d),p+=d+1}p===u?i="":p>0&&(i=i.slice(p))},reset:d};function d(){r=!0,i="",n=0,o=-1,s=void 0,a=void 0,c=""}}(r=>{var i,n,o;if("event"===r.type&&(null==(i=e.onMessage)||i.call(e,r)),"event"===r.type&&r.data)for(let i of(null==(n=e.onEvent)||n.call(e,r),r.data.split("\n")))e.onData(i);else"reconnect-interval"===r.type&&(null==(o=e.onReconnectInterval)||o.call(e,r.value))}),l=()=>{a.read().then(e=>{e.done?s():(d.feed(c.decode(e.value,{stream:!0})),l())}).catch(i=>{var n;if(r.signal.aborted){null==(n=e.onAborted)||n.call(e);return}s(i)})};return l(),n};(cv=(cf=cC||(cC={})).EAiobAction||(cf.EAiobAction={}))[cv.silence=1]="silence",cv[cv.Interrupt=2]="Interrupt",cv[cv.Hangup=3]="Hangup",(cm=cf.EResponseType||(cf.EResponseType={}))[cm.Welcome=1]="Welcome",cm[cm.Normal=2]="Normal",cm[cm.Command=3]="Command",cm[cm.TakeOver=4]="TakeOver",(cg=cf.ETextType||(cf.ETextType={}))[cg.unit=0]="unit",cg[cg.llm=1]="llm";class s_ extends iL{static #z=this.REQUEST_URI="aicc-service/aiob-server/text/stream/query2";constructor(...e){super(...e),this.query=async e=>{this.resetTtftFlag(),this.abortController=new AbortController;let r=sR({onData:e=>{try{let r=JSON.parse(e);this.onResponse(r);let{answer:i,sessionId:n,action:o}=r;if(n&&(this.conversationSessionId=n),o===cC.EAiobAction.Hangup)return void this.onHangup({sessionId:this.conversationSessionId});i&&!this.hasTtftEmitted&&this.onTtft({sessionId:this.conversationSessionId,queryId:this.queryId,firstToken:i,timestamp:performance.now()}),i&&this.onData({sessionId:this.conversationSessionId,answer:i})}catch(e){e instanceof Error&&this.errorManager.handleError(new rY(e.message,{sessionId:this.conversationSessionId}))}},onCompleted:()=>{this.onCompleted({sessionId:this.conversationSessionId})}}),i=this.opts.agentConfig;if(!(null==i?void 0:i.robotId))return void this.errorManager.handleError(new rQ(`调用 Agent API ${s_.REQUEST_URI} 时必须传入 robotId 参数,请确认后重试。`));let n={query:e,sessionId:this.conversationSessionId,robotId:i.robotId,isComplete:1,queryId:this.queryId};try{var o;await this.request.client.post(s_.REQUEST_URI,{retry:0,timeout:3e5,signal:null==(o=this.abortController)?void 0:o.signal,hooks:{afterResponse:[r]},json:{...n}})}catch(e){e instanceof rF?this.onTimeout({sessionId:this.conversationSessionId}):e instanceof Error&&this.errorManager.handleError(new rZ(e.message,{sessionId:this.conversationSessionId}))}},this.hangup=async()=>{let e=this.opts.agentConfig;if(!(null==e?void 0:e.robotId))return void await this.errorManager.handleError(new rQ(`调用 Agent API ${s_.REQUEST_URI} 时必须传入 robotId 参数,请确认后重试。`));let r={query:"",robotId:e.robotId,sessionId:this.conversationSessionId,action:cC.EAiobAction.Hangup,isComplete:1};try{await this.request.client.post(s_.REQUEST_URI,{retry:0,timeout:3e5,json:{...r},keepalive:!0})}catch(e){e instanceof Error&&this.errorManager.handleError(new rZ(e.message,{sessionId:this.conversationSessionId}))}},this.dispose=()=>{this._dispose(),this.hangup().finally(()=>{this.conversationSessionId=""})}}}s_=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],s_),(cb=(cy=cw||(cw={})).EReplyType||(cy.EReplyType={}))[cb.PlainText=1]="PlainText",cb[cb.RichText=3]="RichText",cb[cb.Image=4]="Image",cb[cb.List=8]="List",cy.REPLY_TYPE_MAPPING={1:"plainText",3:"richText",8:"list",4:"image"};class sT extends iL{static #z=this.REQUEST_URI="csp-service/online/core/v5/stream/query";constructor(...e){super(...e),this.query=async e=>{var r,i;this.resetTtftFlag(),this.abortController=new AbortController;let n=sR({onData:e=>{try{var r,i;let n=JSON.parse(e);this.onResponse(n);let o=n.answer[0],s=null!=(i=null==(r=o.reply)?void 0:r.text)?i:"";s&&!this.hasTtftEmitted&&this.onTtft({sessionId:this.conversationSessionId,queryId:this.queryId,firstToken:s,timestamp:performance.now()}),o&&s?this.onData({sessionId:this.conversationSessionId,answer:s}):o&&o.instruction&&(function(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;let r=Object.getPrototypeOf(e);return null===r||!!(Object.prototype.hasOwnProperty.call(r,"constructor")&&"function"==typeof r.constructor)&&Function.prototype.toString.call(r.constructor)===Function.prototype.toString.call(Object)}(o.instruction)?this.onInstructionReceived({sessionId:this.conversationSessionId,instruction:o.instruction}):this.errorManager.handleError(new r0("指令格式非法,请检查后重试",{sessionId:this.conversationSessionId})))}catch(e){e instanceof Error&&this.errorManager.handleError(new rY(e.message,{sessionId:this.conversationSessionId}))}},onCompleted:()=>{this.onCompleted({sessionId:this.conversationSessionId})}});this.conversationSessionId||(this.conversationSessionId=ix());let o=null==(r=this.opts.agentConfig)?void 0:r.token;if(!o)return void this.errorManager.handleError(new rQ(`调用 Agent API ${sT.REQUEST_URI} 时必须传入 token 参数,请确认后重试。`));let s={queryText:e,sessionId:this.conversationSessionId};try{await this.request.client.post(sT.REQUEST_URI,{headers:{token:o},retry:0,timeout:3e5,signal:null==(i=this.abortController)?void 0:i.signal,hooks:{afterResponse:[n]},json:{...s}})}catch(e){e instanceof rF?this.onTimeout({sessionId:this.conversationSessionId}):e instanceof Error&&this.errorManager.handleError(new rZ(e.message,{sessionId:this.conversationSessionId}))}},this.dispose=()=>{this._dispose()}}}function sE(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function sP(e,r){return function(i,n){r(i,n,e)}}sT=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],sT);class sI{constructor(e,r){this.opts=e,this.errorManager=r,this.started=!1,this.sessionId="",this._dispose=()=>{this.started=!1,this.sessionId=""}}}sI=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),sP(0,ev(ru.IOptions)),sP(0,eR()),sP(1,ev(ru.ErrorManager)),sE("design:type",Function),sE("design:paramtypes",["undefined"==typeof IResolvedOptions?Object:IResolvedOptions,void 0===iP?Object:iP])],sI);let sk=e=>{if(e)return"string"==typeof e?e:e.id};class sO extends sI{static #z=this.ONLINE_PREFIX_URL="https://ky.cloud.baidu.com/employee-console";static #ef=this.SANDBOX_PREFIX_URL="https://ai.agent.kaywang.cn/api";static #eX=this.AUTH_URL="https://ky.cloud.baidu.com/employee-console/v1/access/r/ai-agent/get-authorization";get prefixUrl(){return"production"===this.opts.env?sO.ONLINE_PREFIX_URL:sO.SANDBOX_PREFIX_URL}loginBRTC(e){if("function"!=typeof window.BRTC_Start)throw Error("BRTC_Start global function is missing. Ensure baidu.rtc.sdk.js is loaded.");let r={aspublisher:!0,usingdatachannel:!0,usingvideo:!1,usingaudio:!0,showvideobps:!1,autosubscribe:!0,autoplaymuted:!1,autopublish:!0,showspinner:!1,shownovideo:!1,userevent:!0,sessionevent:!0,logintimeout:1e4,linkdownevent:iA,linkupevent:iA,logintimeoutevent:iA,mediastate:iA,remotevideoon:iA,remotevideooff:iA,remotevideocoming:iA,remotevideoloading:iA,remotevideoconnected_state:iA,remotevideoleaving:iA,remotevideounpublished:iA,localvideoconnected_state:iA,localvideopublished_ok:iA,destroyed:iA,onlocalstream:iA,onlocalstream_end:iA,remotevideo_closed:iA,onmessage:e.onmessage,userevent_joinedroom:e.userevent_joinedroom,userevent_leavingroom:e.userevent_leavingroom,remotemediastating:e.remotemediastating,remotevideoviewid:sk(e.remotevideoviewid),localvideoviewid:sk(e.localvideoviewid)};window.BRTC_Start({...r,...e})}constructor(...e){super(...e),this.currentAppId="",this.Start=async e=>{var r,i,n,o,s;this.currentAppId=this.opts.rtcID;let a=this.prefixUrl,c={};"production"===this.opts.env&&(c.authorization=await this.getAuthToken("/api/v1/aiagent/generateAIAgentCall"));let d="production"===this.opts.env?"/v1/open/ai-agent/generateAIAgentCall":"/v1/aiagent/generateAIAgentCall",l=await rW.post(`${a}${d}`,{json:{app_id:this.currentAppId,quick_start:!0,config:JSON.stringify({...e.cfg})},headers:c}).json();if(!l.ai_agent_instance_id)throw Error("ai_agent_instance_id missing in response");this.started=!0,this.sessionId=l.ai_agent_instance_id;let u=this.sessionId,p=null!=(s=null==(r=l.context)?void 0:r.token)?s:"";(null==(i=l.context)?void 0:i.uid)&&(u=l.context.uid),(null==(n=l.context)?void 0:n.appid)&&(this.currentAppId=l.context.appid),this.loginBRTC({...e,appid:this.currentAppId,roomname:this.sessionId,userid:u,token:p}),null==(o=e.success)||o.call(e)},this.Stop=async()=>{if(this.started){this.started=!1;try{let e=this.prefixUrl,r={};"production"===this.opts.env&&(r.authorization=await this.getAuthToken("/api/v1/aiagent/stopAIAgentInstance"));let i="production"===this.opts.env?"/v1/open/ai-agent/stopAIAgentInstance":"/v1/aiagent/stopAIAgentInstance";await rW.post(`${e}${i}`,{json:{app_id:this.currentAppId,ai_agent_instance_id:this.sessionId},headers:r})}catch(e){if(e instanceof rp)throw Error(`stopAIAgentInstance failed (${e.response.status})`);throw e}"function"==typeof window.BRTC_Stop&&window.BRTC_Stop()}},this.Mute=e=>{"function"==typeof window.BRTC_MuteMicphone&&window.BRTC_MuteMicphone(e)},this.GetSessionID=()=>this.sessionId,this.Dispose=()=>{this._dispose()},this.getAuthToken=async e=>{try{let{data:r}=await rW.post(sO.AUTH_URL,{json:{http_method:"POST",path:e,headers:{host:"rtc-aiagent.baidubce.com"}}}).json();return r}catch(e){if(e instanceof rp)throw Error(`getAuthToken failed (${e.response.status})`);throw e}}}}sO=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],sO);class sx extends sI{async Start(e){this.sessionId=`noop-${Date.now()}`,this.started=!0}async Stop(){this.sessionId="",this.started=!1}Dispose(){this._dispose()}Mute(e){}GetSessionID(){return this.sessionId}}sx=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey()],sx),S("../../node_modules/baidurtc/dist/baidu.rtc.sdk.js");let sA=!0,sM=!0;function sj(e,r,i){let n=e.match(r);return n&&n.length>=i&&parseFloat(n[i],10)}function sD(e,r,i){if(!e.RTCPeerConnection)return;let n=e.RTCPeerConnection.prototype,o=n.addEventListener;n.addEventListener=function(e,n){if(e!==r)return o.apply(this,arguments);let s=e=>{let r=i(e);r&&(n.handleEvent?n.handleEvent(r):n(r))};return this._eventMap=this._eventMap||{},this._eventMap[r]||(this._eventMap[r]=new Map),this._eventMap[r].set(n,s),o.apply(this,[e,s])};let s=n.removeEventListener;n.removeEventListener=function(e,i){if(e!==r||!this._eventMap||!this._eventMap[r]||!this._eventMap[r].has(i))return s.apply(this,arguments);let n=this._eventMap[r].get(i);return this._eventMap[r].delete(i),0===this._eventMap[r].size&&delete this._eventMap[r],0===Object.keys(this._eventMap).length&&delete this._eventMap,s.apply(this,[e,n])},Object.defineProperty(n,"on"+r,{get(){return this["_on"+r]},set(e){this["_on"+r]&&(this.removeEventListener(r,this["_on"+r]),delete this["_on"+r]),e&&this.addEventListener(r,this["_on"+r]=e)},enumerable:!0,configurable:!0})}function sN(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(sA=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function sB(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(sM=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function sL(){"object"==typeof window&&(sA||"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments))}function sF(e,r){sM&&console.warn(e+" is deprecated, please use "+r+" instead.")}function sz(e){return"[object Object]"===Object.prototype.toString.call(e)}function sU(e,r,i){let n=i?"outbound-rtp":"inbound-rtp",o=new Map;if(null===r)return o;let s=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===r.id&&s.push(e)}),s.forEach(r=>{e.forEach(i=>{i.type===n&&i.trackId===r.id&&function e(r,i,n){!i||n.has(i.id)||(n.set(i.id,i),Object.keys(i).forEach(o=>{o.endsWith("Id")?e(r,r.get(i[o]),n):o.endsWith("Ids")&&i[o].forEach(i=>{e(r,r.get(i),n)})}))}(e,i,o)})}),o}function sH(e,r){let i=e&&e.navigator;if(!i.mediaDevices)return;let n=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;let r={};return Object.keys(e).forEach(i=>{if("require"===i||"advanced"===i||"mediaSource"===i)return;let n="object"==typeof e[i]?e[i]:{ideal:e[i]};void 0!==n.exact&&"number"==typeof n.exact&&(n.min=n.max=n.exact);let o=function(e,r){return e?e+r.charAt(0).toUpperCase()+r.slice(1):"deviceId"===r?"sourceId":r};if(void 0!==n.ideal){r.optional=r.optional||[];let e={};"number"==typeof n.ideal?(e[o("min",i)]=n.ideal,r.optional.push(e),(e={})[o("max",i)]=n.ideal):e[o("",i)]=n.ideal,r.optional.push(e)}void 0!==n.exact&&"number"!=typeof n.exact?(r.mandatory=r.mandatory||{},r.mandatory[o("",i)]=n.exact):["min","max"].forEach(e=>{void 0!==n[e]&&(r.mandatory=r.mandatory||{},r.mandatory[o(e,i)]=n[e])})}),e.advanced&&(r.optional=(r.optional||[]).concat(e.advanced)),r},o=function(e,o){if(r.version>=61)return o(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){let r=function(e,r,i){r in e&&!(i in e)&&(e[i]=e[r],delete e[r])};r((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),r(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=n(e.audio)}if(e&&"object"==typeof e.video){let s=e.video.facingMode;s=s&&("object"==typeof s?s:{ideal:s});let a=r.version<66;if(s&&("user"===s.exact||"environment"===s.exact||"user"===s.ideal||"environment"===s.ideal)&&!(i.mediaDevices.getSupportedConstraints&&i.mediaDevices.getSupportedConstraints().facingMode&&!a)){let r;if(delete e.video.facingMode,"environment"===s.exact||"environment"===s.ideal?r=["back","rear"]:("user"===s.exact||"user"===s.ideal)&&(r=["front"]),r)return i.mediaDevices.enumerateDevices().then(i=>{let a=(i=i.filter(e=>"videoinput"===e.kind)).find(e=>r.some(r=>e.label.toLowerCase().includes(r)));return!a&&i.length&&r.includes("back")&&(a=i[i.length-1]),a&&(e.video.deviceId=s.exact?{exact:a.deviceId}:{ideal:a.deviceId}),e.video=n(e.video),sL("chrome: "+JSON.stringify(e)),o(e)})}e.video=n(e.video)}return sL("chrome: "+JSON.stringify(e)),o(e)},s=function(e){return r.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,r,n){o(e,e=>{i.webkitGetUserMedia(e,r,e=>{n&&n(s(e))})})}).bind(i),i.mediaDevices.getUserMedia){let e=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(r){return o(r,r=>e(r).then(e=>{if(r.audio&&!e.getAudioTracks().length||r.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(s(e))))}}}function sq(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function sW(e){if("object"!=typeof e||!e.RTCPeerConnection||"ontrack"in e.RTCPeerConnection.prototype)sD(e,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e));else{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});let r=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=r=>{r.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};let o=new Event("track");o.track=i.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[r.stream],this.dispatchEvent(o)}),r.stream.getTracks().forEach(i=>{let n;n=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===i.id):{track:i};let o=new Event("track");o.track=i,o.receiver=n,o.transceiver={receiver:n},o.streams=[r.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),r.apply(this,arguments)}}}function sV(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){let r=function(e,r){return{track:r,get dtmf(){return void 0===this._dtmf&&("audio"===r.kind?this._dtmf=e.createDTMFSender(r):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()};let i=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){let o=i.apply(this,arguments);return o||(o=r(this,e),this._senders.push(o)),o};let n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){n.apply(this,arguments);let r=this._senders.indexOf(e);-1!==r&&this._senders.splice(r,1)}}let 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(r(this,e))})};let n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach(e=>{let r=this._senders.find(r=>r.track===e);r&&this._senders.splice(this._senders.indexOf(r),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)){let r=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let e=r.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 sG(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){let r=e.RTCPeerConnection.prototype.getSenders;r&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){let e=this;return this._pc.getStats().then(r=>sU(r,e.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){let r=e.RTCPeerConnection.prototype.getReceivers;r&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e}),sD(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){let e=this;return this._pc.getStats().then(r=>sU(r,e.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;let r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let e,r,i,n=arguments[0];return(this.getSenders().forEach(r=>{r.track===n&&(e?i=!0:e=r)}),this.getReceivers().forEach(e=>(e.track===n&&(r?i=!0:r=e),e.track===n)),i||e&&r)?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):e?e.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return r.apply(this,arguments)}}function sK(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};let r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){if(!i)return r.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let n=r.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};let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(r=>r.track===e))throw new DOMException("Track already exists.","InvalidAccessError")});let r=this.getSenders();i.apply(this,arguments);let n=this.getSenders().filter(e=>-1===r.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(n)};let 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)};let o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(r=>{let i=this._shimmedLocalStreams[r].indexOf(e);-1!==i&&this._shimmedLocalStreams[r].splice(i,1),1===this._shimmedLocalStreams[r].length&&delete this._shimmedLocalStreams[r]}),o.apply(this,arguments)}}function sJ(e,r){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&r.version>=65)return sK(e);let i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let e=i.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(r){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.getTracks().forEach(e=>{if(this.getSenders().find(r=>r.track===e))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[r.id]){let i=new e.MediaStream(r.getTracks());this._streams[r.id]=i,this._reverseStreams[i.id]=r,r=i}n.apply(this,[r])};let o=e.RTCPeerConnection.prototype.removeStream;function s(e,r){let i=r.sdp;return Object.keys(e._reverseStreams||[]).forEach(r=>{let n=e._reverseStreams[r],o=e._streams[n.id];i=i.replace(RegExp(o.id,"g"),n.id)}),new RTCSessionDescription({type:r.type,sdp:i})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},o.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(r,i){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let n=[].slice.call(arguments,1);if(1!==n.length||!n[0].getTracks().find(e=>e===r))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===r))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let o=this._streams[i.id];if(o)o.addTrack(r),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let n=new e.MediaStream([r]);this._streams[i.id]=n,this._reverseStreams[n.id]=i,this.addStream(n)}return this.getSenders().find(e=>e.track===r)},["createOffer","createAnswer"].forEach(function(r){let i=e.RTCPeerConnection.prototype[r];e.RTCPeerConnection.prototype[r]=({[r](){let e=arguments,r=arguments.length&&"function"==typeof arguments[0];return r?i.apply(this,[r=>{let i=s(this,r);e[0].apply(null,[i])},r=>{e[1]&&e[1].apply(null,r)},arguments[2]]):i.apply(this,arguments).then(e=>s(this,e))}})[r]});let a=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){var e,r;let i;return arguments.length&&arguments[0].type?(arguments[0]=(e=this,r=arguments[0],i=r.sdp,Object.keys(e._reverseStreams||[]).forEach(r=>{let n=e._reverseStreams[r],o=e._streams[n.id];i=i.replace(RegExp(n.id,"g"),o.id)}),new RTCSessionDescription({type:r.type,sdp:i})),a.apply(this,arguments)):a.apply(this,arguments)};let c=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let e=c.get.apply(this);return""===e.type?e:s(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){let r;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");this._streams=this._streams||{},Object.keys(this._streams).forEach(i=>{this._streams[i].getTracks().find(r=>e.track===r)&&(r=this._streams[i])}),r&&(1===r.getTracks().length?this.removeStream(this._reverseStreams[r.id]):r.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function s$(e,r){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&r.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){let i=e.RTCPeerConnection.prototype[r];e.RTCPeerConnection.prototype[r]=({[r](){return arguments[0]=new("addIceCandidate"===r?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}})[r]})}function sX(e,r){sD(e,"negotiationneeded",e=>{let i=e.target;if(!(r.version<72)&&(!i.getConfiguration||"plan-b"!==i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e})}function sQ(e,r){let i=e&&e.navigator,n=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,r,n){sF("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(e).then(r,n)},!(r.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){let e=function(e,r,i){r in e&&!(i in e)&&(e[i]=e[r],delete e[r])},r=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(i){return"object"==typeof i&&"object"==typeof i.audio&&(e((i=JSON.parse(JSON.stringify(i))).audio,"autoGainControl","mozAutoGainControl"),e(i.audio,"noiseSuppression","mozNoiseSuppression")),r(i)},n&&n.prototype.getSettings){let r=n.prototype.getSettings;n.prototype.getSettings=function(){let i=r.apply(this,arguments);return e(i,"mozAutoGainControl","autoGainControl"),e(i,"mozNoiseSuppression","noiseSuppression"),i}}if(n&&n.prototype.applyConstraints){let r=n.prototype.applyConstraints;n.prototype.applyConstraints=function(i){return"audio"===this.kind&&"object"==typeof i&&(e(i=JSON.parse(JSON.stringify(i)),"autoGainControl","mozAutoGainControl"),e(i,"noiseSuppression","mozNoiseSuppression")),r.apply(this,[i])}}}}function sY(e,r){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(i){if(!(i&&i.video)){let 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:r}:i.video.mediaSource=r,e.navigator.mediaDevices.getUserMedia(i)})}function sZ(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 s0(e,r){if("object"!=typeof e||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),r.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){let i=e.RTCPeerConnection.prototype[r];e.RTCPeerConnection.prototype[r]=({[r](){return arguments[0]=new("addIceCandidate"===r?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}})[r]});let 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(){let[e,o,s]=arguments;return n.apply(this,[e||null]).then(e=>{if(r.version<53&&!o)try{e.forEach(e=>{e.type=i[e.type]||e.type})}catch(r){if("TypeError"!==r.name)throw r;e.forEach((r,n)=>{e.set(n,Object.assign({},r,{type:i[r.type]||r.type}))})}return e}).then(o,s)}}function s1(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;let r=e.RTCPeerConnection.prototype.getSenders;r&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let 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 s2(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;let r=e.RTCPeerConnection.prototype.getReceivers;r&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e}),sD(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function s3(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){sF("removeStream","removeTrack"),this.getSenders().forEach(r=>{r.track&&e.getTracks().includes(r.track)&&this.removeTrack(r)})})}function s4(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function s6(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let r=e.RTCPeerConnection.prototype.addTransceiver;r&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]);let i=(e=[...e]).length>0;i&&e.forEach(e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw RangeError("max_framerate must be >= 0.0")});let n=r.apply(this,arguments);if(i){let{sender:r}=n,i=r.getParameters();"encodings"in i&&(1!==i.encodings.length||0!==Object.keys(i.encodings[0]).length)||(i.encodings=e,r.sendEncodings=e,this.setParametersPromises.push(r.setParameters(i).then(()=>{delete r.sendEncodings}).catch(()=>{delete r.sendEncodings})))}return n})}function s5(e){if(!("object"==typeof e&&e.RTCRtpSender))return;let r=e.RTCRtpSender.prototype.getParameters;r&&(e.RTCRtpSender.prototype.getParameters=function(){let e=r.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function s8(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let r=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>r.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):r.apply(this,arguments)}}function s9(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let r=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>r.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):r.apply(this,arguments)}}function s7(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)){let r=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=>r.call(this,i,e)),e.getVideoTracks().forEach(i=>r.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]}),r.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);let r=this._localStreams.indexOf(e);if(-1===r)return;this._localStreams.splice(r,1);let i=e.getTracks();this.getSenders().forEach(e=>{i.includes(e.track)&&this.removeTrack(e)})})}}function ae(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);let r=new Event("addstream");r.stream=e,this.dispatchEvent(r)})})}});let r=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(r){r.streams.forEach(r=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(r)>=0)return;e._remoteStreams.push(r);let i=new Event("addstream");i.stream=r,e.dispatchEvent(i)})}),r.apply(e,arguments)}}}function at(e){if("object"!=typeof e||!e.RTCPeerConnection)return;let r=e.RTCPeerConnection.prototype,i=r.createOffer,n=r.createAnswer,o=r.setLocalDescription,s=r.setRemoteDescription,a=r.addIceCandidate;r.createOffer=function(e,r){let n=arguments.length>=2?arguments[2]:arguments[0],o=i.apply(this,[n]);return r?(o.then(e,r),Promise.resolve()):o},r.createAnswer=function(e,r){let i=arguments.length>=2?arguments[2]:arguments[0],o=n.apply(this,[i]);return r?(o.then(e,r),Promise.resolve()):o};let c=function(e,r,i){let n=o.apply(this,[e]);return i?(n.then(r,i),Promise.resolve()):n};r.setLocalDescription=c,r.setRemoteDescription=c=function(e,r,i){let n=s.apply(this,[e]);return i?(n.then(r,i),Promise.resolve()):n},r.addIceCandidate=function(e,r,i){let n=a.apply(this,[e]);return i?(n.then(r,i),Promise.resolve()):n}}function ar(e){let r=e&&e.navigator;if(r.mediaDevices&&r.mediaDevices.getUserMedia){let e=r.mediaDevices,i=e.getUserMedia.bind(e);r.mediaDevices.getUserMedia=e=>i(ai(e))}!r.getUserMedia&&r.mediaDevices&&r.mediaDevices.getUserMedia&&(r.getUserMedia=(function(e,i,n){r.mediaDevices.getUserMedia(e).then(i,n)}).bind(r))}function ai(e){return e&&void 0!==e.video?Object.assign({},e,{video:function e(r){return sz(r)?Object.keys(r).reduce(function(i,n){let o=sz(r[n]),s=o?e(r[n]):r[n],a=o&&!Object.keys(s).length;return void 0===s||a?i:Object.assign(i,{[n]:s})},{}):r}(e.video)}):e}function an(e){if(!e.RTCPeerConnection)return;let r=e.RTCPeerConnection;e.RTCPeerConnection=function(e,i){if(e&&e.iceServers){let r=[];for(let i=0;i<e.iceServers.length;i++){let n=e.iceServers[i];void 0===n.urls&&n.url?(sF("RTCIceServer.url","RTCIceServer.urls"),(n=JSON.parse(JSON.stringify(n))).urls=n.url,delete n.url,r.push(n)):r.push(e.iceServers[i])}e.iceServers=r}return new r(e,i)},e.RTCPeerConnection.prototype=r.prototype,"generateCertificate"in r&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>r.generateCertificate})}function ao(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 as(e){let r=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);let r=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&r?"sendrecv"===r.direction?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":"recvonly"===r.direction&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):!0!==e.offerToReceiveAudio||r||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);let 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 r.apply(this,arguments)}}function aa(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var ac=S("../../node_modules/sdp/sdp.js"),ad=S.n(ac);function al(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;let r=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){let i=new r(e),n=ad().parseCandidate(e.candidate);for(let 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 r(e)},e.RTCIceCandidate.prototype=r.prototype,sD(e,"icecandidate",r=>(r.candidate&&Object.defineProperty(r,"candidate",{value:new e.RTCIceCandidate(r.candidate),writable:"false"}),r))}function au(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||sD(e,"icecandidate",e=>{if(e.candidate){let r=ad().parseCandidate(e.candidate.candidate);"relay"===r.type&&(e.candidate.relayProtocol=({0:"tls",1:"tcp",2:"udp"})[r.priority>>24])}return e})}function ap(e,r){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});let i=function(e){if(!e||!e.sdp)return!1;let r=ad().splitSections(e.sdp);return r.shift(),r.some(e=>{let r=ad().parseMLine(e);return r&&"application"===r.kind&&-1!==r.protocol.indexOf("SCTP")})},n=function(e){let r=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===r||r.length<2)return -1;let i=parseInt(r[1],10);return i!=i?-1:i},o=function(e){let i=65536;return"firefox"===r.browser&&(i=r.version<57?-1===e?16384:0x7ffffff5:r.version<60?57===r.version?65535:65536:0x7ffffff5),i},s=function(e,i){let n=65536;"firefox"===r.browser&&57===r.version&&(n=65535);let o=ad().matchPrefix(e.sdp,"a=max-message-size:");return o.length>0?n=parseInt(o[0].substring(19),10):"firefox"===r.browser&&-1!==i&&(n=0x7ffffff5),n},a=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===r.browser&&r.version>=76){let{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(i(arguments[0])){let e,r=n(arguments[0]),i=o(r),a=s(arguments[0],r);e=0===i&&0===a?1/0:0===i||0===a?Math.max(i,a):Math.min(i,a);let c={};Object.defineProperty(c,"maxMessageSize",{get:()=>e}),this._sctp=c}return a.apply(this,arguments)}}function ah(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function r(e,r){let i=e.send;e.send=function(){let n=arguments[0],o=n.length||n.size||n.byteLength;if("open"===e.readyState&&r.sctp&&o>r.sctp.maxMessageSize)throw TypeError("Message too large (can send a maximum of "+r.sctp.maxMessageSize+" bytes)");return i.apply(e,arguments)}}let i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let e=i.apply(this,arguments);return r(e,this),e},sD(e,"datachannel",e=>(r(e.channel,e.target),e))}function af(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;let r=e.RTCPeerConnection.prototype;Object.defineProperty(r,"connectionState",{get(){return({completed:"connected",checking:"connecting"})[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(r,"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=>{let i=r[e];r[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{let r=e.target;if(r._lastConnectionState!==r.connectionState){r._lastConnectionState=r.connectionState;let i=new Event("connectionstatechange",e);r.dispatchEvent(i)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}})}function av(e,r){if(!e.RTCPeerConnection||"chrome"===r.browser&&r.version>=71||"safari"===r.browser&&r._safariVersion>=13.1)return;let i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(r){if(r&&r.sdp&&-1!==r.sdp.indexOf("\na=extmap-allow-mixed")){let i=r.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&r instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:r.type,sdp:i}):r.sdp=i}return i.apply(this,arguments)}}function am(e,r){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.addIceCandidate;i&&0!==i.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===r.browser&&r.version<78||"firefox"===r.browser&&r.version<68||"safari"===r.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function ag(e,r){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let 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}).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]))})}let ay=function({window:e}={},r={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){let i=function(e){let r={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return r.browser="Not a browser.",r;let{navigator:i}=e;if(i.userAgentData&&i.userAgentData.brands){let e=i.userAgentData.brands.find(e=>"Chromium"===e.brand);if(e)return{browser:"chrome",version:parseInt(e.version,10)}}return i.mozGetUserMedia?(r.browser="firefox",r.version=parseInt(sj(i.userAgent,/Firefox\/(\d+)\./,1))):i.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection?(r.browser="chrome",r.version=parseInt(sj(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2))):e.RTCPeerConnection&&i.userAgent.match(/AppleWebKit\/(\d+)\./)?(r.browser="safari",r.version=parseInt(sj(i.userAgent,/AppleWebKit\/(\d+)\./,1)),r.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype,r._safariVersion=sj(i.userAgent,/Version\/(\d+(\.?\d+))/,1)):r.browser="Not a supported browser.",r}(e),n={browserDetails:i,commonShim:_,extractVersion:sj,disableLog:sN,disableWarnings:sB,sdp:ac};switch(i.browser){case"chrome":if(!C||!s$||!r.shimChrome){sL("Chrome shim is not included in this adapter release.");break}if(null===i.version){sL("Chrome shim can not determine version, not shimming.");break}sL("adapter.js shimming chrome."),n.browserShim=C,am(e,i),ag(e,i),sH(e,i),sq(e,i),s$(e,i),sW(e,i),sJ(e,i),sV(e,i),sG(e,i),sX(e,i),al(e,i),au(e,i),af(e,i),ap(e,i),ah(e,i),av(e,i);break;case"firefox":if(!w||!s0||!r.shimFirefox){sL("Firefox shim is not included in this adapter release.");break}sL("adapter.js shimming firefox."),n.browserShim=w,am(e,i),ag(e,i),sQ(e,i),s0(e,i),sZ(e,i),s3(e,i),s1(e,i),s2(e,i),s4(e,i),s6(e,i),s5(e,i),s8(e,i),s9(e,i),al(e,i),af(e,i),ap(e,i),ah(e,i);break;case"safari":if(!R||!r.shimSafari){sL("Safari shim is not included in this adapter release.");break}sL("adapter.js shimming safari."),n.browserShim=R,am(e,i),ag(e,i),an(e,i),as(e,i),at(e,i),s7(e,i),ae(e,i),ao(e,i),ar(e,i),aa(e,i),al(e,i),au(e,i),ap(e,i),ah(e,i),av(e,i);break;default:sL("Unsupported browser!")}return n}({window:"undefined"==typeof window?void 0:window});(cS=cR||(cR={})).DEFAULT_BRTC_SDK_URL="https://brtc-sdk.cdn.bcebos.com/npm/baidurtc@1.2.19/baidu.rtc.sdk.js",cS.DEFAULT_BRTC_CLIENT_CONFIG={displayName:"AaaSPilot Kit",debugLevel:!1,rtcOptions:{},cfg:{tag:"H5.SDK",llm:"LLMMute",tts:"MUTE"},silenceTimeoutMs:1e4};let ab=e=>{if(e)return"string"==typeof e?e:e.id};class aS extends sn{static #z=this.MESSAGE_INTERVAL_THRESHOLD=5e3;preloadDeps(){if("undefined"==typeof window){let e="Window object not available";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}if(window.adapter||(window.adapter=null!=ay?ay:T),"function"!=typeof window.BRTC_Start){let e='RTC SDK not loaded. Ensure "baidurtc" is imported correctly.';return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}return Promise.resolve()}makeStartOptions(){return{...cR.DEFAULT_BRTC_CLIENT_CONFIG,cfg:{...cR.DEFAULT_BRTC_CLIENT_CONFIG.cfg,asr_vad:this.opts.asrVad,lang:(e=>{if(!e)return iH[iW];let r=iH[e];return r||(console.warn(`[AaaSPilotKit] 不支持的语言代码 "${e}",已自动回退到中文。支持的语言:${Object.keys(iH).join(", ")}`),iH[iW])})(this.opts.lang)}}}parseMessage(e){let r=e.replace(/\[Q\]:?|\[M\]:?|\[C\]:?|\[A\]:?|\[H\]:?|\[E\]:?|\[B\]:?|\[T\]:?/g,"").trim(),i=cp.EMessageType.Event,n=!0,o=!1;return o=e.includes("VOICE_COMING"),e.includes("[Q]")&&(i=cp.EMessageType.Query),e.includes("[E]")&&(i=cp.EMessageType.Event),n=!e.includes("[M]"),{type:i,continued:e.includes("[C]"),data:r,completed:n,isCollectingSounds:o}}constructor(...e){super(...e),this.silenceTimer=null,this.lastMessageTime=0,this.messageIntervalTimer=null,this.mediaStream=null,this.start=async()=>{if(this.started)return;if(this.opts.checkAudioDeviceBeforeStart){let r=await this.checkAudioDevice();if(!r.available){var e;let i={...r,userMessage:r.error?o8(r.error):void 0},n=null!=(e=this.opts.microphoneFailureHandling)?e:"error";if(!await this.handleMicrophoneCheckFailure(n,i,this.opts.onMicrophoneCheckFailed))throw new r8("音频设备检测失败,无法启动 ASR",{context:{checkResult:i}});this.disable()}}let{displayName:r,debugLevel:i,rtcOptions:{remoteVideoElement:n,localVideoElement:o},cfg:s,silenceTimeoutMs:a}=this.makeStartOptions();try{let e=await this.streamManager.getUserMedia();this.mediaStream=e.stream}catch(r){let e=r instanceof Error?r.message:String(r);throw new r8(`启用麦克风失败: ${e}。请确保已授予麦克风权限。`)}let c=await this.setupPlaybackSuppression(this.mediaStream,"[BRTCASR]");return new Promise((e,d)=>{this.signalingService.Start({debuglevel:i,cfg:s,stream:null!=c?c:void 0,displayname:r,remotevideoviewid:ab(n),localvideoviewid:ab(o),usingremotemediastate:!0,success:()=>{this.started=!0,this.emitter.emit("start",{sessionId:this.sessionId}).catch(iA),e()},error:e=>{this.errorManager.handleError(new ir(e||"",{sessionId:this.sessionId})),d(Error(e||""))},onmessage:e=>{try{let r=this.parseMessage(e.data);if(e.data.includes("VOICE_COMING")||(this.emitter.emitSerial("message",{...r,sessionId:this.sessionId}).catch(iA),this.checkMessageInterval(r)),0!==a){let i=""===r.data;(e.data.includes("[E]")||e.data.includes("VOICE_COMING"))&&i?this.triggerSilence():this.resetSilenceTimer()}}catch(e){e instanceof Error&&this.errorManager.handleError(new ie(e.message,{sessionId:this.sessionId}))}},userevent_joinedroom:(e,r,i)=>{this.emitter.emit("user_joined_room",{id:e,display:r,attribute:i,sessionId:this.sessionId})},userevent_leavingroom:(e,r)=>{this.emitter.emit("user_leaving_room",{id:e,display:r,sessionId:this.sessionId})},remotemediastating:(e,r,i)=>{this.emitter.emit("media_state_changed",{id:e,medium:r,on:i,sessionId:this.sessionId})}})})},this.stop=async()=>{try{await this._stop()}catch(e){e instanceof Error&&this.errorManager.handleError(new r9(e.message,{sessionId:this.sessionId}))}this.emitter.emit("stop",{sessionId:this.signalingService.GetSessionID()})},this.dispose=()=>{this._dispose(),this.silenceTimer&&(window.clearTimeout(this.silenceTimer),this.silenceTimer=null),this.messageIntervalTimer&&(window.clearTimeout(this.messageIntervalTimer),this.messageIntervalTimer=null),this.lastMessageTime=0,this.mediaStream=null},this.resetSilenceTimer=()=>{null!==this.silenceTimer&&window.clearTimeout(this.silenceTimer),this.silenceTimer=window.setTimeout(()=>{this.emitter.emit("silence",{sessionId:this.signalingService.GetSessionID()})},this.makeStartOptions().silenceTimeoutMs)},this.triggerSilence=()=>{this.emitter.emit("silence",{sessionId:this.signalingService.GetSessionID()}),this.resetSilenceTimer()},this.checkMessageInterval=e=>{let r=Date.now();if(e.completed){this.messageIntervalTimer&&(window.clearTimeout(this.messageIntervalTimer),this.messageIntervalTimer=null),this.lastMessageTime=0;return}if(0===this.lastMessageTime)this.lastMessageTime=r,this.messageIntervalTimer=window.setTimeout(()=>{this.errorManager.handleError(new it(`ASR消息间隔超过${aS.MESSAGE_INTERVAL_THRESHOLD}ms阈值`,{sessionId:this.sessionId,context:{lastMessageTime:this.lastMessageTime,currentTime:r,threshold:aS.MESSAGE_INTERVAL_THRESHOLD}}))},aS.MESSAGE_INTERVAL_THRESHOLD);else{let e=r-this.lastMessageTime;e>aS.MESSAGE_INTERVAL_THRESHOLD&&this.errorManager.handleError(new it(`ASR消息间隔${e}ms超过${aS.MESSAGE_INTERVAL_THRESHOLD}ms阈值`,{sessionId:this.sessionId,context:{lastMessageTime:this.lastMessageTime,currentTime:r,interval:e,threshold:aS.MESSAGE_INTERVAL_THRESHOLD}})),this.lastMessageTime=r,this.messageIntervalTimer&&window.clearTimeout(this.messageIntervalTimer),this.messageIntervalTimer=window.setTimeout(()=>{this.errorManager.handleError(new it(`ASR消息间隔超过${aS.MESSAGE_INTERVAL_THRESHOLD}ms阈值`,{sessionId:this.sessionId,context:{lastMessageTime:this.lastMessageTime,currentTime:Date.now(),threshold:aS.MESSAGE_INTERVAL_THRESHOLD}}))},aS.MESSAGE_INTERVAL_THRESHOLD)}}}}aS=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],aS);var aC=S("../../node_modules/microsoft-cognitiveservices-speech-sdk/distrib/lib/microsoft.cognitiveservices.speech.sdk.js");class aw extends sn{constructor(...e){super(...e),this.recognizer=null,this.mediaStream=null,this.preloadDeps=async()=>{if("undefined"==typeof window){let e="Window object not available";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}let e=this.opts.asr;if("azure"!==e.provider){let e=`AzureAsrService 只能在 asr.provider === "azure" 时使用, 当前配置为 ${this.opts.asr.provider}`;return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}if(!e.config){let e="Azure ASR 需要配置 azure 参数(subscriptionKey 和 region)";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}let{subscriptionKey:r,region:i}=e.config;if(!r||!i){let e="Azure ASR 配置缺少必填参数:subscriptionKey 或 region";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}return Promise.resolve()},this.start=async()=>{var e,r,i,n,o;if(this.started)return;if(this.opts.checkAudioDeviceBeforeStart){let e=await this.checkAudioDevice();if(!e.available)throw new r8("音频设备检测失败,无法启动 ASR",{context:{checkResult:e}})}if((null==(e=this.opts.asr)?void 0:e.provider)!=="azure")throw new r8('AzureAsrService 只能在 asr.provider === "azure" 时使用');let s=this.opts.asr.config,a=aC.SpeechConfig.fromSubscription(s.subscriptionKey,s.region);if(a.setProperty(aC.PropertyId.SpeechServiceConnection_InitialSilenceTimeoutMs,String(null!=(r=s.initialSilenceTimeoutMs)?r:3e4)),a.setProperty(aC.PropertyId.SpeechServiceConnection_EndSilenceTimeoutMs,String(null!=(i=s.endSilenceTimeoutMs)?i:3e4)),a.setProperty(aC.PropertyId.Speech_SegmentationSilenceTimeoutMs,String(null!=(n=s.segmentationSilenceTimeoutMs)?n:1e3)),s.enableAudioLogging&&a.enableAudioLogging(),s.customEndpointId&&(a.endpointId=s.customEndpointId),s.advancedConfig)for(let[e,r]of Object.entries(s.advancedConfig))a.setProperty(e,String(r));try{let e=await this.streamManager.getUserMedia();this.mediaStream=e.stream}catch(r){let e=r instanceof Error?r.message:String(r);throw new r8(`启用麦克风失败: ${e}。请确保已授予麦克风权限。`)}let c=await this.setupPlaybackSuppression(this.mediaStream,"[AzureASR]"),d=aC.AudioConfig.fromStreamInput(c),l=null!=(o=s.languages)?o:["en-US"];if(1===l.length)a.speechRecognitionLanguage=l[0],this.recognizer=new aC.SpeechRecognizer(a,d);else{let e=aC.AutoDetectSourceLanguageConfig.fromLanguages(l);this.recognizer=aC.SpeechRecognizer.FromConfig(a,e,d)}if(s.phraseList&&s.phraseList.length>0){let e=aC.PhraseListGrammar.fromRecognizer(this.recognizer);s.phraseList.forEach(r=>{e.addPhrase(r)}),s.phraseWeight}this.setupRecognizerEvents();let u=s.connectionTimeoutMs;await new Promise((e,r)=>{var i;let n=null;void 0!==u&&(n=setTimeout(()=>{r(new r8(`启动超时: WebSocket 连接在 ${u}ms 内未响应`))},u)),null==(i=this.recognizer)||i.startContinuousRecognitionAsync(()=>{null!==n&&clearTimeout(n),this.started=!0,e()},e=>{null!==n&&clearTimeout(n),r(new r8(`启动失败: ${e}`))})}),await this.emitter.emit("start",{sessionId:this.sessionId})},this.stop=async()=>{if(this.started&&this.recognizer)try{await new Promise(e=>{var r;null==(r=this.recognizer)||r.stopContinuousRecognitionAsync(()=>{var r;null==(r=this.recognizer)||r.close(),this.recognizer=null,this.started=!1,e()},r=>{var i;this.errorManager.handleError(new r9(`停止失败: ${r}`,{sessionId:this.sessionId})),null==(i=this.recognizer)||i.close(),this.recognizer=null,this.started=!1,e()})}),this.streamManager.cleanup(),this.mediaStream=null,await this.emitter.emit("stop",{sessionId:this.sessionId})}catch(e){e instanceof Error&&this.errorManager.handleError(new r9(e.message,{sessionId:this.sessionId}))}},this.mute=e=>{this.muted=e,this.streamManager.mute(e)},this.dispose=()=>{this._dispose(),this.recognizer&&(this.recognizer.close(),this.recognizer=null),this.streamManager.cleanup(),this.mediaStream=null,this.customSessionId=null},this.setupRecognizerEvents=()=>{this.recognizer&&(this.recognizer.recognizing=(e,r)=>{r.result.text&&""!==r.result.text.trim()&&this.emitter.emit("message",{type:cp.EMessageType.Query,data:r.result.text,continued:!1,completed:!1,isCollectingSounds:!0,sessionId:this.sessionId}).catch(iA)},this.recognizer.recognized=(e,r)=>{r.result.reason===aC.ResultReason.RecognizedSpeech?r.result.text&&""!==r.result.text.trim()&&this.emitter.emit("message",{type:cp.EMessageType.Query,data:r.result.text,continued:!1,completed:!0,isCollectingSounds:!1,sessionId:this.sessionId}).catch(iA):r.result.reason===aC.ResultReason.NoMatch&&this.emitter.emit("silence",{sessionId:this.sessionId}).catch(iA)},this.recognizer.sessionStarted=(e,r)=>{this.customSessionId=r.sessionId},this.recognizer.sessionStopped=(e,r)=>{this.emitter.emit("stop",{sessionId:this.sessionId}).catch(iA)},this.recognizer.canceled=(e,r)=>{let i=r.errorDetails,n=r.errorCode;this.errorManager.handleError(new r8(`Azure ASR 错误 [${n}]: ${i}`,{sessionId:this.sessionId,context:{errorCode:n,errorDetails:i,reason:r.reason}}))})}}}function aR(e,r){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),i.push.apply(i,n)}return i}function a_(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?aR(Object(i),!0).forEach(function(r){aA(e,r,i[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):aR(Object(i)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(i,r))})}return e}function aT(){aT=function(){return r};var e,r={},i=Object.prototype,n=i.hasOwnProperty,o=Object.defineProperty||function(e,r,i){e[r]=i.value},s="function"==typeof Symbol?Symbol:{},a=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",d=s.toStringTag||"@@toStringTag";function l(e,r,i){return Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{l({},"")}catch(e){l=function(e,r,i){return e[r]=i}}function u(r,i,n,s){var a,c,d,l,u=Object.create((i&&i.prototype instanceof g?i:g).prototype);return o(u,"_invoke",{value:(a=r,c=n,d=new I(s||[]),l=h,function(r,i){if(l===f)throw Error("Generator is already running");if(l===v){if("throw"===r)throw i;return{value:e,done:!0}}for(d.method=r,d.arg=i;;){var n=d.delegate;if(n){var o=function r(i,n){var o=n.method,s=i.iterator[o];if(s===e)return n.delegate=null,"throw"===o&&i.iterator.return&&(n.method="return",n.arg=e,r(i,n),"throw"===n.method)||"return"!==o&&(n.method="throw",n.arg=TypeError("The iterator does not provide a '"+o+"' method")),m;var a=p(s,i.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var c=a.arg;return c?c.done?(n[i.resultName]=c.value,n.next=i.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):c:(n.method="throw",n.arg=TypeError("iterator result is not an object"),n.delegate=null,m)}(n,d);if(o){if(o===m)continue;return o}}if("next"===d.method)d.sent=d._sent=d.arg;else if("throw"===d.method){if(l===h)throw l=v,d.arg;d.dispatchException(d.arg)}else"return"===d.method&&d.abrupt("return",d.arg);l=f;var s=p(a,c,d);if("normal"===s.type){if(l=d.done?v:"suspendedYield",s.arg===m)continue;return{value:s.arg,done:d.done}}"throw"===s.type&&(l=v,d.method="throw",d.arg=s.arg)}})}),u}function p(e,r,i){try{return{type:"normal",arg:e.call(r,i)}}catch(e){return{type:"throw",arg:e}}}r.wrap=u;var h="suspendedStart",f="executing",v="completed",m={};function g(){}function y(){}function b(){}var S={};l(S,a,function(){return this});var C=Object.getPrototypeOf,w=C&&C(C(k([])));w&&w!==i&&n.call(w,a)&&(S=w);var R=b.prototype=g.prototype=Object.create(S);function _(e){["next","throw","return"].forEach(function(r){l(e,r,function(e){return this._invoke(r,e)})})}function T(e,r){var i;o(this,"_invoke",{value:function(o,s){function a(){return new r(function(i,a){!function i(o,s,a,c){var d=p(e[o],e,s);if("throw"!==d.type){var l=d.arg,u=l.value;return u&&"object"==typeof u&&n.call(u,"__await")?r.resolve(u.__await).then(function(e){i("next",e,a,c)},function(e){i("throw",e,a,c)}):r.resolve(u).then(function(e){l.value=e,a(l)},function(e){return i("throw",e,a,c)})}c(d.arg)}(o,s,i,a)})}return i=i?i.then(a,a):a()}})}function E(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function P(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function k(r){if(r||""===r){var i=r[a];if(i)return i.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,s=function i(){for(;++o<r.length;)if(n.call(r,o))return i.value=r[o],i.done=!1,i;return i.value=e,i.done=!0,i};return s.next=s}}throw TypeError(typeof r+" is not iterable")}return y.prototype=b,o(R,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:y,configurable:!0}),y.displayName=l(b,d,"GeneratorFunction"),r.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===y||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,d,"GeneratorFunction")),e.prototype=Object.create(R),e},r.awrap=function(e){return{__await:e}},_(T.prototype),l(T.prototype,c,function(){return this}),r.AsyncIterator=T,r.async=function(e,i,n,o,s){void 0===s&&(s=Promise);var a=new T(u(e,i,n,o),s);return r.isGeneratorFunction(i)?a:a.next().then(function(e){return e.done?e.value:a.next()})},_(R),l(R,d,"Generator"),l(R,a,function(){return this}),l(R,"toString",function(){return"[object Generator]"}),r.keys=function(e){var r=Object(e),i=[];for(var n in r)i.push(n);return i.reverse(),function e(){for(;i.length;){var n=i.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},r.values=k,I.prototype={constructor:I,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(P),!r)for(var i in this)"t"===i.charAt(0)&&n.call(this,i)&&!isNaN(+i.slice(1))&&(this[i]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var i=this;function o(n,o){return c.type="throw",c.arg=r,i.next=n,o&&(i.method="next",i.arg=e),!!o}for(var s=this.tryEntries.length-1;s>=0;--s){var a=this.tryEntries[s],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var d=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(d&&l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(d){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,r){for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var s=o;break}}s&&("break"===e||"continue"===e)&&s.tryLoc<=r&&r<=s.finallyLoc&&(s=null);var a=s?s.completion:{};return a.type=e,a.arg=r,s?(this.method="next",this.next=s.finallyLoc,m):this.complete(a)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),m},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),P(i),m}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw Error("illegal catch attempt")},delegateYield:function(r,i,n){return this.delegate={iterator:k(r),resultName:i,nextLoc:n},"next"===this.method&&(this.arg=e),m}},r}function aE(e){return(aE="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function aP(e,r,i,n,o,s,a){try{var c=e[s](a),d=c.value}catch(e){return void i(e)}c.done?r(d):Promise.resolve(d).then(n,o)}function aI(e){return function(){var r=this,i=arguments;return new Promise(function(n,o){var s=e.apply(r,i);function a(e){aP(s,n,o,a,c,"next",e)}function c(e){aP(s,n,o,a,c,"throw",e)}a(void 0)})}}function ak(e,r){if(!(e instanceof r))throw TypeError("Cannot call a class as a function")}function aO(e,r){for(var i=0;i<r.length;i++){var n=r[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,aM(n.key),n)}}function ax(e,r,i){return r&&aO(e.prototype,r),i&&aO(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}function aA(e,r,i){return(r=aM(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e}function aM(e){var r=function(e,r){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,r||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:String(r)}aw=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],aw);var aj=S("../../node_modules/lodash/isString.js"),aD=S.n(aj),aN=S("../../node_modules/lodash/isObject.js"),aB=S.n(aN),aL=S("../../node_modules/lodash/cloneDeep.js"),aF=S.n(aL);class az{static isJsonStr(e){if(aD()(e))try{let r=JSON.parse(e);return!!aB()(r)}catch(e){}return!1}static parse(e){let r={};try{r=JSON.parse(e||"{}")}catch(r){console.error("JSON.parse Error:",e)}return r||{}}static stringify(e){let r="";try{r=JSON.stringify(e||{})}catch(r){console.error("JSON.stringify error:",e)}return r||"{}"}static getParseValue(e){try{return e&&aD()(e)?az.parse(e):e}catch(r){return console.info("JSON parse error",e),e}}static parseObj(e,r){let i=aF()(e);return r.forEach(r=>{if(Object.keys(e).includes(r))try{i[r]=az.parse(e[r]),console.log(r,i[r])}catch(e){console.error(`Failed to parse JSON for key "${r}":`,e)}}),i}static stringifyObj(e,r){let i=aF()(e);return r.forEach(r=>{Object.keys(e).includes(r)&&(i[r]=az.stringify(e[r]))}),i}}var aU,aH,aq,aW,aV,aG,aK,aJ,a$,aX,aQ,aY,aZ,a0,a1,a2,a3,a4,a6,a5,a8,a9,a7,ce,ct,cr,ci,cn,co,cs,ca,cc,cd,cl,cu,cp,ch,cf,cv,cm,cg,cy,cb,cS,cC,cw,cR,c_,cT,cE=S("../../node_modules/lodash/isEmpty.js"),cP=S.n(cE),cI=S("../../node_modules/lodash/omit.js"),ck=S.n(cI),cO=S("../../node_modules/lodash/pick.js"),cx=S.n(cO),cA=["projectId","characterConfigId","configVersion","selectors","figureName","reConnect"];(s=c_||(c_={})).DH_LIB_INIT="DH_LIB_INIT",s.DH_LIB_WS_SUCCESS="DH_LIB_WS_SUCCESS",s.DH_LIB_OPEN="DH_LIB_OPEN",s.DH_LIB_STATUS="DH_LIB_STATUS",s.DH_LIB_CLOSE="DH_LIB_CLOSE",s.DH_LIB_ERROR="DH_LIB_ERROR",s.DH_LIB_WARNING="DH_LIB_WARNING",s.DH_LIB_FULL_STATUS="DH_LIB_FULL_STATUS",s.DH_LIB_MESSAGE="DH_LIB_MESSAGE",(a=cT||(cT={})).CONNECT_ERROR="CONNECT_ERROR",a.DISCONNECT_ALERT="DISCONNECT_ALERT",a.TIMEOUT_EXIT="TIMEOUT_EXIT",a.LOCAL_VIDEO_MUTED="LOCAL_VIDEO_MUTED",a.LOCAL_VIDEO_ERROR="LOCAL_VIDEO_ERROR",a.RTC_ERROR="RTC_ERROR";var cM={"-1":"UNINSTANTIATED",0:"CONNECTING",1:"OPEN",2:"CLOSING",3:"CLOSED"},cj=S("../../node_modules/fast-unique-numbers/build/es5/bundle.js");let cD=(c=e=>{let r=new Map([[0,()=>{}]]),i=new Map([[0,()=>{}]]),n=new Map,o=new Worker(e);return o.addEventListener("message",({data:e})=>{if(void 0!==e.method&&"call"===e.method){let{params:{timerId:o,timerType:s}}=e;if("interval"===s){let e=r.get(o);if("number"==typeof e){let r=n.get(e);if(void 0===r||r.timerId!==o||r.timerType!==s)throw Error("The timer is in an undefined state.")}else if(void 0!==e)e();else throw Error("The timer is in an undefined state.")}else if("timeout"===s){let e=i.get(o);if("number"==typeof e){let r=n.get(e);if(void 0===r||r.timerId!==o||r.timerType!==s)throw Error("The timer is in an undefined state.")}else if(void 0!==e)e(),i.delete(o);else throw Error("The timer is in an undefined state.")}}else if(null===e.error&&"number"==typeof e.id){let{id:o}=e,s=n.get(o);if(void 0===s)throw Error("The timer is in an undefined state.");let{timerId:a,timerType:c}=s;n.delete(o),"interval"===c?r.delete(a):i.delete(a)}else{let{error:{message:r}}=e;throw Error(r)}}),{clearInterval:e=>{let i=(0,cj.generateUniqueNumber)(n);n.set(i,{timerId:e,timerType:"interval"}),r.set(e,i),o.postMessage({id:i,method:"clear",params:{timerId:e,timerType:"interval"}})},clearTimeout:e=>{let r=(0,cj.generateUniqueNumber)(n);n.set(r,{timerId:e,timerType:"timeout"}),i.set(e,r),o.postMessage({id:r,method:"clear",params:{timerId:e,timerType:"timeout"}})},setInterval:(e,i=0)=>{let n=(0,cj.generateUniqueNumber)(r);return r.set(n,()=>{e(),"function"==typeof r.get(n)&&o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}})}),o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}}),n},setTimeout:(e,r=0)=>{let n=(0,cj.generateUniqueNumber)(i);return i.set(n,e),o.postMessage({id:null,method:"set",params:{delay:r,now:performance.now(),timerId:n,timerType:"timeout"}}),n}}},o=null,()=>{if(null!==o)return o;let e=new Blob(['(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error(\'There is no interval scheduled with the given id "\'.concat(t,\'".\'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error(\'The given type "\'.concat(i,\'" is not supported\'));(e=>{const r=t.get(e);if(void 0===r)throw new Error(\'There is no timeout scheduled with the given id "\'.concat(e,\'".\'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error(\'The given method "\'.concat(s.method,\'" is not supported\'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error(\'The given type "\'.concat(d,\'" is not supported\'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();'],{type:"application/javascript; charset=utf-8"}),r=URL.createObjectURL(e);return o=c(r),setTimeout(()=>URL.revokeObjectURL(r)),o}),cN=(...e)=>cD().setTimeout(...e);(d=f||(f={}))[d.UNINSTANTIATED=-1]="UNINSTANTIATED",d[d.CONNECTING=0]="CONNECTING",d[d.OPEN=1]="OPEN",d[d.CLOSING=2]="CLOSING",d[d.CLOSED=3]="CLOSED",(l=v||(v={}))[l.CLOSE_INTERRUPT_WITH_NEW_URL=4e3]="CLOSE_INTERRUPT_WITH_NEW_URL";var cB=S("../../node_modules/lodash/get.js"),cL=S.n(cB),cF=function(e){function r(e){var i,n=this;ak(this,r),aA(this,"dhServerSocket",null),aA(this,"preConnectSuccess",!1),aA(this,"connectParams",null),aA(this,"socketClosingPromise",null),aA(this,"url",void 0),aA(this,"firstConnect",!0),aA(this,"sendPreConnect",function(e,r){var i,o=e.token,s=e.sessionId,a=e.onConnect;null==(i=n.dhServerSocket)||i.request({action:"RE_CONNECT",requestId:ix(),body:JSON.stringify({token:o,sessionId:s})}).on(function(e,i){null==a||a(e),0!==e.code&&(i(),n.handleConnect()),null==r||r(n.dhServerSocket)}),n.firstConnect=!1}),aA(this,"createSocket",function(e,r){return(i=i||aI(aT().mark(function e(r,i){var o,s;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.connectParams=r,o=r.sessionId,s=r.onDigitalHumanCallback,!n.socketClosingPromise){e.next=5;break}return e.next=5,n.socketClosingPromise;case 5:if(!n.dhServerSocket){e.next=8;break}return e.next=8,n.closeSocket();case 8:return e.abrupt("return",new Promise(function(e,a){var c={keepAlive:"heartbeat",reopen:cL()(n.connectParams,"reConnect",!0),combine:function(e,r){return e&&r&&e.requestId===r.requestId},onOpen:function(){n.dhServerSocket=d,o&&n.firstConnect?n.sendPreConnect(r,e):i&&n.firstConnect||n.handleConnect()},onClose:function(){n.dhServerSocket=null,n.socketClosingPromise=null},onError:function(e){a(e)}},d=function(e,r={}){let i=e,n=0,o=0,s=0,a=!1,c=r?.reopenDelay??5e3,d=!0,l=!1,u=0,p=new Set,h=new Set,m=new Set;function g(){a=!1,n=0,d=!0,c=r?.reopenDelay??5e3}function y(e){let{reopen:i=!0,reopenAttempts:l=10,reopenDelayIncrease:u,onReopenAttemptEnd:p}=r;if(n>=l||!i){let e;return g(),d&&o&&(e=o,cD().clearTimeout(e)),void("function"==typeof p&&p(d))}s=cN(()=>{a=!0,e.open(),n++},c="function"==typeof u?u({reopenCount:n,preDelay:c,isServerClosed:d}):c)}let b={socket:null,messages:[],get readyState(){return this.socket?this.socket.readyState:f.UNINSTANTIATED},get isOpened(){return f.OPEN===this.readyState},get isActive(){return f.CONNECTING===this.readyState||f.OPEN===this.readyState},open(){let e;if(this.isActive)return this;s&&!a&&(e=s,cD().clearTimeout(e));let n=this.socket=new WebSocket(i,r?.protocols);return this._dispchReadyStateChangeEvent(),n.addEventListener("open",this._dispchReadyStateChangeEvent),n.addEventListener("close",this._dispchReadyStateChangeEvent),n.addEventListener("error",this._dispchReadyStateChangeEvent),n.onopen=e=>{let i,{onOpen:s,onMessage:c,combine:l,reopenDelay:u=5e3}=r;a&&(d?(o&&(i=o,cD().clearTimeout(i)),o=cN(g,u>1e3?u+100:1e3)):g()),s&&s(e),n.onmessage=e=>{c&&c(e);let r=this.deserialization(e.data);l&&p.forEach(e=>{l(e.requestData,r)&&(e.then?(e.then(r),p.delete(e)):e.on?e.on(r):e.responseData=r)}),h.forEach(e=>e(r))},this.messages.flush(),this._ping()},n.onerror=e=>{r.onError&&r.onError(e),d=!1,y(this)},n.onclose=e=>{let i;e.isInterruptWithNewUrl=l,l=!1,u&&(i=u,cD().clearTimeout(i));let{reopenWhenServerClosed:o=!0,onClose:s,onServerClose:a}=r;d&&a&&a(e),s&&s(e),this._dispose(n),d&&o&&y(this)},this},openWithNewUrl(e){return e&&this.isActive&&e===i?this:(i=e||i,f.CONNECTING===this.readyState?(this._dispose(),this.socket?.close()):this.isActive&&this.close(v.CLOSE_INTERRUPT_WITH_NEW_URL,"interrupt by new url"),this.open())},close(e=1e3,r){return this.socket?new Promise(i=>{d=!1,v.CLOSE_INTERRUPT_WITH_NEW_URL===e&&(l=!0);let n=()=>{this.socket?.removeEventListener("close",n),this._dispose(this.socket),i()};this.socket?.addEventListener("close",n),this.socket?.close(e,r),this._dispchReadyStateChangeEvent()}):Promise.resolve()},connect(){return this.open()},disconnect(e,r){return this.close(e,r)},send(e){let{socket:r}=this;if(!r)return this;if(f.CONNECTING===r.readyState)return this.messages.push(e),this;e instanceof Function&&(e=e(ix()));let i=this.serialization(e);return r.send(i),this},request(e){if(!r?.combine)throw Error("Request failed! unconfigured combine, this configuration is required to use the request api.");e instanceof Function&&(e=e(ix())),this.send(e);let i={requestData:e,responseData:null};return p.add(i),{then(e){if(i.on&&console.warn('You have already registered for the "on" callback.'),i.responseData){let r=e(i.responseData);return r instanceof Promise?r:Promise.resolve(r)}return new Promise(e=>{i.then=r=>e(r)}).then(r=>e(r))},on(e,r=!0){i.then&&console.warn('You have already registered for the "then" callback.'),i.on=r=>{e(r,()=>{p.delete(i)})},i.responseData&&r&&i.on(i.responseData)}}},receive(){return new Promise(e=>{let r=this.onReceive(i=>{r(),e(i)})})},onReceive:e=>(h.add(e),()=>{h.delete(e)}),onMessage(e){return this.onReceive(e)},_dispchReadyStateChangeEvent(){m.forEach(e=>e(this.readyState))},_dispose(e){(e=e??this.socket)&&(e.removeEventListener("open",this._dispchReadyStateChangeEvent),e.removeEventListener("close",this._dispchReadyStateChangeEvent),e.removeEventListener("error",this._dispchReadyStateChangeEvent),e.onopen=null,e.onclose=null,e.onerror=null)},_ping(){let e,{keepAlive:i="none"}=r;u&&(e=u,cD().clearTimeout(e)),"none"!==i&&this.isOpened&&(u=cN(()=>{if(!this.isOpened)return;let e=r?.getKeepAliveMessage?r?.getKeepAliveMessage(ix()):{requestId:ix(),action:"heartbeat"===i?"HEART_BEAT":"PING"};"heartbeat"===r.keepAlive?(this.send(e),this._ping()):this.request(e).then(()=>{this._ping()}).catch(e=>{console.error(e)})},r?.keepAliveDelay||3e3))},onReadyStateChange:e=>(m.add(e),()=>{m.delete(e)}),serialization:e=>"[object Object]"===Object.prototype.toString.call(e)||Array.isArray(e)||"number"==typeof e?JSON.stringify(e):e,deserialization(e){if("string"==typeof e){let r=e;try{r=JSON.parse(e)}catch(i){r=e}return r}return e}};return b.messages.flush=function(){let e=[...this];if(this.length=0,e.length)for(let r of e)b.send(r)},b}(n.url,c);d.onReadyStateChange(function(e){0===e&&s&&s({status:c_.DH_LIB_INIT}),1===e&&i&&(n.preConnectSuccess=!0),3===e&&(n.preConnectSuccess=!1),s&&s({status:c_.DH_LIB_FULL_STATUS,content:{type:"wsState",readyState:e,body:cM[e]}})}),d.onMessage(function(e){var r=e.action;[cT.TIMEOUT_EXIT,cT.DISCONNECT_ALERT].includes(r)&&s&&s({status:c_.DH_LIB_STATUS,content:{type:r}}),[cT.TIMEOUT_EXIT,cT.DISCONNECT_ALERT,"HEART_BEAT","CONNECT"].includes(r)||s&&s({status:c_.DH_LIB_MESSAGE,content:e})}),i&&(n.dhServerSocket=d),d.open()}));case 9:case"end":return e.stop()}},e)}))).apply(this,arguments)}),aA(this,"closeSocket",aI(aT().mark(function e(){return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.dhServerSocket){e.next=2;break}return e.abrupt("return");case 2:return n.socketClosingPromise=n.dhServerSocket.close(),e.next=5,n.socketClosingPromise;case 5:n.dhServerSocket=null;case 6:case"end":return e.stop()}},e)}))),aA(this,"handleConnect",aI(aT().mark(function e(){var r,i,o,s,a,c;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.connectParams){e.next=2;break}return e.abrupt("return");case 2:if(i=(r=n.connectParams).appId,o=r.appKey,s=r.token,a=r.parameters,c=r.onConnect,i||o||s){e.next=5;break}return e.abrupt("return");case 5:n.dhServerSocket&&n.dhServerSocket.request({action:"CONNECT",clientTs:(new Date).getTime(),requestId:ix(),body:JSON.stringify(a_(a_({token:s,appId:i,appKey:o},cx()(n.connectParams,cA)),{},{parameters:a_(a_({},ck()(a,["parameters"])),a&&a.parameters?a.parameters:{})}))}).on(function(e,r){null==c||c(e),0!==e.code&&r()});case 6:case"end":return e.stop()}},e)}))),this.url=e}return ax(r,[{key:"sendMessage",value:function(r,i){return(e=e||aI(aT().mark(function e(r,i){var n;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:try{this.dhServerSocket&&this.dhServerSocket&&this.dhServerSocket.request(r).on(function(e){i&&i(e)})}catch(e){n="object"===aE(r)&&"requestId"in r?r.requestId:ix(),i&&i({code:-11,body:null,action:"RENDER_ERROR",requestId:n,message:JSON.stringify(e)})}case 1:case"end":return e.stop()}},e,this)}))).apply(this,arguments)}}]),r}();let cz={onLocalStream:()=>{},onLocalVideoPublished:()=>{},onRemoteVideoComing:()=>{},onRemoteVideoOn:()=>{},onRemoteVideoOff:()=>{},onRemoteVideoLoading:()=>{},onSuccess:()=>{},onError:()=>{}};class cU{client;#eZ;#e0;#e1;constructor(e){let{roomName:r,token:i,userId:n,appId:o,server:s,rtcConfig:a,callback:c}=e;if(this.#eZ={server:s,token:i,roomName:r,userId:n,appId:o},this.#e1={...cz,...c},this.#e0=a||{},!(r&&i&&n&&o&&s))return this.#e1.onError?.("RtcConnection is required, please check roomName, token, userId, appId, server"),void console.error("RtcConnection is required, please check roomName, token, userId, appId, server");this.init()}init(){let{BaiduRtcRoomClient:e}=window.baidurtc,r=new e;this.client=r,r.BRTC_Start({server:this.#eZ.server,appid:this.#eZ.appId,token:this.#eZ.token,roomname:this.#eZ.roomName,userid:this.#eZ.userId,displayname:"starling-brtc",remotevideoviewid:"starlingRtcContainer",showvideobps:!1,usingvideo:!1,usingaudio:!1,aspublisher:!1,usingdatachannel:!1,autoplaymuted:!1,autosubscribe:!1,autopublish:!1,usingremotemediastate:!0,...this.#e0||{},remotedata:()=>{},success:this.#e1.onSuccess,error:this.#e1.onError,remotevideocoming:this.#e1.onRemoteVideoComing,remotevideoloading:this.#e1.onRemoteVideoLoading,remotevideoon:this.#e1.onRemoteVideoOn,remotevideooff:this.#e1.onRemoteVideoOff,onlocalstream:this.#e1.onLocalStream,localvideopublished_ok:this.#e1.onLocalVideoPublished,remotevideoconnected_state:this.#e1.onRemoteVideoConnected,remotemediastating:this.#e1.onRemoteMediaState,localvideoconnected_state:this.#e1.onLocalVideoConnected})}destroy(){this.client?.BRTC_Stop()}subscribeStreaming(e,r){this.client?.BRTC_SubscribeStreaming(e,r)}stopSubscribeStreaming(e){this.client?.BRTC_StopSubscribeStreaming(e)}muteMicphone(e){this.client?.BRTC_MuteMicphone(e)}getRemoteVideoInfo(e){return this.client?.BRTC_GetRemoteVideoInfo(e)}getClient(){return this.client}}var cH=void 0===Number.MAX_SAFE_INTEGER?0x1fffffffffffff:Number.MAX_SAFE_INTEGER,cq=new WeakMap,cW=(u=function(e,r){return cq.set(e,r),r},function(e){var r=cq.get(e),i=void 0===r?e.size:r<0x40000000?r+1:0;if(!e.has(i))return u(e,i);if(e.size<0x20000000){for(;e.has(i);)i=Math.floor(0x40000000*Math.random());return u(e,i)}if(e.size>cH)throw Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;e.has(i);)i=Math.floor(Math.random()*cH);return u(e,i)}),cV=(p=function(e){var r=new Map([[0,function(){}]]),i=new Map([[0,function(){}]]),n=new Map,o=new Worker(e);return o.addEventListener("message",function(e){var o=e.data;if(void 0!==o.method&&"call"===o.method){var s=o.params,a=s.timerId,c=s.timerType;if("interval"===c){var d=r.get(a);if("number"==typeof d){var l=n.get(d);if(void 0===l||l.timerId!==a||l.timerType!==c)throw Error("The timer is in an undefined state.")}else{if(void 0===d)throw Error("The timer is in an undefined state.");d()}}else if("timeout"===c){var u=i.get(a);if("number"==typeof u){var p=n.get(u);if(void 0===p||p.timerId!==a||p.timerType!==c)throw Error("The timer is in an undefined state.")}else{if(void 0===u)throw Error("The timer is in an undefined state.");u(),i.delete(a)}}}else{if(null!==o.error||"number"!=typeof o.id)throw Error(o.error.message);var h=o.id,f=n.get(h);if(void 0===f)throw Error("The timer is in an undefined state.");var v=f.timerId,m=f.timerType;n.delete(h),"interval"===m?r.delete(v):i.delete(v)}}),{clearInterval:function(e){var i=cW(n);n.set(i,{timerId:e,timerType:"interval"}),r.set(e,i),o.postMessage({id:i,method:"clear",params:{timerId:e,timerType:"interval"}})},clearTimeout:function(e){var r=cW(n);n.set(r,{timerId:e,timerType:"timeout"}),i.set(e,r),o.postMessage({id:r,method:"clear",params:{timerId:e,timerType:"timeout"}})},setInterval:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=cW(r);return r.set(n,function(){e(),"function"==typeof r.get(n)&&o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}})}),o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}}),n},setTimeout:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=cW(i);return i.set(n,e),o.postMessage({id:null,method:"set",params:{delay:r,now:performance.now(),timerId:n,timerType:"timeout"}}),n}}},h=null,function(){if(null!==h)return h;var e=new Blob(['(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error(\'There is no interval scheduled with the given id "\'.concat(t,\'".\'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error(\'The given type "\'.concat(i,\'" is not supported\'));(e=>{const r=t.get(e);if(void 0===r)throw new Error(\'There is no timeout scheduled with the given id "\'.concat(e,\'".\'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error(\'The given method "\'.concat(s.method,\'" is not supported\'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error(\'The given type "\'.concat(d,\'" is not supported\'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();'],{type:"application/javascript; charset=utf-8"}),r=URL.createObjectURL(e);return h=p(r),setTimeout(function(){return URL.revokeObjectURL(r)}),h}),cG=function(e){return cV().clearInterval(e)},cK=function(e){return cV().clearTimeout(e)},cJ=function(){var e;return(e=cV()).setInterval.apply(e,arguments)},c$=function(){var e;return(e=cV()).setTimeout.apply(e,arguments)};class cX{running=!1;logger=!0;timeoutDuration;catchMethod;promise=null;reject=null;stopTimeout=null;constructor(e,r){this.timeoutDuration=e,this.catchMethod=r}start(){this.running?this.logger&&console.warn("TimeoutController已启动"):(this.logger&&console.info("TimeoutController开始计时:",this.timeoutDuration),this.running=!0,this.promise=new Promise((e,r)=>{var i,n;let o,s;this.reject=r,this.stopTimeout?.(),this.stopTimeout=(i=()=>{r(Error("TimeoutController超时错误"))},n=this.timeoutDuration,o=-1,s=null,"undefined"!=typeof Worker?s=E:(s=window,console.warn("浏览器不支持 Web Workers,使用 原生 timer 代替")),n>=0&&(o=s.setTimeout(i,n)),()=>{-1!==o&&s.clearTimeout(o),o=-1})}),this.catchMethod&&this.promise?.catch(this.catchMethod))}clear(){this.running?(this.logger&&console.info("TimeoutController停止计时"),this.running=!1,this.stopTimeout?.(),this.stopTimeout=null,this.reject&&(this.reject=null)):this.logger&&console.warn("TimeoutController未启动")}}var cQ=S("../../node_modules/lodash/isFunction.js"),cY=S.n(cQ),cZ=function(){function e(r){var i=this;ak(this,e),aA(this,"client",void 0),aA(this,"isRtcVideoOn",!1),aA(this,"rtcConnection",void 0),aA(this,"rtcConfig",void 0),aA(this,"bizConfig",void 0),aA(this,"rtcCallback",void 0),aA(this,"restarting",!1),aA(this,"timeoutEvent",void 0),aA(this,"reopenTimer",void 0),aA(this,"restartCount",0),aA(this,"closeLog",!0),aA(this,"haveVideoOn",!1),aA(this,"rtcStateCallback",null),aA(this,"openRtc",function(e){if(i.restarting)i.closeLog||console.warn("rtc restarting");else if(e&&(i.rtcConnection=e),i.rtcConnection&&!cP()(i.rtcConnection)){var r=i.rtcConnection,n=r.server,o=r.appId,s=r.token,a=r.roomName,c=r.userId,d=i.rtcCallback||{},l=d.onRemotedata,u=d.onLocalStream,p=d.onRemoteVideoComing,h=d.onLocalVideoPublished,f=d.onLocalVideoPublishing,v=d.onRemoteVideoOn,m=d.onRemoteVideoOff,g=d.onRemoteVideoLoading,y=d.onSuccess,b=d.onError,S=d.onLocalVideoConnected,C=d.onRemoteVideoConnected,w=d.onRemoteMediaState,R=d.onPlayingError,_=d.onDigitalHumanCallback;i.timeoutEvent.start(),i.rtcStateCallback=function(e){var r=e.body,i=e.action;_&&_({status:c_.DH_LIB_FULL_STATUS,content:{type:"rtcState",action:i,body:r}})},i.client=new cU({roomName:a,token:s,userId:c,appId:o,server:n,rtcConfig:i.rtcConfig,callback:{onRemoteVideoConnected:function(r,n){if(!n&&!i.haveVideoOn)var o=setTimeout(function(){i.restartCount<3?(i.restartCount=++i.restartCount,i.restartRtc&&i.restartRtc(e)):(i.restartCount=0,i.closeRtc()),clearTimeout(o)},500);if(n){var s=document.getElementById("remotevideo500");s.muted=!1;var a=s.play();void 0!==a&&a.catch(function(){s.muted=!0,s.play().catch(function(e){i.closeLog||console.info("videoElement play error",e),R&&R(s),_&&_({status:c_.DH_LIB_ERROR,content:{type:cT.LOCAL_VIDEO_ERROR}})}),_&&_({status:c_.DH_LIB_STATUS,content:{type:cT.LOCAL_VIDEO_MUTED}})})}i.closeLog||console.info("remoteVideoConnected",r,n,i.restartCount),i.rtcStateCallback&&i.rtcStateCallback({action:"remoteVideoConnected",body:{id:r,connected:n,restartCount:i.restartCount}}),cY()(C)&&C(r,n)},onRemoteVideoOn:function(e){i.haveVideoOn=!0,i.closeLog||console.info("remotevideoon by id: ",e),i.timeoutEvent.clear();var r=document.querySelector("#starlingRtcContainer"),n=r&&r.lastChild;n&&(n.style.display="none"),i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideoon",body:e}),_&&_({status:c_.DH_LIB_OPEN}),cY()(v)&&v(e)},onRemoteMediaState:function(e,r,n){i.closeLog||console.info("remoteMediaState",e,r,n),i.rtcStateCallback&&i.rtcStateCallback({action:"remoteMediaState",body:{id:e,medium:r,connected:n}}),cY()(w)&&w(e,r,n)},onLocalVideoConnected:function(e){i.closeLog||console.info("localVideoConnected",e),i.rtcStateCallback&&i.rtcStateCallback({action:"localVideoConnected",body:{connected:e}}),cY()(S)&&S(e)},onRemotedata:function(e){if(i.rtcConfig&&i.rtcConfig.usingdatachannel){var r=az.parse(e);i.closeLog||console.info("RTC - receive:",r),cY()(l)&&l(r)}},onLocalStream:function(e,r){i.closeLog||console.info("rtc - onlocalstream by name: "+r),i.rtcStateCallback&&i.rtcStateCallback({action:"onlocalstream",body:{stream:e,name:r}}),cY()(u)&&u(e,r)},onLocalVideoPublished:function(){i.closeLog||console.info("LocalVideoPublished 本地视频发布成功"),i.rtcStateCallback&&i.rtcStateCallback({action:"localvideopublished_ok",body:!0}),cY()(h)&&h()},onLocalVideoPublishing:function(){i.closeLog||console.info("LocalVideoPublishing 本地视频发布成功"),i.rtcStateCallback&&i.rtcStateCallback({action:"localvideopublishing",body:!0}),cY()(f)&&f()},onRemoteVideoComing:function(e){i.closeLog||console.info("remotevideocoming",e),i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideocoming",body:e}),cY()(p)&&p(e)},onRemoteVideoLoading:function(e){i.closeLog||console.info("remotevideoloading by id: ",e),i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideoloading",body:e}),cY()(g)&&g(e)},onRemoteVideoOff:function(e){var r=document.getElementById("remotevideo500");r&&r.pause(),i.closeLog||console.info("remotevideooff: ",e),i.isRtcVideoOn=!1,i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideooff",body:e}),_&&_({status:c_.DH_LIB_CLOSE}),cY()(m)&&m(e),i.timeoutEvent.start()},onSuccess:function(){i.closeLog||console.info("rtc - success"),i.rtcStateCallback&&i.rtcStateCallback({action:"success",body:!0}),cY()(y)&&y()},onError:function(r){i.isRtcVideoOn=!1,i.closeLog||console.error("rtc - error:",r),i.rtcStateCallback&&i.rtcStateCallback({action:"error",body:r}),_&&_({status:c_.DH_LIB_ERROR,content:{type:cT.RTC_ERROR}}),cY()(b)&&b(r),(r.includes("Lost connection to the server")||r.includes("Is the server down"))&&i.restartRtc&&i.restartRtc(e)}}})}}),aA(this,"closeRtc",function(){i.timeoutEvent.clear(),clearTimeout(i.reopenTimer),i.client&&i.client.destroy(),i.restarting=!1}),aA(this,"restartRtc",function(e){!i.restarting&&i.bizConfig&&i.bizConfig.autoReConnect&&(i.rtcStateCallback&&i.rtcStateCallback({action:"restartRtc",body:e}),i.restarting=!0,i.closeRtc(),i.reopenTimer=setTimeout(function(){i.closeLog||console.error("拉流失败,开始重启"),i.restarting=!1,i.openRtc(e)},2e3))});var n=r.rtcConnection,o=r.rtcConfig,s=r.closeLog,a=r.rtcCallback;this.rtcConnection=n,this.rtcConfig=o,this.rtcCallback=a,this.closeLog=void 0===s||s,this.timeoutEvent=new cX(6e4,function(){if(!i.rtcConnection)return!i.closeLog&&console.warn("remotevideoon事件超时, rtcConnectionRef is null");i.timeoutEvent.clear(),i.restartRtc&&i.restartRtc(i.rtcConnection)})}return ax(e,[{key:"muteMicphone",value:function(e){this.client&&this.client.muteMicphone&&this.client.muteMicphone(e)}}]),e}(),c0="starling-cutout-canvas",c1="cloud-brtc-player-wrapper",c2="remotevideo500";function c3(e){var r=document.getElementById(c2);return r&&(r.muted=e),r}function c4(e){var r=document.getElementById(c2);try{if(r)return e?r.play():r.pause()}catch(e){console.info(e)}}var c6=S("../../node_modules/lodash/isNumber.js"),c5=S.n(c6);function c8(e){return(c8="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c9(e,r){(null==r||r>e.length)&&(r=e.length);for(var i=0,n=Array(r);i<r;i++)n[i]=e[i];return n}var c7=function(e,r,i){var n;return Promise.race([new Promise(function(r){if(e())var n=setInterval(function(){e()||(clearInterval(n),r())},i||100);else r()})].concat(function(e){if(Array.isArray(e))return c9(e)}(n=r?[new Promise(function(e,i){setTimeout(function(){i(Error("overtime"))},r)})]:[])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||function(e,r){if(e){if("string"==typeof e)return c9(e,void 0);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?c9(e,void 0):void 0}}(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))},de={exports:{}};g=function(e){var r,i,n,o,s,a,c,d,l=e.document,u=e.console,p={},h={},f={},v={},m=[],g={},y={},b={canvas:[],image:[],video:[]},S={},C=e.WeakMap&&new WeakMap,w=0,R=function(){},_={transparent:[0,0,0,0],black:[0,0,0,1],red:[1,0,0,1],green:[0,128/255,0,1],blue:[0,0,1,1],white:[1,1,1,1],silver:[192/255,192/255,192/255,1],gray:[128/255,128/255,128/255,1],maroon:[128/255,0,0,1],purple:[128/255,0,128/255,1],fuchsia:[1,0,1,1],lime:[0,1,0,1],olive:[128/255,128/255,0,1],yellow:[1,1,0,1],navy:[0,0,128/255,1],teal:[0,128/255,128/255,1],aqua:[0,1,1,1],orange:[1,165/255,0,1]},T=/^(rgb|hsl)a?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*(\d+(\.\d*)?)\s*)?\)/i,E=/^#(([0-9a-fA-F]{3,8}))/,P=["x","y","z","w"],I=["r","g","b","a"],k={srcRGB:770,dstRGB:771,srcAlpha:1,dstAlpha:771},O=["MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_TEXTURE_IMAGE_UNITS","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS"],x=/^[\t ]*#define[\t ]+SHADER_NAME\s+([^$\n\r]+)/i,A={frustum:function(e,r,i,n,o,s,a){a||(a=A.create());var c=r-e,d=n-i,l=s-o;return a[0]=2*o/c,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2*o/d,a[6]=0,a[7]=0,a[8]=(r+e)/c,a[9]=(n+i)/d,a[10]=-(s+o)/l,a[11]=-1,a[12]=0,a[13]=0,a[14]=-s*o*2/l,a[15]=0,a},perspective:function(e,r,i,n,o){var s=i*Math.tan(e*Math.PI/360),a=s*r;return A.frustum(-a,a,-s,s,i,n,o)},multiply:function(e,r,i){var n=r[0],o=r[1],s=r[2],a=r[3],c=r[4],d=r[5],l=r[6],u=r[7],p=r[8],h=r[9],f=r[10],v=r[11],m=r[12],g=r[13],y=r[14],b=r[15],S=i[0],C=i[1],w=i[2],R=i[3];return e[0]=S*n+C*c+w*p+R*m,e[1]=S*o+C*d+w*h+R*g,e[2]=S*s+C*l+w*f+R*y,e[3]=S*a+C*u+w*v+R*b,S=i[4],C=i[5],w=i[6],R=i[7],e[4]=S*n+C*c+w*p+R*m,e[5]=S*o+C*d+w*h+R*g,e[6]=S*s+C*l+w*f+R*y,e[7]=S*a+C*u+w*v+R*b,S=i[8],C=i[9],w=i[10],R=i[11],e[8]=S*n+C*c+w*p+R*m,e[9]=S*o+C*d+w*h+R*g,e[10]=S*s+C*l+w*f+R*y,e[11]=S*a+C*u+w*v+R*b,S=i[12],C=i[13],w=i[14],R=i[15],e[12]=S*n+C*c+w*p+R*m,e[13]=S*o+C*d+w*h+R*g,e[14]=S*s+C*l+w*f+R*y,e[15]=S*a+C*u+w*v+R*b,e},identity:function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},copy:function(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}},M=(d=0,e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(r){var i,n,o;return n=Math.max(0,16-((i=(new Date).getTime())-d)),o=e.setTimeout(function(){r(i+n)},n),d=i+n,o}),j=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.oCancelAnimationFrame||e.msCancelAnimationFrame||function(r){e.cancelTimeout(r)},D=["alias","destroy","effect","id","initialize","inputs","isDestroyed","isReady","matte","off","on","readPixels","render","title","update"],N=["alias","destroy","id","inputs","isDestroyed","isReady","off","on","source","title","update"],B=["aliases","defaults","destroy","effect","go","id","incompatible","isDestroyed","isEffect","isNode","isSource","isTarget","isTransform","removeAlias","render","source","stop","target","transform"];function L(e,r){var i,n;if("string"==typeof e)i=l.querySelector(e);else if(!e)return!1;return e.tagName&&(i=e),i?(n=i.tagName.toLowerCase(),r&&0>r.indexOf(n)?e:i):e}function F(e,r){var i,n;for(i in e.prototype&&r.prototype&&e.prototype!==r.prototype&&F(e.prototype,r.prototype),r)r.hasOwnProperty(i)&&((n=Object.getOwnPropertyDescriptor(r,i)).get||n.set?Object.defineProperty(e,i,{configurable:!0,enumerable:!0,get:n.get,set:n.set}):e[i]=r[i]);return e}function z(e){var r;if(!u)return R;if("function"==typeof u[e])r=u[e];else{if("function"!=typeof u.log)return R;r=u.log}return r.bind?r.bind(u):function(){r.apply(u,arguments)}}function U(r,i){if(i||(i="HTMLElement"),!e[i])return u.error("window[proto] is undefined, proto:",i),!1;if(r instanceof e[i])return!0;if(!r||"object"!==c8(r))return!1;for(;r;)if((r=Object.getPrototypeOf(r))&&r.constructor.name===i)return!0;return!1}function H(e,r,i,n,o){var s,a;function c(e,r,i){return(i%=1)<0&&(i+=1),i<1/6?e+(r-e)*i*6:i<.5?r:i<2/3?e+(r-e)*(2/3-i)*6:e}return s=2*i-(a=i<.5?i*(r+1):i+r-i*r),o||(o=[]),o[0]=c(s,a,e+1/3),o[1]=c(s,a,e),o[2]=c(s,a,e-1/3),o[3]=n,o}function q(e){var r,i,n,o="#",s=e[3]<1?4:3;for(r=0;r<s;r++)n=(i=Math.min(255,Math.round(255*e[r]||0))).toString(16),i<16&&(n="0"+n),o+=n;return o}function W(e){return Array.isArray(e)||e&&e.BYTES_PER_ELEMENT&&"length"in e}function V(r){if("function"!=typeof r)throw Error("setTimeoutZero argument is not a function");m.push(r),"file:"!==e.location.protocol?e.postMessage("seriously-timeout-message",e.location):setTimeout(function(){m.length&&m.shift()()},0)}function G(r,i){var n;try{n=e.WebGLDebugUtils&&i&&i.debugContext?e.WebGLDebugUtils.makeDebugContext(r.getContext("webgl",i)):r.getContext("webgl",i)}catch(e){}if(!n)try{n=r.getContext("experimental-webgl",i)}catch(e){}return n}function K(){var i;return r&&r.getError()===r.CONTEXT_LOST_WEBGL&&(r=void 0),r||!e.WebGLRenderingContext||n||((r=G(i=l.createElement("canvas")))?i.addEventListener("webglcontextlost",function e(n){n.preventDefault(),r&&r.canvas===this&&(r=void 0,i.removeEventListener("webglcontextlost",e,!1))},!1):Q.logger.warn("Unable to access WebGL.")),r}function J(e){var r,i,n;function o(e,n){var o,s;W(e)?(o=e[0],s=e[1]||o):o=e,"string"==typeof o?o=o.toLowerCase():"number"==typeof o?o=String(o):o||(o=""),i[o]=s,n||(r.firstValue=o)}function s(e){return e}for(n in e.inputs)if(e.inputs.hasOwnProperty(n)){if(e.reserved.indexOf(n)>=0||Object.prototype[n])throw Error("Reserved input name: "+n);(r=e.inputs[n]).name=n,isNaN(r.min)&&(r.min=-1/0),isNaN(r.max)&&(r.max=1/0),isNaN(r.minCount)&&(r.minCount=-1/0),isNaN(r.maxCount)&&(r.maxCount=1/0),isNaN(r.step)&&(r.step=0),isNaN(r.mod)&&(r.mod=0),"enum"===r.type&&r.options&&W(r.options)&&r.options.length&&(i={},r.options.forEach(o),r.options=i),"vector"===r.type?r.dimensions<2?r.dimensions=2:r.dimensions>4||!r.dimensions||isNaN(r.dimensions)?r.dimensions=4:r.dimensions=Math.round(r.dimensions):r.dimensions=1,r.shaderDirty=!!r.shaderDirty,"function"!=typeof r.validate&&(r.validate=Q.inputValidators[r.type]||s),e.defaultImageInput||"image"!==r.type||(e.defaultImageInput=n)}}function $(e,r,i,n){var o,s,a,c,d=!0===n?n:n&&n.useFloat;d=!1,this.type=d?e.FLOAT:e.UNSIGNED_BYTE,o=e.createFramebuffer(),e.bindFramebuffer(e.FRAMEBUFFER,o),n&&n.texture?(this.texture=n.texture,e.bindTexture(e.TEXTURE_2D,this.texture),this.ownTexture=!1):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.ownTexture=!0);try{this.type===e.FLOAT?(a=new Float32Array(r*i*4),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r,i,0,e.RGBA,e.FLOAT,a)):(e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r,i,0,e.RGBA,e.UNSIGNED_BYTE,null),this.type=e.UNSIGNED_BYTE)}catch(n){this.type=e.UNSIGNED_BYTE,a=new Uint8Array(r*i*4),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r,i,0,e.RGBA,e.UNSIGNED_BYTE,a)}if(s=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,s),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,r,i),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture,0),(c=e.checkFramebufferStatus(e.FRAMEBUFFER))===e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT)throw Error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT");if(c===e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT)throw Error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT");if(c===e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS)throw Error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS");if(c===e.FRAMEBUFFER_UNSUPPORTED)throw Error("Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED");if(c!==e.FRAMEBUFFER_COMPLETE)throw Error("Incomplete framebuffer: "+c);e.bindTexture(e.TEXTURE_2D,null),e.bindRenderbuffer(e.RENDERBUFFER,null),e.bindFramebuffer(e.FRAMEBUFFER,null),this.gl=e,this.frameBuffer=o,this.renderBuffer=s,this.width=r,this.height=i}function X(e,r,i){var n,o,s,a,c,d,l,u,p="";function h(r,i){var n,o;if(n=i?e.createShader(e.FRAGMENT_SHADER):e.createShader(e.VERTEX_SHADER),e.shaderSource(n,r),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){for(r=r.split(/[\n\r]/),o=0;o<r.length;o++)r[o]=o+1+": "+r[o];throw r.unshift("Error compiling "+(i?"fragment":"vertex")+" shader:"),Q.logger.error(r.join("\n")),Error("Shader error: "+e.getShaderInfoLog(n))}return n}if(o=h(r),s=h(i,!0),n=e.createProgram(),e.attachShader(n,o),(a=e.getShaderInfoLog(o))&&(p+="Vertex shader error: "+a+"\n"),e.attachShader(n,s),(a=e.getShaderInfoLog(s))&&(p+="Fragment shader error: "+a+"\n"),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS))throw p+=e.getProgramInfoLog(n),e.deleteProgram(n),e.deleteShader(o),e.deleteShader(s),(l=x.exec(r)||x.exec(i))&&(p="Shader = "+l[1]+"\n"+p),O.forEach(function(r){p+="\n"+r+": "+e.getParameter(e[r])}),Error("Could not initialize shader:\n"+p);for(e.useProgram(n),this.uniforms={},d=e.getProgramParameter(n,e.ACTIVE_UNIFORMS),c=0;c<d;++c)(u={info:e.getActiveUniform(n,c)}).name=u.info.name.replace(/\[0\]$/,""),u.loc=e.getUniformLocation(n,u.name),u.set=function(r,i){if(r.type===e.SAMPLER_2D)return function(n){r.glTexture=e["TEXTURE"+n],e.uniform1i(i,n)};if(r.type===e.BOOL||r.type===e.INT)return r.size>1?function(r){e.uniform1iv(i,r)}:function(r){e.uniform1i(i,r)};if(r.type===e.FLOAT)return r.size>1?function(r){e.uniform1fv(i,r)}:function(r){e.uniform1f(i,r)};if(r.type===e.FLOAT_VEC2)return function(r){e.uniform2f(i,r[0],r[1])};if(r.type===e.FLOAT_VEC3)return function(r){e.uniform3f(i,r[0],r[1],r[2])};if(r.type===e.FLOAT_VEC4)return function(r){e.uniform4f(i,r[0],r[1],r[2],r[3])};if(r.type===e.FLOAT_MAT3)return function(r){e.uniformMatrix3fv(i,!1,r)};if(r.type===e.FLOAT_MAT4)return function(r){e.uniformMatrix4fv(i,!1,r)};throw Error("Unknown shader uniform type: "+r.type)}(u.info,u.loc),u.get=function(r){return function(){return e.getUniform(n,r)}}(u.loc),this.uniforms[u.name]=u,this[u.name]||(this[u.name]=u);for(this.attributes={},this.location={},d=e.getProgramParameter(n,e.ACTIVE_ATTRIBUTES),c=0;c<d;++c)(u={info:e.getActiveAttrib(n,c)}).name=u.info.name,u.location=e.getAttribLocation(n,u.name),this.attributes[u.name]=u,this.location[u.name]=u.location;this.gl=e,this.program=n,this.destroy=function(){var r;for(r in e&&(e.deleteProgram(n),e.deleteShader(o),e.deleteShader(s)),this)this.hasOwnProperty(r)&&delete this[r];n=null,o=null,s=null}}function Q(r){if(e===this||!(this instanceof Q)||void 0!==this.id)return new Q(r);var i,n,s,d,u,m,S,_,T,E,P,I,O,D,N,z=++w,H=this,W=[],K={},Y=0,Z=[],ee=[],et=[],er=[],ei={},en=[],eo=[],es={},ea={},ec=!1,ed=!1,el=null;function eu(e,r){var i,n,o;return!!r&&(i=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,i),r.bufferData(r.ARRAY_BUFFER,e.vertices,r.STATIC_DRAW),i.size=3,n=r.createBuffer(),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,n),r.bufferData(r.ELEMENT_ARRAY_BUFFER,e.indices,r.STATIC_DRAW),o=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,e.coords,r.STATIC_DRAW),o.size=2,{vertex:i,index:n,texCoord:o,length:e.indices.length,mode:e.mode||r.TRIANGLES})}function ep(e){var r={};return r.vertices=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),r.indices=new Uint16Array([0,1,2,0,2,3]),r.coords=new Float32Array([0,0,1,0,1,1,0,1]),eu(r,e)}function eh(){Q.logger.warn("WebGL context lost. 5 seconds to restore context."),el&&clearTimeout(el),el=setTimeout(ev,5e3)}function ef(e){var r,o;if(!n)if(e.canvas.addEventListener("webglcontextlost",em,!1),e.canvas.addEventListener("webglcontextrestored",ev,!1),e.isContextLost())Q.logger.warn("Unable to attach lost WebGL context. Will try again when context is restored.");else{for(n=e,i=e.canvas,d=ep(n),u=new X(n,"#define SHADER_NAME seriously.base\n"+a,"#define SHADER_NAME seriously.base\n"+c),r=0;r<er.length;r++)(o=er[r]).gl=n,o.initialize(),o.buildShader();for(r=0;r<Z.length;r++)(o=Z[r]).initialize();for(r=0;r<ee.length;r++)(o=ee[r]).model||(o.model=d,o.shader=u)}}function ev(){var e,r,i,o;if(el&&clearTimeout(el),el=null,s&&!n){if(U(r=s.target,"WebGLFramebuffer"))return void Q.logger.error("Unable to restore target built on WebGLFramebuffer");if(e=G(r,{alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!0,stencil:!0,debugContext:s.debugContext})){if(e.isContextLost())return el?void Q.logger.error("restore WebGL Context ing, wait...."):(eh(),void Q.logger.error("Unable to restore WebGL Context"));for(ef(e),s.renderToTexture?s.frameBuffer=new $(n,s.width,s.height,!1):s.frameBuffer={frameBuffer:null},i=0;i<W.length;i++)(o=W[i]).setDirty(),o.emit("webglcontextrestored");Q.logger.log("WebGL context restored")}}}function em(e){var r,o;for(e?(e.preventDefault(),eh()):el&&clearTimeout(el),N&&(j(N),N=0),i&&i.removeEventListener("webglcontextlost",em,!1),r=0;r<er.length;r++)(o=er[r]).gl=null,o.initialized=!1,o.baseShader=null,o.model=null,o.frameBuffer=null,o.texture=null,o.shader&&o.shader.destroy&&(o.shader.destroy(),o.effect.commonShader&&delete ea[o.hook]),o.shaderDirty=!0,o.shader=null,o.effect.lostContext&&o.effect.lostContext.call(o),e&&o.emit("webglcontextlost");for(r=0;r<Z.length;r++)(o=Z[r]).texture=null,o.initialized=!1,o.allowRefresh=!1,e&&o.emit("webglcontextlost");for(r=0;r<et.length;r++)(o=et[r]).frameBuffer=null,o.texture=null,e&&o.emit("webglcontextlost");for(r=0;r<ee.length;r++)(o=ee[r]).model=!1,o.frameBuffer=null,e&&o.emit("webglcontextlost");u&&u.destroy&&u.destroy(),n&&(n.deleteBuffer(d.vertex),n.deleteBuffer(d.texCoord),n.deleteBuffer(d.index)),d&&(delete d.vertex,delete d.texCoord,delete d.index),d=null,u=null,n=null,i=null}function eg(e){var r,i,n=!1;if(N=0,en.length)for(n=!0,r=0;r<en.length;r++)en[r].call(H,e);if(Z&&Z.length)for(n=!0,r=0;r<Z.length;r++){var o=(i=Z[r]).source&&i.source.dataset&&i.source.dataset.playing;if("string"==typeof o&&"true"!==o)return void(N=M(eg));(i.dirty||i.checkDirty&&i.checkDirty())&&(i.dirty=!1,i.setDirty())}for(r=0;r<ee.length;r++)(i=ee[r]).auto&&i.dirty&&i.render();if(eo.length)for(n=!0,r=0;r<eo.length;r++)eo[r].call(H);n&&!N&&(N=M(eg))}function ey(e,r,i,o,s,a){var c,d,l,u,p,h,f,v,m,g=0,y=s&&s.gl||n;if(y){for(c in s?(u=a&&a.width||s.width||y.canvas.width,p=a&&a.height||s.height||y.canvas.height):(u=a&&a.width||y.canvas.width,p=a&&a.height||y.canvas.height),e.use(),y.viewport(0,0,u,p),y.bindFramebuffer(y.FRAMEBUFFER,o),y.enableVertexAttribArray(e.location.position),y.enableVertexAttribArray(e.location.texCoord),r.texCoord&&(y.bindBuffer(y.ARRAY_BUFFER,r.texCoord),y.vertexAttribPointer(e.location.texCoord,r.texCoord.size,y.FLOAT,!1,0,0)),y.bindBuffer(y.ARRAY_BUFFER,r.vertex),y.vertexAttribPointer(e.location.position,r.vertex.size,y.FLOAT,!1,0,0),y.bindBuffer(y.ELEMENT_ARRAY_BUFFER,r.index),a&&a.depth?n.enable(n.DEPTH_TEST):n.disable(n.DEPTH_TEST),a?void 0===a.blend||a.blend?(n.enable(n.BLEND),h=void 0===a.srcRGB?n.ONE:a.srcRGB,v=a.dstRGB||n.ZERO,f=void 0===a.srcAlpha?h:a.srcAlpha,m=void 0===a.dstAlpha?v:a.dstAlpha,n.blendFuncSeparate(h,v,f,m),n.blendEquation(a.blendEquation||n.FUNC_ADD)):n.disable(n.BLEND):(n.enable(n.BLEND),n.blendFunc(n.ONE,n.ZERO),n.blendEquation(n.FUNC_ADD)),i)i.hasOwnProperty(c)&&(d=i[c],(l=e.uniforms[c])&&(U(d,"WebGLTexture")?(y.activeTexture(y.TEXTURE0+g),y.bindTexture(y.TEXTURE_2D,d),l.set(g),g++):d instanceof S||d instanceof _||d instanceof T?d.texture&&(y.activeTexture(y.TEXTURE0+g),y.bindTexture(y.TEXTURE_2D,d.texture),l.set(g),g++):null!=d&&l.set(d)));a&&void 0!==a.clear&&!a.clear||(y.clearColor(0,0,0,0),y.clear(y.COLOR_BUFFER_BIT|y.DEPTH_BUFFER_BIT)),y.drawElements(r.mode,r.length,y.UNSIGNED_SHORT,0),n.enable(n.DEPTH_TEST)}}function eb(e,r,i){var n,o;if("string"==typeof e&&(r||0===r)||(i&&"object"===c8(i)||(i=r),r=e),"string"==typeof e&&f[e]||(e=null),r instanceof S||r instanceof _||r instanceof T)n=r;else if(r instanceof P||r instanceof I||r instanceof O){if(!(n=K[r.id]))throw Error("Cannot connect a foreign node")}else{for("string"==typeof r&&isNaN(r)&&(r=L(r,["canvas","img","video"])),o=0;o<Z.length;o++)if(n=Z[o],(!e||e===n.hook)&&n.compare&&n.compare(r,i))return n;n=new S(e,r,i)}return n}function eS(e,r){var i,n,o;if(!(e instanceof _||e instanceof T))return!1;if(e===r)return!0;for(i in o=e.sources)if(o.hasOwnProperty(i)&&((n=o[i])===r||eS(n,r)))return!0;return!1}(m=function(){this.ready=!1,this.width=1,this.height=1,this.gl=n,this.uniforms={resolution:[this.width,this.height],transform:null},this.dirty=!0,this.isDestroyed=!1,this.seriously=H,this.listeners={},this.id=Y,Y++}).prototype.setReady=function(){var e;if(!this.ready&&(this.ready=!0,this.emit("ready"),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setReady()},m.prototype.setUnready=function(){var e;if(this.ready&&(this.ready=!1,this.emit("unready"),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setUnready()},m.prototype.setDirty=function(){var e;if(!this.dirty&&(this.emit("dirty"),this.dirty=!0,this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setDirty()},m.prototype.initFrameBuffer=function(e){n&&(this.frameBuffer=new $(n,this.width,this.height,e))},m.prototype.readPixels=function(e,r,i,o,s){var a=this.gl||n;if(!n)throw Error("Cannot read pixels until a canvas is connected");if(this.frameBuffer||(this.initFrameBuffer(),this.setDirty()),this.render(),void 0===s)s=new Uint8Array(i*o*4);else if(!U(s,"Uint8Array"))throw Error("Incompatible array type");return a.bindFramebuffer(n.FRAMEBUFFER,this.frameBuffer.frameBuffer),a.readPixels(e,r,i,o,n.RGBA,n.UNSIGNED_BYTE,s),s},m.prototype.resize=function(){var e,r;this.source?(e=this.source.width,r=this.source.height):this.sources&&this.sources.source?(e=this.sources.source.width,r=this.sources.source.height):this.inputs&&this.inputs.width?(e=this.inputs.width,r=this.inputs.height||e):this.inputs&&this.inputs.height?e=r=this.inputs.height:(e=1,r=1),e=Math.floor(e),r=Math.floor(r),this.width===e&&this.height===r||(this.width=e,this.height=r,this.emit("resize"),this.setDirty()),this.uniforms&&this.uniforms.resolution&&(this.uniforms.resolution[0]=e,this.uniforms.resolution[1]=r),this.frameBuffer&&this.frameBuffer.resize&&this.frameBuffer.resize(e,r)},m.prototype.on=function(e,r){var i,n=-1;e&&"function"==typeof r&&((i=this.listeners[e])?n=i.indexOf(r):i=this.listeners[e]=[],n<0&&i.push(r))},m.prototype.off=function(e,r){var i,n=-1;e&&"function"==typeof r&&(i=this.listeners[e])&&(n=i.indexOf(r))>=0&&i.splice(n,1)},m.prototype.emit=function(e){var r,i=this.listeners[e];if(i&&i.length)for(r=0;r<i.length;r++)V(i[r])},m.prototype.destroy=function(){var e,r;for(r in delete this.gl,delete this.seriously,this.listeners)this.listeners.hasOwnProperty(r)&&delete this.listeners[r];for(e in this.uniforms)this.uniforms.hasOwnProperty(e)&&delete this.uniforms[e];this.targets&&delete this.targets,this.frameBuffer&&this.frameBuffer.destroy&&(this.frameBuffer.destroy(),delete this.frameBuffer),(e=W.indexOf(this))>=0&&W.splice(e,1),delete K[this.id],this.isDestroyed=!0},P=function(e){var r;function i(r,i){var n,o,s,a;return s=e.effect.inputs[r],n=e.inputElements[r],"string"==typeof i&&isNaN(i)&&("enum"===s.type?s.options.hasOwnProperty(i)||(i=L(i,["select"])):"number"===s.type||"boolean"===s.type?i=L(i,["input","select"]):"image"===s.type&&(i=L(i,["canvas","img","video"]))),U(i,"HTMLInputElement")||U(i,"HTMLSelectElement")?(o=i.value,n&&n.element!==i&&(n.element.removeEventListener("change",n.listener,!0),n.element.removeEventListener("input",n.listener,!0),delete e.inputElements[r],n=null),n||(n={element:i,listener:(a=i,function(){var n,o;n="checkbox"===i.type?i.checked:a.value,o=e.setInput(r,n),"color"===s.type&&(o=q(o).substr(0,7)),o!==n&&(a.value=o)})},e.inputElements[r]=n,"range"===i.type&&i.addEventListener("input",n.listener,!0),i.addEventListener("change",n.listener,!0)),n&&"checkbox"===i.type&&(o=i.checked)):(n&&(n.element.removeEventListener("change",n.listener,!0),n.element.removeEventListener("input",n.listener,!0),delete e.inputElements[r]),o=i),e.setInput(r,o),e.inputs[r]}for(r in e.effect.inputs)if(e.effect.inputs.hasOwnProperty(r)){if(void 0!==this[r])throw Error("Cannot overwrite Seriously."+r);"image"===e.effect.inputs[r].type?Object.defineProperty(this,r,{configurable:!0,enumerable:!0,get:function(r){return function(){var i=e.inputs[r];return i&&i.pub}}(r),set:function(e){return function(r){var n=i(e,r);return n&&n.pub}}(r)}):Object.defineProperty(this,r,{configurable:!0,enumerable:!0,get:function(r){return function(){return e.inputs[r]}}(r),set:function(e){return function(r){return i(e,r)}}(r)})}Object.defineProperties(this,{effect:{enumerable:!0,configurable:!0,get:function(){return e.hook}},title:{enumerable:!0,configurable:!0,get:function(){return e.effect.title||e.hook}},width:{enumerable:!0,configurable:!0,get:function(){return e.width}},height:{enumerable:!0,configurable:!0,get:function(){return e.height}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}}}),this.render=function(){return e.render(),this},this.readPixels=function(r,i,n,o,s){return e.readPixels(r,i,n,o,s)},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.inputs=function(r){var i,n,o,s;if(o=e.effect.inputs,r)return(n=o[r])?(i={type:n.type,defaultValue:n.defaultValue,title:n.title||r},"number"===n.type?(i.min=n.min,i.max=n.max,i.step=n.step,i.mod=n.mod):"enum"===n.type?i.options=F({},n.options):"vector"===n.type&&(i.dimensions=n.dimensions),n.description&&(i.description=n.description),i):null;for(s in i={},o)o.hasOwnProperty(s)&&(i[s]=this.inputs(s));return i},this.alias=function(r,i){return e.alias(r,i),this},this.matte=function(r){e.matte(r)},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(_=function(e,r){var i,s,a,c,d={};for(i in m.call(this,r),this.gl=n,this.effectRef=p[e],this.sources={},this.targets=[],this.inputElements={},this.dirty=!0,this.shaderDirty=!0,this.hook=e,this.options=r,this.transform=null,this.effect=F({},this.effectRef),this.effectRef.definition&&F(this.effect,this.effectRef.definition.call(this,r)),J(this.effect),this.uniforms.transform=o,this.inputs={},c=es[e],this.effect.inputs)this.effect.inputs.hasOwnProperty(i)&&(void 0!==(s=this.effect.inputs[i]).defaultValue&&null!==s.defaultValue||("number"===s.type?s.defaultValue=Math.min(Math.max(0,s.min),s.max):"color"===s.type?s.defaultValue=[0,0,0,0]:"boolean"===s.type?s.defaultValue=!1:"string"===s.type?s.defaultValue="":"enum"===s.type&&(s.defaultValue=s.firstValue)),a=s.validate.call(this,s.defaultValue,s),c&&void 0!==c[i]&&(a=s.validate.call(this,c[i],s,s.defaultValue,a),c[i]=a,"image"===s.type&&(d[i]=a)),this.inputs[i]=a,s.uniform&&(this.uniforms[s.uniform]=s.defaultValue));for(i in n&&(this.initialize(),this.effect.commonShader&&this.buildShader()),this.updateReady(),this.inPlace=this.effect.inPlace,this.pub=new P(this),W.push(this),K[this.id]=this,er.push(this),g[e].push(this),d)d.hasOwnProperty(i)&&this.setInput(i,d[i])}).prototype=Object.create(m.prototype),_.prototype.constructor=_,_.prototype.initialize=function(){if(!this.initialized){var e=this;this.baseShader=u,this.shape?this.model=eu(this.shape,this.gl):this.model=d,"function"==typeof this.effect.initialize?this.effect.initialize.call(this,function(){e.initFrameBuffer(!0)},n):this.initFrameBuffer(!0),this.frameBuffer&&(this.texture=this.frameBuffer.texture),this.initialized=!0}},_.prototype.resize=function(){var e;for(m.prototype.resize.call(this),this.effect.resize&&this.effect.resize.call(this),e=0;e<this.targets.length;e++)this.targets[e].resize()},_.prototype.updateReady=function(){var e,r,i,n,o=!0;for(r in(i=this.effect).inputs)if(i.inputs.hasOwnProperty(r)&&"image"===this.effect.inputs[r].type&&(!this.sources[r]||!this.sources[r].ready)&&(!i.requires||i.requires.call(this,r,this.inputs))){o=!1;break}if(this.ready!==o&&(this.ready=o,this.emit(o?"ready":"unready"),n=o?"setReady":"setUnready",this.targets))for(e=0;e<this.targets.length;e++)this.targets[e][n]()},_.prototype.setReady=_.prototype.updateReady,_.prototype.setUnready=_.prototype.updateReady,_.prototype.addTarget=function(e){var r;for(r=0;r<this.targets.length;r++)if(this.targets[r]===e)return;this.targets.push(e)},_.prototype.removeTarget=function(e){var r=this.targets&&this.targets.indexOf(e);r>=0&&this.targets.splice(r,1)},_.prototype.removeSource=function(e){var r,i=e&&e.pub;for(r in this.inputs)this.inputs.hasOwnProperty(r)&&(this.inputs[r]===e||this.inputs[r]===i)&&(this.inputs[r]=null);for(r in this.sources)this.sources.hasOwnProperty(r)&&(this.sources[r]===e||this.sources[r]===i)&&(this.sources[r]=null)},_.prototype.buildShader=function(){var e,r=this.effect,i=this;function o(e){return x.test(e)?e:"#define SHADER_NAME seriously."+i.hook+"\n"+e}this.shaderDirty&&(r.commonShader&&ea[this.hook]?(this.shader||ea[this.hook].count++,this.shader=ea[this.hook].shader):r.shader?(this.shader&&!r.commonShader&&this.shader.destroy(),(e=r.shader.call(this,this.inputs,{vertex:a,fragment:c},Q.util))instanceof X?this.shader=e:e&&e.vertex&&e.fragment?this.shader=new X(n,o(e.vertex),o(e.fragment)):this.shader=u,r.commonShader&&(ea[this.hook]={count:1,shader:this.shader})):this.shader=u,this.shaderDirty=!1)},_.prototype.render=function(){var e,r,i,o=this.effect,s=this;if(n){if(this.initialized||this.initialize(),this.shaderDirty&&this.buildShader(),this.dirty&&this.ready){for(e in this.sources)this.sources.hasOwnProperty(e)&&(!o.requires||o.requires.call(this,e,this.inputs))&&(i="function"==typeof this.inPlace?this.inPlace(e):this.inPlace,this.sources[e].render(!i));this.frameBuffer&&(r=this.frameBuffer.frameBuffer),"function"==typeof o.draw?(o.draw.call(this,this.shader,this.model,this.uniforms,r,function(e,r,i,n,o,a){ey(e,r,i,n,o||s,a)}),this.emit("render")):r&&(ey(this.shader,this.model,this.uniforms,r,this),this.emit("render")),this.dirty=!1}return this.texture}},_.prototype.setInput=function(e,r){var i,n,s,a,c,d=this;if(this.effect.inputs.hasOwnProperty(e)){if("image"===(i=this.effect.inputs[e]).type){if(r){if((r=eb(r))!==this.sources[e]){if(function(){var r,i=d.sources[e];if(i){for(r in d.sources)if(r!==e&&d.sources.hasOwnProperty(r)&&d.sources[r]===i)return;i.removeTarget(d)}}(),eS(r,this))throw Error("Attempt to make cyclical connection.");this.sources[e]=r,r.addTarget(this)}}else delete this.sources[e],r=!1;n=this.sources[e],s=Object.keys(this.sources),!0===this.inPlace&&1===s.length?(a=this.sources[s[0]],this.uniforms.transform=a&&a.cumulativeMatrix||o):this.uniforms.transform=o}else c=es[this.hook]&&void 0!==es[this.hook][e]?es[this.hook][e]:i.defaultValue,n=r=i.validate.call(this,r,i,c,this.inputs[e]);return this.inputs[e]===r&&"color"!==i.type&&"vector"!==i.type||(this.inputs[e]=r,i.uniform&&(this.uniforms[i.uniform]=n),"image"===i.type?(this.resize(),this.updateReady()):i.updateSources&&this.updateReady(),i.shaderDirty&&(this.shaderDirty=!0),this.setDirty(),i.update&&i.update.call(this,r)),r}},_.prototype.alias=function(e,r){var i=this;if(B.indexOf(r)>=0)throw Error("'"+r+"' is a reserved name and cannot be used as an alias.");return this.effect.inputs.hasOwnProperty(e)&&(r||(r=e),H.removeAlias(r),ei[r]={node:this,input:e},Object.defineProperty(H,r,{configurable:!0,enumerable:!0,get:function(){return i.inputs[e]},set:function(r){return i.setInput(e,r)}})),this},_.prototype.matte=function(e){var r,i,n,o,s,a,c,d,l=[],u=[],p={};for(i=(r=e)&&r.length&&Array.isArray(r)?Array.isArray(r[0])?Array.isArray(r[0])&&!isNaN(r[0][0])?[r]:r:[r]:[],o=0;o<i.length;o++){for(e=i[o],d=null,n={vertices:[],edges:[]},s=0;s<e.length;s++)a=e[s],"object"!==c8(a)||isNaN(a.x)||isNaN(a.y)?!(a.length>=2)||isNaN(a[0])||isNaN(a[1])||(c={x:a[0],y:a[1],id:u.length}):c={x:a.x,y:a.y,id:u.length},c&&(d?(d.next=c,c.prev=d,c.next=n.vertices[0],n.vertices[0].prev=c):(n.head=c,c.next=c,c.prev=c),u.push(c),n.vertices.push(c),d=c);if(n.vertices.length>2)for(3===n.vertices.length&&(n.simple=!0),l.push(n),s=0;s<n.vertices.length;s++)c=n.vertices[s],n.edges.push([c,c.next])}for(o=l.length-1;o>=0;o--)!function(e){var r,i,n,o,s,a,c,d,p,h,f,v=[];if(!e.simple){for(r=0;r<e.edges.length;r++)for(n=e.edges[r],i=r+1;i<e.edges.length;i++)o=e.edges[i],(s=function(e,r,i,n){var o,s,a,c,d;return o=(n.x-i.x)*(e.y-i.y)-(n.y-i.y)*(e.x-i.x),s=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),!!((a=(n.y-i.y)*(r.x-e.x)-(n.x-i.x)*(r.y-e.y))&&(d=s/a,(c=o/a)>0&&c<=1&&d>0&&d<=1))&&{x:e.x+c*(r.x-e.x),y:e.y+c*(r.y-e.y)}}(n[0],n[1],o[0],o[1]))&&(s.edge1=n,s.edge2=o,v.push(s));if(v.length){for(p=[],r=0;r<v.length;r++)n=(s=v[r]).edge1,o=s.edge2,h={x:s.x,y:s.y,prev:n[0],next:o[1],id:u.length},e.vertices.push(h),u.push(h),f={x:s.x,y:s.y,prev:o[0],next:n[1],id:u.length},e.vertices.push(f),u.push(h),h.prev.next=h,h.next.prev=h,f.prev.next=f,f.next.prev=f;do{a={edges:[],vertices:[],simple:!0},p.push(a),c=d=e.vertices[0];do r=e.vertices.indexOf(d),e.vertices.splice(r,1),a.edges.push([d,d.next]),a.vertices.push(d),d=d.next;while(d!==c)}while(e.vertices.length);for(r=l.indexOf(e),l.splice(r,1),r=0;r<p.length;r++)l.push(p[r])}else e.simple=!0}}(n=l[o]);for(o=0;o<l.length;o++)(n=l[o]).clockWise=function(e){var r,i,n,o,s=e.vertices.length,a=0;for(r=s-1,i=0;i<s;r=i,i++)n=e.vertices[r],o=e.vertices[i],a+=n.x*o.y-o.x*n.y;return a>0}(n),function(e){var r,i,o,s,a,c,d,l,u,p,h,f=e.vertices,v=[],m=[];if(i=f.length,e.clockWise)for(r=0;r<i;r++)v[r]=r;else for(r=0;r<i;r++)v[r]=i-1-r;for(s=2*(o=i),r=o-1;o>2;){if(s--<=0)return m;if(o<=(a=r)&&(a=0),o<=(r=a+1)&&(r=0),o<(c=r+1)&&(c=0),function(e,r,i,n,o){var s,a,c,d;if(a=f[o[e]],c=f[o[r]],d=f[o[i]],0>(c.x-a.x)*(d.y-a.y)-(c.y-a.y)*(d.x-a.x))return!1;for(s=0;s<n;s++)if(s!==e&&s!==r&&s!==i&&function(e,r,i,n){var o,s,a,c,d,l,u,p,h,f,v,m;return o=i.x-r.x,s=i.y-r.y,a=e.x-i.x,c=e.y-i.y,d=r.x-e.x,l=r.y-e.y,u=n.x-e.x,p=n.y-e.y,h=n.x-r.x,f=n.y-r.y,v=n.x-i.x,m=n.y-i.y,o*f-s*h>=0&&a*m-c*v>=0&&d*p-l*u>=0}(a,c,d,f[o[s]]))return!1;return!0}(a,r,c,o,v)){for(d=v[a],l=v[r],u=v[c],e.clockWise?(m.push(f[d]),m.push(f[l]),m.push(f[u])):(m.push(f[u]),m.push(f[l]),m.push(f[d])),p=r,h=r+1;h<o;p++,h++)v[p]=v[h];s=2*--o}}n.indices=m}(n);for(p.vertices=[],p.coords=[],o=0;o<u.length;o++)a=u[o],p.vertices.push(2*a.x-1),p.vertices.push(-2*a.y+1),p.vertices.push(-1),p.coords.push(a.x),p.coords.push(-1*a.y+1);for(p.vertices=new Float32Array(p.vertices),p.coords=new Float32Array(p.coords),p.indices=[],o=0;o<l.length;o++)for(n=l[o],s=0;s<n.indices.length;s++)a=n.indices[s],p.indices.push(a.id);p.indices=new Uint16Array(p.indices),this.shape=p,this.gl&&eu(p,this.gl)},_.prototype.destroy=function(){var e,r,i,n=this.hook;for(r in this.effect.destroy&&"function"==typeof this.effect.destroy&&this.effect.destroy.call(this),delete this.effect,ea[n]&&(ea[n].count--,ea[n].count||delete ea[n]),this.shader&&this.shader.destroy&&this.shader!==u&&!ea[n]&&this.shader.destroy(),delete this.shader,this.inputElements)this.inputElements.hasOwnProperty(r)&&((i=this.inputElements[r]).element.removeEventListener("change",i.listener,!0),i.element.removeEventListener("input",i.listener,!0));for(r in this.sources)this.sources.hasOwnProperty(r)&&((i=this.sources[r])&&i.removeTarget&&i.removeTarget(this),delete this.sources[r]);for(;this.targets.length;)(i=this.targets.pop())&&i.removeSource&&i.removeSource(this);for(r in this)this.hasOwnProperty(r)&&"id"!==r&&delete this[r];for(r in ei)ei.hasOwnProperty(r)&&(i=ei[r]).node===this&&H.removeAlias(r);(e=er.indexOf(this))>=0&&er.splice(e,1),(e=g[n].indexOf(this))>=0&&g[n].splice(e,1),m.prototype.destroy.call(this)},I=function(e){Object.defineProperties(this,{original:{enumerable:!0,configurable:!0,get:function(){return e.source}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}},width:{enumerable:!0,configurable:!0,get:function(){return e.width}},height:{enumerable:!0,configurable:!0,get:function(){return e.height}}}),this.render=function(){e.render()},this.update=function(){e.setDirty()},this.readPixels=function(r,i,n,o,s){return e.readPixels(r,i,n,o,s)},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(S=function(e,r,i){var o,s,a=i||{},c=void 0===a.flip||a.flip,d=a.width,l=a.height,u=!1,p=this,h=!1;function v(e,r,i,n){var o=f[e];if(o.definition){if(!(o=o.definition.call(p,r,i,n)))return null;o=F(F({},f[e]),o)}return o}function g(e){return p.source===e}if(m.call(this),(e&&"string"!=typeof e||!r&&0!==r)&&(i&&"object"===c8(i)||(i=r),r=e),"string"==typeof r&&isNaN(r)&&(r=L(r,["canvas","img","video"])),"string"==typeof e&&f[e]&&(s=v(e,r,i,!0))&&(this.hook=e,h=!0,u=s.deferTexture,this.plugin=s,this.compare=s.compare,this.checkDirty=s.checkDirty,s.source&&(r=s.source)),!s&&U(r))"CANVAS"===r.tagName?(this.width=r.width,this.height=r.height,this.render=this.renderImageCanvas,h=!0,this.hook="canvas",this.compare=g):"IMG"===r.tagName&&(this.width=r.naturalWidth||1,this.height=r.naturalHeight||1,r.complete&&r.naturalWidth||(u=!0),r.addEventListener("load",function(){p.isDestroyed||(p.width===r.naturalWidth&&p.height===r.naturalHeight||(p.width=r.naturalWidth,p.height=r.naturalHeight,p.resize()),p.setDirty(),p.setReady())},!0),this.render=this.renderImageCanvas,h=!0,this.hook="image",this.compare=g);else if(!s&&U(r,"WebGLTexture")){if(n&&!n.isTexture(r))throw Error("Not a valid WebGL texture.");isNaN(d)?isNaN(l)||(d=l):isNaN(l)&&(l=d),this.width=d,this.height=l,void 0===a.flip&&(c=!1),h=!0,this.texture=r,this.initialized=!0,this.hook="texture",this.compare=g,this.render=function(){}}if(!h&&!s){for(o in f)if(f.hasOwnProperty(o)&&f[o]&&(s=v(o,r,i,!1))){this.hook=o,h=!0,u=s.deferTexture,this.plugin=s,this.compare=s.compare,this.checkDirty=s.checkDirty,s.source&&(r=s.source);break}}if(!h)throw Error("Unknown source type");this.source=r,void 0===this.flip&&(this.flip=c),this.targets=[],u||p.setReady(),this.pub=new I(this),W.push(this),K[this.id]=this,Z.push(this),b[this.hook].push(this),Z.length&&!N&&eg()}).prototype=Object.create(m.prototype),S.prototype.constructor=S,S.prototype.initialize=function(){var e;n&&!this.texture&&this.ready&&(e=n.createTexture(),n.bindTexture(n.TEXTURE_2D,e),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.bindTexture(n.TEXTURE_2D,null),this.texture=e,this.initialized=!0,this.allowRefresh=!0,this.setDirty())},S.prototype.initFrameBuffer=function(e){n&&(this.frameBuffer=new $(n,this.width,this.height,{texture:this.texture,useFloat:e}))},S.prototype.addTarget=function(e){var r;for(r=0;r<this.targets.length;r++)if(this.targets[r]===e)return;this.targets.push(e)},S.prototype.removeTarget=function(e){var r=this.targets&&this.targets.indexOf(e);r>=0&&this.targets.splice(r,1)},S.prototype.resize=function(){var e,r;if(this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,this.framebuffer&&this.framebuffer.resize(this.width,this.height),this.emit("resize"),this.setDirty(),this.targets)for(e=0;e<this.targets.length;e++)(r=this.targets[e]).resize(),r.setTransformDirty&&r.setTransformDirty()},S.prototype.setReady=function(){var e;if(!this.ready&&(this.ready=!0,this.resize(),this.initialize(),this.emit("ready"),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setReady()},S.prototype.render=function(){var e=this.source;n&&(e||0===e)&&this.ready&&(this.initialized||this.initialize(),this.allowRefresh&&this.plugin&&this.plugin.render&&(this.dirty||this.checkDirty&&this.checkDirty())&&this.plugin.render.call(this,n,ey,d,u)&&(this.dirty=!1,this.emit("render")))},S.prototype.renderImageCanvas=function(){var r=this.source;if(n&&r&&this.ready&&(this.initialized||this.initialize(),this.allowRefresh&&this.dirty)){n.bindTexture(n.TEXTURE_2D,this.texture),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,this.flip),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);try{return n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),this.dirty=!1,this.emit("render"),!0}catch(r){r.code===e.DOMException.SECURITY_ERR&&(this.allowRefresh=!1,Q.logger.error("Unable to access cross-domain image"))}return!1}},S.prototype.destroy=function(){var e,r,i;for(this.plugin&&this.plugin.destroy&&this.plugin.destroy.call(this),n&&this.texture&&n.deleteTexture(this.texture);this.targets.length;)(i=this.targets.pop())&&i.removeSource&&i.removeSource(this);for(r in(e=Z.indexOf(this))>=0&&Z.splice(e,1),(e=b[this.hook].indexOf(this))>=0&&b[this.hook].splice(e,1),this)this.hasOwnProperty(r)&&"id"!==r&&delete this[r];m.prototype.destroy.call(this)},D=function(e){Object.defineProperties(this,{source:{enumerable:!0,configurable:!0,get:function(){if(e.source)return e.source.pub},set:function(r){e.setSource(r)}},original:{enumerable:!0,configurable:!0,get:function(){return e.target}},width:{enumerable:!0,configurable:!0,get:function(){return e.width},set:function(r){!isNaN(r)&&r>0&&e.width!==r&&(e.width=r,e.resize(),e.setTransformDirty())}},height:{enumerable:!0,configurable:!0,get:function(){return e.height},set:function(r){!isNaN(r)&&r>0&&e.height!==r&&(e.height=r,e.resize(),e.setTransformDirty())}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}}}),this.render=function(){e.render()},this.readPixels=function(r,i,n,o,s){return e.readPixels(r,i,n,o,s)},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.go=function(r){e.go(r)},this.stop=function(){e.stop()},this.getTexture=function(){return e.frameBuffer.texture},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.inputs=function(e){return{source:{type:"image"}}},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(E=function(e,r,i){var o,l,p,h,f,g,y,b,S,w=this,_=!1;function T(e,r,i,o){var s=v[e];if(s.definition){if(!(s=s.definition.call(w,r,i,o)))return null;s=F(F({},v[e]),s),w.hook=S,_=!0,w.plugin=s,w.compare=s.compare,s.target&&(r=s.target),s.gl&&!w.gl&&(w.gl=s.gl,n||ef(s.gl)),w.gl===n&&(w.model=d,w.shader=u)}return s}if(m.call(this),(e&&"string"!=typeof e||!r&&0!==r)&&(i&&"object"===c8(i)||(i=r),r=e),l=void 0===(o=i||{}).flip||o.flip,p=parseInt(o.width,10),h=parseInt(o.height,10),g=o.debugContext,"string"==typeof e&&v[e]&&T(e,r,o,!0),this.renderToTexture=o.renderToTexture,U(r,"WebGLFramebuffer"))if(y=r,U(o,"HTMLCanvasElement"))r=o;else if(U(o,"WebGLRenderingContext"))r=o.canvas;else if(U(o.canvas,"HTMLCanvasElement"))r=o.canvas;else{if(!U(o.context,"WebGLRenderingContext"))throw Error("Must provide a canvas with WebGLFramebuffer target");r=o.context.canvas}if(U(r,"HTMLCanvasElement")){if(p=r.width,h=r.height,(!n||n.canvas!==r&&o.allowSecondaryWebGL)&&(f=G(r,{alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!0,stencil:!0,debugContext:g})),f)n&&n!==f?(this.gl=f,this.frameBuffer={frameBuffer:y||null},this.shader=new X(this.gl,a,c),this.model=ep.call(this,this.gl),this.pixels=null,this.texture=this.gl.createTexture(),this.gl.bindTexture(n.TEXTURE_2D,this.texture),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),this.render=this.renderSecondaryWebGL):(s||(s=this),n||ef(f),this.render=this.renderWebGL,o.renderToTexture?n&&(this.frameBuffer=new $(n,p,h,!1)):this.frameBuffer={frameBuffer:y||null});else{if(!o.allowSecondaryWebGL&&n&&n.canvas!==r)throw Error("Only one WebGL target canvas allowed. Set allowSecondaryWebGL option to create secondary context.");this.render=R,Q.logger.log("Unable to create WebGL context.")}_=!0}if(!_){for(S in v)if(v.hasOwnProperty(S)&&v[S]&&T(S,r,o,!1))break}if(!_)throw Error("Unknown target type");C&&((b=C.get(r))?Q.logger.warn("Target already in use by another instance",r,Object.keys(b).map(function(e){return b[e]})):(b={},C.set(r,b)),b[H.id]=H),this.target=r,this.transform=null,this.transformDirty=!0,this.flip=l,p&&(this.width=p),h&&(this.height=h),this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,void 0!==o.auto?this.auto=o.auto:this.auto=ec,this.frames=0,this.pub=new D(this),W.push(this),K[this.id]=this,ee.push(this)}).prototype=Object.create(m.prototype),E.prototype.constructor=E,E.prototype.setSource=function(e){var r;(r=eb(e))!==this.source&&(this.source&&this.source.removeTarget(this),this.source=r,r.addTarget(this),r&&(this.resize(),r.ready?this.setReady():this.setUnready()),this.setDirty())},E.prototype.setDirty=function(){this.dirty=!0,this.auto&&!N&&(N=M(eg))},E.prototype.resize=function(){U(this.target,"HTMLCanvasElement")?this.width===this.target.width&&this.height===this.target.height||(this.target.width=this.width,this.target.height=this.height,this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,this.emit("resize"),this.setTransformDirty()):this.plugin&&this.plugin.resize&&this.plugin.resize.call(this),!this.source||this.source.width===this.width&&this.source.height===this.height||this.transform||(this.transform=new Float32Array(16))},E.prototype.setTransformDirty=function(){this.transformDirty=!0,this.setDirty()},E.prototype.go=function(){this.auto=!0,this.setDirty()},E.prototype.stop=function(){this.auto=!1},E.prototype.render=function(){n&&this.plugin&&this.plugin.render&&this.plugin.render.call(this,ey,u,d)},E.prototype.renderWebGL=function(){var e,r,i;if(this.resize(),n&&this.dirty&&this.ready){if(!this.source)return;this.source.render(),this.uniforms.source=this.source.texture,this.source.width===this.width&&this.source.height===this.height?this.uniforms.transform=this.source.cumulativeMatrix||o:this.transformDirty&&(e=this.transform,A.copy(e,this.source.cumulativeMatrix||o),r=this.source.width/this.width,i=this.source.height/this.height,e[0]*=r,e[1]*=r,e[2]*=r,e[3]*=r,e[4]*=i,e[5]*=i,e[6]*=i,e[7]*=i,this.uniforms.transform=e,this.transformDirty=!1),ey(u,d,this.uniforms,this.frameBuffer.frameBuffer,this,k),this.emit("render"),this.dirty=!1}},E.prototype.renderSecondaryWebGL=function(){var e,r,i,n,s;this.dirty&&this.ready&&this.source&&(this.emit("render"),this.source.render(!0),e=this.source.width,r=this.source.height,this.pixels&&this.pixels.length===e*r*4||(this.pixels=new Uint8Array(e*r*4)),this.source.readPixels(0,0,e,r,this.pixels),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,e,r,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.pixels),e===this.width&&r===this.height?this.uniforms.transform=o:this.transformDirty&&(i=this.transform,A.copy(i,o),n=this.source.width/this.width,s=this.source.height/this.height,i[0]*=n,i[1]*=n,i[2]*=n,i[3]*=n,i[4]*=s,i[5]*=s,i[6]*=s,i[7]*=s,this.uniforms.transform=i,this.transformDirty=!1),this.uniforms.source=this.texture,ey(this.shader,this.model,this.uniforms,null,this,k),this.dirty=!1)},E.prototype.removeSource=function(e){this.source!==e&&this.source!==e.pub||(this.source=null)},E.prototype.destroy=function(){var e,r;this.source&&this.source.removeTarget&&this.source.removeTarget(this),C&&(delete(r=C.get(this.target))[H.id],Object.keys(r).length||C.delete(this.target)),this.plugin&&this.plugin.destroy&&this.plugin.destroy.call(this),delete this.source,delete this.target,delete this.pub,delete this.uniforms,delete this.pixels,delete this.auto,(e=ee.indexOf(this))>=0&&ee.splice(e,1),m.prototype.destroy.call(this),this===s&&(i.removeEventListener("webglcontextrestored",ev,!1),em(),s=null)},O=function(e){var r,i=this;for(r in Object.defineProperties(this,{transform:{enumerable:!0,configurable:!0,get:function(){return e.hook}},title:{enumerable:!0,configurable:!0,get:function(){return e.plugin.title||e.hook}},width:{enumerable:!0,configurable:!0,get:function(){return e.width}},height:{enumerable:!0,configurable:!0,get:function(){return e.height}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}},source:{enumerable:!0,configurable:!0,get:function(){return e.source&&e.source.pub},set:function(r){e.setSource(r)}}}),e.methods)e.methods.hasOwnProperty(r)&&(this[r]=function(r){return function(){r.apply(e,arguments)&&e.setTransformDirty()}}(e.methods[r]));for(r in e.inputs)e.inputs.hasOwnProperty(r)&&function(r,n){Object.defineProperty(i,r,{configurable:!0,enumerable:!0,get:function(){return n.get.call(e)},set:function(i){var o,s,a,c;o=i,s=e.inputElements[r],"string"==typeof o&&isNaN(o)&&("enum"===n.type?n.options.hasOwnProperty(o)||(o=L(o,["select"])):"number"===n.type||"boolean"===n.type?o=L(o,["input","select"]):"image"===n.type&&(o=L(o,["canvas","img","video"]))),U(o,"HTMLInputElement")||U(o,"HTMLSelectElement")?(a=o.value,s&&s.element!==o&&(s.element.removeEventListener("change",s.listener,!0),s.element.removeEventListener("input",s.listener,!0),delete e.inputElements[r],s=null),s||(s={element:o,listener:(c=o,function(){var i,n;i="checkbox"===o.type?o.checked:c.value,n=e.setInput(r,i),"color"===o.type&&(n=q(n)),n!==i&&(c.value=n)})},e.inputElements[r]=s,"range"===o.type&&o.addEventListener("input",s.listener,!0),o.addEventListener("change",s.listener,!0)),s&&"checkbox"===o.type&&(a=o.checked)):(s&&(s.element.removeEventListener("change",s.listener,!0),s.element.removeEventListener("input",s.listener,!0),delete e.inputElements[r]),a=o),e.setInput(r,a)}})}(r,e.inputs[r]);this.update=function(){e.setDirty()},this.inputs=function(r){var i,n,o,s;if(o=e.plugin.inputs,r)return(n=o[r])&&!n.method?(i={type:n.type,defaultValue:n.defaultValue,title:n.title||r},"number"===n.type?(i.min=n.min,i.max=n.max,i.step=n.step,i.mod=n.mod):"enum"===n.type?i.options=F({},n.options):"vector"===n.type&&(i.dimensions=n.dimensions),n.description&&(i.description=n.description),i):null;for(s in i={},o)o.hasOwnProperty(s)&&!o[s].method&&(i[s]=this.inputs(s));return i},this.alias=function(r,i){return e.alias(r,i),this},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(T=function(e,r){var i,n,o,s,a;for(i in this.matrix=new Float32Array(16),this.cumulativeMatrix=new Float32Array(16),this.ready=!1,this.width=1,this.height=1,this.seriously=H,this.transformRef=h[e],this.hook=e,this.id=Y,Y++,this.options=r,this.sources=null,this.targets=[],this.inputElements={},this.inputs={},this.methods={},this.listeners={},this.texture=null,this.frameBuffer=null,this.uniforms=null,this.dirty=!0,this.transformDirty=!0,this.renderDirty=!1,this.isDestroyed=!1,this.transformed=!1,this.plugin=F({},this.transformRef),this.transformRef.definition&&F(this.plugin,this.transformRef.definition.call(this,r)),this.plugin.inputs)this.plugin.inputs.hasOwnProperty(i)&&((n=this.plugin.inputs[i]).method&&"function"==typeof n.method?this.methods[i]=n.method:"function"==typeof n.set&&"function"==typeof n.get&&(this.inputs[i]=n));for(i in J(this.plugin),a=es[e],this.plugin.inputs)this.plugin.inputs.hasOwnProperty(i)&&"function"==typeof(n=this.plugin.inputs[i]).set&&"function"==typeof n.get&&"function"!=typeof n.method&&(o=n.get.call(this),s=void 0===n.defaultValue?o:n.defaultValue,s=n.validate.call(this,s,n,o),a&&void 0!==a[i]&&(s=n.validate.call(this,a[i],n,n.defaultValue,s),a[i]=s),s!==o&&n.set.call(this,s));W.push(this),K[this.id]=this,this.pub=new O(this),et.push(this),y[e].push(this)}).prototype=Object.create(m.prototype),T.prototype.constructor=T,T.prototype.setDirty=function(){this.renderDirty=!0,m.prototype.setDirty.call(this)},T.prototype.setTransformDirty=function(){var e,r;for(this.transformDirty=!0,this.dirty=!0,this.renderDirty=!0,e=0;e<this.targets.length;e++)(r=this.targets[e]).setTransformDirty?r.setTransformDirty():r.setDirty()},T.prototype.resize=function(){var e;for(m.prototype.resize.call(this),this.plugin.resize&&this.plugin.resize.call(this),e=0;e<this.targets.length;e++)this.targets[e].resize();this.setTransformDirty()},T.prototype.setSource=function(e){var r;if((r=eb(e))!==this.source){if(eS(r,this))throw Error("Attempt to make cyclical connection.");this.source&&this.source.removeTarget(this),this.source=r,r.addTarget(this),r&&r.ready?this.setReady():this.setUnready(),this.resize()}},T.prototype.addTarget=function(e){var r;for(r=0;r<this.targets.length;r++)if(this.targets[r]===e)return;this.targets.push(e)},T.prototype.removeTarget=function(e){var r=this.targets&&this.targets.indexOf(e);r>=0&&this.targets.splice(r,1),this.targets&&this.targets.length&&this.resize()},T.prototype.setInput=function(e,r){var i,n,o;if(this.plugin.inputs.hasOwnProperty(e))return i=this.plugin.inputs[e],n=es[this.hook]&&void 0!==es[this.hook][e]?es[this.hook][e]:i.defaultValue,o=i.get.call(this),void 0===n&&(n=o),r=i.validate.call(this,r,i,n,o),i.set.call(this,r)&&this.setTransformDirty(),i.get.call(this)},T.prototype.alias=function(e,r){var i,n,o=this;if(B.indexOf(r)>=0)throw Error("'"+r+"' is a reserved name and cannot be used as an alias.");return this.plugin.inputs.hasOwnProperty(e)&&(r||(r=e),H.removeAlias(r),(i=this.inputs[e])?(n=o.inputs[e],Object.defineProperty(H,r,{configurable:!0,enumerable:!0,get:function(){return n.get.call(o)},set:function(e){n.set.call(o,e)&&o.setTransformDirty()}})):(i=this.methods[e])&&(n=i,H[r]=function(){n.apply(o,arguments)&&o.setTransformDirty()}),i&&(ei[r]={node:this,input:e})),this},T.prototype.render=function(e){return this.source?(this.source.render(),this.transformDirty&&(this.transformed?this.source.cumulativeMatrix?A.multiply(this.cumulativeMatrix,this.matrix,this.source.cumulativeMatrix):A.copy(this.cumulativeMatrix,this.matrix):A.copy(this.cumulativeMatrix,this.source.cumulativeMatrix||o),this.transformDirty=!1),e&&n?(this.renderDirty&&(this.frameBuffer||(this.uniforms={resolution:[this.width,this.height]},this.frameBuffer=new $(n,this.width,this.height)),this.uniforms.source=this.source.texture,this.uniforms.transform=this.cumulativeMatrix||o,ey(u,d,this.uniforms,this.frameBuffer.frameBuffer,this),this.renderDirty=!1),this.texture=this.frameBuffer.texture):this.source?this.texture=this.source.texture:this.texture=null,this.dirty=!1,this.texture):(this.transformDirty&&(A.copy(this.cumulativeMatrix,this.matrix),this.transformDirty=!1),this.texture=null,void(this.dirty=!1))},T.prototype.readPixels=function(e,r,i,o,s){var a=this.gl||n;if(!n)throw Error("Cannot read pixels until a canvas is connected");if(this.render(!0),void 0===s)s=new Uint8Array(i*o*4);else if(!U(s,"Uint8Array"))throw Error("Incompatible array type");return a.bindFramebuffer(n.FRAMEBUFFER,this.frameBuffer.frameBuffer),a.readPixels(e,r,i,o,n.RGBA,n.UNSIGNED_BYTE,s),s},T.prototype.destroy=function(){var e,r,i,n=this.hook;for(e in this.plugin.destroy&&"function"==typeof this.plugin.destroy&&this.plugin.destroy.call(this),delete this.effect,this.frameBuffer&&(this.frameBuffer.destroy(),delete this.frameBuffer,delete this.texture),this.inputElements)this.inputElements.hasOwnProperty(e)&&((i=this.inputElements[e]).element.removeEventListener("change",i.listener,!0),i.element.removeEventListener("input",i.listener,!0));for(this.source&&this.source.removeTarget(this);this.targets.length;)(i=this.targets.pop())&&i.removeSource&&i.removeSource(this);for(r in this)this.hasOwnProperty(r)&&"id"!==r&&delete this[r];for(r in ei)ei.hasOwnProperty(r)&&(i=ei[r]).node===this&&H.removeAlias(r);(e=et.indexOf(this))>=0&&et.splice(e,1),(e=y[n].indexOf(this))>=0&&y[n].splice(e,1),m.prototype.destroy.call(this)},T.prototype.setReady=m.prototype.setReady,T.prototype.setUnready=m.prototype.setUnready,T.prototype.on=m.prototype.on,T.prototype.off=m.prototype.off,T.prototype.emit=m.prototype.emit,(r=U(r,"HTMLCanvasElement")?{canvas:r}:r||{}).canvas,this.effect=function(e,r){if(!p[e])throw Error("Unknown effect: "+e);return new _(e,r).pub},this.source=function(e,r,i){return eb(e,r,i).pub},this.transform=function(e,i){if("string"!=typeof e&&(i=e,e=!1),e){if(!h[e])throw Error("Unknown transform: "+e)}else if(!h[e=r&&r.defaultTransform||"2d"])throw Error("No transform specified");return new T(e,i).pub},this.target=function(e,r,i){var n,o,s;for(e&&"string"==typeof e&&!v[e]&&(o=l.querySelector(e)),("string"!=typeof e||!r&&0!==r||o)&&(i&&"object"===c8(i)||(i=r),r=o||e,e=null),"string"==typeof r&&isNaN(r)&&(r=l.querySelector(r)),s=0;s<ee.length;s++)if(n=ee[s],(!e||e===n.hook)&&(n.target===r||n.compare&&n.compare(r,i)))return n.pub;return(n=new E(e,r,i)).pub},this.aliases=function(){return Object.keys(ei)},this.removeAlias=function(e){ei[e]&&(delete this[e],delete ei[e])},this.defaults=function(e,r){var i;if(e)if("object"!==c8(e))null===r?delete es[e]:"object"===c8(r)&&(es[e]=F({},r));else for(i in e)e.hasOwnProperty(i)&&this.defaults(i,e[i]);else if(null===e)for(i in es)es.hasOwnProperty(i)&&delete es[i]},this.go=function(e,r){var i;for("function"==typeof e&&0>en.indexOf(e)&&en.push(e),"function"==typeof r&&0>eo.indexOf(r)&&eo.push(r),ec=!0,i=0;i<ee.length;i++)ee[i].go();!N&&(en.length||eo.length)&&eg()},this.stop=function(){en.length=0,eo.length=0,j(N),N=0},this.render=function(){var e;for(e=0;e<ee.length;e++)ee[e].render(r)},this.destroy=function(){for(var e,r;W.length;)W[0].pub.destroy();for(e in this)this.hasOwnProperty(e)&&"isDestroyed"!==e&&"id"!==e&&((r=Object.getOwnPropertyDescriptor(this,e)).get||r.set||"function"!=typeof this[e]?delete this[e]:this[e]=R);H=null,Z=[],ee=[],er=[],W=[],en.length=0,eo.length=0,j(N),N=0,ed=!0},this.isDestroyed=function(){return ed},this.incompatible=function(e){var r,i,n=!1;if(n=Q.incompatible(e))return n;if(!e){for(r in g)if(g.hasOwnProperty(r)&&g[r].length&&(i=p[r])&&"function"==typeof i.compatible&&!i.compatible.call(this))return"plugin-"+r;for(r in b)if(b.hasOwnProperty(r)&&b[r].length&&(i=f[r])&&"function"==typeof i.compatible&&!i.compatible.call(this))return"source-"+r}return!1},this.isNode=function(e){var r;return!(!e||!(r=K[e.id])||r.isDestroyed)},this.isSource=function(e){return this.isNode(e)&&e instanceof I},this.isEffect=function(e){return this.isNode(e)&&e instanceof P},this.isTransform=function(e){return this.isNode(e)&&e instanceof O},this.isTarget=function(e){return this.isNode(e)&&e instanceof D},Object.defineProperties(this,{id:{enumerable:!0,configurable:!0,get:function(){return z}}}),this.defaults(r.defaults)}return e.addEventListener("message",function(r){r.source===e&&"seriously-timeout-message"===r.data&&(r.stopPropagation(),m.length>0&&m.shift()())},!0),$.prototype.resize=function(e,r){var i=this.gl;this.width===e&&this.height===r||(this.width=e,this.height=r,i&&(i.bindTexture(i.TEXTURE_2D,this.texture),i.bindFramebuffer(i.FRAMEBUFFER,this.frameBuffer),i.bindRenderbuffer(i.RENDERBUFFER,this.renderBuffer),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e,r,0,i.RGBA,i.UNSIGNED_BYTE,null),i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_COMPONENT16,e,r),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,this.texture,0),i.bindTexture(i.TEXTURE_2D,null),i.bindRenderbuffer(i.RENDERBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,null)))},$.prototype.destroy=function(){var e=this.gl;e&&(e.deleteFramebuffer(this.frameBuffer),e.deleteRenderbuffer(this.renderBuffer),this.ownTexture&&e.deleteTexture(this.texture)),delete this.frameBuffer,delete this.renderBuffer,delete this.texture,delete this.gl},X.prototype.use=function(){this.gl.useProgram(this.program)},Q.incompatible=function(r){var i,o,s;if(void 0===n&&((i=l.createElement("canvas"))&&i.getContext?e.WebGLRenderingContext?(o=K())||(n="context"):n="webgl":n="canvas"),n)return n;if(r){if((s=p[r])&&"function"==typeof s.compatible&&!s.compatible(o))return"plugin-"+r;if((s=f[r])&&"function"==typeof s.compatible&&!s.compatible(o))return"source-"+r}return!1},Q.plugin=function(e,r,i){var n;if(p[e])Q.logger.warn("Effect ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i)return n=F({},i),"function"==typeof r&&(n.definition=r),n.reserved=D,n.inputs&&J(n),n.title||(n.title=e),p[e]=n,g[e]=[],n},Q.removePlugin=function(e){var r;if(!e||!p[e])return this;if(r=g[e]){for(;r.length;)r.shift().destroy();delete g[e]}return delete p[e],this},Q.source=function(e,r,i){var n;if(f[e])Q.logger.warn("Source ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i||r)return n=F({},i),"function"==typeof r&&(n.definition=r),n.title||(n.title=e),f[e]=n,b[e]=[],n},Q.removeSource=function(e){var r;if(!e||!f[e])return this;if(r=b[e]){for(;r.length;)r.shift().destroy();delete b[e]}return delete f[e],this},Q.transform=function(e,r,i){var n;if(h[e])Q.logger.warn("Transform ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i||r)return n=F({},i),"function"==typeof r&&(n.definition=r),n.reserved=N,n.inputs&&J(n),n.title||(n.title=e),h[e]=n,y[e]=[],n},Q.removeTransform=function(e){var r;if(!e||!h[e])return this;if(r=y[e]){for(;r.length;)r.shift().destroy();delete y[e]}return delete h[e],this},Q.target=function(e,r,i){var n;if(v[e])Q.logger.warn("Target ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i||r)return n=F({},i),"function"==typeof r&&(n.definition=r),n.title||(n.title=e),v[e]=n,S[e]=[],n},Q.removeTarget=function(e){var r;if(!e||!v[e])return this;if(r=S[e]){for(;r.length;)r.shift().destroy();delete S[e]}return delete v[e],this},Q.inputValidators={color:function(e,r,n,o){var s,a,c,d;if(a=o||[],"string"==typeof e){if((c=T.exec(e))&&c.length){if(c.length<3)return a[0]=a[1]=a[2]=a[3]=0,a;for(a[3]=1,d=0;d<3;d++)a[d]=parseFloat(c[d+2])/255;return isNaN(c[6])||(a[3]=parseFloat(c[6])),"hsl"===c[1].toLowerCase()?H(a[0],a[1],a[2],a[3],a):a}if((c=E.exec(e))&&c.length)return 3===(s=c[1]).length?(a[0]=parseInt(s[0],16)/15,a[1]=parseInt(s[1],16)/15,a[2]=parseInt(s[2],16)/15,a[3]=1):4===s.length?(a[0]=parseInt(s[0],16)/15,a[1]=parseInt(s[1],16)/15,a[2]=parseInt(s[2],16)/15,a[3]=parseInt(s[3],16)/15):6===s.length?(a[0]=parseInt(s.substr(0,2),16)/255,a[1]=parseInt(s.substr(2,2),16)/255,a[2]=parseInt(s.substr(4,2),16)/255,a[3]=1):8===s.length?(a[0]=parseInt(s.substr(0,2),16)/255,a[1]=parseInt(s.substr(2,2),16)/255,a[2]=parseInt(s.substr(4,2),16)/255,a[3]=parseInt(s.substr(6,2),16)/255):a[0]=a[1]=a[2]=a[3]=0,a;if(c=_[e.toLowerCase()]){for(d=0;d<4;d++)a[d]=c[d];return a}return i||(i=l.createElement("canvas").getContext("2d")),i.fillStyle=e,(s=i.fillStyle)&&"#000000"!==s?Q.inputValidators.color(s,r,n,o):(a[0]=a[1]=a[2]=a[3]=0,a)}if(W(e)){if((a=e).length<3)return a[0]=a[1]=a[2]=a[3]=0,a;for(d=0;d<3;d++)if(isNaN(a[d]))return a[0]=a[1]=a[2]=a[3]=0,a;return a.length<4&&a.push(1),a}if("number"==typeof e)return a[0]=a[1]=a[2]=e,a[3]=1,a;if("object"===c8(e)){for(d=0;d<4;d++)null===e[s=I[d]]||isNaN(e[s])?a[d]=+(3===d):a[d]=e[s];return a}return a[0]=a[1]=a[2]=a[3]=0,a},number:function(e,r,i){return isNaN(e=parseFloat(e))?i||0:(r.mod&&(e-=r.mod*Math.floor(e/r.mod)),e<r.min?r.min:e>r.max?r.max:r.step?Math.round(e/r.step)*r.step:e)},enum:function(e,r,i){var n=r.options||[];return"string"==typeof e?e=e.toLowerCase():"number"==typeof e?e=e.toString():e||(e=""),n.hasOwnProperty(e)?e:i||""},vector:function(e,r,i,n){var o,s,a,c=r.dimensions||4;if(o=n||[],W(e)){for(s=0;s<c;s++)o[s]=e[s]||0;return o}if("object"===c8(e)){for(s=0;s<c;s++)void 0===e[a=P[s]]&&(a=I[s]),o[s]=e[a]||0;return o}for(e=parseFloat(e)||0,s=0;s<c;s++)o[s]=e;return o},boolean:function(e){return!(!e||e&&e.toLowerCase&&"false"===e.toLowerCase())},string:function(e){return"string"==typeof e?e:0===e||e?e.toString?e.toString():String(e):""}},Q.prototype.effects=Q.effects=function(){var e,r,i,n,o,s={};for(e in p)if(p.hasOwnProperty(e)){for(o in i={title:(r=p[e]).title||e,description:r.description||"",inputs:{}},r.inputs)r.inputs.hasOwnProperty(o)&&(n=r.inputs[o],i.inputs[o]={type:n.type,defaultValue:n.defaultValue,step:n.step,min:n.min,max:n.max,mod:n.mod,minCount:n.minCount,maxCount:n.maxCount,dimensions:n.dimensions,title:n.title||o,description:n.description||"",options:n.options||[]});s[e]=i}return s},e.Float32Array&&(o=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])),e.Seriously&&"object"===c8(e.Seriously)&&function(){var r;for(r in e.Seriously)e.Seriously.hasOwnProperty(r)&&"plugin"!==r&&"object"===c8(e.Seriously[r])&&Q.plugin(r,e.Seriously[r])}(),Q.logger={log:z("log"),info:z("info"),warn:z("warn"),error:z("error")},Q.util={mat4:A,checkSource:function(r){var i,n,o,s;if(!(i=L(r,["img","canvas","video"])))return!1;if(!(n=l.createElement("canvas")))return Q.logger.warn("Browser does not support canvas or Seriously.js"),!1;if(0===i.naturalWidth&&"IMG"===i.tagName)return Q.logger.warn("Image not loaded"),!1;if(0===i.readyState&&0===i.videoWidth&&"VIDEO"===i.tagName)return Q.logger.warn("Video not loaded"),!1;if(o=K()){(s=o.createTexture())||Q.logger.error("Test WebGL context has been lost"),o.bindTexture(o.TEXTURE_2D,s);try{o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,i)}catch(r){return r.code===e.DOMException.SECURITY_ERR?Q.logger.log("Unable to access cross-domain image"):Q.logger.error("Error storing image to texture: "+r.message),o.deleteTexture(s),!1}o.deleteTexture(s)}else{o=n.getContext("2d");try{o.drawImage(i,0,0),o.getImageData(0,0,1,1)}catch(r){return r.code===e.DOMException.SECURITY_ERR?Q.logger.log("Unable to access cross-domain image"):Q.logger.error("Error drawing image to canvas: "+r.message),!1}}return!0},hslToRgb:H,colors:_,setTimeoutZero:V,ShaderProgram:X,FrameBuffer:$,requestAnimationFrame:M,shader:{makeNoise:"float makeNoise(float u, float v, float timer) {\n float x = u * v * mod(timer * 1000.0, 100.0);\n x = mod(x, 13.0) * mod(x, 127.0);\n float dx = mod(x, 0.01);\n return clamp(0.1 + dx * 100.0, 0.0, 1.0);\n}\n",random:"#ifndef RANDOM\n#define RANDOM\nfloat random(vec2 n) {\n return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233)))* 43758.5453);\n}\n#endif\n"}},Q.source("video",function(r,i,n){var o,a,c=this,d=!1,u=!1,p=!1,h=0;function f(){r.removeEventListener("loadedmetadata",f,!0),d||(r.videoWidth?(c.width===r.videoWidth&&c.height===r.videoHeight||(c.width=r.videoWidth,c.height=r.videoHeight,c.resize()),u&&c.setReady()):(u=!0,setTimeout(f,50)))}function v(){p=!0}function m(){p=!1,c.setDirty()}if(U(r,"HTMLVideoElement"))return r.readyState?f():(u=!0,r.addEventListener("loadedmetadata",f,!0)),r.addEventListener("seeking",v,!1),r.addEventListener("seeked",m,!1),{deferTexture:u,source:r,render:function i(n){var d;if(h=r.currentTime,!r.videoHeight||!r.videoWidth)return!1;s?(a||((o=(a=l.createElement("canvas").getContext("2d")).canvas).width=c.width,o.height=c.height),d=o,a.drawImage(r,0,0,c.width,c.height)):d=r,n.bindTexture(n.TEXTURE_2D,c.texture),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,c.flip),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);try{if(n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,d),void 0===s){if(n.getError()===n.INVALID_VALUE)return s=!0,i(n);s=!1}return!0}catch(r){r.code===e.DOMException.SECURITY_ERR?(c.allowRefresh=!1,Q.logger.error("Unable to access cross-domain image")):Q.logger.error("Error rendering video source",r)}return!1},checkDirty:function(){return!p&&r.currentTime!==h},compare:function(e){return c.source===e},destroy:function(){d=!0,r.removeEventListener("seeking",v,!1),r.removeEventListener("seeked",m,!1),r.removeEventListener("loadedmetadata",f,!0)}}},{title:"Video"}),Q.transform("2d",function(e){var r=this,i=!(e&&e.radians),n=0,o=0,s=1,a=1,c=0,d=0,l=0,u=0,p=0;function h(){var e,h,f,v,m,g,y,b,S,C,w,R=r.matrix;function _(e,r){R[12]=R[0]*e+R[4]*r+R[12],R[13]=R[1]*e+R[5]*r+R[13],R[14]=R[2]*e+R[6]*r+R[14],R[15]=R[3]*e+R[7]*r+R[15]}c||d||l||u||p||1!==s||1!==a?(A.identity(R),_(c+n,d+o),u&&(R[4]=u/r.width),p&&(R[1]=p/r.height),l&&(v=R[0],m=R[1],g=R[2],y=R[3],b=R[4],S=R[5],C=R[6],w=R[7],h=Math.sin(e=-(i?l*Math.PI/180:l)),f=Math.cos(e),R[0]=v*f+b*h,R[1]=m*f+S*h,R[2]=g*f+C*h,R[3]=y*f+w*h,R[4]=b*f-v*h,R[5]=S*f-m*h,R[6]=C*f-g*h,R[7]=w*f-y*h),1!==s&&(R[0]*=s,R[1]*=s,R[2]*=s,R[3]*=s),1!==a&&(R[4]*=a,R[5]*=a,R[6]*=a,R[7]*=a),_(-n,-o),r.transformed=!0):r.transformed=!1}return{inputs:{reset:{method:function(){return n=0,o=0,s=1,a=1,c=0,d=0,l=0,u=0,p=0,!!r.transformed&&(r.transformed=!1,!0)}},translate:{method:function(e,r){return isNaN(e)&&(e=c),isNaN(r)&&(r=d),(e!==c||r!==d)&&(c=e,d=r,h(),!0)},type:["number","number"]},translateX:{get:function(){return c},set:function(e){return e!==c&&(c=e,h(),!0)},type:"number"},translateY:{get:function(){return d},set:function(e){return e!==d&&(d=e,h(),!0)},type:"number"},rotation:{get:function(){return l},set:function(e){return e!==l&&(l=parseFloat(e),h(),!0)},type:"number"},center:{method:function(e,r){return isNaN(e)&&(e=n),isNaN(r)&&(r=o),(e!==n||r!==o)&&(n=e,o=r,h(),!0)},type:["number","number"]},centerX:{get:function(){return n},set:function(e){return e!==n&&(n=e,h(),!0)},type:"number"},centerY:{get:function(){return o},set:function(e){return e!==o&&(o=e,h(),!0)},type:"number"},skew:{method:function(e,r){return isNaN(e)&&(e=u),isNaN(r)&&(r=p),(e!==u||r!==p)&&(u=e,p=r,h(),!0)},type:["number","number"]},skewX:{get:function(){return u},set:function(e){return e!==u&&(u=e,h(),!0)},type:"number"},skewY:{get:function(){return p},set:function(e){return e!==p&&(p=e,h(),!0)},type:"number"},scale:{method:function(e,r){var i,n;if(i=isNaN(e)?s:e,isNaN(r)){if(isNaN(e))return!1;n=i}else n=r;return(i!==s||n!==a)&&(s=i,a=n,h(),!0)},type:["number","number"]},scaleX:{get:function(){return s},set:function(e){return e!==s&&(s=e,h(),!0)},type:"number"},scaleY:{get:function(){return a},set:function(e){return e!==a&&(a=e,h(),!0)},type:"number"}}}},{title:"2D Transform",description:"Translate, Rotate, Scale, Skew"}),Q.transform("flip",function(){var e=this,r=!0;function i(){var i=e.matrix;r?(i[0]=-1,i[5]=1):(i[0]=1,i[5]=-1)}return A.identity(e.matrix),i(),e.transformDirty=!0,e.transformed=!0,{inputs:{direction:{get:function(){return r?"horizontal":"vertical"},set:function(e){var n;return(n="vertical"!==e)!==r&&(r=n,i(),!0)},type:"string"}}}},{title:"Flip",description:"Flip Horizontal/Vertical"}),Q.transform("reformat",function(){var e,r,i=this,n="contain";function o(){var o,s,a,c,d=i.matrix,l=e||i.width,u=r||i.height,p=i.source,h=p&&p.width||1,f=p&&p.height||1;"distort"===n||l===h&&u===f?i.transformed=!1:(a=h/f,c=l/u,"none"===n?(o=h/l,s=f/u):"width"===n||"contain"===n&&c<=a?(o=1,s=c/a):"height"===n||"contain"===n&&c>a?(o=a/c,s=1):c>a?(o=1,s=c/a):(o=a/c,s=1),1!==o||1!==s?(A.identity(d),1!==o&&(d[0]*=o,d[1]*=o,d[2]*=o,d[3]*=o),1!==s&&(d[4]*=s,d[5]*=s,d[6]*=s,d[7]*=s),i.transformed=!0):i.transformed=!1)}function s(){return e||i.source&&i.source.width||1}function a(){return r||i.source&&i.source.height||1}return this.resize=function(){var e,r=s(),i=a();if(this.width!==r||this.height!==i)for(this.width=r,this.height=i,this.uniforms&&this.uniforms.resolution&&(this.uniforms.resolution[0]=r,this.uniforms.resolution[1]=i),this.frameBuffer&&this.frameBuffer.resize&&this.frameBuffer.resize(r,i),e=0;e<this.targets.length;e++)this.targets[e].resize();this.setTransformDirty(),o()},{inputs:{width:{get:s,set:function(r){return(r=Math.floor(r))===e||(e=r,this.resize()),!1},type:"number"},height:{get:a,set:function(e){return(e=Math.floor(e))===r||(r=e,this.resize()),!1},type:"number"},mode:{get:function(){return n},set:function(e){return e!==n&&(n=e,o(),!0)},type:"enum",options:["cover","contain","distort","width","height","none"]}}}},{title:"Reformat",description:"Change output dimensions"}),a="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nvoid main(void) {\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n gl_Position.w = screenPosition.w;\n vTexCoord = texCoord;\n}\n",c="precision mediump float;\nvarying vec2 vTexCoord;\nuniform sampler2D source;\nvoid main(void) {\n gl_FragColor = texture2D(source, vTexCoord);\n}",Q.util.shader.noiseHelpers="#ifndef NOISE_HELPERS\n#define NOISE_HELPERS\nvec2 mod289(vec2 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec4 mod289(vec4 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec3 permute(vec3 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\nvec4 permute(vec4 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\nvec4 taylorInvSqrt(vec4 r) {\n return 1.79284291400159 - 0.85373472095314 * r;\n}\nfloat taylorInvSqrt(float r) {\n return 1.79284291400159 - 0.85373472095314 * r;\n}\n#endif\n",Q.util.shader.snoise2d="#ifndef NOISE2D\n#define NOISE2D\nfloat snoise(vec2 v) {\n const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0\n 0.366025403784439, // 0.5*(sqrt(3.0)-1.0)\n -0.577350269189626, // -1.0 + 2.0 * C.x\n 0.024390243902439); // 1.0 / 41.0\n vec2 i = floor(v + dot(v, C.yy));\n vec2 x0 = v - i + dot(i, C.xx);\n vec2 i1;\n //i1.x = step(x0.y, x0.x); // x0.x > x0.y ? 1.0 : 0.0\n //i1.y = 1.0 - i1.x;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n // x0 = x0 - 0.0 + 0.0 * C.xx ;\n // x1 = x0 - i1 + 1.0 * C.xx ;\n // x2 = x0 - 1.0 + 2.0 * C.xx ;\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n i = mod289(i); // Avoid truncation effects in permutation\n vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + i.x + vec3(0.0, i1.x, 1.0));\n vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n#endif\n",Q.util.shader.snoise3d="#ifndef NOISE3D\n#define NOISE3D\nfloat snoise(vec3 v) {\n const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n vec3 i = floor(v + dot(v, C.yyy));\n vec3 x0 = v - i + dot(i, C.xxx) ;\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min(g.xyz, l.zxy);\n vec3 i2 = max(g.xyz, l.zxy);\n // x0 = x0 - 0.0 + 0.0 * C.xxx;\n // x1 = x0 - i1 + 1.0 * C.xxx;\n // x2 = x0 - i2 + 2.0 * C.xxx;\n // x3 = x0 - 1.0 + 3.0 * C.xxx;\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\n vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y\n i = mod289(i);\n vec4 p = permute(permute(permute(\n i.z + vec4(0.0, i1.z, i2.z, 1.0))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0))\n + i.x + vec4(0.0, i1.x, i2.x, 1.0));\n float n_ = 0.142857142857; // 1.0/7.0\n vec3 ns = n_ * D.wyz - D.xzx;\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p, 7 * 7)\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_); // mod(j, N)\n vec4 x = x_ * ns.x + ns.yyyy;\n vec4 y = y_ * ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n vec4 b0 = vec4(x.xy, y.xy);\n vec4 b1 = vec4(x.zw, y.zw);\n //vec4 s0 = vec4(lessThan(b0, 0.0)) * 2.0 - 1.0;\n //vec4 s1 = vec4(lessThan(b1, 0.0)) * 2.0 - 1.0;\n vec4 s0 = floor(b0) * 2.0 + 1.0;\n vec4 s1 = floor(b1) * 2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy ;\n vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww ;\n vec3 p0 = vec3(a0.xy, h.x);\n vec3 p1 = vec3(a0.zw, h.y);\n vec3 p2 = vec3(a1.xy, h.z);\n vec3 p3 = vec3(a1.zw, h.w);\n vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);\n m = m * m;\n return 42.0 * dot(m*m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));\n}\n#endif\n",Q.util.shader.snoise4d="#ifndef NOISE4D\n#define NOISE4D\nvec4 grad4(float j, vec4 ip)\n {\n const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);\n vec4 p, s;\n\n p.xyz = floor(fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;\n p.w = 1.5 - dot(abs(p.xyz), ones.xyz);\n s = vec4(lessThan(p, vec4(0.0)));\n p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www;\n\n return p;\n }\n\n#define F4 0.309016994374947451\n\nfloat snoise(vec4 v)\n {\n const vec4 C = vec4(0.138196601125011, // (5 - sqrt(5))/20 G4\n 0.276393202250021, // 2 * G4\n 0.414589803375032, // 3 * G4\n -0.447213595499958); // -1 + 4 * G4\n\n vec4 i = floor(v + dot(v, vec4(F4)));\n vec4 x0 = v - i + dot(i, C.xxxx);\n\n\n vec4 i0;\n vec3 isX = step(x0.yzw, x0.xxx);\n vec3 isYZ = step(x0.zww, x0.yyz);\n i0.x = isX.x + isX.y + isX.z;\n i0.yzw = 1.0 - isX;\n i0.y += isYZ.x + isYZ.y;\n i0.zw += 1.0 - isYZ.xy;\n i0.z += isYZ.z;\n i0.w += 1.0 - isYZ.z;\n\n vec4 i3 = clamp(i0, 0.0, 1.0);\n vec4 i2 = clamp(i0 - 1.0, 0.0, 1.0);\n vec4 i1 = clamp(i0 - 2.0, 0.0, 1.0);\n\n vec4 x1 = x0 - i1 + C.xxxx;\n vec4 x2 = x0 - i2 + C.yyyy;\n vec4 x3 = x0 - i3 + C.zzzz;\n vec4 x4 = x0 + C.wwww;\n\n i = mod289(i);\n float j0 = permute(permute(permute(permute(i.w) + i.z) + i.y) + i.x);\n vec4 j1 = permute(permute(permute(permute (\n i.w + vec4(i1.w, i2.w, i3.w, 1.0))\n + i.z + vec4(i1.z, i2.z, i3.z, 1.0))\n + i.y + vec4(i1.y, i2.y, i3.y, 1.0))\n + i.x + vec4(i1.x, i2.x, i3.x, 1.0));\n\n vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;\n\n vec4 p0 = grad4(j0, ip);\n vec4 p1 = grad4(j1.x, ip);\n vec4 p2 = grad4(j1.y, ip);\n vec4 p3 = grad4(j1.z, ip);\n vec4 p4 = grad4(j1.w, ip);\n\n vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n p4 *= taylorInvSqrt(dot(p4, p4));\n\n vec3 m0 = max(0.6 - vec3(dot(x0, x0), dot(x1, x1), dot(x2, x2)), 0.0);\n vec2 m1 = max(0.6 - vec2(dot(x3, x3), dot(x4, x4)), 0.0);\n m0 = m0 * m0;\n m1 = m1 * m1;\n return 49.0 * (dot(m0*m0, vec3(dot(p0, x0), dot(p1, x1), dot(p2, x2)))\n + dot(m1*m1, vec2(dot(p3, x3), dot(p4, x4)))) ;\n}\n#endif\n",Q}(m=window),m.Seriously||(m.Seriously=g),de.exports=g;var dt=de.exports;window,console.info("seriously version: chroma"),dt.plugin("chroma",{shader:function(e,r){return r.vertex="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nuniform vec4 screen;\nuniform float balance;\nvarying float screenSat;\nvarying vec3 screenPrimary;\nvoid main(void) {\n float fmin = min(min(screen.r, screen.g), screen.b);\n float fmax = max(max(screen.r, screen.g), screen.b);\n float secondaryComponents;\n screenPrimary = step(fmax, screen.rgb);\n secondaryComponents = dot(1.0 - screenPrimary, screen.rgb);\n screenSat = fmax - mix(secondaryComponents - fmin, secondaryComponents / 2.0, balance);\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position = screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n vTexCoord = texCoord;\n}",r.fragment=[this.inputs.mask?"#define MASK":"","precision mediump float;\nvarying vec2 vTexCoord;\nuniform sampler2D source;\nuniform vec4 screen;\nuniform float screenWeight;\nuniform float balance;\nuniform float clipBlack;\nuniform float clipWhite;\nuniform bool mask;\nvarying float screenSat;\nvarying vec3 screenPrimary;\nvoid main(void) {\n float pixelSat, secondaryComponents;\n vec4 sourcePixel = texture2D(source, vTexCoord);\n\n if (screen.a == 0.0) {\n gl_FragColor = sourcePixel;\n return;\n }\n \n float fmin = min(min(sourcePixel.r, sourcePixel.g), sourcePixel.b);\n float fmax = max(max(sourcePixel.r, sourcePixel.g), sourcePixel.b);\n vec3 pixelPrimary = step(fmax, sourcePixel.rgb);\n secondaryComponents = dot(1.0 - pixelPrimary, sourcePixel.rgb);\n pixelSat = fmax - mix(secondaryComponents - fmin, secondaryComponents / 2.0, balance);\n float diffPrimary = dot(abs(pixelPrimary - screenPrimary), vec3(1.0));\n float solid = step(1.0, step(pixelSat, 0.1) + step(fmax, 0.1) + diffPrimary);\n float alpha = max(0.0, 1.0 - pixelSat / screenSat);\n alpha = smoothstep(clipBlack, clipWhite, alpha);\n vec4 semiTransparentPixel = vec4((sourcePixel.rgb - (1.0 - alpha) * screen.rgb * screenWeight) / max(0.00001, alpha), alpha);\n vec4 pixel = mix(semiTransparentPixel, sourcePixel, solid);\n#ifdef MASK\n gl_FragColor = vec4(vec3(pixel.a), 1.0);\n#else\n gl_FragColor = pixel;\n#endif\n}"].join("\n"),r},inPlace:!0,inputs:{source:{type:"image",uniform:"source"},screen:{type:"color",uniform:"screen",defaultValue:[66/255,195/255,31/255,1]},weight:{type:"number",uniform:"screenWeight",defaultValue:1,min:0},balance:{type:"number",uniform:"balance",defaultValue:1,min:0,max:1},clipBlack:{type:"number",uniform:"clipBlack",defaultValue:0,min:0,max:1},clipWhite:{type:"number",uniform:"clipWhite",defaultValue:1,min:0,max:1},mask:{type:"boolean",defaultValue:!1,uniform:"mask",shaderDirty:!0}},title:"Chroma Key",description:""}),window,console.info("seriously version: chroma_obs"),dt.plugin("chroma_obs",{shader:function(e,r){return r.vertex="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nconst vec4 cb_v4 = vec4(-0.100644, -0.338572, 0.439216, 0.501961);\nconst vec4 cr_v4 = vec4(0.439216, -0.398942, -0.040274, 0.501961);\nuniform vec4 screen;\nuniform float similarity;\nuniform float smoothness;\nuniform float spill;\nuniform float contrast;\nuniform float gamma;\nvarying vec2 chroma_key;\nvarying vec2 pixel_size;\nvarying float similarity_v;\nvarying float smoothness_v;\nvarying float spill_v;\nvarying float contrast_v;\nvarying float gamma_v;\nvoid main(void) {\n float cb = dot(screen.rgb, cb_v4.xyz) + cb_v4.w;\n float cr = dot(screen.rgb, cr_v4.xyz) + cr_v4.w;\n chroma_key.x = cb;\n chroma_key.y = cr;\n pixel_size.x = 1.0 / resolution.x;\n pixel_size.y = 1.0 / resolution.y;\n similarity_v = similarity * 1.0 / 1000.0;\n smoothness_v = smoothness * 1.0 / 1000.0;\n spill_v = spill * 1.0 / 1000.0;\n contrast_v = (contrast < 0.0) ? (1.0 / (-contrast + 1.0)) : (contrast + 1.0);\n gamma_v = (gamma < 0.0) ? (-gamma + 1.0) : (1.0 / (gamma + 1.0));\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position = screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n vTexCoord = texCoord;\n}",r.fragment=[this.inputs.mask?"#define MASK":"","precision mediump float;\nvarying vec2 vTexCoord;\nuniform bool mask;\nuniform vec4 screen;\nuniform sampler2D source;\nconst vec4 cb_v4 = vec4(-0.100644, -0.338572, 0.439216, 0.501961);\nconst vec4 cr_v4 = vec4(0.439216, -0.398942, -0.040274, 0.501961);\nuniform float opacity;\nuniform float brightness;\nvarying vec2 chroma_key;\nvarying vec2 pixel_size;\nvarying float similarity_v;\nvarying float smoothness_v;\nvarying float spill_v;\nvarying float contrast_v;\nvarying float gamma_v;\nvec4 CalcColor(vec4 rgba) {\n return vec4(pow(rgba.rgb, vec3(gamma_v, gamma_v, gamma_v)) * contrast_v + brightness, rgba.a);\n}\nfloat GetChromaDist(vec3 rgb) {\n float cb = dot(rgb.rgb, cb_v4.xyz) + cb_v4.w;\n float cr = dot(rgb.rgb, cr_v4.xyz) + cr_v4.w;\n return distance(chroma_key, vec2(cb, cr));\n}\nfloat GetNonlinearChannel(float u) {\n return u;\n}\nvec3 GetNonlinearColor(vec3 rgb)\n{\n return vec3(GetNonlinearChannel(rgb.r), GetNonlinearChannel(rgb.g), GetNonlinearChannel(rgb.b));\n}\nvec3 SampleTexture(vec2 uv)\n{\n vec3 rgb = texture2D(source, uv).rgb;\n return GetNonlinearColor(rgb);\n}\nfloat GetBoxFilteredChromaDist(vec3 rgb, vec2 texCoord) {\n vec2 h_pixel_size = pixel_size / 2.0;\n vec2 point_0 = vec2(pixel_size.x, h_pixel_size.y);\n vec2 point_1 = vec2(h_pixel_size.x, -pixel_size.y);\n float distVal = GetChromaDist(SampleTexture(texCoord-point_0));\n distVal += GetChromaDist(SampleTexture(texCoord+point_0));\n distVal += GetChromaDist(SampleTexture(texCoord-point_1));\n distVal += GetChromaDist(SampleTexture(texCoord+point_1));\n distVal *= 2.0;\n distVal += GetChromaDist(GetNonlinearColor(rgb));\n return distVal / 9.0;\n}\nvec4 ProcessChromaKey(vec4 rgba, vec2 uv)\n{\n float chromaDist = GetBoxFilteredChromaDist(rgba.rgb, uv);\n float baseMask = chromaDist - similarity_v;\n float fullMask = pow(clamp(baseMask / smoothness_v, 0.0, 1.0), 1.5);\n float spillVal = pow(clamp(baseMask / spill_v, 0.0, 1.0), 1.5);\n rgba.a *= opacity;\n rgba.a *= fullMask;\n float desat = dot(rgba.rgb, vec3(0.2126, 0.7152, 0.0722));\n rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);\n return CalcColor(rgba);\n}\nvoid main(void) {\n vec4 rgba = texture2D(source, vTexCoord);\n\n if (screen.w == 0.0) {\n gl_FragColor = rgba;\n return;\n }\n \n rgba.rgb *= (rgba.a > 0.) ? (1. / rgba.a) : 0.;\n rgba = ProcessChromaKey(rgba, vTexCoord);\n rgba.rgb *= rgba.a;\n#ifdef MASK\n gl_FragColor = vec4(vec3(rgba.a), 1.0);\n#else\n gl_FragColor = rgba;\n#endif\n}"].join("\n"),r},inPlace:!0,inputs:{source:{type:"image",uniform:"source"},screen:{type:"color",uniform:"screen",defaultValue:[0,1,0,1]},similarity:{type:"number",uniform:"similarity",defaultValue:400,min:1,max:1e3},smoothness:{type:"number",uniform:"smoothness",defaultValue:80,min:1,max:1e3},opacity:{type:"number",uniform:"opacity",defaultValue:1,min:0,max:1},contrast:{type:"number",uniform:"contrast",defaultValue:0,min:-4,max:4},brightness:{type:"number",uniform:"brightness",defaultValue:0,min:-1,max:1},gamma:{type:"number",uniform:"gamma",defaultValue:0,min:-1,max:1},spill:{type:"number",uniform:"spill",defaultValue:100,min:1,max:1e3},mask:{type:"boolean",defaultValue:!1,uniform:"mask",shaderDirty:!0}},title:"Chroma Key OBS",description:""}),window,console.info("seriously version: chroma_post"),dt.plugin("chroma_post",{shader:function(e,r){return r.vertex="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nvarying vec2 pixel_size;\nvoid main(void) {\n pixel_size.x = 1.0 / resolution.x;\n pixel_size.y = 1.0 / resolution.y;\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position = screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n vTexCoord = texCoord;\n}",r.fragment=[this.inputs.mask?"#define MASK":"","precision mediump float;\nvarying vec2 vTexCoord;\nuniform bool mask;\nuniform sampler2D source;\nuniform float edgeShrink;\nvarying vec2 pixel_size;\nconst int filter_size = 3;\nfloat edgeSmoothSuppKernelV2(vec4 rgba, vec2 coord) {\n float alpha = rgba.a;\n if (edgeShrink > 1.0) {\n float sum = 0.0;\n float weightSum = 0.0;\n // float sigma = 1.0f;\n for (int j = - filter_size / 2; j <= filter_size / 2; j++) {\n for (int i = - filter_size / 2; i <= filter_size / 2; i++) {\n // float weight = exp(-(i*i + j*j) / (2 * sigma * sigma)) / (2 * 3.1415926f * sigma * sigma);\n float weight = 1.0;\n vec4 neighborColor = texture2D(source, coord + vec2(i, j) * pixel_size);\n // speedup: move the powf to chroma_key\n float alpha_ker = pow(neighborColor.w, edgeShrink);\n sum += (alpha_ker * weight);\n weightSum += weight;\n }\n }\n alpha = sum * 1.0 / weightSum;\n }\n return alpha;\n}\nvoid main(void) {\n vec4 rgba = texture2D(source, vTexCoord);\n rgba.a = edgeSmoothSuppKernelV2(rgba, vTexCoord);\n rgba.a = pow(rgba.a, edgeShrink);\n#ifdef MASK\n gl_FragColor = vec4(vec3(rgba.a), 1.0);\n#else\n gl_FragColor = rgba;\n#endif\n}"].join("\n"),r},inPlace:!0,inputs:{source:{type:"image",uniform:"source"},edgeShrink:{type:"number",uniform:"edgeShrink",defaultValue:3,min:1,max:10},mask:{type:"boolean",defaultValue:!1,uniform:"mask",shaderDirty:!0}},title:"Chroma Key Post",description:""});class dr{seriously;version;defaultOptions={screen:[0,255,0,0]};targetElement;sourceElement;source=null;target=null;effect=null;backEffect=null;constructor(e,r,i,n=0){this.seriously=new window.Seriously,this.version=n,this.targetElement="string"==typeof e?document.getElementById(e):e,this.sourceElement="string"==typeof r?document.getElementById(r):r,this.init(i)}async loadEffect(e){return 1===e?"chroma":"chroma_obs"}async init(e){console.info("serious version:",this.version);let r=await this.loadEffect(this.version);await c7(()=>!(this.sourceElement?.videoWidth>0&&this.sourceElement?.videoHeight>0)),this.targetElement.width=this.sourceElement.videoWidth,this.targetElement.height=this.sourceElement.videoHeight,this.source=this.seriously.source(this.sourceElement),this.target=this.seriously.target(this.targetElement),this.effect=this.seriously.effect(r),this.backEffect=this.seriously.effect("chroma_post"),this.effect.source=this.source,this.backEffect.source=this.effect,this.target.source=this.backEffect,this.seriously.go(),this.setOptions(this.defaultOptions),e&&this.setOptions(e)}destroy(){this.seriously.destroy()}async updateSource(e){e&&this.effect&&this.backEffect?(this.sourceElement="string"==typeof e?document.getElementById(e):e,await c7(()=>!(this.sourceElement?.videoWidth>0&&this.sourceElement?.videoHeight>0)),this.source?.destroy(),console.info("update source: ",this.source?.isDestroyed()),this.source=this.seriously.source(this.sourceElement),this.effect.source=this.source,this.backEffect.source=this.effect,this.target.source=this.backEffect):console.warn("update source error: source or effect is null",e,this.effect)}async setOptions(e){if(this.defaultOptions={...this.defaultOptions,...e},!this.effect||!this.backEffect||cP()(e))return;console.info("set options: ",e);let{screen:r,edgeShrink:i}=e;if(r&&r.length>=3){let[e,i,n,o]=r;this.effect.screen=[e/255,i/255,n/255,c5()(o)?o:1]}for(let[r,n]of(i&&(this.backEffect.edgeShrink=i),Object.entries(e)))"number"==typeof n&&"screen"!==r&&"edgeShrink"!==r&&(this.effect[r]=n)}}var di={screen:[53,186,123],similarity:90,edgeShrink:3,smoothness:80,spill:100,opacity:1,contrast:0,brightness:0,gamma:0},dn=function(){function e(r){ak(this,e),aA(this,"cutoutInstance",void 0);var i=r.effects,n=r.sourceId;this.cutoutInstance=new dr("starling-cutout-canvas",n||"starling-cutout-video",i&&i.chromaKey||di,i&&i.version||2)}return ax(e,[{key:"setOptions",value:function(e){e&&this.cutoutInstance&&this.cutoutInstance.setOptions(e)}},{key:"destroy",value:function(){return this.cutoutInstance.destroy()}},{key:"updateSource",value:function(e){return this.cutoutInstance.updateSource(e)}}]),e}(),ds=function(e,r){function i(e){ak(this,i),aA(this,"onAudioData",void 0),aA(this,"onError",void 0),aA(this,"audioContext",null),aA(this,"processor",null),aA(this,"mediaStream",null),aA(this,"recording",!1),this.onAudioData=e.onAudioData,this.onError=e.onError,this.preWarmStream()}return ax(i,[{key:"preWarmStream",value:function(){return(e=e||aI(aT().mark(function e(){var r;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:16e3}),e.next=4,navigator.mediaDevices.getUserMedia({audio:!0,video:!1});case 4:this.mediaStream=e.sent,r=this.audioContext.createMediaStreamSource(this.mediaStream),this.processor=this.audioContext.createScriptProcessor(1024,1,1),r.connect(this.processor),this.processor.connect(this.audioContext.destination),this.processor.onaudioprocess=function(){},e.next=15;break;case 12:e.prev=12,e.t0=e.catch(0),console.error("preWarmStream error",e.t0);case 15:case"end":return e.stop()}},e,this,[[0,12]])}))).apply(this,arguments)}},{key:"start",value:function(){return(r=r||aI(aT().mark(function e(){var r=this;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.recording){e.next=2;break}return e.abrupt("return");case 2:if(this.audioContext&&this.processor){e.next=4;break}return e.abrupt("return");case 4:try{this.processor.onaudioprocess=function(e){if(r.recording){var i=function(e,r,i,n){try{for(var o=(n=n||{},"number"==typeof n.index)?n.index:0,s=n&&"number"==typeof n.offset?n.offset:0,a=0,c=o;c<e.length;c++)a+=e[c].length;a=Math.max(0,a-Math.floor(s));var d=r/i;d>1?a=Math.floor(a/d):(d=1,i=r);for(var l=new Int16Array(a),u=0,p=e.length;o<p;o++){for(var h=e[o],f=s,v=h.length;f<v;){var m=Math.floor(f),g=Math.ceil(f),y=f-m;l[u]=h[m]+(h[g]-h[m])*y,u++,f+=d}s=f-v}return{index:o,offset:s,sampleRate:i,data:l}}catch(e){console.log("转音错误了",e)}}([function(e){for(var r=new Int16Array(e.length),i=0;i<e.length;i++){var n=Math.max(-1,Math.min(1,e[i]));r[i]=n<0?32768*n:32767*n}return r}(e.inputBuffer.getChannelData(0))],r.audioContext.sampleRate,16e3,null);i&&i.data&&r.onAudioData(i.data.buffer)}},this.recording=!0}catch(e){this.onError&&this.onError(e)}case 5:case"end":return e.stop()}},e,this)}))).apply(this,arguments)}},{key:"stop",value:function(){this.recording=!1,this.processor.onaudioprocess=function(){}}},{key:"destroy",value:function(){this.recording=!1,this.processor&&(this.processor.disconnect(),this.processor.onaudioprocess=null),this.audioContext&&this.audioContext.close(),this.mediaStream&&this.mediaStream.getTracks().forEach(function(e){e.stop()})}}]),i}(),da=function(){function e(r){var i,n=this;ak(this,e),aA(this,"token",void 0),aA(this,"appKey",void 0),aA(this,"appId",void 0),aA(this,"connectParams",void 0),aA(this,"onDigitalHumanCallback",void 0),aA(this,"dhServer",void 0),aA(this,"rtcServer",void 0),aA(this,"rtcConnectParams",void 0),aA(this,"cutoutInstance",void 0),aA(this,"isHuawei",(i=navigator.userAgent||navigator.vendor,/huawei/i.test(i)||/honor/i.test(i))),aA(this,"rtcServerUrl",void 0),aA(this,"recordController",null),aA(this,"wsReadyState",-1),aA(this,"isPreOpenSession",!1),aA(this,"onDigitalHumanCallbackPlus",function(e){var r;e.status===c_.DH_LIB_FULL_STATUS&&"wsState"===(null==(r=e.content)?void 0:r.type)&&(n.wsReadyState=e.content.readyState),n.onDigitalHumanCallback&&n.onDigitalHumanCallback(e)}),aA(this,"onRemoteVideoComing",function(e){n.rtcConnectParams&&n.rtcConnectParams.feedId&&e===+n.rtcConnectParams.feedId&&n.rtcServer&&n.rtcServer.client&&n.rtcServer.client.subscribeStreaming("remotevideo500",+n.rtcConnectParams.feedId)}),aA(this,"onLocalStream",function(){(n.connectParams||{}).pullAudioFromRtc&&n.rtcServer&&n.rtcServer.muteMicphone(!0)}),aA(this,"onRemoteVideoOn",function(){setTimeout(aI(aT().mark(function e(){var r,i,o,s,a;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=document.getElementById(c2),e.next=3,n.cutoutInstance&&n.cutoutInstance.updateSource(c2);case 3:r&&(r.setAttribute("data-playing","true"),i=r.videoWidth,o=r.videoHeight,a=(s=document.getElementById(c0)).getContext("2d"),s&&a&&(s.width=i,s.height=o,a.drawImage(r,0,0,i,o)));case 4:case"end":return e.stop()}},e)})),100)}),aA(this,"connectListener",function(e){var r=e.code,i=e.body,o=e.message;if(0===r&&n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_WS_SUCCESS,content:e}),0===r){var s=az.parse(i),a=s.rtcServerUrl,c=s.appId,d=s.clientToken,l=s.roomName,u=s.clientId,p=s.feedId,h=s.chargeId;c&&l&&(n.rtcConnectParams={server:n.rtcServerUrl||a,appId:c,token:d,roomName:l,userId:u,feedId:p,chargeId:h},n.rtcServer&&n.rtcServer.openRtc(n.rtcConnectParams))}else n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:r,errMsg:o}}})}),aA(this,"createServer",function(e){var r,i=a_(a_(a_({token:n.token,appKey:n.appKey,appId:n.appId},e?{sessionId:e}:{}),cx()(n.connectParams,cA)),{},{parameters:ck()(n.connectParams,cA),onConnect:n.connectListener,onDigitalHumanCallback:n.onDigitalHumanCallbackPlus});null!=(r=n.dhServer)&&r.preConnectSuccess?(n.dhServer.connectParams=i,n.dhServer&&n.dhServer.sendPreConnect(i)):n.dhServer&&n.dhServer.createSocket(i)}),aA(this,"checkHumanInstansce",function(){return n.dhServer?!(n.isPreOpenSession&&!n.dhServer.preConnectSuccess)||(n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:4001,errMsg:"webSocket连接中"}}}),!1):(n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:4002,errMsg:"请先初始化数字人实例"}}}),!1)}),aA(this,"sendMessage",function(e,r){return n.dhServer&&n.dhServer.sendMessage(e,r)}),aA(this,"interrupt",aI(aT().mark(function e(){return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e){n.dhServer&&n.dhServer.sendMessage({requestId:ix(),action:"TEXT_RENDER",body:"<interrupt></interrupt>",clientTs:(new Date).getTime()},function(){return e()})}));case 1:case"end":return e.stop()}},e)}))),aA(this,"textRender",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"TEXT_RENDER",body:i,clientTs:(new Date).getTime()},o)}),aA(this,"textStreamRender",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg,s=az.parse(i).first;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"TEXT_STREAM_RENDER",body:i,clientTs:(new Date).getTime()},s?o:null)}),aA(this,"audioRender",function(e){var r=e.body,i=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:ix(),action:"AUDIO_RENDER",body:r,clientTs:(new Date).getTime()},i)}),aA(this,"audioStreamRender",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"AUDIO_STREAM_RENDER",body:i,clientTs:(new Date).getTime()},o)}),aA(this,"textQuery",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg;n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"TEXT_QUERY",body:i,clientTs:(new Date).getTime()},o)}),aA(this,"destroy",aI(aT().mark(function e(){var r;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.dhServer&&n.dhServer.closeSocket();case 2:n.rtcServer&&n.rtcServer.closeRtc(),function(){var e=document.getElementById(c1);e&&e.parentNode&&e.parentNode.removeChild(e)}(),null==(r=n.recordController)||r.destroy(),n.dhServer=null,n.rtcServer=null;case 7:case"end":return e.stop()}},e)}))),aA(this,"pauseHuman",function(){return c4(!1)}),aA(this,"playHuman",function(){return c4(!0)}),aA(this,"muteHuman",function(){return c3(!0)}),aA(this,"unMuteHuman",function(){var e=c3(!1);try{return n.isHuawei?(e.pause(),e.play()):e.paused&&e.play()}catch(e){console.info(e)}});var o=r.isPreOpenSession,s=void 0!==o&&o,a=r.wsUrl,c=r.renderParams,d=r.onDigitalHumanCallback;this.isPreOpenSession=s,this.dhServer=new cF(a||"wss://open.xiling.baidu.com/cloud/digital-human-demonstration"),this.onDigitalHumanCallback=function(e){e.status!==c_.DH_LIB_FULL_STATUS?d&&d(e):(null==c?void 0:c.fullStatus)&&d&&d(e)},s?this.dhServer.createSocket({onDigitalHumanCallback:this.onDigitalHumanCallbackPlus},s):this.init(r)}return ax(e,[{key:"init",value:function(e){var r,i=this,n=e.wrapperId,o=e.token,s=e.appKey,a=e.appId,c=e.connectParams,d=e.renderParams,l=void 0===d?{}:d,u=e.rtcConnectParams,p=e.brtcParams,h=e.rtcServerUrl;if(this.token=o,this.appKey=s,this.appId=a,this.rtcServerUrl=h,this.connectParams=a_({autoChromaKey:(null==l?void 0:l.autoChromaKey)||!1},c),!a&&!s&&!o)throw Error("appId and appKey or token is required");var f=l.closeLog,v=(function(e){var r=e.autoChromaKey,i=void 0!==r&&r,n=e.autoplay;if(document.getElementById(c2))return console.error('DOM with id "'.concat(c2,'" already exists.')),null;var o=document.createElement("div");o.className=c1,o.id=c1,o.style.position="relative";var s=document.createElement("video");if(s.id=c2,s.width=0,s.height=0,s.setAttribute("width","100%"),s.setAttribute("height","100%"),s.setAttribute("data-playing","true"),s.setAttribute("playsinline",""),(void 0===n||n)&&s.setAttribute("autoplay",""),o.appendChild(s),i){var a=document.createElement("canvas");a.id=c0,Object.assign(a.style,{position:"absolute",top:"0",left:"0",height:"100%",width:"100%",zIndex:"1",display:i?"block":"none"}),s.style.visibility="hidden",o.appendChild(a)}return{playerWrapper:o,video:s}}({autoChromaKey:!!l.autoChromaKey||!cP()(l.chromaEffects)})||{}).playerWrapper,m=document.getElementById(n||"");m||console.error("dom with wrapperId is not find"),v&&m&&m.appendChild(v),(r=document.createElement("style")).appendChild(document.createTextNode('\n [id^="videoremote1-"] {\n display: none !important;\n }\n \n video#remotevideo500 {\n width: auto !important;\n height: auto !important;\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n object-fit: cover;\n }\n\n .cloud-brtc-player-wrapper {\n width: inherit !important;\n background-size: cover;\n height: inherit;\n display: flex;\n justify-content: center;\n }\n\n #starling-cutout-canvas {\n object-fit: cover;\n }\n ')),document.head.appendChild(r);var g=a_({remotevideoviewid:n,showvideobps:!1,usingvideo:!1,usingaudio:!(null==c||!c.pullAudioFromRtc),aspublisher:!(null==c||!c.pullAudioFromRtc),autopublish:!(null==c||!c.pullAudioFromRtc),usingdatachannel:!0,autoplaymuted:!1},p);this.rtcServer=new cZ({closeLog:f,videoWrapperId:c2,rtcConfig:g,bizConfig:{},rtcCallback:{onRemoteVideoComing:this.onRemoteVideoComing,onDigitalHumanCallback:this.onDigitalHumanCallback,onLocalStream:this.onLocalStream}}),(!cP()(null==l?void 0:l.chromaEffects)||null!=l&&l.autoChromaKey)&&(this.cutoutInstance=new dn({sourceId:c2,effects:null==l?void 0:l.chromaEffects})),cP()(u)||(this.rtcConnectParams=u,this.rtcServer.openRtc(u)),null!=c&&c.pullAudioFromRtc?this.recordController=null:this.recordController=new ds({pickAudioMode:null==c?void 0:c.pickAudioMode,onAudioData:function(e){1===i.wsReadyState&&i.sendMessage(e,null)},onError:function(e){i.onDigitalHumanCallback&&i.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:-1,errMsg:e.message}}})}})}},{key:"startRecord",value:function(){var e;null!=(e=this.connectParams)&&e.pullAudioFromRtc?this.rtcServer&&this.rtcServer.muteMicphone(!1):this.recordController&&this.recordController.start()}},{key:"stopRecord",value:function(){var e;null!=(e=this.connectParams)&&e.pullAudioFromRtc?this.rtcServer&&this.rtcServer.muteMicphone(!0):this.recordController&&this.recordController.stop(),this.sendMessage({action:"AUDIO_QUERY_INTERRUPT",requestId:ix(),clientTs:Date.now(),body:""},null)}}]),e}();class dc extends sa{get ready(){return!!this.humanInstance&&!!this.token}constructor(...e){super(...e),this.humanInstance=null,this.requestId=ix(),this.isWSConnected=!1,this.isRtcReady=!1,this.isStreamTextRendering=!1,this.wsClosedCount=0,this.mount=async e=>{e?(this.humanInstance&&this.dispose(),e.id||(e.id=`dh-container-${ix()}`),this.opts.enableDebugMode&&"development"===this.opts.env&&!this.opts.token?this.token=await this.getAccessToken():this.token=this.opts.token,this.humanInstance=new da({token:this.token,wrapperId:e.id,connectParams:this.buildConnectParams(),renderParams:this.buildRenderParams(),onDigitalHumanCallback:this.onDigitalHumanCallback}),this.humanInstance.createServer()):this.errorManager.handleError(new iu("容器元素不能为空"))},this.bindEvents=()=>this,this.unbindEvents=()=>this,this.renderPlainText=e=>{var r;if(!this.ready)return this;let i=this.runSsmlHandlers(e);return this.refreshRequestId(),null==(r=this.humanInstance)||r.textRender({requestId:this.requestId,body:i,onCallbackMsg:this.handleTextRenderCallback}),this},this.renderStreamText=(e,r)=>{var i;if(!this.ready)return this;let n=this.runSsmlHandlers(e),o=!this.isStreamTextRendering;return o&&(this.refreshRequestId(),this.isStreamTextRendering=!0,this.latencyStartMap.set(this.requestId,performance.now())),null==(i=this.humanInstance)||i.textStreamRender({requestId:this.requestId,body:JSON.stringify({first:o,last:null!=r&&r,text:n}),onCallbackMsg:this.handleTextRenderCallback}),r&&(this.isStreamTextRendering=!1),this},this.interrupt=()=>{var e;if(!this.ready)return this;let r=this.requestId;return null==(e=this.humanInstance)||e.interrupt().catch(e=>{e instanceof Error?this.errorManager.handleError(new ih(`打断当前数字员工播报失败:${e.message}`,{requestId:r})):"string"==typeof e&&this.errorManager.handleError(new ih(`打断当前数字员工播报失败:${e}`,{requestId:r}))}).finally(()=>{this.onRenderFinished(r)}),this},this.sendSilenceMessage=()=>{var e;if(!this.ready)return this;let r=ix();return null==(e=this.humanInstance)||e.textRender({requestId:r,body:"",onCallbackMsg:iA}),this.emitter.emit("send_silence_message",{requestId:r}).catch(iA),this},this.dispose=()=>{var e;return null==(e=this.humanInstance)||e.destroy().catch(iA),this.ssmlHandlers=[],this.isWSConnected=!1,this.isRtcReady=!1,this.wsClosedCount=0,this.isStreamTextRendering=!1,this.emitter.clearListeners(),this.latencyStartMap.clear(),this.humanInstance=null,this},this.GetRequestId=()=>this.requestId,this.checkIsReady=()=>{let e=this.isWSConnected&&this.isRtcReady;return e&&this.emitter.emit("ready").catch(iA),e},this.cancelMute=async()=>{var e;await (null==(e=this.humanInstance)?void 0:e.unMuteHuman()),this._isMuted=!1},this.muteHuman=()=>{var e;null==(e=this.humanInstance)||e.muteHuman(),this._isMuted=!0},this.play=async()=>{var e;await (null==(e=this.humanInstance)?void 0:e.playHuman())},this.pause=()=>{var e;null==(e=this.humanInstance)||e.pauseHuman()},this.buildConnectParams=()=>{var e,r,i,n,o;return{initMode:"noAudio",mode:"crop",figureId:this.opts.figureId,resolutionWidth:null!=(e=this.opts.figureResolutionWidth)?e:1920,resolutionHeight:null!=(r=this.opts.figureResolutionHeight)?r:1080,ttsPer:this.opts.ttsPer,ttsPitch:5,ttsSpeed:null!=(i=this.opts.speechSpeed)?i:6,ttsVolume:5,inactiveDisconnectSec:null!=(n=this.opts.timeoutSec)?n:130,preAlertSec:null!=(o=this.opts.disconnectAlertSec)?o:10,ttsSample:this.opts.ttsSample,ttsModel:this.opts.ttsModel,minSplitLen:this.opts.minSplitLen,positionV2:JSON.stringify(this.opts.position),ttsLang:iV(this.opts.lang)}},this.buildRenderParams=()=>{var e,r;return{autoChromaKey:null!=(e=this.opts.autoChromaKey)&&e,closeLog:!(null!=(r=this.opts.enableDebugMode)&&r),fullStatus:!1}},this.refreshRequestId=()=>{this.requestId=ix()},this.onRenderFinished=e=>{if(e!==this.requestId){this.isRendering&&this.errorManager.handleError(new ih(`[DigitalHuman] Received FINISHED signal
|
|
283
|
+
`}}se=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),o7("design:type",Function),o7("design:paramtypes",["undefined"==typeof AudioContext?Object:AudioContext,"undefined"==typeof IEnergyGateOptions?Object:IEnergyGateOptions])],se);class st{constructor(e,r={}){var i,n,o,s;this.isMonitoring=!1,this.startMonitoring=()=>{this.isMonitoring||(document.addEventListener("visibilitychange",this.boundHandleVisibilityChange),this.context.addEventListener("statechange",this.boundHandleStateChange),window.addEventListener("pagehide",this.boundHandleVisibilityChange),window.addEventListener("pageshow",this.boundHandleVisibilityChange),this.isMonitoring=!0)},this.stopMonitoring=()=>{this.isMonitoring&&(document.removeEventListener("visibilitychange",this.boundHandleVisibilityChange),this.context.removeEventListener("statechange",this.boundHandleStateChange),window.removeEventListener("pagehide",this.boundHandleVisibilityChange),window.removeEventListener("pageshow",this.boundHandleVisibilityChange),this.isMonitoring=!1)},this.ensureRunning=async()=>{let e=this.context.state;if("running"===e)return!0;if("suspended"===e)try{return await this.context.resume(),"running"===this.context.state}catch(e){return console.error("[AudioContextLifecycle] Resume failed:",e),!1}return"closed"===e&&console.error("[AudioContextLifecycle] Context is closed, cannot resume"),!1},this.getState=()=>this.context.state,this.dispose=()=>{this.stopMonitoring()},this.handleVisibilityChange=()=>{document.hidden?"running"===this.context.state&&this.options.onSuspended():this.options.autoResume&&"suspended"===this.context.state&&this.ensureRunning().then(e=>{e&&this.options.onResumed()}).catch(e=>{console.error("[AudioContextLifecycle] Auto-resume failed:",e)})},this.handleStateChange=()=>{switch(this.context.state){case"suspended":this.options.onSuspended();break;case"running":this.options.onResumed();break;case"interrupted":this.options.onInterrupted();break;case"closed":this.stopMonitoring()}},this.context=e,this.options={onSuspended:null!=(i=r.onSuspended)?i:()=>{},onResumed:null!=(n=r.onResumed)?n:()=>{},onInterrupted:null!=(o=r.onInterrupted)?o:()=>{},autoResume:null==(s=r.autoResume)||s},this.boundHandleVisibilityChange=this.handleVisibilityChange.bind(this),this.boundHandleStateChange=this.handleStateChange.bind(this)}}function sr(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function si(e,r){return function(i,n){r(i,n,e)}}(a9=(a8=cp||(cp={})).EMessageType||(a8.EMessageType={}))[a9.Query=0]="Query",a9[a9.Event=1]="Event";class sn{constructor(e,r,i,n){var o=this;this.opts=e,this.signalingService=r,this.errorManager=i,this.disabled=!1,this.mutedByUser=!1,this.muted=!1,this.emitter=new rd,this.started=!1,this.customSessionId=null,this.energyGate=null,this.audioContext=null,this.audioContextLifecycle=null,this.lastCheckResult=null,this.lastCheckTime=0,this.CHECK_CACHE_TTL=5e3,this.mute=e=>{var r;null==(r=this.signalingService)||r.Mute(e),this.muted=e},this.setMutedByUser=e=>{this.mutedByUser=e},this.tryUnmuteAsr=()=>!this.disabled&&!this.mutedByUser&&(this.muted&&this.mute(!1),!0),this.disable=()=>{this.disabled=!0},this.enable=()=>{this.disabled=!1},this.setPlaybackSuppressionEnabled=e=>{this.energyGate&&this.energyGate.setSuppressionEnabled(e)},this.checkAudioDevice=async e=>{var r;let i=Date.now();if(!(null==e?void 0:e.forceCheck)&&(null==(r=this.lastCheckResult)?void 0:r.available)&&i-this.lastCheckTime<this.CHECK_CACHE_TTL)return this.lastCheckResult;let n=new o6(e),o=await n.checkAudioDevice();return this.lastCheckResult=o,this.lastCheckTime=i,await this.emitter.emit("device_check_completed",o),!o.available&&o.error&&this.errorManager.handleError(this.mapToAsrError(o)),o},this.setupPlaybackSuppression=async function(e){var r,i,n,s,a,c;let d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"[ASR]",l=null==(r=o.opts.asr)?void 0:r.config;if(!(null==l?void 0:l.enablePlaybackSuppression))return e;try{o.audioContext=new AudioContext,o.audioContextLifecycle=new st(o.audioContext,{onSuspended:()=>{o.opts.enableDebugMode&&console.log(`${d} AudioContext suspended (页面后台或锁屏)`)},onResumed:()=>{o.opts.enableDebugMode&&console.log(`${d} AudioContext resumed (页面前台)`)},onInterrupted:()=>{o.opts.enableDebugMode&&console.log(`${d} AudioContext interrupted (如来电)`)},autoResume:!0}),o.audioContextLifecycle.startMonitoring(),await o.audioContextLifecycle.ensureRunning();let r=o.audioContext.createMediaStreamSource(e);o.energyGate=new se(o.audioContext,{suppressionEnergyMultiplier:null==(i=l.playbackSuppressionConfig)?void 0:i.energyMultiplier,idleThreshold:null==(n=l.playbackSuppressionConfig)?void 0:n.idleThreshold,smoothingFactor:null==(s=l.playbackSuppressionConfig)?void 0:s.smoothingFactor,suppressionActivationDelay:null==(a=l.playbackSuppressionConfig)?void 0:a.activationDelay,suppressionRecoveryDelay:null==(c=l.playbackSuppressionConfig)?void 0:c.recoveryDelay,debug:o.opts.enableDebugMode}),r.connect(o.energyGate.input),o.energyGate.start();let u=o.energyGate.getOutputStream();return console.log(`${d} 外部播放抑制已启用`),u}catch(r){return console.warn(`${d} 外部播放抑制启动失败,将使用原始音频流`,r),e}},this.cleanupPlaybackSuppression=()=>{this.energyGate&&(this.energyGate.dispose(),this.energyGate=null),this.audioContextLifecycle&&(this.audioContextLifecycle.dispose(),this.audioContextLifecycle=null),this.audioContext&&("closed"!==this.audioContext.state&&this.audioContext.close().catch(()=>{}),this.audioContext=null)},this.handleMicrophoneCheckFailure=async(e,r,i)=>{switch(await this.emitter.emit("device_check_completed",r),e){case"error":return!1;case"warn":return console.warn("[AaaSPilotKit] 麦克风检测失败,已降级为仅文本输入模式",{error:r.error,message:r.message,permissionState:r.permissionState,devices:r.devices}),!0;case"silent":return!0;case"prompt":if(!i)return console.warn('[AaaSPilotKit] microphoneFailureHandling 设置为 "prompt" 但未提供 onMicrophoneCheckFailed 回调,降级为 "error" 策略'),!1;try{let e=await i(r);return e&&console.info("[AaaSPilotKit] 用户确认继续(仅文本模式)"),e}catch(e){return console.error("[AaaSPilotKit] onMicrophoneCheckFailed 回调执行失败",e),!1}default:return console.error(`[AaaSPilotKit] 未知的 microphoneFailureHandling 策略: ${e}`),!1}},this._stop=async()=>{this.started&&(await this.signalingService.Stop(),this.started=!1,this.disabled=!1)},this._dispose=()=>{this.stop().finally(()=>{this.signalingService.Dispose()}).catch(iA),this.emitter.clearListeners(),this.lastCheckTime=0,this.disabled=!1,this.cleanupPlaybackSuppression()},this.mapToAsrError=e=>new({[o4.NO_API_SUPPORT]:is,[o4.INSECURE_CONTEXT]:ia,[o4.NO_DEVICE_FOUND]:ii,[o4.PERMISSION_DENIED]:r7,[o4.PERMISSION_DISMISSED]:ic,[o4.DEVICE_IN_USE]:io,[o4.TIMEOUT]:id,[o4.UNKNOWN_ERROR]:r8})[e.error](e.message,{passedLevel:e.passedLevel,devices:e.devices,permissionState:e.permissionState}),this.streamManager=n}get sessionId(){return this.customSessionId?this.customSessionId:this.started&&this.signalingService?this.signalingService.GetSessionID():null}}function so(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function ss(e,r){return function(i,n){r(i,n,e)}}sn=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),si(0,ev(ru.IOptions)),si(0,eR()),si(1,ev(ru.SignalingService)),si(1,eR()),si(2,ev(ru.ErrorManager)),si(3,ev(ru.MediaStreamManager)),sr("design:type",Function),sr("design:paramtypes",["undefined"==typeof IResolvedOptions?Object:IResolvedOptions,"undefined"==typeof BaseSignalingService?Object:BaseSignalingService,void 0===iP?Object:iP,"undefined"==typeof MediaStreamManager?Object:MediaStreamManager])],sn);class sa{static #z=this.GET_ACCESS_TOKEN_REQUEST_URI="employee-console/v1/access/r/ai-agent/get_digital_token";constructor(e,r,i){this.opts=e,this.request=r,this.errorManager=i,this.emitter=new rd,this._isRendering=!1,this._isMuted=!1,this._canInterrupt=!0,this.ssmlHandlers=[],this.token="",this.latencyStartMap=new Map,this.getAccessToken=async()=>{try{let{data:e}=await this.request.client.get(sa.GET_ACCESS_TOKEN_REQUEST_URI,{retry:3,timeout:15e3}).json();return e.authorization}catch(e){throw e instanceof Error&&this.errorManager.handleError(new ig(e.message)),e}}}get isRendering(){return this._isRendering}get isMuted(){return this._isMuted}get canInterrupt(){return this._canInterrupt}setIsRendering(e){this._isRendering=e}setIsMuted(e){this._isMuted=e}setCanInterrupt(e){this._canInterrupt=e}registerSSMLHandler(e){return this.ssmlHandlers.push(e),this}runSsmlHandlers(e){let r=e;for(let e of this.ssmlHandlers)r=e(r);return r}}sa=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),ss(0,ev(ru.IOptions)),ss(1,ev(ru.CommonRequest)),ss(2,ev(ru.ErrorManager)),so("design:type",Function),so("design:paramtypes",["undefined"==typeof IOptions?Object:IOptions,void 0===rK?Object:rK,void 0===iP?Object:iP])],sa);let sc=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:500;return new Promise(r=>setTimeout(r,e))};function sd(e,r){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),i.push.apply(i,n)}return i}function sl(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?sd(Object(i),!0).forEach(function(r){sv(e,r,i[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):sd(Object(i)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(i,r))})}return e}function su(e){return(su="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function sp(e,r){if(!(e instanceof r))throw TypeError("Cannot call a class as a function")}function sh(e,r){for(var i=0;i<r.length;i++){var n=r[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,sm(n.key),n)}}function sf(e,r,i){return r&&sh(e.prototype,r),i&&sh(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}function sv(e,r,i){return(r=sm(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e}function sm(e){var r=function(e,r){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,r||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:String(r)}(ch||(ch={})).INIT="INIT";var sg=function(){function e(r){sp(this,e),sv(this,"iframeId",void 0),this.iframeId=r}return sf(e,[{key:"registerMessageReceived",value:function(e){void 0!==window.addEventListener&&"function"==typeof e&&window.addEventListener("message",e,!1)}},{key:"removeMessageReceived",value:function(e){void 0!==window.addEventListener&&window.removeEventListener("message",e,!1)}},{key:"sendMessageToIframe",value:function(e,r){if(this.iframeId){var i=document.getElementById(this.iframeId);e&&null!==i&&i.contentWindow.postMessage({type:e,content:r},"*")}else if(window.self!==window.top&&window&&window.parent&&window.parent.postMessage){var n=JSON.parse(JSON.stringify(r||{}));window.parent.postMessage({type:e,content:n},"*")}}},{key:"sendCommand",value:function(e){this.sendMessageToIframe("command",e)}},{key:"sendMessage",value:function(e){var r=e.requestId,i=void 0===r?ix():r;return this.sendMessageToIframe("message",sl(sl({},e),{},{requestId:i})),i}},{key:"textRender",value:function(e){return this.sendMessage({action:"TEXT_RENDER",body:e})}},{key:"textQuery",value:function(e){return this.sendMessage({action:"TEXT_QUERY",body:e})}},{key:"changeBackGround",value:function(e){return this.textRender("<display><background><type>image</type><source>http</source><value>".concat(e,"</value></background></display>"))}},{key:"mute",value:function(e){this.sendCommand({subType:"mute",subContent:e})}},{key:"muteAudio",value:function(e){this.sendCommand({subType:"muteAudio",subContent:e})}},{key:"muteRemoteAudio",value:function(e){this.sendCommand({subType:"muteRemoteAudio",subContent:e})}},{key:"playVideo",value:function(e){this.sendCommand({subType:"playVideo",subContent:e})}},{key:"sendAudioData",value:function(e){this.sendMessageToIframe("audioData",e)}},{key:"onStateUpdate",value:function(e){this.sendMessageToIframe("state",e)}},{key:"sendRtcState",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToIframe("rtcState",e)}},{key:"sendWsState",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToIframe("wsState",e)}}]),e}();sf(function e(r){sp(this,e),sv(this,"iframeId",void 0),sv(this,"namespace","dhIframeNameSpace"),sv(this,"listener",null),this.iframeId=r},[{key:"onEventListener",value:function(e){var r=this;return function(i){if("object"===su(i.data))if("onListener"===i.data.type&&i.data.content.listenerId){var n=window[r.namespace][i.data.content.listenerId];null==n||n(i.data.content.data)}else"onListenerRemove"===i.data.type&&i.data.content.listenerId?delete window[r.namespace][i.data.content.listenerId]:i.data.listenerId?e(i.data,function(e){r.sendMessage("onListener",{listenerId:i.data.listenerId,data:e})},function(){r.sendMessage("onListenerRemove",{listenerId:i.data.listenerId})}):e(i.data)}}},{key:"registerMessageReceived",value:function(e){void 0!==window.addEventListener&&"function"==typeof e&&(this.listener=this.onEventListener(e),window.addEventListener("message",this.listener,!1))}},{key:"removeMessageReceived",value:function(){void 0!==window.addEventListener&&this.listener&&(window[this.namespace]=void 0,window.removeEventListener("message",this.listener,!1))}},{key:"sendMessage",value:function(e,r,i){var n=this;if(this.iframeId){var o="";i&&(o=ix(),window[this.namespace]||(window[this.namespace]={}),window[this.namespace][o]=i);var s=document.getElementById(this.iframeId);return e&&null!==s&&s.contentWindow.postMessage({type:e,content:r,listenerId:o},"*"),function(){o&&(window[n.namespace][o]=void 0)}}if(window.self!==window.top&&window&&window.parent&&window.parent.postMessage){var a=JSON.parse(JSON.stringify(r||{}));window.parent.postMessage({type:e,content:a},"*")}}},{key:"textRender",value:function(e,r){return this.sendMessage("TEXT_RENDER",e,r)}},{key:"textMTRender",value:function(e,r){return this.sendMessage("TEXT_MT_RENDER",e,r)}},{key:"audioRender",value:function(e,r){return this.sendMessage("AUDIO_RENDER",e,r)}},{key:"textQuery",value:function(e,r){return this.sendMessage("TEXT_QUERY",e,r)}},{key:"startAudioQuery",value:function(e,r){return this.sendMessage("AUDIO_QUERY_START",e,r)}},{key:"stopAudioQuery",value:function(){return this.sendMessage("AUDIO_QUERY_STOP",{})}},{key:"setModelPackage",value:function(e,r){return this.sendMessage("SET_MODEL_URLS",{urls:e,needInitConfig:r})}},{key:"changeCamera",value:function(e){return this.sendMessage("CHANGE_CAMERA",e)}},{key:"changeParts",value:function(e){return this.sendMessage("CHANGE_PARTS",e)}},{key:"setRenderConfig",value:function(e){return this.sendMessage("SET_RENDER_CONFIG",e)}},{key:"animojiRender",value:function(e,r){return this.sendMessage("ANIMOJI_RENDER",e,r)}},{key:"destroy",value:function(){return this.sendMessage("DESTROY",{})}},{key:"startAudioRender",value:function(e,r){return this.sendMessage("AUDIO_RENDER_START",e,r)}},{key:"stopAudioRender",value:function(){return this.sendMessage("AUDIO_RENDER_STOP",{})}},{key:"interrupt",value:function(){return this.sendMessage("INTERRUPT",{})}},{key:"load",value:function(e){return this.sendMessage("LOAD",e)}},{key:"onStateUpdate",value:function(e){this.sendMessage("state",e)}}]);class sy extends sa{get ready(){return!!this.iframeController&&!!this.token}constructor(...e){super(...e),this.origin="https://open.xiling.baidu.com",this.iframeId=ix(),this.iframeController=null,this.iframe=null,this.$iframeContainer=null,this.requestId=ix(),this.isWSConnected=!1,this.isRtcReady=!1,this.silenceMessageRequestIds=[],this.isStreamTextRendering=!1,this.wsClosedCount=0,this.mount=async e=>{if(!e)return void this.errorManager.handleError(new iu("容器元素不能为空"));if(this.$iframeContainer=e,this.iframe){e.contains(this.iframe)||e.appendChild(this.iframe);return}this.opts.enableDebugMode&&"development"===this.opts.env&&!this.opts.token?this.token=await this.getAccessToken():this.token=this.opts.token,this.iframe=document.createElement("iframe"),this.applyOptions(),e.appendChild(this.iframe),this.iframeController=new sg(this.iframeId),this.bindEvents()},this.bindEvents=()=>{var e,r;return this.ready&&(null==(e=this.iframe)||e.addEventListener("error",this.onIFrameErrorHandler),null==(r=this.iframeController)||r.registerMessageReceived(this.onMessageHandler)),this},this.unbindEvents=()=>{var e,r;return this.ready&&(null==(e=this.iframe)||e.removeEventListener("error",this.onIFrameErrorHandler),null==(r=this.iframeController)||r.removeMessageReceived(this.onMessageHandler)),this},this.cancelMute=()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"muteAudio",subContent:!1}),setTimeout(()=>{this._isMuted=!1},1500)},this.muteHuman=()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"muteAudio",subContent:!0}),setTimeout(()=>{this._isMuted=!0},1500)},this.play=async()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"playVideo",subContent:!0})},this.pause=()=>{var e;null==(e=this.iframeController)||e.sendCommand({subType:"playVideo",subContent:!1})},this.renderPlainText=e=>{var r;if(!this.ready)return this;let i=this.runSsmlHandlers(e);return this.refreshRequestId(),null==(r=this.iframeController)||r.sendMessage({action:"TEXT_RENDER",body:i,requestId:this.requestId}),this},this.renderStreamText=(e,r)=>{var i,n,o;if(!this.ready)return this;let s=this.runSsmlHandlers(e);return r?(this.isStreamTextRendering||this.refreshRequestId(),null==(n=this.iframeController)||n.sendMessage({action:"TEXT_STREAM_RENDER",body:JSON.stringify({first:!this.isStreamTextRendering,last:!0,text:s}),requestId:this.requestId}),this.isStreamTextRendering=!1):this.isStreamTextRendering?null==(i=this.iframeController)||i.sendMessage({action:"TEXT_STREAM_RENDER",body:JSON.stringify({first:!1,last:!1,text:s}),requestId:this.requestId}):(this.refreshRequestId(),this.isStreamTextRendering=!0,this.latencyStartMap.set(this.requestId,performance.now()),null==(o=this.iframeController)||o.sendMessage({action:"TEXT_STREAM_RENDER",body:JSON.stringify({first:!0,last:!1,text:s}),requestId:this.requestId})),this},this.interrupt=()=>{var e;return this.ready&&(null==(e=this.iframeController)||e.sendMessage({action:"TEXT_RENDER",body:"<interrupt></interrupt>",requestId:this.requestId}),this.isRendering||this.onRenderFinished(this.requestId)),this},this.sendSilenceMessage=()=>{var e;if(!this.ready)return this;let r=ix();return null==(e=this.iframeController)||e.sendMessage({action:"TEXT_RENDER",body:"",requestId:r}),this.silenceMessageRequestIds.push(r),this.emitter.emit("send_silence_message",{requestId:r}).catch(iA),this},this.dispose=()=>{if(this.unbindEvents(),this.silenceMessageRequestIds=[],this.ssmlHandlers=[],this.wsClosedCount=0,this.isStreamTextRendering=!1,this.emitter.clearListeners(),this.latencyStartMap.clear(),this.iframe){var e;null==(e=this.$iframeContainer)||e.removeChild(this.iframe),this.iframe=null,this.iframeController=null}return this},this.GetRequestId=()=>this.requestId,this.checkIsReady=()=>{let e=this.isWSConnected&&this.isRtcReady;return e&&this.emitter.emit("ready").catch(iA),e},this.onIFrameErrorHandler=e=>{let r=new ip(`数字人iframe加载失败: ${e.message}`,{context:{method:"onIFrameErrorHandler",iframeId:this.iframeId,filename:e.filename,lineno:e.lineno,colno:e.colno,type:e.type,target:e.target}});this.errorManager.handleError(r)},this.onMessageHandler=e=>{if(e.origin!==this.origin)return;let r=e.data;switch(r.type){case"msg":this.onReceiveMsgTypedMessageHandler(r);break;case"rtcState":this.onReceiveRtcStateTypedMessageHandler(r);break;case"wsState":this.onReceiveWsStateTypedMessageHandler(r)}},this.onReceiveMsgTypedMessageHandler=e=>{let r=e.content.requestId;if((1004===e.content.code||3001===e.content.code)&&(this.emitter.emit("reach_session_limit",{requestId:r}).catch(iA),this.errorManager.handleError(new iy("资源配额已用尽,请联系技术支持申请扩容"))),["RENDER_START","FINISHED","DOWN_SUBTITLE","RENDER_INTERRUPTED","DOWN_SUBTITLE","TEXT_RENDER","TEXT_STREAM_RENDER"].includes(e.content.action)){if(r!==this.requestId)return;switch(e.content.action){case"RENDER_START":this._isRendering=!0,this.emitter.emit("is_rendering_change",!0).catch(iA);break;case"FINISHED":case"RENDER_INTERRUPTED":this.onRenderFinished(r);break;case"DOWN_SUBTITLE":{let i=JSON.parse(e.content.body);if(this.silenceMessageRequestIds.includes(r))this.silenceMessageRequestIds=this.silenceMessageRequestIds.filter(e=>e!==r);else{let e,n=this.latencyStartMap.get(r);void 0!==n&&(e=performance.now()-n,this.latencyStartMap.clear()),this.emitter.emit("render_subtitle",{subtitle:i,requestId:r,latency:e}).catch(iA)}break}case"TEXT_RENDER":case"TEXT_STREAM_RENDER":0!==e.content.code&&this.onRenderFinished(r)}return}switch(e.content.action){case"RENDER_ERROR":this.onRenderFinished(r),this.errorManager.handleError(new ih("数字员工文本驱动渲染失败,请确认配置后重试",{requestId:r,context:{msg:e.content.message}}));break;case"DISCONNECT_ALERT":this.emitter.emit("disconnect_alert",{requestId:r}).catch(iA);break;case"TIMEOUT_EXIT":this.onRenderFinished(r),this.emitter.emit("timeout",{requestId:e.content.requestId}).catch(iA)}},this.onReceiveRtcStateTypedMessageHandler=e=>{if(e.content.action,"localVideoMuted"===e.content.action&&e.content.body&&(this._isMuted=!0),"remotevideoon"===e.content.action&&(this.isRtcReady=!0,this.checkIsReady(),this.iframe&&(this.iframe.style.opacity="1")),"error"===e.content.action){let r="string"==typeof e.content.body?e.content.body:"";this.errorManager.handleError(new im("RTC 房间连接失败,请检查网络后重试"+r))}},this.onReceiveWsStateTypedMessageHandler=e=>{1===e.content.readyState?(this.isWSConnected=!0,this.wsClosedCount=0,this.checkIsReady()):(3===e.content.readyState||2===e.content.readyState)&&(this.isWSConnected=!1),3===e.content.readyState&&(this.wsClosedCount++,this.wsClosedCount>=3&&(this.emitter.emit("reconnect_failed").catch(iA),this.errorManager.handleError(new iv("检测到 Websocket 链接异常断开,如长时间无法恢复,请联系技术支持。"))))},this.applyOptions=()=>{var e,r,i,n,o,s,a,c,d,l,u,p,h,f;if(!this.iframe)return;this.iframe.id=this.iframeId,this.iframe.allow="autoplay",this.iframe.style.border="none",this.iframe.style.opacity="0",this.iframe.style.pointerEvents="none",this.iframe.style.overflow="hidden";let v=null!=(o=null==(e=this.opts)?void 0:e.scaleX)?o:1,m=null!=(s=null==(r=this.opts)?void 0:r.scaleY)?s:1,g=null!=(a=null==(i=this.opts)?void 0:i.translateX)?a:0,y=null!=(c=null==(n=this.opts)?void 0:n.translateY)?c:0;this.iframe.style.width=`${100*v}% `,this.iframe.style.height=`${100*m}%`,this.iframe.style.transform=`translate(${g}px, ${y}px)`;let b=new URLSearchParams(Object.entries({figureId:this.opts.figureId,ttsPer:this.opts.ttsPer,initMode:"noAudio","cp-inactiveDisconnectSec":null!=(d=this.opts.timeoutSec)?d:130,"cp-preAlertSec":null!=(l=this.opts.disconnectAlertSec)?l:10,mode:"crop",resolutionWidth:null!=(u=this.opts.figureResolutionWidth)?u:1920,resolutionHeight:null!=(p=this.opts.figureResolutionHeight)?p:1080,ttsSpeed:null!=(h=this.opts.speechSpeed)?h:6,"cp-ttsSample":this.opts.ttsSample,"cp-minSplitLen":this.opts.minSplitLen,"cp-ttsModel":this.opts.ttsModel,"cp-positionV2":JSON.stringify(this.opts.position),"cp-ttsLang":iV(this.opts.lang),autoChromaKey:this.opts.autoChromaKey,closeLog:null==(f=this.opts.enableDebugMode)||f,token:this.token}).filter(e=>{let[,r]=e;return null!=r&&""!==r}).reduce((e,r)=>{let[i,n]=r;return e[i]=String(n),e},{})).toString();this.iframe.src=`${this.origin}/cloud/realtime?${b}`},this.refreshRequestId=()=>{this.requestId=ix()},this.onRenderFinished=e=>{this._isRendering=!1,this.isStreamTextRendering=!1,this.emitter.emit("is_rendering_change",!1).catch(iA),this.refreshRequestId(),this.emitter.emit("render_finished",{requestId:e}).catch(iA)}}}function sb(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function sS(e,r){return function(i,n){r(i,n,e)}}sy=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],sy);class sC{static #z=this.ENTRY_EMITTER_NAME="AaaSPilotKitEmitter";constructor(e,r,i,n,o,s){this.opts=e,this.errorManager=r,this.agentService=i,this.asrService=n,this.digitalHumanService=o,this.conversationService=s,this.interruptible=!0,this.isRenderingMultiModConversation=!1,this.isDigitalHumanServiceReady=!1,this.isAsrServiceReady=!1,this.lastReplyStartRequestId=null,this.aiWorkerMessageCache=null,this.multiModAbortControllers=[],this.playWaitForListener=null,this.queryStartTime=0,this.hasRenderStartTriggered=!1,this.mount=async e=>{var r,i;let n=null!=e?e:null==(r=(i=this.opts).getMountContainer)?void 0:r.call(i);n&&(await Promise.all([this.digitalHumanService.mount(n),this.asrService.preloadDeps()]),await this.asrService.start(),this.isAsrServiceReady=!0,this.checkServiceReady())},this.getOptions=()=>this.opts,this.checkNeedsManualActivation=()=>"cloud-native"!==this.opts.rendererMode&&(r4()||r6()),this.activateManually=async()=>{if(this.digitalHumanService instanceof sy){let e,r;this.digitalHumanService.cancelMute(),r=(e=new(r2())).getUA(),("WeChat"===e.getBrowser().name||/MicroMessenger/i.test(r))&&(r4()||r6())&&await sc(500)}},this.keepAlive=()=>(this.digitalHumanService.sendSilenceMessage(),this),this.playWaitFor=async(e,r)=>(this.playWaitForListener&&this.digitalHumanService.emitter.off("render_finished",this.playWaitForListener),this.digitalHumanService.isRendering)?await new Promise(i=>{this.playWaitForListener=()=>{r&&!r()?i(!1):(this.digitalHumanService.renderPlainText(e),this.playWaitForListener&&this.digitalHumanService.emitter.off("render_finished",this.playWaitForListener),i(!0))},this.digitalHumanService.emitter.on("render_finished",this.playWaitForListener)}):(this.digitalHumanService.renderPlainText(e),!0),this.playFromFullText=e=>(this.digitalHumanService.renderPlainText(e),this),this.playFromStreamText=(e,r)=>(this.digitalHumanService.renderStreamText(e,r),this),this.mute=e=>(this.asrService.setMutedByUser(e),this.emitter.emit("mute",e).catch(iA),e?(this.asrService.mute(!0),this.conversationService.currentClientConversation&&this.query(this.conversationService.currentClientConversation.text,!0).catch(iA)):this.asrService.muted&&this.asrService.mute(!1),this),this.interrupt=()=>(this.interruptAIWorkerConversation(),this),this.playPrologue=()=>{this.opts.prologue&&this.opts.prologue.length>0?this.playFromFullText(this.opts.prologue):this.agentService.query("").catch(iA)},this.query=async(e,r)=>{if(this.checkServiceReady()){if(this.agentService.sessionId||this.agentService.setSessionId(ix()),this.digitalHumanService.sendSilenceMessage(),this.agentService.queryId||this.agentService.setQueryId(ix()),r){if(this.agentService.checkIsRepeat())return;this.agentService.setLastQueryId(this.agentService.queryId)}if(await this.emitter.emit("asr_message",{text:e,completed:r,id:this.agentService.queryId,sessionId:this.agentService.sessionId}),await this.handleClientConversation(e),r){this.asrService.mute(!0);let r=async()=>{this.agentService.setQueryId(""),this.digitalHumanService.canInterrupt&&(this.asrService.tryUnmuteAsr(),await this.emitter.emit("asr_start"),this.digitalHumanService.emitter.off("render_subtitle",r))};this.digitalHumanService.emitter.on("render_subtitle",r);let i=async()=>{this.agentService.setQueryId(""),this.asrService.tryUnmuteAsr(),await this.emitter.emit("asr_start"),this.digitalHumanService.emitter.off("render_finished",i)};this.digitalHumanService.emitter.on("render_finished",i),this.handleClientConversationCompleted(),this.queryStartTime=performance.now(),await this.agentService.query(e)}}},this.input=e=>(this.digitalHumanService.isRendering&&!this.interruptible||this.query(e,!0).catch(iA),this),this.dispose=()=>(this.agentService.dispose(),this.asrService.dispose(),this.digitalHumanService.dispose(),this.conversationService.dispose(),this.emitter.clearListeners(),this.isDigitalHumanServiceReady=!1,this.isAsrServiceReady=!1,this.aiWorkerMessageCache=null,this.isRenderingMultiModConversation=!1,this.multiModAbortControllers=[],this.lastReplyStartRequestId=null,this.hasRenderStartTriggered=!1,this),this.setInterruptible=e=>(this.interruptible=e,this),this.checkAudioDevice=async e=>this.asrService.checkAudioDevice(e),this.bindAsrServiceEvents=()=>{this.asrService.emitter.on("start",this.handleAsrServiceStarted),this.asrService.emitter.on("message",this.handleAsrMessage),this.asrService.emitter.on("device_check_completed",this.handleDeviceCheckCompleted)},this.bindAgentServiceEvents=()=>{this.agentService.emitter.on("data",this.handleAgentAnswer),this.agentService.emitter.on("completed",this.handleAgentAnswerCompleted),this.agentService.emitter.on("instruction_received",this.handleAgentInstructionReceived),this.agentService.emitter.on("usage_quota_reached",async e=>{await this.emitter.emit("busy",{...e})}),this.agentService.emitter.on("ttft",this.handleTtft)},this.bindDigitalHumanServiceEvents=()=>{this.digitalHumanService.bindEvents(),this.digitalHumanService.emitter.once("ready").then(()=>{this.isDigitalHumanServiceReady=!0,this.checkServiceReady()}),this.digitalHumanService.emitter.on("render_subtitle",this.aiWorkerSubtitleToConversation),this.digitalHumanService.emitter.on("is_rendering_change",e=>{this.asrService.setPlaybackSuppressionEnabled(e),this.emitter.emit("is_rendering_change",e).catch(iA)}),this.digitalHumanService.emitter.on("render_subtitle",async e=>{this.hasRenderStartTriggered=!0,await this.emitter.emit("render_start",{...e,sessionId:this.agentService.sessionId,queryId:this.agentService.queryId});let{requestId:r}=e;if(r!==this.lastReplyStartRequestId){this.lastReplyStartRequestId=r;let i=this.agentService.getResponseManager().getLastResponse();this.emitter.emit("reply_start",{agentResponse:i,latency:e.latency,requestId:e.requestId}).catch(iA)}}),this.digitalHumanService.emitter.on("disconnect_alert",e=>{let r=this.digitalHumanService.emitter.on("render_finished",()=>{this.asrService.mute(!0),this.emitter.emit("inactivity",e).catch(iA),r()}),i=this.digitalHumanService.emitter.on("send_silence_message",()=>{r(),i()});this.playFromFullText(this.opts.inactivityPrompt)}),this.digitalHumanService.emitter.on("reach_session_limit",async e=>{this.isDigitalHumanServiceReady&&this.isAsrServiceReady&&await this.emitter.emit("busy",{...e})}),this.digitalHumanService.emitter.on("reconnect_failed",async()=>{await this.emitter.emit("busy",{requestId:"reconnect_failed"})});let e=this.digitalHumanService.emitter.on("render_finished",()=>{this.asrService.tryUnmuteAsr(),e()})},this.bindErrorEvents=()=>{this.errorManager.on(e=>{let r=this.errorManager.createMonitoringError(e);this.emitter.emit("error",e).catch(iA);try{this.weirwood.error.captureException(r)}catch(e){console.error(e)}})},this.bindEvents=()=>{this.bindErrorEvents(),this.bindAsrServiceEvents(),this.bindAgentServiceEvents(),this.bindDigitalHumanServiceEvents()},this.registerFormatters=()=>{var e,r;let i=null!=(e=this.opts.speechFormatters)?e:[],n=null!=(r=this.opts.conversationFormatters)?r:[];for(let e of i)this.digitalHumanService.registerSSMLHandler(e);for(let e of n)this.conversationService.registerAIWorkerConversationFormatter(e)},this.aiWorkerSubtitleToConversation=async e=>{let r=e.subtitle;if(this.isRenderingMultiModConversation)return;let i=this.conversationService;await this.createNewAIWorkerConversation();let n=i.currentAIWorkerConversation;n&&this.handleAIWorkerConversationChange(n);let o=i.runAIWorkerConversationFormatters(r.content);if(null==n||n.appendText(o),r.completed){let e=i.currentAIWorkerConversation;e&&e.markAsEnded(),i.setCurrentConversation(null)}},this.handleAgentAnswer=e=>{let{answer:r}=e;nF.isXml(r)?this.handleXmlAgentAnswer(e).catch(iA):(this.aiWorkerMessageCache&&this.playFromStreamText(this.aiWorkerMessageCache,!1),this.aiWorkerMessageCache=r)},this.handleXmlAgentAnswer=async e=>{let{answer:r}=e,i=this.conversationService;await this.createNewAIWorkerConversation();let n=i.currentAIWorkerConversation;if(!n)return;let o=()=>{this.emitter.emit("conversation_change",{...n.toJSON(),text:n.fulltext,completed:!1})};n.emitter.on("content_change",o),this.isRenderingMultiModConversation=!0;let s=i.runAIWorkerConversationFormatters(r),a=n.createContentsFromXmlString(s),c=new AbortController;for(let e of(this.multiModAbortControllers.push(c),a)){if(c.signal.aborted){n.emitter.off("content_change",o);break}if(nz.isTextContent(e)){let r=e.getConfig().content;this.playFromFullText(r),await this.digitalHumanService.emitter.once("render_subtitle")}n.addContentRenderTask(e),n.contents.push(e),await n.emitter.once("queue_empty")}n.markAsEnded(),this.isRenderingMultiModConversation=!1,n.emitter.off("content_change",o),await this.emitter.emit("conversation_change",{...n.toJSON(),text:n.fulltext,completed:!0})},this.createNewAIWorkerConversation=async()=>{let e=this.conversationService;if(!e.currentAIWorkerConversation){let r=nz.create(this.opts);e.setCurrentConversation(r),e.add(r),await this.emitter.emit("conversation_add",r)}},this.handleAgentAnswerCompleted=async()=>{if(this.aiWorkerMessageCache){this.playFromStreamText(this.aiWorkerMessageCache,!0),this.aiWorkerMessageCache=null;return}this.agentService.setQueryId(""),this.asrService.tryUnmuteAsr(),await this.emitter.emit("asr_start")},this.handleAgentInstructionReceived=e=>{this.emitter.emit("instruction_received",e).catch(iA)},this.handleTtft=async e=>{let r=e.timestamp-this.queryStartTime;await this.emitter.emit("ttft",{...e,totalLatency:r})},this.handleAsrServiceStarted=async()=>{if("baidu"===this.opts.asr.provider&&await sc(800),this.asrService.mute(!0),this.interruptible){if(this.hasRenderStartTriggered)return void this.asrService.tryUnmuteAsr();this.emitter.once("render_start").then(()=>{this.asrService.tryUnmuteAsr()})}},this.handleAsrMessage=async e=>{this.digitalHumanService.isRendering&&!this.digitalHumanService.canInterrupt||this.asrService.mutedByUser||e.type===cp.EMessageType.Query&&(this.opts.enableDebugMode&&console.log("message",e,this.agentService.sessionId,Date.now()),await this.query(iz(e.data,this.opts.hotWordReplacementRules),e.completed))},this.handleDeviceCheckCompleted=async e=>{await this.emitter.emit("microphone_available",{available:e.available,error:e.error,userMessage:e.error?o8(e.error):void 0,devices:e.devices,permissionState:e.permissionState})},this.handleClientConversation=async e=>{let r=this.conversationService;if(!r.currentClientConversation){let e=iJ.create(this.opts);r.setCurrentConversation(e),r.add(e),await this.emitter.emit("conversation_add",e)}let i=r.currentClientConversation;(this.digitalHumanService.isRendering||this.isRenderingMultiModConversation)&&this.interruptAIWorkerConversation(),null==i||i.appendText(e)},this.handleClientConversationCompleted=()=>{this.conversationService.setCurrentConversation(null)},this.interruptAIWorkerConversation=()=>{for(let e of(this.aiWorkerMessageCache&&this.digitalHumanService.renderStreamText(this.aiWorkerMessageCache,!0),this.multiModAbortControllers))e.abort();this.multiModAbortControllers=[];let e=this.digitalHumanService.GetRequestId();this.digitalHumanService.interrupt(),this.conversationService.interruptAll(),this.agentService.abort(),this.aiWorkerMessageCache=null,this.emitter.emit("interrupt",{requestId:e,queryId:this.agentService.queryId?this.agentService.queryId:this.agentService.lastQueryId,sessionId:this.agentService.sessionId}).catch(iA)},this.checkServiceReady=()=>!!this.isDigitalHumanServiceReady&&!!this.isAsrServiceReady&&(this.emitter.emit("ready").catch(iA),!0),this.handleAIWorkerConversationChange=e=>{let r=i=>{this.emitter.emit("conversation_change",{...e.toJSON(),text:e.fulltext,completed:i.completed}).catch(iA),i.completed&&e.emitter.off("content_change",r)},i=()=>{e.emitter.off("interrupt",i),e.emitter.off("content_change",r)};e.emitter.on("content_change",r),e.emitter.on("interrupt",i)},this.weirwood=new o3({common:{buildid:"AAAS_PILOT_KIT_1.0.0",token:"8f3abab4743f4114bd632999224323af"},error:{collectWindowErrors:!1,collectUnhandledRejections:!1,collectResourceLoadErrors:!1,ignoreUrls:["localhost","127.0.0.1"]},perf:{disable:!0}}),this.emitter=new rd(this.opts.enableDebugMode?{debug:{name:sC.ENTRY_EMITTER_NAME,enabled:!0}}:void 0),this.bindEvents(),this.registerFormatters(),this.interruptible=this.opts.interruptible}}sC=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),sS(0,ev(ru.IOptions)),sS(0,eR()),sS(1,ev(ru.ErrorManager)),sS(2,ev(ru.AgentService)),sS(3,ev(ru.ASRService)),sS(4,ev(ru.DigitalHumanService)),sS(5,ev(ru.ConversationService)),sb("design:type",Function),sb("design:paramtypes",["undefined"==typeof IResolvedOptions?Object:IResolvedOptions,void 0===iP?Object:iP,"undefined"==typeof AS?Object:AS,void 0===sn?Object:sn,void 0===sa?Object:sa,void 0===nq?Object:nq])],sC);let sw=[239,187,191],sR=e=>async(r,i,n)=>{if(!n.ok||!n.body)return;let o=!1,s=r=>{var i;o||(o=!0,null==(i=e.onCompleted)||i.call(e,r))},a=n.body.getReader(),c=new TextDecoder("utf8"),d=function(e){let r,i,n,o,s,a,c;return d(),{feed:function(d){var l;i=i?i+d:d,r&&(l=i,sw.every((e,r)=>l.charCodeAt(r)===e))&&(i=i.slice(sw.length)),r=!1;let u=i.length,p=0,h=!1;for(;p<u;){let r;h&&("\n"===i[p]&&++p,h=!1);let d=-1,l=o;for(let e=n;d<0&&e<u;++e)":"===(r=i[e])&&l<0?l=e-p:"\r"===r?(h=!0,d=e-p):"\n"===r&&(d=e-p);if(d<0){n=u-p,o=l;break}n=0,o=-1,function(r,i,n,o){if(0===o){c.length>0&&(e({type:"event",id:s,event:a||void 0,data:c.slice(0,-1)}),c="",s=void 0),a=void 0;return}let d=n<0,l=r.slice(i,i+(d?o:n)),u=0;u=d?o:" "===r[i+n+1]?n+2:n+1;let p=i+u,h=o-u,f=r.slice(p,p+h).toString();if("data"===l)c+=f?"".concat(f,"\n"):"\n";else if("event"===l)a=f;else if("id"!==l||f.includes("\0")){if("retry"===l){let r=parseInt(f,10);Number.isNaN(r)||e({type:"reconnect-interval",value:r})}}else s=f}(i,p,l,d),p+=d+1}p===u?i="":p>0&&(i=i.slice(p))},reset:d};function d(){r=!0,i="",n=0,o=-1,s=void 0,a=void 0,c=""}}(r=>{var i,n,o;if("event"===r.type&&(null==(i=e.onMessage)||i.call(e,r)),"event"===r.type&&r.data)for(let i of(null==(n=e.onEvent)||n.call(e,r),r.data.split("\n")))e.onData(i);else"reconnect-interval"===r.type&&(null==(o=e.onReconnectInterval)||o.call(e,r.value))}),l=()=>{a.read().then(e=>{e.done?s():(d.feed(c.decode(e.value,{stream:!0})),l())}).catch(i=>{var n;if(r.signal.aborted){null==(n=e.onAborted)||n.call(e);return}s(i)})};return l(),n};(cv=(cf=cC||(cC={})).EAiobAction||(cf.EAiobAction={}))[cv.silence=1]="silence",cv[cv.Interrupt=2]="Interrupt",cv[cv.Hangup=3]="Hangup",(cm=cf.EResponseType||(cf.EResponseType={}))[cm.Welcome=1]="Welcome",cm[cm.Normal=2]="Normal",cm[cm.Command=3]="Command",cm[cm.TakeOver=4]="TakeOver",(cg=cf.ETextType||(cf.ETextType={}))[cg.unit=0]="unit",cg[cg.llm=1]="llm";class s_ extends iL{static #z=this.REQUEST_URI="aicc-service/aiob-server/text/stream/query2";constructor(...e){super(...e),this.query=async e=>{this.resetTtftFlag(),this.abortController=new AbortController;let r=sR({onData:e=>{try{let r=JSON.parse(e);this.onResponse(r);let{answer:i,sessionId:n,action:o}=r;if(n&&(this.conversationSessionId=n),o===cC.EAiobAction.Hangup)return void this.onHangup({sessionId:this.conversationSessionId});i&&!this.hasTtftEmitted&&this.onTtft({sessionId:this.conversationSessionId,queryId:this.queryId,firstToken:i,timestamp:performance.now()}),i&&this.onData({sessionId:this.conversationSessionId,answer:i})}catch(e){e instanceof Error&&this.errorManager.handleError(new rY(e.message,{sessionId:this.conversationSessionId}))}},onCompleted:()=>{this.onCompleted({sessionId:this.conversationSessionId})}}),i=this.opts.agentConfig;if(!(null==i?void 0:i.robotId))return void this.errorManager.handleError(new rQ(`调用 Agent API ${s_.REQUEST_URI} 时必须传入 robotId 参数,请确认后重试。`));let n={query:e,sessionId:this.conversationSessionId,robotId:i.robotId,isComplete:1,queryId:this.queryId};try{var o;await this.request.client.post(s_.REQUEST_URI,{retry:0,timeout:3e5,signal:null==(o=this.abortController)?void 0:o.signal,hooks:{afterResponse:[r]},json:{...n}})}catch(e){e instanceof rF?this.onTimeout({sessionId:this.conversationSessionId}):e instanceof Error&&this.errorManager.handleError(new rZ(e.message,{sessionId:this.conversationSessionId}))}},this.hangup=async()=>{let e=this.opts.agentConfig;if(!(null==e?void 0:e.robotId))return void await this.errorManager.handleError(new rQ(`调用 Agent API ${s_.REQUEST_URI} 时必须传入 robotId 参数,请确认后重试。`));let r={query:"",robotId:e.robotId,sessionId:this.conversationSessionId,action:cC.EAiobAction.Hangup,isComplete:1};try{await this.request.client.post(s_.REQUEST_URI,{retry:0,timeout:3e5,json:{...r},keepalive:!0})}catch(e){e instanceof Error&&this.errorManager.handleError(new rZ(e.message,{sessionId:this.conversationSessionId}))}},this.dispose=()=>{this._dispose(),this.hangup().finally(()=>{this.conversationSessionId=""})}}}s_=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],s_),(cb=(cy=cw||(cw={})).EReplyType||(cy.EReplyType={}))[cb.PlainText=1]="PlainText",cb[cb.RichText=3]="RichText",cb[cb.Image=4]="Image",cb[cb.List=8]="List",cy.REPLY_TYPE_MAPPING={1:"plainText",3:"richText",8:"list",4:"image"};class sT extends iL{static #z=this.REQUEST_URI="csp-service/online/core/v5/stream/query";constructor(...e){super(...e),this.query=async e=>{var r,i;this.resetTtftFlag(),this.abortController=new AbortController;let n=sR({onData:e=>{try{var r,i;let n=JSON.parse(e);this.onResponse(n);let o=n.answer[0],s=null!=(i=null==(r=o.reply)?void 0:r.text)?i:"";s&&!this.hasTtftEmitted&&this.onTtft({sessionId:this.conversationSessionId,queryId:this.queryId,firstToken:s,timestamp:performance.now()}),o&&s?this.onData({sessionId:this.conversationSessionId,answer:s}):o&&o.instruction&&(function(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;let r=Object.getPrototypeOf(e);return null===r||!!(Object.prototype.hasOwnProperty.call(r,"constructor")&&"function"==typeof r.constructor)&&Function.prototype.toString.call(r.constructor)===Function.prototype.toString.call(Object)}(o.instruction)?this.onInstructionReceived({sessionId:this.conversationSessionId,instruction:o.instruction}):this.errorManager.handleError(new r0("指令格式非法,请检查后重试",{sessionId:this.conversationSessionId})))}catch(e){e instanceof Error&&this.errorManager.handleError(new rY(e.message,{sessionId:this.conversationSessionId}))}},onCompleted:()=>{this.onCompleted({sessionId:this.conversationSessionId})}});this.conversationSessionId||(this.conversationSessionId=ix());let o=null==(r=this.opts.agentConfig)?void 0:r.token;if(!o)return void this.errorManager.handleError(new rQ(`调用 Agent API ${sT.REQUEST_URI} 时必须传入 token 参数,请确认后重试。`));let s={queryText:e,sessionId:this.conversationSessionId};try{await this.request.client.post(sT.REQUEST_URI,{headers:{token:o},retry:0,timeout:3e5,signal:null==(i=this.abortController)?void 0:i.signal,hooks:{afterResponse:[n]},json:{...s}})}catch(e){e instanceof rF?this.onTimeout({sessionId:this.conversationSessionId}):e instanceof Error&&this.errorManager.handleError(new rZ(e.message,{sessionId:this.conversationSessionId}))}},this.dispose=()=>{this._dispose()}}}function sE(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}function sP(e,r){return function(i,n){r(i,n,e)}}sT=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],sT);class sI{constructor(e,r){this.opts=e,this.errorManager=r,this.started=!1,this.sessionId="",this._dispose=()=>{this.started=!1,this.sessionId=""}}}sI=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),sP(0,ev(ru.IOptions)),sP(0,eR()),sP(1,ev(ru.ErrorManager)),sE("design:type",Function),sE("design:paramtypes",["undefined"==typeof IResolvedOptions?Object:IResolvedOptions,void 0===iP?Object:iP])],sI);let sk=e=>{if(e)return"string"==typeof e?e:e.id};class sO extends sI{static #z=this.ONLINE_PREFIX_URL="https://ky.cloud.baidu.com/employee-console";static #ef=this.SANDBOX_PREFIX_URL="https://ai.agent.kaywang.cn/api";static #eX=this.AUTH_URL="https://ky.cloud.baidu.com/employee-console/v1/access/r/ai-agent/get-authorization";get prefixUrl(){return"production"===this.opts.env?sO.ONLINE_PREFIX_URL:sO.SANDBOX_PREFIX_URL}loginBRTC(e){if("function"!=typeof window.BRTC_Start)throw Error("BRTC_Start global function is missing. Ensure baidu.rtc.sdk.js is loaded.");let r={aspublisher:!0,usingdatachannel:!0,usingvideo:!1,usingaudio:!0,showvideobps:!1,autosubscribe:!0,autoplaymuted:!1,autopublish:!0,showspinner:!1,shownovideo:!1,userevent:!0,sessionevent:!0,logintimeout:1e4,linkdownevent:iA,linkupevent:iA,logintimeoutevent:iA,mediastate:iA,remotevideoon:iA,remotevideooff:iA,remotevideocoming:iA,remotevideoloading:iA,remotevideoconnected_state:iA,remotevideoleaving:iA,remotevideounpublished:iA,localvideoconnected_state:iA,localvideopublished_ok:iA,destroyed:iA,onlocalstream:iA,onlocalstream_end:iA,remotevideo_closed:iA,onmessage:e.onmessage,userevent_joinedroom:e.userevent_joinedroom,userevent_leavingroom:e.userevent_leavingroom,remotemediastating:e.remotemediastating,remotevideoviewid:sk(e.remotevideoviewid),localvideoviewid:sk(e.localvideoviewid)};window.BRTC_Start({...r,...e})}constructor(...e){super(...e),this.currentAppId="",this.Start=async e=>{var r,i,n,o,s;this.currentAppId=this.opts.rtcID;let a=this.prefixUrl,c={};"production"===this.opts.env&&(c.authorization=await this.getAuthToken("/api/v1/aiagent/generateAIAgentCall"));let d="production"===this.opts.env?"/v1/open/ai-agent/generateAIAgentCall":"/v1/aiagent/generateAIAgentCall",l=await rW.post(`${a}${d}`,{json:{app_id:this.currentAppId,quick_start:!0,config:JSON.stringify({...e.cfg})},headers:c}).json();if(!l.ai_agent_instance_id)throw Error("ai_agent_instance_id missing in response");this.started=!0,this.sessionId=l.ai_agent_instance_id;let u=this.sessionId,p=null!=(s=null==(r=l.context)?void 0:r.token)?s:"";(null==(i=l.context)?void 0:i.uid)&&(u=l.context.uid),(null==(n=l.context)?void 0:n.appid)&&(this.currentAppId=l.context.appid),this.loginBRTC({...e,appid:this.currentAppId,roomname:this.sessionId,userid:u,token:p}),null==(o=e.success)||o.call(e)},this.Stop=async()=>{if(this.started){this.started=!1;try{let e=this.prefixUrl,r={};"production"===this.opts.env&&(r.authorization=await this.getAuthToken("/api/v1/aiagent/stopAIAgentInstance"));let i="production"===this.opts.env?"/v1/open/ai-agent/stopAIAgentInstance":"/v1/aiagent/stopAIAgentInstance";await rW.post(`${e}${i}`,{json:{app_id:this.currentAppId,ai_agent_instance_id:this.sessionId},headers:r})}catch(e){if(e instanceof rp)throw Error(`stopAIAgentInstance failed (${e.response.status})`);throw e}"function"==typeof window.BRTC_Stop&&window.BRTC_Stop()}},this.Mute=e=>{"function"==typeof window.BRTC_MuteMicphone&&window.BRTC_MuteMicphone(e)},this.GetSessionID=()=>this.sessionId,this.Dispose=()=>{this._dispose()},this.getAuthToken=async e=>{try{let{data:r}=await rW.post(sO.AUTH_URL,{json:{http_method:"POST",path:e,headers:{host:"rtc-aiagent.baidubce.com"}}}).json();return r}catch(e){if(e instanceof rp)throw Error(`getAuthToken failed (${e.response.status})`);throw e}}}}sO=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],sO);class sx extends sI{async Start(e){this.sessionId=`noop-${Date.now()}`,this.started=!0}async Stop(){this.sessionId="",this.started=!1}Dispose(){this._dispose()}Mute(e){}GetSessionID(){return this.sessionId}}sx=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey()],sx),S("../../node_modules/baidurtc/dist/baidu.rtc.sdk.js");let sA=!0,sM=!0;function sj(e,r,i){let n=e.match(r);return n&&n.length>=i&&parseFloat(n[i],10)}function sD(e,r,i){if(!e.RTCPeerConnection)return;let n=e.RTCPeerConnection.prototype,o=n.addEventListener;n.addEventListener=function(e,n){if(e!==r)return o.apply(this,arguments);let s=e=>{let r=i(e);r&&(n.handleEvent?n.handleEvent(r):n(r))};return this._eventMap=this._eventMap||{},this._eventMap[r]||(this._eventMap[r]=new Map),this._eventMap[r].set(n,s),o.apply(this,[e,s])};let s=n.removeEventListener;n.removeEventListener=function(e,i){if(e!==r||!this._eventMap||!this._eventMap[r]||!this._eventMap[r].has(i))return s.apply(this,arguments);let n=this._eventMap[r].get(i);return this._eventMap[r].delete(i),0===this._eventMap[r].size&&delete this._eventMap[r],0===Object.keys(this._eventMap).length&&delete this._eventMap,s.apply(this,[e,n])},Object.defineProperty(n,"on"+r,{get(){return this["_on"+r]},set(e){this["_on"+r]&&(this.removeEventListener(r,this["_on"+r]),delete this["_on"+r]),e&&this.addEventListener(r,this["_on"+r]=e)},enumerable:!0,configurable:!0})}function sN(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(sA=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function sB(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(sM=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function sL(){"object"==typeof window&&(sA||"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments))}function sF(e,r){sM&&console.warn(e+" is deprecated, please use "+r+" instead.")}function sz(e){return"[object Object]"===Object.prototype.toString.call(e)}function sU(e,r,i){let n=i?"outbound-rtp":"inbound-rtp",o=new Map;if(null===r)return o;let s=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===r.id&&s.push(e)}),s.forEach(r=>{e.forEach(i=>{i.type===n&&i.trackId===r.id&&function e(r,i,n){!i||n.has(i.id)||(n.set(i.id,i),Object.keys(i).forEach(o=>{o.endsWith("Id")?e(r,r.get(i[o]),n):o.endsWith("Ids")&&i[o].forEach(i=>{e(r,r.get(i),n)})}))}(e,i,o)})}),o}function sH(e,r){let i=e&&e.navigator;if(!i.mediaDevices)return;let n=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;let r={};return Object.keys(e).forEach(i=>{if("require"===i||"advanced"===i||"mediaSource"===i)return;let n="object"==typeof e[i]?e[i]:{ideal:e[i]};void 0!==n.exact&&"number"==typeof n.exact&&(n.min=n.max=n.exact);let o=function(e,r){return e?e+r.charAt(0).toUpperCase()+r.slice(1):"deviceId"===r?"sourceId":r};if(void 0!==n.ideal){r.optional=r.optional||[];let e={};"number"==typeof n.ideal?(e[o("min",i)]=n.ideal,r.optional.push(e),(e={})[o("max",i)]=n.ideal):e[o("",i)]=n.ideal,r.optional.push(e)}void 0!==n.exact&&"number"!=typeof n.exact?(r.mandatory=r.mandatory||{},r.mandatory[o("",i)]=n.exact):["min","max"].forEach(e=>{void 0!==n[e]&&(r.mandatory=r.mandatory||{},r.mandatory[o(e,i)]=n[e])})}),e.advanced&&(r.optional=(r.optional||[]).concat(e.advanced)),r},o=function(e,o){if(r.version>=61)return o(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){let r=function(e,r,i){r in e&&!(i in e)&&(e[i]=e[r],delete e[r])};r((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),r(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=n(e.audio)}if(e&&"object"==typeof e.video){let s=e.video.facingMode;s=s&&("object"==typeof s?s:{ideal:s});let a=r.version<66;if(s&&("user"===s.exact||"environment"===s.exact||"user"===s.ideal||"environment"===s.ideal)&&!(i.mediaDevices.getSupportedConstraints&&i.mediaDevices.getSupportedConstraints().facingMode&&!a)){let r;if(delete e.video.facingMode,"environment"===s.exact||"environment"===s.ideal?r=["back","rear"]:("user"===s.exact||"user"===s.ideal)&&(r=["front"]),r)return i.mediaDevices.enumerateDevices().then(i=>{let a=(i=i.filter(e=>"videoinput"===e.kind)).find(e=>r.some(r=>e.label.toLowerCase().includes(r)));return!a&&i.length&&r.includes("back")&&(a=i[i.length-1]),a&&(e.video.deviceId=s.exact?{exact:a.deviceId}:{ideal:a.deviceId}),e.video=n(e.video),sL("chrome: "+JSON.stringify(e)),o(e)})}e.video=n(e.video)}return sL("chrome: "+JSON.stringify(e)),o(e)},s=function(e){return r.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,r,n){o(e,e=>{i.webkitGetUserMedia(e,r,e=>{n&&n(s(e))})})}).bind(i),i.mediaDevices.getUserMedia){let e=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(r){return o(r,r=>e(r).then(e=>{if(r.audio&&!e.getAudioTracks().length||r.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(s(e))))}}}function sq(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function sW(e){if("object"!=typeof e||!e.RTCPeerConnection||"ontrack"in e.RTCPeerConnection.prototype)sD(e,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e));else{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});let r=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=r=>{r.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};let o=new Event("track");o.track=i.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[r.stream],this.dispatchEvent(o)}),r.stream.getTracks().forEach(i=>{let n;n=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===i.id):{track:i};let o=new Event("track");o.track=i,o.receiver=n,o.transceiver={receiver:n},o.streams=[r.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),r.apply(this,arguments)}}}function sV(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){let r=function(e,r){return{track:r,get dtmf(){return void 0===this._dtmf&&("audio"===r.kind?this._dtmf=e.createDTMFSender(r):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()};let i=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){let o=i.apply(this,arguments);return o||(o=r(this,e),this._senders.push(o)),o};let n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){n.apply(this,arguments);let r=this._senders.indexOf(e);-1!==r&&this._senders.splice(r,1)}}let 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(r(this,e))})};let n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach(e=>{let r=this._senders.find(r=>r.track===e);r&&this._senders.splice(this._senders.indexOf(r),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)){let r=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let e=r.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 sG(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){let r=e.RTCPeerConnection.prototype.getSenders;r&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=i.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){let e=this;return this._pc.getStats().then(r=>sU(r,e.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){let r=e.RTCPeerConnection.prototype.getReceivers;r&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e}),sD(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){let e=this;return this._pc.getStats().then(r=>sU(r,e.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;let r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let e,r,i,n=arguments[0];return(this.getSenders().forEach(r=>{r.track===n&&(e?i=!0:e=r)}),this.getReceivers().forEach(e=>(e.track===n&&(r?i=!0:r=e),e.track===n)),i||e&&r)?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):e?e.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return r.apply(this,arguments)}}function sK(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};let r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){if(!i)return r.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let n=r.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};let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(r=>r.track===e))throw new DOMException("Track already exists.","InvalidAccessError")});let r=this.getSenders();i.apply(this,arguments);let n=this.getSenders().filter(e=>-1===r.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(n)};let 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)};let o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(r=>{let i=this._shimmedLocalStreams[r].indexOf(e);-1!==i&&this._shimmedLocalStreams[r].splice(i,1),1===this._shimmedLocalStreams[r].length&&delete this._shimmedLocalStreams[r]}),o.apply(this,arguments)}}function sJ(e,r){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&r.version>=65)return sK(e);let i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let e=i.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(r){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.getTracks().forEach(e=>{if(this.getSenders().find(r=>r.track===e))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[r.id]){let i=new e.MediaStream(r.getTracks());this._streams[r.id]=i,this._reverseStreams[i.id]=r,r=i}n.apply(this,[r])};let o=e.RTCPeerConnection.prototype.removeStream;function s(e,r){let i=r.sdp;return Object.keys(e._reverseStreams||[]).forEach(r=>{let n=e._reverseStreams[r],o=e._streams[n.id];i=i.replace(RegExp(o.id,"g"),n.id)}),new RTCSessionDescription({type:r.type,sdp:i})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},o.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(r,i){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let n=[].slice.call(arguments,1);if(1!==n.length||!n[0].getTracks().find(e=>e===r))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===r))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let o=this._streams[i.id];if(o)o.addTrack(r),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let n=new e.MediaStream([r]);this._streams[i.id]=n,this._reverseStreams[n.id]=i,this.addStream(n)}return this.getSenders().find(e=>e.track===r)},["createOffer","createAnswer"].forEach(function(r){let i=e.RTCPeerConnection.prototype[r];e.RTCPeerConnection.prototype[r]=({[r](){let e=arguments,r=arguments.length&&"function"==typeof arguments[0];return r?i.apply(this,[r=>{let i=s(this,r);e[0].apply(null,[i])},r=>{e[1]&&e[1].apply(null,r)},arguments[2]]):i.apply(this,arguments).then(e=>s(this,e))}})[r]});let a=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){var e,r;let i;return arguments.length&&arguments[0].type?(arguments[0]=(e=this,r=arguments[0],i=r.sdp,Object.keys(e._reverseStreams||[]).forEach(r=>{let n=e._reverseStreams[r],o=e._streams[n.id];i=i.replace(RegExp(n.id,"g"),o.id)}),new RTCSessionDescription({type:r.type,sdp:i})),a.apply(this,arguments)):a.apply(this,arguments)};let c=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let e=c.get.apply(this);return""===e.type?e:s(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){let r;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");this._streams=this._streams||{},Object.keys(this._streams).forEach(i=>{this._streams[i].getTracks().find(r=>e.track===r)&&(r=this._streams[i])}),r&&(1===r.getTracks().length?this.removeStream(this._reverseStreams[r.id]):r.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function s$(e,r){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&r.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){let i=e.RTCPeerConnection.prototype[r];e.RTCPeerConnection.prototype[r]=({[r](){return arguments[0]=new("addIceCandidate"===r?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}})[r]})}function sX(e,r){sD(e,"negotiationneeded",e=>{let i=e.target;if(!(r.version<72)&&(!i.getConfiguration||"plan-b"!==i.getConfiguration().sdpSemantics)||"stable"===i.signalingState)return e})}function sQ(e,r){let i=e&&e.navigator,n=e&&e.MediaStreamTrack;if(i.getUserMedia=function(e,r,n){sF("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(e).then(r,n)},!(r.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){let e=function(e,r,i){r in e&&!(i in e)&&(e[i]=e[r],delete e[r])},r=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(i){return"object"==typeof i&&"object"==typeof i.audio&&(e((i=JSON.parse(JSON.stringify(i))).audio,"autoGainControl","mozAutoGainControl"),e(i.audio,"noiseSuppression","mozNoiseSuppression")),r(i)},n&&n.prototype.getSettings){let r=n.prototype.getSettings;n.prototype.getSettings=function(){let i=r.apply(this,arguments);return e(i,"mozAutoGainControl","autoGainControl"),e(i,"mozNoiseSuppression","noiseSuppression"),i}}if(n&&n.prototype.applyConstraints){let r=n.prototype.applyConstraints;n.prototype.applyConstraints=function(i){return"audio"===this.kind&&"object"==typeof i&&(e(i=JSON.parse(JSON.stringify(i)),"autoGainControl","mozAutoGainControl"),e(i,"noiseSuppression","mozNoiseSuppression")),r.apply(this,[i])}}}}function sY(e,r){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(i){if(!(i&&i.video)){let 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:r}:i.video.mediaSource=r,e.navigator.mediaDevices.getUserMedia(i)})}function sZ(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 s0(e,r){if("object"!=typeof e||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),r.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){let i=e.RTCPeerConnection.prototype[r];e.RTCPeerConnection.prototype[r]=({[r](){return arguments[0]=new("addIceCandidate"===r?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}})[r]});let 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(){let[e,o,s]=arguments;return n.apply(this,[e||null]).then(e=>{if(r.version<53&&!o)try{e.forEach(e=>{e.type=i[e.type]||e.type})}catch(r){if("TypeError"!==r.name)throw r;e.forEach((r,n)=>{e.set(n,Object.assign({},r,{type:i[r.type]||r.type}))})}return e}).then(o,s)}}function s1(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;let r=e.RTCPeerConnection.prototype.getSenders;r&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let 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 s2(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;let r=e.RTCPeerConnection.prototype.getReceivers;r&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e}),sD(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function s3(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){sF("removeStream","removeTrack"),this.getSenders().forEach(r=>{r.track&&e.getTracks().includes(r.track)&&this.removeTrack(r)})})}function s4(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function s6(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let r=e.RTCPeerConnection.prototype.addTransceiver;r&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]);let i=(e=[...e]).length>0;i&&e.forEach(e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw RangeError("max_framerate must be >= 0.0")});let n=r.apply(this,arguments);if(i){let{sender:r}=n,i=r.getParameters();"encodings"in i&&(1!==i.encodings.length||0!==Object.keys(i.encodings[0]).length)||(i.encodings=e,r.sendEncodings=e,this.setParametersPromises.push(r.setParameters(i).then(()=>{delete r.sendEncodings}).catch(()=>{delete r.sendEncodings})))}return n})}function s5(e){if(!("object"==typeof e&&e.RTCRtpSender))return;let r=e.RTCRtpSender.prototype.getParameters;r&&(e.RTCRtpSender.prototype.getParameters=function(){let e=r.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function s8(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let r=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>r.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):r.apply(this,arguments)}}function s9(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let r=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>r.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):r.apply(this,arguments)}}function s7(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)){let r=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=>r.call(this,i,e)),e.getVideoTracks().forEach(i=>r.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]}),r.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);let r=this._localStreams.indexOf(e);if(-1===r)return;this._localStreams.splice(r,1);let i=e.getTracks();this.getSenders().forEach(e=>{i.includes(e.track)&&this.removeTrack(e)})})}}function ae(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);let r=new Event("addstream");r.stream=e,this.dispatchEvent(r)})})}});let r=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(r){r.streams.forEach(r=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(r)>=0)return;e._remoteStreams.push(r);let i=new Event("addstream");i.stream=r,e.dispatchEvent(i)})}),r.apply(e,arguments)}}}function at(e){if("object"!=typeof e||!e.RTCPeerConnection)return;let r=e.RTCPeerConnection.prototype,i=r.createOffer,n=r.createAnswer,o=r.setLocalDescription,s=r.setRemoteDescription,a=r.addIceCandidate;r.createOffer=function(e,r){let n=arguments.length>=2?arguments[2]:arguments[0],o=i.apply(this,[n]);return r?(o.then(e,r),Promise.resolve()):o},r.createAnswer=function(e,r){let i=arguments.length>=2?arguments[2]:arguments[0],o=n.apply(this,[i]);return r?(o.then(e,r),Promise.resolve()):o};let c=function(e,r,i){let n=o.apply(this,[e]);return i?(n.then(r,i),Promise.resolve()):n};r.setLocalDescription=c,r.setRemoteDescription=c=function(e,r,i){let n=s.apply(this,[e]);return i?(n.then(r,i),Promise.resolve()):n},r.addIceCandidate=function(e,r,i){let n=a.apply(this,[e]);return i?(n.then(r,i),Promise.resolve()):n}}function ar(e){let r=e&&e.navigator;if(r.mediaDevices&&r.mediaDevices.getUserMedia){let e=r.mediaDevices,i=e.getUserMedia.bind(e);r.mediaDevices.getUserMedia=e=>i(ai(e))}!r.getUserMedia&&r.mediaDevices&&r.mediaDevices.getUserMedia&&(r.getUserMedia=(function(e,i,n){r.mediaDevices.getUserMedia(e).then(i,n)}).bind(r))}function ai(e){return e&&void 0!==e.video?Object.assign({},e,{video:function e(r){return sz(r)?Object.keys(r).reduce(function(i,n){let o=sz(r[n]),s=o?e(r[n]):r[n],a=o&&!Object.keys(s).length;return void 0===s||a?i:Object.assign(i,{[n]:s})},{}):r}(e.video)}):e}function an(e){if(!e.RTCPeerConnection)return;let r=e.RTCPeerConnection;e.RTCPeerConnection=function(e,i){if(e&&e.iceServers){let r=[];for(let i=0;i<e.iceServers.length;i++){let n=e.iceServers[i];void 0===n.urls&&n.url?(sF("RTCIceServer.url","RTCIceServer.urls"),(n=JSON.parse(JSON.stringify(n))).urls=n.url,delete n.url,r.push(n)):r.push(e.iceServers[i])}e.iceServers=r}return new r(e,i)},e.RTCPeerConnection.prototype=r.prototype,"generateCertificate"in r&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>r.generateCertificate})}function ao(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 as(e){let r=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);let r=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&r?"sendrecv"===r.direction?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":"recvonly"===r.direction&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):!0!==e.offerToReceiveAudio||r||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);let 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 r.apply(this,arguments)}}function aa(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var ac=S("../../node_modules/sdp/sdp.js"),ad=S.n(ac);function al(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;let r=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){let i=new r(e),n=ad().parseCandidate(e.candidate);for(let 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 r(e)},e.RTCIceCandidate.prototype=r.prototype,sD(e,"icecandidate",r=>(r.candidate&&Object.defineProperty(r,"candidate",{value:new e.RTCIceCandidate(r.candidate),writable:"false"}),r))}function au(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||sD(e,"icecandidate",e=>{if(e.candidate){let r=ad().parseCandidate(e.candidate.candidate);"relay"===r.type&&(e.candidate.relayProtocol=({0:"tls",1:"tcp",2:"udp"})[r.priority>>24])}return e})}function ap(e,r){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});let i=function(e){if(!e||!e.sdp)return!1;let r=ad().splitSections(e.sdp);return r.shift(),r.some(e=>{let r=ad().parseMLine(e);return r&&"application"===r.kind&&-1!==r.protocol.indexOf("SCTP")})},n=function(e){let r=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===r||r.length<2)return -1;let i=parseInt(r[1],10);return i!=i?-1:i},o=function(e){let i=65536;return"firefox"===r.browser&&(i=r.version<57?-1===e?16384:0x7ffffff5:r.version<60?57===r.version?65535:65536:0x7ffffff5),i},s=function(e,i){let n=65536;"firefox"===r.browser&&57===r.version&&(n=65535);let o=ad().matchPrefix(e.sdp,"a=max-message-size:");return o.length>0?n=parseInt(o[0].substring(19),10):"firefox"===r.browser&&-1!==i&&(n=0x7ffffff5),n},a=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===r.browser&&r.version>=76){let{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(i(arguments[0])){let e,r=n(arguments[0]),i=o(r),a=s(arguments[0],r);e=0===i&&0===a?1/0:0===i||0===a?Math.max(i,a):Math.min(i,a);let c={};Object.defineProperty(c,"maxMessageSize",{get:()=>e}),this._sctp=c}return a.apply(this,arguments)}}function ah(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function r(e,r){let i=e.send;e.send=function(){let n=arguments[0],o=n.length||n.size||n.byteLength;if("open"===e.readyState&&r.sctp&&o>r.sctp.maxMessageSize)throw TypeError("Message too large (can send a maximum of "+r.sctp.maxMessageSize+" bytes)");return i.apply(e,arguments)}}let i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let e=i.apply(this,arguments);return r(e,this),e},sD(e,"datachannel",e=>(r(e.channel,e.target),e))}function af(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;let r=e.RTCPeerConnection.prototype;Object.defineProperty(r,"connectionState",{get(){return({completed:"connected",checking:"connecting"})[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(r,"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=>{let i=r[e];r[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{let r=e.target;if(r._lastConnectionState!==r.connectionState){r._lastConnectionState=r.connectionState;let i=new Event("connectionstatechange",e);r.dispatchEvent(i)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}})}function av(e,r){if(!e.RTCPeerConnection||"chrome"===r.browser&&r.version>=71||"safari"===r.browser&&r._safariVersion>=13.1)return;let i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(r){if(r&&r.sdp&&-1!==r.sdp.indexOf("\na=extmap-allow-mixed")){let i=r.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&r instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:r.type,sdp:i}):r.sdp=i}return i.apply(this,arguments)}}function am(e,r){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.addIceCandidate;i&&0!==i.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===r.browser&&r.version<78||"firefox"===r.browser&&r.version<68||"safari"===r.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function ag(e,r){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let 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}).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]))})}let ay=function({window:e}={},r={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){let i=function(e){let r={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return r.browser="Not a browser.",r;let{navigator:i}=e;if(i.userAgentData&&i.userAgentData.brands){let e=i.userAgentData.brands.find(e=>"Chromium"===e.brand);if(e)return{browser:"chrome",version:parseInt(e.version,10)}}return i.mozGetUserMedia?(r.browser="firefox",r.version=parseInt(sj(i.userAgent,/Firefox\/(\d+)\./,1))):i.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection?(r.browser="chrome",r.version=parseInt(sj(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2))):e.RTCPeerConnection&&i.userAgent.match(/AppleWebKit\/(\d+)\./)?(r.browser="safari",r.version=parseInt(sj(i.userAgent,/AppleWebKit\/(\d+)\./,1)),r.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype,r._safariVersion=sj(i.userAgent,/Version\/(\d+(\.?\d+))/,1)):r.browser="Not a supported browser.",r}(e),n={browserDetails:i,commonShim:_,extractVersion:sj,disableLog:sN,disableWarnings:sB,sdp:ac};switch(i.browser){case"chrome":if(!C||!s$||!r.shimChrome){sL("Chrome shim is not included in this adapter release.");break}if(null===i.version){sL("Chrome shim can not determine version, not shimming.");break}sL("adapter.js shimming chrome."),n.browserShim=C,am(e,i),ag(e,i),sH(e,i),sq(e,i),s$(e,i),sW(e,i),sJ(e,i),sV(e,i),sG(e,i),sX(e,i),al(e,i),au(e,i),af(e,i),ap(e,i),ah(e,i),av(e,i);break;case"firefox":if(!w||!s0||!r.shimFirefox){sL("Firefox shim is not included in this adapter release.");break}sL("adapter.js shimming firefox."),n.browserShim=w,am(e,i),ag(e,i),sQ(e,i),s0(e,i),sZ(e,i),s3(e,i),s1(e,i),s2(e,i),s4(e,i),s6(e,i),s5(e,i),s8(e,i),s9(e,i),al(e,i),af(e,i),ap(e,i),ah(e,i);break;case"safari":if(!R||!r.shimSafari){sL("Safari shim is not included in this adapter release.");break}sL("adapter.js shimming safari."),n.browserShim=R,am(e,i),ag(e,i),an(e,i),as(e,i),at(e,i),s7(e,i),ae(e,i),ao(e,i),ar(e,i),aa(e,i),al(e,i),au(e,i),ap(e,i),ah(e,i),av(e,i);break;default:sL("Unsupported browser!")}return n}({window:"undefined"==typeof window?void 0:window});(cS=cR||(cR={})).DEFAULT_BRTC_SDK_URL="https://brtc-sdk.cdn.bcebos.com/npm/baidurtc@1.2.19/baidu.rtc.sdk.js",cS.DEFAULT_BRTC_CLIENT_CONFIG={displayName:"AaaSPilot Kit",debugLevel:!1,rtcOptions:{},cfg:{tag:"H5.SDK",llm:"LLMMute",tts:"MUTE"},silenceTimeoutMs:1e4};let ab=e=>{if(e)return"string"==typeof e?e:e.id};class aS extends sn{static #z=this.MESSAGE_INTERVAL_THRESHOLD=5e3;preloadDeps(){if("undefined"==typeof window){let e="Window object not available";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}if(window.adapter||(window.adapter=null!=ay?ay:T),"function"!=typeof window.BRTC_Start){let e='RTC SDK not loaded. Ensure "baidurtc" is imported correctly.';return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}return Promise.resolve()}makeStartOptions(){return{...cR.DEFAULT_BRTC_CLIENT_CONFIG,cfg:{...cR.DEFAULT_BRTC_CLIENT_CONFIG.cfg,asr_vad:this.opts.asrVad,lang:(e=>{if(!e)return iH[iW];let r=iH[e];return r||(console.warn(`[AaaSPilotKit] 不支持的语言代码 "${e}",已自动回退到中文。支持的语言:${Object.keys(iH).join(", ")}`),iH[iW])})(this.opts.lang)}}}parseMessage(e){let r=e.replace(/\[Q\]:?|\[M\]:?|\[C\]:?|\[A\]:?|\[H\]:?|\[E\]:?|\[B\]:?|\[T\]:?/g,"").trim(),i=cp.EMessageType.Event,n=!0,o=!1;return o=e.includes("VOICE_COMING"),e.includes("[Q]")&&(i=cp.EMessageType.Query),e.includes("[E]")&&(i=cp.EMessageType.Event),n=!e.includes("[M]"),{type:i,continued:e.includes("[C]"),data:r,completed:n,isCollectingSounds:o}}constructor(...e){super(...e),this.silenceTimer=null,this.lastMessageTime=0,this.messageIntervalTimer=null,this.mediaStream=null,this.start=async()=>{if(this.started)return;if(this.opts.checkAudioDeviceBeforeStart){let r=await this.checkAudioDevice();if(!r.available){var e;let i={...r,userMessage:r.error?o8(r.error):void 0},n=null!=(e=this.opts.microphoneFailureHandling)?e:"error";if(!await this.handleMicrophoneCheckFailure(n,i,this.opts.onMicrophoneCheckFailed))throw new r8("音频设备检测失败,无法启动 ASR",{context:{checkResult:i}});this.disable()}}let{displayName:r,debugLevel:i,rtcOptions:{remoteVideoElement:n,localVideoElement:o},cfg:s,silenceTimeoutMs:a}=this.makeStartOptions();try{let e=await this.streamManager.getUserMedia();this.mediaStream=e.stream}catch(r){let e=r instanceof Error?r.message:String(r);throw new r8(`启用麦克风失败: ${e}。请确保已授予麦克风权限。`)}let c=await this.setupPlaybackSuppression(this.mediaStream,"[BRTCASR]");return new Promise((e,d)=>{this.signalingService.Start({debuglevel:i,cfg:s,stream:null!=c?c:void 0,displayname:r,remotevideoviewid:ab(n),localvideoviewid:ab(o),usingremotemediastate:!0,success:()=>{this.started=!0,this.emitter.emit("start",{sessionId:this.sessionId}).catch(iA),e()},error:e=>{this.errorManager.handleError(new ir(e||"",{sessionId:this.sessionId})),d(Error(e||""))},onmessage:e=>{try{let r=this.parseMessage(e.data);if(e.data.includes("VOICE_COMING")||(this.emitter.emitSerial("message",{...r,sessionId:this.sessionId}).catch(iA),this.checkMessageInterval(r)),0!==a){let i=""===r.data;(e.data.includes("[E]")||e.data.includes("VOICE_COMING"))&&i?this.triggerSilence():this.resetSilenceTimer()}}catch(e){e instanceof Error&&this.errorManager.handleError(new ie(e.message,{sessionId:this.sessionId}))}},userevent_joinedroom:(e,r,i)=>{this.emitter.emit("user_joined_room",{id:e,display:r,attribute:i,sessionId:this.sessionId})},userevent_leavingroom:(e,r)=>{this.emitter.emit("user_leaving_room",{id:e,display:r,sessionId:this.sessionId})},remotemediastating:(e,r,i)=>{this.emitter.emit("media_state_changed",{id:e,medium:r,on:i,sessionId:this.sessionId})}})})},this.stop=async()=>{try{await this._stop()}catch(e){e instanceof Error&&this.errorManager.handleError(new r9(e.message,{sessionId:this.sessionId}))}this.emitter.emit("stop",{sessionId:this.signalingService.GetSessionID()})},this.dispose=()=>{this._dispose(),this.silenceTimer&&(window.clearTimeout(this.silenceTimer),this.silenceTimer=null),this.messageIntervalTimer&&(window.clearTimeout(this.messageIntervalTimer),this.messageIntervalTimer=null),this.lastMessageTime=0,this.mediaStream=null},this.resetSilenceTimer=()=>{null!==this.silenceTimer&&window.clearTimeout(this.silenceTimer),this.silenceTimer=window.setTimeout(()=>{this.emitter.emit("silence",{sessionId:this.signalingService.GetSessionID()})},this.makeStartOptions().silenceTimeoutMs)},this.triggerSilence=()=>{this.emitter.emit("silence",{sessionId:this.signalingService.GetSessionID()}),this.resetSilenceTimer()},this.checkMessageInterval=e=>{let r=Date.now();if(e.completed){this.messageIntervalTimer&&(window.clearTimeout(this.messageIntervalTimer),this.messageIntervalTimer=null),this.lastMessageTime=0;return}if(0===this.lastMessageTime)this.lastMessageTime=r,this.messageIntervalTimer=window.setTimeout(()=>{this.errorManager.handleError(new it(`ASR消息间隔超过${aS.MESSAGE_INTERVAL_THRESHOLD}ms阈值`,{sessionId:this.sessionId,context:{lastMessageTime:this.lastMessageTime,currentTime:r,threshold:aS.MESSAGE_INTERVAL_THRESHOLD}}))},aS.MESSAGE_INTERVAL_THRESHOLD);else{let e=r-this.lastMessageTime;e>aS.MESSAGE_INTERVAL_THRESHOLD&&this.errorManager.handleError(new it(`ASR消息间隔${e}ms超过${aS.MESSAGE_INTERVAL_THRESHOLD}ms阈值`,{sessionId:this.sessionId,context:{lastMessageTime:this.lastMessageTime,currentTime:r,interval:e,threshold:aS.MESSAGE_INTERVAL_THRESHOLD}})),this.lastMessageTime=r,this.messageIntervalTimer&&window.clearTimeout(this.messageIntervalTimer),this.messageIntervalTimer=window.setTimeout(()=>{this.errorManager.handleError(new it(`ASR消息间隔超过${aS.MESSAGE_INTERVAL_THRESHOLD}ms阈值`,{sessionId:this.sessionId,context:{lastMessageTime:this.lastMessageTime,currentTime:Date.now(),threshold:aS.MESSAGE_INTERVAL_THRESHOLD}}))},aS.MESSAGE_INTERVAL_THRESHOLD)}}}}aS=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],aS);var aC=S("../../node_modules/microsoft-cognitiveservices-speech-sdk/distrib/lib/microsoft.cognitiveservices.speech.sdk.js");class aw extends sn{constructor(...e){super(...e),this.recognizer=null,this.mediaStream=null,this.preloadDeps=async()=>{if("undefined"==typeof window){let e="Window object not available";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}let e=this.opts.asr;if("azure"!==e.provider){let e=`AzureAsrService 只能在 asr.provider === "azure" 时使用, 当前配置为 ${this.opts.asr.provider}`;return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}if(!e.config){let e="Azure ASR 需要配置 azure 参数(subscriptionKey 和 region)";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}let{subscriptionKey:r,region:i}=e.config;if(!r||!i){let e="Azure ASR 配置缺少必填参数:subscriptionKey 或 region";return this.errorManager.handleError(new r8(e)),Promise.reject(Error(e))}return Promise.resolve()},this.start=async()=>{var e,r,i,n,o;if(this.started)return;if(this.opts.checkAudioDeviceBeforeStart){let e=await this.checkAudioDevice();if(!e.available)throw new r8("音频设备检测失败,无法启动 ASR",{context:{checkResult:e}})}if((null==(e=this.opts.asr)?void 0:e.provider)!=="azure")throw new r8('AzureAsrService 只能在 asr.provider === "azure" 时使用');let s=this.opts.asr.config,a=aC.SpeechConfig.fromSubscription(s.subscriptionKey,s.region);if(a.setProperty(aC.PropertyId.SpeechServiceConnection_InitialSilenceTimeoutMs,String(null!=(r=s.initialSilenceTimeoutMs)?r:3e4)),a.setProperty(aC.PropertyId.SpeechServiceConnection_EndSilenceTimeoutMs,String(null!=(i=s.endSilenceTimeoutMs)?i:3e4)),a.setProperty(aC.PropertyId.Speech_SegmentationSilenceTimeoutMs,String(null!=(n=s.segmentationSilenceTimeoutMs)?n:1e3)),s.enableAudioLogging&&a.enableAudioLogging(),s.customEndpointId&&(a.endpointId=s.customEndpointId),s.advancedConfig)for(let[e,r]of Object.entries(s.advancedConfig))a.setProperty(e,String(r));try{let e=await this.streamManager.getUserMedia();this.mediaStream=e.stream}catch(r){let e=r instanceof Error?r.message:String(r);throw new r8(`启用麦克风失败: ${e}。请确保已授予麦克风权限。`)}let c=await this.setupPlaybackSuppression(this.mediaStream,"[AzureASR]"),d=aC.AudioConfig.fromStreamInput(c),l=null!=(o=s.languages)?o:["en-US"];if(1===l.length)a.speechRecognitionLanguage=l[0],this.recognizer=new aC.SpeechRecognizer(a,d);else{let e=aC.AutoDetectSourceLanguageConfig.fromLanguages(l);this.recognizer=aC.SpeechRecognizer.FromConfig(a,e,d)}if(s.phraseList&&s.phraseList.length>0){let e=aC.PhraseListGrammar.fromRecognizer(this.recognizer);s.phraseList.forEach(r=>{e.addPhrase(r)}),s.phraseWeight}this.setupRecognizerEvents();let u=s.connectionTimeoutMs;await new Promise((e,r)=>{var i;let n=null;void 0!==u&&(n=setTimeout(()=>{r(new r8(`启动超时: WebSocket 连接在 ${u}ms 内未响应`))},u)),null==(i=this.recognizer)||i.startContinuousRecognitionAsync(()=>{null!==n&&clearTimeout(n),this.started=!0,e()},e=>{null!==n&&clearTimeout(n),r(new r8(`启动失败: ${e}`))})}),await this.emitter.emit("start",{sessionId:this.sessionId})},this.stop=async()=>{if(this.started&&this.recognizer)try{await new Promise(e=>{var r;null==(r=this.recognizer)||r.stopContinuousRecognitionAsync(()=>{var r;null==(r=this.recognizer)||r.close(),this.recognizer=null,this.started=!1,e()},r=>{var i;this.errorManager.handleError(new r9(`停止失败: ${r}`,{sessionId:this.sessionId})),null==(i=this.recognizer)||i.close(),this.recognizer=null,this.started=!1,e()})}),this.streamManager.cleanup(),this.mediaStream=null,await this.emitter.emit("stop",{sessionId:this.sessionId})}catch(e){e instanceof Error&&this.errorManager.handleError(new r9(e.message,{sessionId:this.sessionId}))}},this.mute=e=>{this.muted=e,this.streamManager.mute(e)},this.dispose=()=>{this._dispose(),this.recognizer&&(this.recognizer.close(),this.recognizer=null),this.streamManager.cleanup(),this.mediaStream=null,this.customSessionId=null},this.setupRecognizerEvents=()=>{this.recognizer&&(this.recognizer.recognizing=(e,r)=>{r.result.text&&""!==r.result.text.trim()&&this.emitter.emit("message",{type:cp.EMessageType.Query,data:r.result.text,continued:!1,completed:!1,isCollectingSounds:!0,sessionId:this.sessionId}).catch(iA)},this.recognizer.recognized=(e,r)=>{r.result.reason===aC.ResultReason.RecognizedSpeech?r.result.text&&""!==r.result.text.trim()&&this.emitter.emit("message",{type:cp.EMessageType.Query,data:r.result.text,continued:!1,completed:!0,isCollectingSounds:!1,sessionId:this.sessionId}).catch(iA):r.result.reason===aC.ResultReason.NoMatch&&this.emitter.emit("silence",{sessionId:this.sessionId}).catch(iA)},this.recognizer.sessionStarted=(e,r)=>{this.customSessionId=r.sessionId},this.recognizer.sessionStopped=(e,r)=>{this.emitter.emit("stop",{sessionId:this.sessionId}).catch(iA)},this.recognizer.canceled=(e,r)=>{let i=r.errorDetails,n=r.errorCode;this.errorManager.handleError(new r8(`Azure ASR 错误 [${n}]: ${i}`,{sessionId:this.sessionId,context:{errorCode:n,errorDetails:i,reason:r.reason}}))})}}}function aR(e,r){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),i.push.apply(i,n)}return i}function a_(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?aR(Object(i),!0).forEach(function(r){aA(e,r,i[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):aR(Object(i)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(i,r))})}return e}function aT(){aT=function(){return r};var e,r={},i=Object.prototype,n=i.hasOwnProperty,o=Object.defineProperty||function(e,r,i){e[r]=i.value},s="function"==typeof Symbol?Symbol:{},a=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",d=s.toStringTag||"@@toStringTag";function l(e,r,i){return Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{l({},"")}catch(e){l=function(e,r,i){return e[r]=i}}function u(r,i,n,s){var a,c,d,l,u=Object.create((i&&i.prototype instanceof g?i:g).prototype);return o(u,"_invoke",{value:(a=r,c=n,d=new I(s||[]),l=h,function(r,i){if(l===f)throw Error("Generator is already running");if(l===v){if("throw"===r)throw i;return{value:e,done:!0}}for(d.method=r,d.arg=i;;){var n=d.delegate;if(n){var o=function r(i,n){var o=n.method,s=i.iterator[o];if(s===e)return n.delegate=null,"throw"===o&&i.iterator.return&&(n.method="return",n.arg=e,r(i,n),"throw"===n.method)||"return"!==o&&(n.method="throw",n.arg=TypeError("The iterator does not provide a '"+o+"' method")),m;var a=p(s,i.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,m;var c=a.arg;return c?c.done?(n[i.resultName]=c.value,n.next=i.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):c:(n.method="throw",n.arg=TypeError("iterator result is not an object"),n.delegate=null,m)}(n,d);if(o){if(o===m)continue;return o}}if("next"===d.method)d.sent=d._sent=d.arg;else if("throw"===d.method){if(l===h)throw l=v,d.arg;d.dispatchException(d.arg)}else"return"===d.method&&d.abrupt("return",d.arg);l=f;var s=p(a,c,d);if("normal"===s.type){if(l=d.done?v:"suspendedYield",s.arg===m)continue;return{value:s.arg,done:d.done}}"throw"===s.type&&(l=v,d.method="throw",d.arg=s.arg)}})}),u}function p(e,r,i){try{return{type:"normal",arg:e.call(r,i)}}catch(e){return{type:"throw",arg:e}}}r.wrap=u;var h="suspendedStart",f="executing",v="completed",m={};function g(){}function y(){}function b(){}var S={};l(S,a,function(){return this});var C=Object.getPrototypeOf,w=C&&C(C(k([])));w&&w!==i&&n.call(w,a)&&(S=w);var R=b.prototype=g.prototype=Object.create(S);function _(e){["next","throw","return"].forEach(function(r){l(e,r,function(e){return this._invoke(r,e)})})}function T(e,r){var i;o(this,"_invoke",{value:function(o,s){function a(){return new r(function(i,a){!function i(o,s,a,c){var d=p(e[o],e,s);if("throw"!==d.type){var l=d.arg,u=l.value;return u&&"object"==typeof u&&n.call(u,"__await")?r.resolve(u.__await).then(function(e){i("next",e,a,c)},function(e){i("throw",e,a,c)}):r.resolve(u).then(function(e){l.value=e,a(l)},function(e){return i("throw",e,a,c)})}c(d.arg)}(o,s,i,a)})}return i=i?i.then(a,a):a()}})}function E(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function P(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function k(r){if(r||""===r){var i=r[a];if(i)return i.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,s=function i(){for(;++o<r.length;)if(n.call(r,o))return i.value=r[o],i.done=!1,i;return i.value=e,i.done=!0,i};return s.next=s}}throw TypeError(typeof r+" is not iterable")}return y.prototype=b,o(R,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:y,configurable:!0}),y.displayName=l(b,d,"GeneratorFunction"),r.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===y||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,d,"GeneratorFunction")),e.prototype=Object.create(R),e},r.awrap=function(e){return{__await:e}},_(T.prototype),l(T.prototype,c,function(){return this}),r.AsyncIterator=T,r.async=function(e,i,n,o,s){void 0===s&&(s=Promise);var a=new T(u(e,i,n,o),s);return r.isGeneratorFunction(i)?a:a.next().then(function(e){return e.done?e.value:a.next()})},_(R),l(R,d,"Generator"),l(R,a,function(){return this}),l(R,"toString",function(){return"[object Generator]"}),r.keys=function(e){var r=Object(e),i=[];for(var n in r)i.push(n);return i.reverse(),function e(){for(;i.length;){var n=i.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},r.values=k,I.prototype={constructor:I,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(P),!r)for(var i in this)"t"===i.charAt(0)&&n.call(this,i)&&!isNaN(+i.slice(1))&&(this[i]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var i=this;function o(n,o){return c.type="throw",c.arg=r,i.next=n,o&&(i.method="next",i.arg=e),!!o}for(var s=this.tryEntries.length-1;s>=0;--s){var a=this.tryEntries[s],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var d=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(d&&l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(d){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,r){for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var s=o;break}}s&&("break"===e||"continue"===e)&&s.tryLoc<=r&&r<=s.finallyLoc&&(s=null);var a=s?s.completion:{};return a.type=e,a.arg=r,s?(this.method="next",this.next=s.finallyLoc,m):this.complete(a)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),m},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),P(i),m}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var o=n.arg;P(i)}return o}}throw Error("illegal catch attempt")},delegateYield:function(r,i,n){return this.delegate={iterator:k(r),resultName:i,nextLoc:n},"next"===this.method&&(this.arg=e),m}},r}function aE(e){return(aE="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function aP(e,r,i,n,o,s,a){try{var c=e[s](a),d=c.value}catch(e){return void i(e)}c.done?r(d):Promise.resolve(d).then(n,o)}function aI(e){return function(){var r=this,i=arguments;return new Promise(function(n,o){var s=e.apply(r,i);function a(e){aP(s,n,o,a,c,"next",e)}function c(e){aP(s,n,o,a,c,"throw",e)}a(void 0)})}}function ak(e,r){if(!(e instanceof r))throw TypeError("Cannot call a class as a function")}function aO(e,r){for(var i=0;i<r.length;i++){var n=r[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,aM(n.key),n)}}function ax(e,r,i){return r&&aO(e.prototype,r),i&&aO(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}function aA(e,r,i){return(r=aM(r))in e?Object.defineProperty(e,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[r]=i,e}function aM(e){var r=function(e,r){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,r||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"==typeof r?r:String(r)}aw=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],aw);var aj=S("../../node_modules/lodash/isString.js"),aD=S.n(aj),aN=S("../../node_modules/lodash/isObject.js"),aB=S.n(aN),aL=S("../../node_modules/lodash/cloneDeep.js"),aF=S.n(aL);class az{static isJsonStr(e){if(aD()(e))try{let r=JSON.parse(e);return!!aB()(r)}catch(e){}return!1}static parse(e){let r={};try{r=JSON.parse(e||"{}")}catch(r){console.error("JSON.parse Error:",e)}return r||{}}static stringify(e){let r="";try{r=JSON.stringify(e||{})}catch(r){console.error("JSON.stringify error:",e)}return r||"{}"}static getParseValue(e){try{return e&&aD()(e)?az.parse(e):e}catch(r){return console.info("JSON parse error",e),e}}static parseObj(e,r){let i=aF()(e);return r.forEach(r=>{if(Object.keys(e).includes(r))try{i[r]=az.parse(e[r]),console.log(r,i[r])}catch(e){console.error(`Failed to parse JSON for key "${r}":`,e)}}),i}static stringifyObj(e,r){let i=aF()(e);return r.forEach(r=>{Object.keys(e).includes(r)&&(i[r]=az.stringify(e[r]))}),i}}var aU,aH,aq,aW,aV,aG,aK,aJ,a$,aX,aQ,aY,aZ,a0,a1,a2,a3,a4,a6,a5,a8,a9,a7,ce,ct,cr,ci,cn,co,cs,ca,cc,cd,cl,cu,cp,ch,cf,cv,cm,cg,cy,cb,cS,cC,cw,cR,c_,cT,cE=S("../../node_modules/lodash/isEmpty.js"),cP=S.n(cE),cI=S("../../node_modules/lodash/omit.js"),ck=S.n(cI),cO=S("../../node_modules/lodash/pick.js"),cx=S.n(cO),cA=["projectId","characterConfigId","configVersion","selectors","figureName","reConnect"];(s=c_||(c_={})).DH_LIB_INIT="DH_LIB_INIT",s.DH_LIB_WS_SUCCESS="DH_LIB_WS_SUCCESS",s.DH_LIB_OPEN="DH_LIB_OPEN",s.DH_LIB_STATUS="DH_LIB_STATUS",s.DH_LIB_CLOSE="DH_LIB_CLOSE",s.DH_LIB_ERROR="DH_LIB_ERROR",s.DH_LIB_WARNING="DH_LIB_WARNING",s.DH_LIB_FULL_STATUS="DH_LIB_FULL_STATUS",s.DH_LIB_MESSAGE="DH_LIB_MESSAGE",(a=cT||(cT={})).CONNECT_ERROR="CONNECT_ERROR",a.DISCONNECT_ALERT="DISCONNECT_ALERT",a.TIMEOUT_EXIT="TIMEOUT_EXIT",a.LOCAL_VIDEO_MUTED="LOCAL_VIDEO_MUTED",a.LOCAL_VIDEO_ERROR="LOCAL_VIDEO_ERROR",a.RTC_ERROR="RTC_ERROR";var cM={"-1":"UNINSTANTIATED",0:"CONNECTING",1:"OPEN",2:"CLOSING",3:"CLOSED"},cj=S("../../node_modules/fast-unique-numbers/build/es5/bundle.js");let cD=(c=e=>{let r=new Map([[0,()=>{}]]),i=new Map([[0,()=>{}]]),n=new Map,o=new Worker(e);return o.addEventListener("message",({data:e})=>{if(void 0!==e.method&&"call"===e.method){let{params:{timerId:o,timerType:s}}=e;if("interval"===s){let e=r.get(o);if("number"==typeof e){let r=n.get(e);if(void 0===r||r.timerId!==o||r.timerType!==s)throw Error("The timer is in an undefined state.")}else if(void 0!==e)e();else throw Error("The timer is in an undefined state.")}else if("timeout"===s){let e=i.get(o);if("number"==typeof e){let r=n.get(e);if(void 0===r||r.timerId!==o||r.timerType!==s)throw Error("The timer is in an undefined state.")}else if(void 0!==e)e(),i.delete(o);else throw Error("The timer is in an undefined state.")}}else if(null===e.error&&"number"==typeof e.id){let{id:o}=e,s=n.get(o);if(void 0===s)throw Error("The timer is in an undefined state.");let{timerId:a,timerType:c}=s;n.delete(o),"interval"===c?r.delete(a):i.delete(a)}else{let{error:{message:r}}=e;throw Error(r)}}),{clearInterval:e=>{let i=(0,cj.generateUniqueNumber)(n);n.set(i,{timerId:e,timerType:"interval"}),r.set(e,i),o.postMessage({id:i,method:"clear",params:{timerId:e,timerType:"interval"}})},clearTimeout:e=>{let r=(0,cj.generateUniqueNumber)(n);n.set(r,{timerId:e,timerType:"timeout"}),i.set(e,r),o.postMessage({id:r,method:"clear",params:{timerId:e,timerType:"timeout"}})},setInterval:(e,i=0)=>{let n=(0,cj.generateUniqueNumber)(r);return r.set(n,()=>{e(),"function"==typeof r.get(n)&&o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}})}),o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}}),n},setTimeout:(e,r=0)=>{let n=(0,cj.generateUniqueNumber)(i);return i.set(n,e),o.postMessage({id:null,method:"set",params:{delay:r,now:performance.now(),timerId:n,timerType:"timeout"}}),n}}},o=null,()=>{if(null!==o)return o;let e=new Blob(['(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error(\'There is no interval scheduled with the given id "\'.concat(t,\'".\'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error(\'The given type "\'.concat(i,\'" is not supported\'));(e=>{const r=t.get(e);if(void 0===r)throw new Error(\'There is no timeout scheduled with the given id "\'.concat(e,\'".\'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error(\'The given method "\'.concat(s.method,\'" is not supported\'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error(\'The given type "\'.concat(d,\'" is not supported\'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();'],{type:"application/javascript; charset=utf-8"}),r=URL.createObjectURL(e);return o=c(r),setTimeout(()=>URL.revokeObjectURL(r)),o}),cN=(...e)=>cD().setTimeout(...e);(d=f||(f={}))[d.UNINSTANTIATED=-1]="UNINSTANTIATED",d[d.CONNECTING=0]="CONNECTING",d[d.OPEN=1]="OPEN",d[d.CLOSING=2]="CLOSING",d[d.CLOSED=3]="CLOSED",(l=v||(v={}))[l.CLOSE_INTERRUPT_WITH_NEW_URL=4e3]="CLOSE_INTERRUPT_WITH_NEW_URL";var cB=S("../../node_modules/lodash/get.js"),cL=S.n(cB),cF=function(e){function r(e){var i,n=this;ak(this,r),aA(this,"dhServerSocket",null),aA(this,"preConnectSuccess",!1),aA(this,"connectParams",null),aA(this,"socketClosingPromise",null),aA(this,"url",void 0),aA(this,"firstConnect",!0),aA(this,"sendPreConnect",function(e,r){var i,o=e.token,s=e.sessionId,a=e.onConnect;null==(i=n.dhServerSocket)||i.request({action:"RE_CONNECT",requestId:ix(),body:JSON.stringify({token:o,sessionId:s})}).on(function(e,i){null==a||a(e),0!==e.code&&(i(),n.handleConnect()),null==r||r(n.dhServerSocket)}),n.firstConnect=!1}),aA(this,"createSocket",function(e,r){return(i=i||aI(aT().mark(function e(r,i){var o,s;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.connectParams=r,o=r.sessionId,s=r.onDigitalHumanCallback,!n.socketClosingPromise){e.next=5;break}return e.next=5,n.socketClosingPromise;case 5:if(!n.dhServerSocket){e.next=8;break}return e.next=8,n.closeSocket();case 8:return e.abrupt("return",new Promise(function(e,a){var c={keepAlive:"heartbeat",reopen:cL()(n.connectParams,"reConnect",!0),combine:function(e,r){return e&&r&&e.requestId===r.requestId},onOpen:function(){n.dhServerSocket=d,o&&n.firstConnect?n.sendPreConnect(r,e):i&&n.firstConnect||n.handleConnect()},onClose:function(){n.dhServerSocket=null,n.socketClosingPromise=null},onError:function(e){a(e)}},d=function(e,r={}){let i=e,n=0,o=0,s=0,a=!1,c=r?.reopenDelay??5e3,d=!0,l=!1,u=0,p=new Set,h=new Set,m=new Set;function g(){a=!1,n=0,d=!0,c=r?.reopenDelay??5e3}function y(e){let{reopen:i=!0,reopenAttempts:l=10,reopenDelayIncrease:u,onReopenAttemptEnd:p}=r;if(n>=l||!i){let e;return g(),d&&o&&(e=o,cD().clearTimeout(e)),void("function"==typeof p&&p(d))}s=cN(()=>{a=!0,e.open(),n++},c="function"==typeof u?u({reopenCount:n,preDelay:c,isServerClosed:d}):c)}let b={socket:null,messages:[],get readyState(){return this.socket?this.socket.readyState:f.UNINSTANTIATED},get isOpened(){return f.OPEN===this.readyState},get isActive(){return f.CONNECTING===this.readyState||f.OPEN===this.readyState},open(){let e;if(this.isActive)return this;s&&!a&&(e=s,cD().clearTimeout(e));let n=this.socket=new WebSocket(i,r?.protocols);return this._dispchReadyStateChangeEvent(),n.addEventListener("open",this._dispchReadyStateChangeEvent),n.addEventListener("close",this._dispchReadyStateChangeEvent),n.addEventListener("error",this._dispchReadyStateChangeEvent),n.onopen=e=>{let i,{onOpen:s,onMessage:c,combine:l,reopenDelay:u=5e3}=r;a&&(d?(o&&(i=o,cD().clearTimeout(i)),o=cN(g,u>1e3?u+100:1e3)):g()),s&&s(e),n.onmessage=e=>{c&&c(e);let r=this.deserialization(e.data);l&&p.forEach(e=>{l(e.requestData,r)&&(e.then?(e.then(r),p.delete(e)):e.on?e.on(r):e.responseData=r)}),h.forEach(e=>e(r))},this.messages.flush(),this._ping()},n.onerror=e=>{r.onError&&r.onError(e),d=!1,y(this)},n.onclose=e=>{let i;e.isInterruptWithNewUrl=l,l=!1,u&&(i=u,cD().clearTimeout(i));let{reopenWhenServerClosed:o=!0,onClose:s,onServerClose:a}=r;d&&a&&a(e),s&&s(e),this._dispose(n),d&&o&&y(this)},this},openWithNewUrl(e){return e&&this.isActive&&e===i?this:(i=e||i,f.CONNECTING===this.readyState?(this._dispose(),this.socket?.close()):this.isActive&&this.close(v.CLOSE_INTERRUPT_WITH_NEW_URL,"interrupt by new url"),this.open())},close(e=1e3,r){return this.socket?new Promise(i=>{d=!1,v.CLOSE_INTERRUPT_WITH_NEW_URL===e&&(l=!0);let n=()=>{this.socket?.removeEventListener("close",n),this._dispose(this.socket),i()};this.socket?.addEventListener("close",n),this.socket?.close(e,r),this._dispchReadyStateChangeEvent()}):Promise.resolve()},connect(){return this.open()},disconnect(e,r){return this.close(e,r)},send(e){let{socket:r}=this;if(!r)return this;if(f.CONNECTING===r.readyState)return this.messages.push(e),this;e instanceof Function&&(e=e(ix()));let i=this.serialization(e);return r.send(i),this},request(e){if(!r?.combine)throw Error("Request failed! unconfigured combine, this configuration is required to use the request api.");e instanceof Function&&(e=e(ix())),this.send(e);let i={requestData:e,responseData:null};return p.add(i),{then(e){if(i.on&&console.warn('You have already registered for the "on" callback.'),i.responseData){let r=e(i.responseData);return r instanceof Promise?r:Promise.resolve(r)}return new Promise(e=>{i.then=r=>e(r)}).then(r=>e(r))},on(e,r=!0){i.then&&console.warn('You have already registered for the "then" callback.'),i.on=r=>{e(r,()=>{p.delete(i)})},i.responseData&&r&&i.on(i.responseData)}}},receive(){return new Promise(e=>{let r=this.onReceive(i=>{r(),e(i)})})},onReceive:e=>(h.add(e),()=>{h.delete(e)}),onMessage(e){return this.onReceive(e)},_dispchReadyStateChangeEvent(){m.forEach(e=>e(this.readyState))},_dispose(e){(e=e??this.socket)&&(e.removeEventListener("open",this._dispchReadyStateChangeEvent),e.removeEventListener("close",this._dispchReadyStateChangeEvent),e.removeEventListener("error",this._dispchReadyStateChangeEvent),e.onopen=null,e.onclose=null,e.onerror=null)},_ping(){let e,{keepAlive:i="none"}=r;u&&(e=u,cD().clearTimeout(e)),"none"!==i&&this.isOpened&&(u=cN(()=>{if(!this.isOpened)return;let e=r?.getKeepAliveMessage?r?.getKeepAliveMessage(ix()):{requestId:ix(),action:"heartbeat"===i?"HEART_BEAT":"PING"};"heartbeat"===r.keepAlive?(this.send(e),this._ping()):this.request(e).then(()=>{this._ping()}).catch(e=>{console.error(e)})},r?.keepAliveDelay||3e3))},onReadyStateChange:e=>(m.add(e),()=>{m.delete(e)}),serialization:e=>"[object Object]"===Object.prototype.toString.call(e)||Array.isArray(e)||"number"==typeof e?JSON.stringify(e):e,deserialization(e){if("string"==typeof e){let r=e;try{r=JSON.parse(e)}catch(i){r=e}return r}return e}};return b.messages.flush=function(){let e=[...this];if(this.length=0,e.length)for(let r of e)b.send(r)},b}(n.url,c);d.onReadyStateChange(function(e){0===e&&s&&s({status:c_.DH_LIB_INIT}),1===e&&i&&(n.preConnectSuccess=!0),3===e&&(n.preConnectSuccess=!1),s&&s({status:c_.DH_LIB_FULL_STATUS,content:{type:"wsState",readyState:e,body:cM[e]}})}),d.onMessage(function(e){var r=e.action;[cT.TIMEOUT_EXIT,cT.DISCONNECT_ALERT].includes(r)&&s&&s({status:c_.DH_LIB_STATUS,content:{type:r}}),[cT.TIMEOUT_EXIT,cT.DISCONNECT_ALERT,"HEART_BEAT","CONNECT"].includes(r)||s&&s({status:c_.DH_LIB_MESSAGE,content:e})}),i&&(n.dhServerSocket=d),d.open()}));case 9:case"end":return e.stop()}},e)}))).apply(this,arguments)}),aA(this,"closeSocket",aI(aT().mark(function e(){return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.dhServerSocket){e.next=2;break}return e.abrupt("return");case 2:return n.socketClosingPromise=n.dhServerSocket.close(),e.next=5,n.socketClosingPromise;case 5:n.dhServerSocket=null;case 6:case"end":return e.stop()}},e)}))),aA(this,"handleConnect",aI(aT().mark(function e(){var r,i,o,s,a,c;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.connectParams){e.next=2;break}return e.abrupt("return");case 2:if(i=(r=n.connectParams).appId,o=r.appKey,s=r.token,a=r.parameters,c=r.onConnect,i||o||s){e.next=5;break}return e.abrupt("return");case 5:n.dhServerSocket&&n.dhServerSocket.request({action:"CONNECT",clientTs:(new Date).getTime(),requestId:ix(),body:JSON.stringify(a_(a_({token:s,appId:i,appKey:o},cx()(n.connectParams,cA)),{},{parameters:a_(a_({},ck()(a,["parameters"])),a&&a.parameters?a.parameters:{})}))}).on(function(e,r){null==c||c(e),0!==e.code&&r()});case 6:case"end":return e.stop()}},e)}))),this.url=e}return ax(r,[{key:"sendMessage",value:function(r,i){return(e=e||aI(aT().mark(function e(r,i){var n;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:try{this.dhServerSocket&&this.dhServerSocket&&this.dhServerSocket.request(r).on(function(e){i&&i(e)})}catch(e){n="object"===aE(r)&&"requestId"in r?r.requestId:ix(),i&&i({code:-11,body:null,action:"RENDER_ERROR",requestId:n,message:JSON.stringify(e)})}case 1:case"end":return e.stop()}},e,this)}))).apply(this,arguments)}}]),r}();let cz={onLocalStream:()=>{},onLocalVideoPublished:()=>{},onRemoteVideoComing:()=>{},onRemoteVideoOn:()=>{},onRemoteVideoOff:()=>{},onRemoteVideoLoading:()=>{},onSuccess:()=>{},onError:()=>{}};class cU{client;#eZ;#e0;#e1;constructor(e){let{roomName:r,token:i,userId:n,appId:o,server:s,rtcConfig:a,callback:c}=e;if(this.#eZ={server:s,token:i,roomName:r,userId:n,appId:o},this.#e1={...cz,...c},this.#e0=a||{},!(r&&i&&n&&o&&s))return this.#e1.onError?.("RtcConnection is required, please check roomName, token, userId, appId, server"),void console.error("RtcConnection is required, please check roomName, token, userId, appId, server");this.init()}init(){let{BaiduRtcRoomClient:e}=window.baidurtc,r=new e;this.client=r,r.BRTC_Start({server:this.#eZ.server,appid:this.#eZ.appId,token:this.#eZ.token,roomname:this.#eZ.roomName,userid:this.#eZ.userId,displayname:"starling-brtc",remotevideoviewid:"starlingRtcContainer",showvideobps:!1,usingvideo:!1,usingaudio:!1,aspublisher:!1,usingdatachannel:!1,autoplaymuted:!1,autosubscribe:!1,autopublish:!1,usingremotemediastate:!0,...this.#e0||{},remotedata:()=>{},success:this.#e1.onSuccess,error:this.#e1.onError,remotevideocoming:this.#e1.onRemoteVideoComing,remotevideoloading:this.#e1.onRemoteVideoLoading,remotevideoon:this.#e1.onRemoteVideoOn,remotevideooff:this.#e1.onRemoteVideoOff,onlocalstream:this.#e1.onLocalStream,localvideopublished_ok:this.#e1.onLocalVideoPublished,remotevideoconnected_state:this.#e1.onRemoteVideoConnected,remotemediastating:this.#e1.onRemoteMediaState,localvideoconnected_state:this.#e1.onLocalVideoConnected})}destroy(){this.client?.BRTC_Stop()}subscribeStreaming(e,r){this.client?.BRTC_SubscribeStreaming(e,r)}stopSubscribeStreaming(e){this.client?.BRTC_StopSubscribeStreaming(e)}muteMicphone(e){this.client?.BRTC_MuteMicphone(e)}getRemoteVideoInfo(e){return this.client?.BRTC_GetRemoteVideoInfo(e)}getClient(){return this.client}}var cH=void 0===Number.MAX_SAFE_INTEGER?0x1fffffffffffff:Number.MAX_SAFE_INTEGER,cq=new WeakMap,cW=(u=function(e,r){return cq.set(e,r),r},function(e){var r=cq.get(e),i=void 0===r?e.size:r<0x40000000?r+1:0;if(!e.has(i))return u(e,i);if(e.size<0x20000000){for(;e.has(i);)i=Math.floor(0x40000000*Math.random());return u(e,i)}if(e.size>cH)throw Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;e.has(i);)i=Math.floor(Math.random()*cH);return u(e,i)}),cV=(p=function(e){var r=new Map([[0,function(){}]]),i=new Map([[0,function(){}]]),n=new Map,o=new Worker(e);return o.addEventListener("message",function(e){var o=e.data;if(void 0!==o.method&&"call"===o.method){var s=o.params,a=s.timerId,c=s.timerType;if("interval"===c){var d=r.get(a);if("number"==typeof d){var l=n.get(d);if(void 0===l||l.timerId!==a||l.timerType!==c)throw Error("The timer is in an undefined state.")}else{if(void 0===d)throw Error("The timer is in an undefined state.");d()}}else if("timeout"===c){var u=i.get(a);if("number"==typeof u){var p=n.get(u);if(void 0===p||p.timerId!==a||p.timerType!==c)throw Error("The timer is in an undefined state.")}else{if(void 0===u)throw Error("The timer is in an undefined state.");u(),i.delete(a)}}}else{if(null!==o.error||"number"!=typeof o.id)throw Error(o.error.message);var h=o.id,f=n.get(h);if(void 0===f)throw Error("The timer is in an undefined state.");var v=f.timerId,m=f.timerType;n.delete(h),"interval"===m?r.delete(v):i.delete(v)}}),{clearInterval:function(e){var i=cW(n);n.set(i,{timerId:e,timerType:"interval"}),r.set(e,i),o.postMessage({id:i,method:"clear",params:{timerId:e,timerType:"interval"}})},clearTimeout:function(e){var r=cW(n);n.set(r,{timerId:e,timerType:"timeout"}),i.set(e,r),o.postMessage({id:r,method:"clear",params:{timerId:e,timerType:"timeout"}})},setInterval:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=cW(r);return r.set(n,function(){e(),"function"==typeof r.get(n)&&o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}})}),o.postMessage({id:null,method:"set",params:{delay:i,now:performance.now(),timerId:n,timerType:"interval"}}),n},setTimeout:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=cW(i);return i.set(n,e),o.postMessage({id:null,method:"set",params:{delay:r,now:performance.now(),timerId:n,timerType:"timeout"}}),n}}},h=null,function(){if(null!==h)return h;var e=new Blob(['(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error(\'There is no interval scheduled with the given id "\'.concat(t,\'".\'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error(\'The given type "\'.concat(i,\'" is not supported\'));(e=>{const r=t.get(e);if(void 0===r)throw new Error(\'There is no timeout scheduled with the given id "\'.concat(e,\'".\'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error(\'The given method "\'.concat(s.method,\'" is not supported\'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error(\'The given type "\'.concat(d,\'" is not supported\'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();'],{type:"application/javascript; charset=utf-8"}),r=URL.createObjectURL(e);return h=p(r),setTimeout(function(){return URL.revokeObjectURL(r)}),h}),cG=function(e){return cV().clearInterval(e)},cK=function(e){return cV().clearTimeout(e)},cJ=function(){var e;return(e=cV()).setInterval.apply(e,arguments)},c$=function(){var e;return(e=cV()).setTimeout.apply(e,arguments)};class cX{running=!1;logger=!0;timeoutDuration;catchMethod;promise=null;reject=null;stopTimeout=null;constructor(e,r){this.timeoutDuration=e,this.catchMethod=r}start(){this.running?this.logger&&console.warn("TimeoutController已启动"):(this.logger&&console.info("TimeoutController开始计时:",this.timeoutDuration),this.running=!0,this.promise=new Promise((e,r)=>{var i,n;let o,s;this.reject=r,this.stopTimeout?.(),this.stopTimeout=(i=()=>{r(Error("TimeoutController超时错误"))},n=this.timeoutDuration,o=-1,s=null,"undefined"!=typeof Worker?s=E:(s=window,console.warn("浏览器不支持 Web Workers,使用 原生 timer 代替")),n>=0&&(o=s.setTimeout(i,n)),()=>{-1!==o&&s.clearTimeout(o),o=-1})}),this.catchMethod&&this.promise?.catch(this.catchMethod))}clear(){this.running?(this.logger&&console.info("TimeoutController停止计时"),this.running=!1,this.stopTimeout?.(),this.stopTimeout=null,this.reject&&(this.reject=null)):this.logger&&console.warn("TimeoutController未启动")}}var cQ=S("../../node_modules/lodash/isFunction.js"),cY=S.n(cQ),cZ=function(){function e(r){var i=this;ak(this,e),aA(this,"client",void 0),aA(this,"isRtcVideoOn",!1),aA(this,"rtcConnection",void 0),aA(this,"rtcConfig",void 0),aA(this,"bizConfig",void 0),aA(this,"rtcCallback",void 0),aA(this,"restarting",!1),aA(this,"timeoutEvent",void 0),aA(this,"reopenTimer",void 0),aA(this,"restartCount",0),aA(this,"closeLog",!0),aA(this,"haveVideoOn",!1),aA(this,"rtcStateCallback",null),aA(this,"openRtc",function(e){if(i.restarting)i.closeLog||console.warn("rtc restarting");else if(e&&(i.rtcConnection=e),i.rtcConnection&&!cP()(i.rtcConnection)){var r=i.rtcConnection,n=r.server,o=r.appId,s=r.token,a=r.roomName,c=r.userId,d=i.rtcCallback||{},l=d.onRemotedata,u=d.onLocalStream,p=d.onRemoteVideoComing,h=d.onLocalVideoPublished,f=d.onLocalVideoPublishing,v=d.onRemoteVideoOn,m=d.onRemoteVideoOff,g=d.onRemoteVideoLoading,y=d.onSuccess,b=d.onError,S=d.onLocalVideoConnected,C=d.onRemoteVideoConnected,w=d.onRemoteMediaState,R=d.onPlayingError,_=d.onDigitalHumanCallback;i.timeoutEvent.start(),i.rtcStateCallback=function(e){var r=e.body,i=e.action;_&&_({status:c_.DH_LIB_FULL_STATUS,content:{type:"rtcState",action:i,body:r}})},i.client=new cU({roomName:a,token:s,userId:c,appId:o,server:n,rtcConfig:i.rtcConfig,callback:{onRemoteVideoConnected:function(r,n){if(!n&&!i.haveVideoOn)var o=setTimeout(function(){i.restartCount<3?(i.restartCount=++i.restartCount,i.restartRtc&&i.restartRtc(e)):(i.restartCount=0,i.closeRtc()),clearTimeout(o)},500);if(n){var s=document.getElementById("remotevideo500");s.muted=!1;var a=s.play();void 0!==a&&a.catch(function(){s.muted=!0,s.play().catch(function(e){i.closeLog||console.info("videoElement play error",e),R&&R(s),_&&_({status:c_.DH_LIB_ERROR,content:{type:cT.LOCAL_VIDEO_ERROR}})}),_&&_({status:c_.DH_LIB_STATUS,content:{type:cT.LOCAL_VIDEO_MUTED}})})}i.closeLog||console.info("remoteVideoConnected",r,n,i.restartCount),i.rtcStateCallback&&i.rtcStateCallback({action:"remoteVideoConnected",body:{id:r,connected:n,restartCount:i.restartCount}}),cY()(C)&&C(r,n)},onRemoteVideoOn:function(e){i.haveVideoOn=!0,i.closeLog||console.info("remotevideoon by id: ",e),i.timeoutEvent.clear();var r=document.querySelector("#starlingRtcContainer"),n=r&&r.lastChild;n&&(n.style.display="none"),i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideoon",body:e}),_&&_({status:c_.DH_LIB_OPEN}),cY()(v)&&v(e)},onRemoteMediaState:function(e,r,n){i.closeLog||console.info("remoteMediaState",e,r,n),i.rtcStateCallback&&i.rtcStateCallback({action:"remoteMediaState",body:{id:e,medium:r,connected:n}}),cY()(w)&&w(e,r,n)},onLocalVideoConnected:function(e){i.closeLog||console.info("localVideoConnected",e),i.rtcStateCallback&&i.rtcStateCallback({action:"localVideoConnected",body:{connected:e}}),cY()(S)&&S(e)},onRemotedata:function(e){if(i.rtcConfig&&i.rtcConfig.usingdatachannel){var r=az.parse(e);i.closeLog||console.info("RTC - receive:",r),cY()(l)&&l(r)}},onLocalStream:function(e,r){i.closeLog||console.info("rtc - onlocalstream by name: "+r),i.rtcStateCallback&&i.rtcStateCallback({action:"onlocalstream",body:{stream:e,name:r}}),cY()(u)&&u(e,r)},onLocalVideoPublished:function(){i.closeLog||console.info("LocalVideoPublished 本地视频发布成功"),i.rtcStateCallback&&i.rtcStateCallback({action:"localvideopublished_ok",body:!0}),cY()(h)&&h()},onLocalVideoPublishing:function(){i.closeLog||console.info("LocalVideoPublishing 本地视频发布成功"),i.rtcStateCallback&&i.rtcStateCallback({action:"localvideopublishing",body:!0}),cY()(f)&&f()},onRemoteVideoComing:function(e){i.closeLog||console.info("remotevideocoming",e),i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideocoming",body:e}),cY()(p)&&p(e)},onRemoteVideoLoading:function(e){i.closeLog||console.info("remotevideoloading by id: ",e),i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideoloading",body:e}),cY()(g)&&g(e)},onRemoteVideoOff:function(e){var r=document.getElementById("remotevideo500");r&&r.pause(),i.closeLog||console.info("remotevideooff: ",e),i.isRtcVideoOn=!1,i.rtcStateCallback&&i.rtcStateCallback({action:"remotevideooff",body:e}),_&&_({status:c_.DH_LIB_CLOSE}),cY()(m)&&m(e),i.timeoutEvent.start()},onSuccess:function(){i.closeLog||console.info("rtc - success"),i.rtcStateCallback&&i.rtcStateCallback({action:"success",body:!0}),cY()(y)&&y()},onError:function(r){i.isRtcVideoOn=!1,i.closeLog||console.error("rtc - error:",r),i.rtcStateCallback&&i.rtcStateCallback({action:"error",body:r}),_&&_({status:c_.DH_LIB_ERROR,content:{type:cT.RTC_ERROR}}),cY()(b)&&b(r),(r.includes("Lost connection to the server")||r.includes("Is the server down"))&&i.restartRtc&&i.restartRtc(e)}}})}}),aA(this,"closeRtc",function(){i.timeoutEvent.clear(),clearTimeout(i.reopenTimer),i.client&&i.client.destroy(),i.restarting=!1}),aA(this,"restartRtc",function(e){!i.restarting&&i.bizConfig&&i.bizConfig.autoReConnect&&(i.rtcStateCallback&&i.rtcStateCallback({action:"restartRtc",body:e}),i.restarting=!0,i.closeRtc(),i.reopenTimer=setTimeout(function(){i.closeLog||console.error("拉流失败,开始重启"),i.restarting=!1,i.openRtc(e)},2e3))});var n=r.rtcConnection,o=r.rtcConfig,s=r.closeLog,a=r.rtcCallback;this.rtcConnection=n,this.rtcConfig=o,this.rtcCallback=a,this.closeLog=void 0===s||s,this.timeoutEvent=new cX(6e4,function(){if(!i.rtcConnection)return!i.closeLog&&console.warn("remotevideoon事件超时, rtcConnectionRef is null");i.timeoutEvent.clear(),i.restartRtc&&i.restartRtc(i.rtcConnection)})}return ax(e,[{key:"muteMicphone",value:function(e){this.client&&this.client.muteMicphone&&this.client.muteMicphone(e)}}]),e}(),c0="starling-cutout-canvas",c1="cloud-brtc-player-wrapper",c2="remotevideo500";function c3(e){var r=document.getElementById(c2);return r&&(r.muted=e),r}function c4(e){var r=document.getElementById(c2);try{if(r)return e?r.play():r.pause()}catch(e){console.info(e)}}var c6=S("../../node_modules/lodash/isNumber.js"),c5=S.n(c6);function c8(e){return(c8="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c9(e,r){(null==r||r>e.length)&&(r=e.length);for(var i=0,n=Array(r);i<r;i++)n[i]=e[i];return n}var c7=function(e,r,i){var n;return Promise.race([new Promise(function(r){if(e())var n=setInterval(function(){e()||(clearInterval(n),r())},i||100);else r()})].concat(function(e){if(Array.isArray(e))return c9(e)}(n=r?[new Promise(function(e,i){setTimeout(function(){i(Error("overtime"))},r)})]:[])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||function(e,r){if(e){if("string"==typeof e)return c9(e,void 0);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?c9(e,void 0):void 0}}(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))},de={exports:{}};g=function(e){var r,i,n,o,s,a,c,d,l=e.document,u=e.console,p={},h={},f={},v={},m=[],g={},y={},b={canvas:[],image:[],video:[]},S={},C=e.WeakMap&&new WeakMap,w=0,R=function(){},_={transparent:[0,0,0,0],black:[0,0,0,1],red:[1,0,0,1],green:[0,128/255,0,1],blue:[0,0,1,1],white:[1,1,1,1],silver:[192/255,192/255,192/255,1],gray:[128/255,128/255,128/255,1],maroon:[128/255,0,0,1],purple:[128/255,0,128/255,1],fuchsia:[1,0,1,1],lime:[0,1,0,1],olive:[128/255,128/255,0,1],yellow:[1,1,0,1],navy:[0,0,128/255,1],teal:[0,128/255,128/255,1],aqua:[0,1,1,1],orange:[1,165/255,0,1]},T=/^(rgb|hsl)a?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*(\d+(\.\d*)?)\s*)?\)/i,E=/^#(([0-9a-fA-F]{3,8}))/,P=["x","y","z","w"],I=["r","g","b","a"],k={srcRGB:770,dstRGB:771,srcAlpha:1,dstAlpha:771},O=["MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_TEXTURE_IMAGE_UNITS","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS"],x=/^[\t ]*#define[\t ]+SHADER_NAME\s+([^$\n\r]+)/i,A={frustum:function(e,r,i,n,o,s,a){a||(a=A.create());var c=r-e,d=n-i,l=s-o;return a[0]=2*o/c,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2*o/d,a[6]=0,a[7]=0,a[8]=(r+e)/c,a[9]=(n+i)/d,a[10]=-(s+o)/l,a[11]=-1,a[12]=0,a[13]=0,a[14]=-s*o*2/l,a[15]=0,a},perspective:function(e,r,i,n,o){var s=i*Math.tan(e*Math.PI/360),a=s*r;return A.frustum(-a,a,-s,s,i,n,o)},multiply:function(e,r,i){var n=r[0],o=r[1],s=r[2],a=r[3],c=r[4],d=r[5],l=r[6],u=r[7],p=r[8],h=r[9],f=r[10],v=r[11],m=r[12],g=r[13],y=r[14],b=r[15],S=i[0],C=i[1],w=i[2],R=i[3];return e[0]=S*n+C*c+w*p+R*m,e[1]=S*o+C*d+w*h+R*g,e[2]=S*s+C*l+w*f+R*y,e[3]=S*a+C*u+w*v+R*b,S=i[4],C=i[5],w=i[6],R=i[7],e[4]=S*n+C*c+w*p+R*m,e[5]=S*o+C*d+w*h+R*g,e[6]=S*s+C*l+w*f+R*y,e[7]=S*a+C*u+w*v+R*b,S=i[8],C=i[9],w=i[10],R=i[11],e[8]=S*n+C*c+w*p+R*m,e[9]=S*o+C*d+w*h+R*g,e[10]=S*s+C*l+w*f+R*y,e[11]=S*a+C*u+w*v+R*b,S=i[12],C=i[13],w=i[14],R=i[15],e[12]=S*n+C*c+w*p+R*m,e[13]=S*o+C*d+w*h+R*g,e[14]=S*s+C*l+w*f+R*y,e[15]=S*a+C*u+w*v+R*b,e},identity:function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},copy:function(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}},M=(d=0,e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(r){var i,n,o;return n=Math.max(0,16-((i=(new Date).getTime())-d)),o=e.setTimeout(function(){r(i+n)},n),d=i+n,o}),j=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.oCancelAnimationFrame||e.msCancelAnimationFrame||function(r){e.cancelTimeout(r)},D=["alias","destroy","effect","id","initialize","inputs","isDestroyed","isReady","matte","off","on","readPixels","render","title","update"],N=["alias","destroy","id","inputs","isDestroyed","isReady","off","on","source","title","update"],B=["aliases","defaults","destroy","effect","go","id","incompatible","isDestroyed","isEffect","isNode","isSource","isTarget","isTransform","removeAlias","render","source","stop","target","transform"];function L(e,r){var i,n;if("string"==typeof e)i=l.querySelector(e);else if(!e)return!1;return e.tagName&&(i=e),i?(n=i.tagName.toLowerCase(),r&&0>r.indexOf(n)?e:i):e}function F(e,r){var i,n;for(i in e.prototype&&r.prototype&&e.prototype!==r.prototype&&F(e.prototype,r.prototype),r)r.hasOwnProperty(i)&&((n=Object.getOwnPropertyDescriptor(r,i)).get||n.set?Object.defineProperty(e,i,{configurable:!0,enumerable:!0,get:n.get,set:n.set}):e[i]=r[i]);return e}function z(e){var r;if(!u)return R;if("function"==typeof u[e])r=u[e];else{if("function"!=typeof u.log)return R;r=u.log}return r.bind?r.bind(u):function(){r.apply(u,arguments)}}function U(r,i){if(i||(i="HTMLElement"),!e[i])return u.error("window[proto] is undefined, proto:",i),!1;if(r instanceof e[i])return!0;if(!r||"object"!==c8(r))return!1;for(;r;)if((r=Object.getPrototypeOf(r))&&r.constructor.name===i)return!0;return!1}function H(e,r,i,n,o){var s,a;function c(e,r,i){return(i%=1)<0&&(i+=1),i<1/6?e+(r-e)*i*6:i<.5?r:i<2/3?e+(r-e)*(2/3-i)*6:e}return s=2*i-(a=i<.5?i*(r+1):i+r-i*r),o||(o=[]),o[0]=c(s,a,e+1/3),o[1]=c(s,a,e),o[2]=c(s,a,e-1/3),o[3]=n,o}function q(e){var r,i,n,o="#",s=e[3]<1?4:3;for(r=0;r<s;r++)n=(i=Math.min(255,Math.round(255*e[r]||0))).toString(16),i<16&&(n="0"+n),o+=n;return o}function W(e){return Array.isArray(e)||e&&e.BYTES_PER_ELEMENT&&"length"in e}function V(r){if("function"!=typeof r)throw Error("setTimeoutZero argument is not a function");m.push(r),"file:"!==e.location.protocol?e.postMessage("seriously-timeout-message",e.location):setTimeout(function(){m.length&&m.shift()()},0)}function G(r,i){var n;try{n=e.WebGLDebugUtils&&i&&i.debugContext?e.WebGLDebugUtils.makeDebugContext(r.getContext("webgl",i)):r.getContext("webgl",i)}catch(e){}if(!n)try{n=r.getContext("experimental-webgl",i)}catch(e){}return n}function K(){var i;return r&&r.getError()===r.CONTEXT_LOST_WEBGL&&(r=void 0),r||!e.WebGLRenderingContext||n||((r=G(i=l.createElement("canvas")))?i.addEventListener("webglcontextlost",function e(n){n.preventDefault(),r&&r.canvas===this&&(r=void 0,i.removeEventListener("webglcontextlost",e,!1))},!1):Q.logger.warn("Unable to access WebGL.")),r}function J(e){var r,i,n;function o(e,n){var o,s;W(e)?(o=e[0],s=e[1]||o):o=e,"string"==typeof o?o=o.toLowerCase():"number"==typeof o?o=String(o):o||(o=""),i[o]=s,n||(r.firstValue=o)}function s(e){return e}for(n in e.inputs)if(e.inputs.hasOwnProperty(n)){if(e.reserved.indexOf(n)>=0||Object.prototype[n])throw Error("Reserved input name: "+n);(r=e.inputs[n]).name=n,isNaN(r.min)&&(r.min=-1/0),isNaN(r.max)&&(r.max=1/0),isNaN(r.minCount)&&(r.minCount=-1/0),isNaN(r.maxCount)&&(r.maxCount=1/0),isNaN(r.step)&&(r.step=0),isNaN(r.mod)&&(r.mod=0),"enum"===r.type&&r.options&&W(r.options)&&r.options.length&&(i={},r.options.forEach(o),r.options=i),"vector"===r.type?r.dimensions<2?r.dimensions=2:r.dimensions>4||!r.dimensions||isNaN(r.dimensions)?r.dimensions=4:r.dimensions=Math.round(r.dimensions):r.dimensions=1,r.shaderDirty=!!r.shaderDirty,"function"!=typeof r.validate&&(r.validate=Q.inputValidators[r.type]||s),e.defaultImageInput||"image"!==r.type||(e.defaultImageInput=n)}}function $(e,r,i,n){var o,s,a,c,d=!0===n?n:n&&n.useFloat;d=!1,this.type=d?e.FLOAT:e.UNSIGNED_BYTE,o=e.createFramebuffer(),e.bindFramebuffer(e.FRAMEBUFFER,o),n&&n.texture?(this.texture=n.texture,e.bindTexture(e.TEXTURE_2D,this.texture),this.ownTexture=!1):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.ownTexture=!0);try{this.type===e.FLOAT?(a=new Float32Array(r*i*4),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r,i,0,e.RGBA,e.FLOAT,a)):(e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r,i,0,e.RGBA,e.UNSIGNED_BYTE,null),this.type=e.UNSIGNED_BYTE)}catch(n){this.type=e.UNSIGNED_BYTE,a=new Uint8Array(r*i*4),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r,i,0,e.RGBA,e.UNSIGNED_BYTE,a)}if(s=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,s),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,r,i),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture,0),(c=e.checkFramebufferStatus(e.FRAMEBUFFER))===e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT)throw Error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT");if(c===e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT)throw Error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT");if(c===e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS)throw Error("Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS");if(c===e.FRAMEBUFFER_UNSUPPORTED)throw Error("Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED");if(c!==e.FRAMEBUFFER_COMPLETE)throw Error("Incomplete framebuffer: "+c);e.bindTexture(e.TEXTURE_2D,null),e.bindRenderbuffer(e.RENDERBUFFER,null),e.bindFramebuffer(e.FRAMEBUFFER,null),this.gl=e,this.frameBuffer=o,this.renderBuffer=s,this.width=r,this.height=i}function X(e,r,i){var n,o,s,a,c,d,l,u,p="";function h(r,i){var n,o;if(n=i?e.createShader(e.FRAGMENT_SHADER):e.createShader(e.VERTEX_SHADER),e.shaderSource(n,r),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){for(r=r.split(/[\n\r]/),o=0;o<r.length;o++)r[o]=o+1+": "+r[o];throw r.unshift("Error compiling "+(i?"fragment":"vertex")+" shader:"),Q.logger.error(r.join("\n")),Error("Shader error: "+e.getShaderInfoLog(n))}return n}if(o=h(r),s=h(i,!0),n=e.createProgram(),e.attachShader(n,o),(a=e.getShaderInfoLog(o))&&(p+="Vertex shader error: "+a+"\n"),e.attachShader(n,s),(a=e.getShaderInfoLog(s))&&(p+="Fragment shader error: "+a+"\n"),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS))throw p+=e.getProgramInfoLog(n),e.deleteProgram(n),e.deleteShader(o),e.deleteShader(s),(l=x.exec(r)||x.exec(i))&&(p="Shader = "+l[1]+"\n"+p),O.forEach(function(r){p+="\n"+r+": "+e.getParameter(e[r])}),Error("Could not initialize shader:\n"+p);for(e.useProgram(n),this.uniforms={},d=e.getProgramParameter(n,e.ACTIVE_UNIFORMS),c=0;c<d;++c)(u={info:e.getActiveUniform(n,c)}).name=u.info.name.replace(/\[0\]$/,""),u.loc=e.getUniformLocation(n,u.name),u.set=function(r,i){if(r.type===e.SAMPLER_2D)return function(n){r.glTexture=e["TEXTURE"+n],e.uniform1i(i,n)};if(r.type===e.BOOL||r.type===e.INT)return r.size>1?function(r){e.uniform1iv(i,r)}:function(r){e.uniform1i(i,r)};if(r.type===e.FLOAT)return r.size>1?function(r){e.uniform1fv(i,r)}:function(r){e.uniform1f(i,r)};if(r.type===e.FLOAT_VEC2)return function(r){e.uniform2f(i,r[0],r[1])};if(r.type===e.FLOAT_VEC3)return function(r){e.uniform3f(i,r[0],r[1],r[2])};if(r.type===e.FLOAT_VEC4)return function(r){e.uniform4f(i,r[0],r[1],r[2],r[3])};if(r.type===e.FLOAT_MAT3)return function(r){e.uniformMatrix3fv(i,!1,r)};if(r.type===e.FLOAT_MAT4)return function(r){e.uniformMatrix4fv(i,!1,r)};throw Error("Unknown shader uniform type: "+r.type)}(u.info,u.loc),u.get=function(r){return function(){return e.getUniform(n,r)}}(u.loc),this.uniforms[u.name]=u,this[u.name]||(this[u.name]=u);for(this.attributes={},this.location={},d=e.getProgramParameter(n,e.ACTIVE_ATTRIBUTES),c=0;c<d;++c)(u={info:e.getActiveAttrib(n,c)}).name=u.info.name,u.location=e.getAttribLocation(n,u.name),this.attributes[u.name]=u,this.location[u.name]=u.location;this.gl=e,this.program=n,this.destroy=function(){var r;for(r in e&&(e.deleteProgram(n),e.deleteShader(o),e.deleteShader(s)),this)this.hasOwnProperty(r)&&delete this[r];n=null,o=null,s=null}}function Q(r){if(e===this||!(this instanceof Q)||void 0!==this.id)return new Q(r);var i,n,s,d,u,m,S,_,T,E,P,I,O,D,N,z=++w,H=this,W=[],K={},Y=0,Z=[],ee=[],et=[],er=[],ei={},en=[],eo=[],es={},ea={},ec=!1,ed=!1,el=null;function eu(e,r){var i,n,o;return!!r&&(i=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,i),r.bufferData(r.ARRAY_BUFFER,e.vertices,r.STATIC_DRAW),i.size=3,n=r.createBuffer(),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,n),r.bufferData(r.ELEMENT_ARRAY_BUFFER,e.indices,r.STATIC_DRAW),o=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,e.coords,r.STATIC_DRAW),o.size=2,{vertex:i,index:n,texCoord:o,length:e.indices.length,mode:e.mode||r.TRIANGLES})}function ep(e){var r={};return r.vertices=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),r.indices=new Uint16Array([0,1,2,0,2,3]),r.coords=new Float32Array([0,0,1,0,1,1,0,1]),eu(r,e)}function eh(){Q.logger.warn("WebGL context lost. 5 seconds to restore context."),el&&clearTimeout(el),el=setTimeout(ev,5e3)}function ef(e){var r,o;if(!n)if(e.canvas.addEventListener("webglcontextlost",em,!1),e.canvas.addEventListener("webglcontextrestored",ev,!1),e.isContextLost())Q.logger.warn("Unable to attach lost WebGL context. Will try again when context is restored.");else{for(n=e,i=e.canvas,d=ep(n),u=new X(n,"#define SHADER_NAME seriously.base\n"+a,"#define SHADER_NAME seriously.base\n"+c),r=0;r<er.length;r++)(o=er[r]).gl=n,o.initialize(),o.buildShader();for(r=0;r<Z.length;r++)(o=Z[r]).initialize();for(r=0;r<ee.length;r++)(o=ee[r]).model||(o.model=d,o.shader=u)}}function ev(){var e,r,i,o;if(el&&clearTimeout(el),el=null,s&&!n){if(U(r=s.target,"WebGLFramebuffer"))return void Q.logger.error("Unable to restore target built on WebGLFramebuffer");if(e=G(r,{alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!0,stencil:!0,debugContext:s.debugContext})){if(e.isContextLost())return el?void Q.logger.error("restore WebGL Context ing, wait...."):(eh(),void Q.logger.error("Unable to restore WebGL Context"));for(ef(e),s.renderToTexture?s.frameBuffer=new $(n,s.width,s.height,!1):s.frameBuffer={frameBuffer:null},i=0;i<W.length;i++)(o=W[i]).setDirty(),o.emit("webglcontextrestored");Q.logger.log("WebGL context restored")}}}function em(e){var r,o;for(e?(e.preventDefault(),eh()):el&&clearTimeout(el),N&&(j(N),N=0),i&&i.removeEventListener("webglcontextlost",em,!1),r=0;r<er.length;r++)(o=er[r]).gl=null,o.initialized=!1,o.baseShader=null,o.model=null,o.frameBuffer=null,o.texture=null,o.shader&&o.shader.destroy&&(o.shader.destroy(),o.effect.commonShader&&delete ea[o.hook]),o.shaderDirty=!0,o.shader=null,o.effect.lostContext&&o.effect.lostContext.call(o),e&&o.emit("webglcontextlost");for(r=0;r<Z.length;r++)(o=Z[r]).texture=null,o.initialized=!1,o.allowRefresh=!1,e&&o.emit("webglcontextlost");for(r=0;r<et.length;r++)(o=et[r]).frameBuffer=null,o.texture=null,e&&o.emit("webglcontextlost");for(r=0;r<ee.length;r++)(o=ee[r]).model=!1,o.frameBuffer=null,e&&o.emit("webglcontextlost");u&&u.destroy&&u.destroy(),n&&(n.deleteBuffer(d.vertex),n.deleteBuffer(d.texCoord),n.deleteBuffer(d.index)),d&&(delete d.vertex,delete d.texCoord,delete d.index),d=null,u=null,n=null,i=null}function eg(e){var r,i,n=!1;if(N=0,en.length)for(n=!0,r=0;r<en.length;r++)en[r].call(H,e);if(Z&&Z.length)for(n=!0,r=0;r<Z.length;r++){var o=(i=Z[r]).source&&i.source.dataset&&i.source.dataset.playing;if("string"==typeof o&&"true"!==o)return void(N=M(eg));(i.dirty||i.checkDirty&&i.checkDirty())&&(i.dirty=!1,i.setDirty())}for(r=0;r<ee.length;r++)(i=ee[r]).auto&&i.dirty&&i.render();if(eo.length)for(n=!0,r=0;r<eo.length;r++)eo[r].call(H);n&&!N&&(N=M(eg))}function ey(e,r,i,o,s,a){var c,d,l,u,p,h,f,v,m,g=0,y=s&&s.gl||n;if(y){for(c in s?(u=a&&a.width||s.width||y.canvas.width,p=a&&a.height||s.height||y.canvas.height):(u=a&&a.width||y.canvas.width,p=a&&a.height||y.canvas.height),e.use(),y.viewport(0,0,u,p),y.bindFramebuffer(y.FRAMEBUFFER,o),y.enableVertexAttribArray(e.location.position),y.enableVertexAttribArray(e.location.texCoord),r.texCoord&&(y.bindBuffer(y.ARRAY_BUFFER,r.texCoord),y.vertexAttribPointer(e.location.texCoord,r.texCoord.size,y.FLOAT,!1,0,0)),y.bindBuffer(y.ARRAY_BUFFER,r.vertex),y.vertexAttribPointer(e.location.position,r.vertex.size,y.FLOAT,!1,0,0),y.bindBuffer(y.ELEMENT_ARRAY_BUFFER,r.index),a&&a.depth?n.enable(n.DEPTH_TEST):n.disable(n.DEPTH_TEST),a?void 0===a.blend||a.blend?(n.enable(n.BLEND),h=void 0===a.srcRGB?n.ONE:a.srcRGB,v=a.dstRGB||n.ZERO,f=void 0===a.srcAlpha?h:a.srcAlpha,m=void 0===a.dstAlpha?v:a.dstAlpha,n.blendFuncSeparate(h,v,f,m),n.blendEquation(a.blendEquation||n.FUNC_ADD)):n.disable(n.BLEND):(n.enable(n.BLEND),n.blendFunc(n.ONE,n.ZERO),n.blendEquation(n.FUNC_ADD)),i)i.hasOwnProperty(c)&&(d=i[c],(l=e.uniforms[c])&&(U(d,"WebGLTexture")?(y.activeTexture(y.TEXTURE0+g),y.bindTexture(y.TEXTURE_2D,d),l.set(g),g++):d instanceof S||d instanceof _||d instanceof T?d.texture&&(y.activeTexture(y.TEXTURE0+g),y.bindTexture(y.TEXTURE_2D,d.texture),l.set(g),g++):null!=d&&l.set(d)));a&&void 0!==a.clear&&!a.clear||(y.clearColor(0,0,0,0),y.clear(y.COLOR_BUFFER_BIT|y.DEPTH_BUFFER_BIT)),y.drawElements(r.mode,r.length,y.UNSIGNED_SHORT,0),n.enable(n.DEPTH_TEST)}}function eb(e,r,i){var n,o;if("string"==typeof e&&(r||0===r)||(i&&"object"===c8(i)||(i=r),r=e),"string"==typeof e&&f[e]||(e=null),r instanceof S||r instanceof _||r instanceof T)n=r;else if(r instanceof P||r instanceof I||r instanceof O){if(!(n=K[r.id]))throw Error("Cannot connect a foreign node")}else{for("string"==typeof r&&isNaN(r)&&(r=L(r,["canvas","img","video"])),o=0;o<Z.length;o++)if(n=Z[o],(!e||e===n.hook)&&n.compare&&n.compare(r,i))return n;n=new S(e,r,i)}return n}function eS(e,r){var i,n,o;if(!(e instanceof _||e instanceof T))return!1;if(e===r)return!0;for(i in o=e.sources)if(o.hasOwnProperty(i)&&((n=o[i])===r||eS(n,r)))return!0;return!1}(m=function(){this.ready=!1,this.width=1,this.height=1,this.gl=n,this.uniforms={resolution:[this.width,this.height],transform:null},this.dirty=!0,this.isDestroyed=!1,this.seriously=H,this.listeners={},this.id=Y,Y++}).prototype.setReady=function(){var e;if(!this.ready&&(this.ready=!0,this.emit("ready"),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setReady()},m.prototype.setUnready=function(){var e;if(this.ready&&(this.ready=!1,this.emit("unready"),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setUnready()},m.prototype.setDirty=function(){var e;if(!this.dirty&&(this.emit("dirty"),this.dirty=!0,this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setDirty()},m.prototype.initFrameBuffer=function(e){n&&(this.frameBuffer=new $(n,this.width,this.height,e))},m.prototype.readPixels=function(e,r,i,o,s){var a=this.gl||n;if(!n)throw Error("Cannot read pixels until a canvas is connected");if(this.frameBuffer||(this.initFrameBuffer(),this.setDirty()),this.render(),void 0===s)s=new Uint8Array(i*o*4);else if(!U(s,"Uint8Array"))throw Error("Incompatible array type");return a.bindFramebuffer(n.FRAMEBUFFER,this.frameBuffer.frameBuffer),a.readPixels(e,r,i,o,n.RGBA,n.UNSIGNED_BYTE,s),s},m.prototype.resize=function(){var e,r;this.source?(e=this.source.width,r=this.source.height):this.sources&&this.sources.source?(e=this.sources.source.width,r=this.sources.source.height):this.inputs&&this.inputs.width?(e=this.inputs.width,r=this.inputs.height||e):this.inputs&&this.inputs.height?e=r=this.inputs.height:(e=1,r=1),e=Math.floor(e),r=Math.floor(r),this.width===e&&this.height===r||(this.width=e,this.height=r,this.emit("resize"),this.setDirty()),this.uniforms&&this.uniforms.resolution&&(this.uniforms.resolution[0]=e,this.uniforms.resolution[1]=r),this.frameBuffer&&this.frameBuffer.resize&&this.frameBuffer.resize(e,r)},m.prototype.on=function(e,r){var i,n=-1;e&&"function"==typeof r&&((i=this.listeners[e])?n=i.indexOf(r):i=this.listeners[e]=[],n<0&&i.push(r))},m.prototype.off=function(e,r){var i,n=-1;e&&"function"==typeof r&&(i=this.listeners[e])&&(n=i.indexOf(r))>=0&&i.splice(n,1)},m.prototype.emit=function(e){var r,i=this.listeners[e];if(i&&i.length)for(r=0;r<i.length;r++)V(i[r])},m.prototype.destroy=function(){var e,r;for(r in delete this.gl,delete this.seriously,this.listeners)this.listeners.hasOwnProperty(r)&&delete this.listeners[r];for(e in this.uniforms)this.uniforms.hasOwnProperty(e)&&delete this.uniforms[e];this.targets&&delete this.targets,this.frameBuffer&&this.frameBuffer.destroy&&(this.frameBuffer.destroy(),delete this.frameBuffer),(e=W.indexOf(this))>=0&&W.splice(e,1),delete K[this.id],this.isDestroyed=!0},P=function(e){var r;function i(r,i){var n,o,s,a;return s=e.effect.inputs[r],n=e.inputElements[r],"string"==typeof i&&isNaN(i)&&("enum"===s.type?s.options.hasOwnProperty(i)||(i=L(i,["select"])):"number"===s.type||"boolean"===s.type?i=L(i,["input","select"]):"image"===s.type&&(i=L(i,["canvas","img","video"]))),U(i,"HTMLInputElement")||U(i,"HTMLSelectElement")?(o=i.value,n&&n.element!==i&&(n.element.removeEventListener("change",n.listener,!0),n.element.removeEventListener("input",n.listener,!0),delete e.inputElements[r],n=null),n||(n={element:i,listener:(a=i,function(){var n,o;n="checkbox"===i.type?i.checked:a.value,o=e.setInput(r,n),"color"===s.type&&(o=q(o).substr(0,7)),o!==n&&(a.value=o)})},e.inputElements[r]=n,"range"===i.type&&i.addEventListener("input",n.listener,!0),i.addEventListener("change",n.listener,!0)),n&&"checkbox"===i.type&&(o=i.checked)):(n&&(n.element.removeEventListener("change",n.listener,!0),n.element.removeEventListener("input",n.listener,!0),delete e.inputElements[r]),o=i),e.setInput(r,o),e.inputs[r]}for(r in e.effect.inputs)if(e.effect.inputs.hasOwnProperty(r)){if(void 0!==this[r])throw Error("Cannot overwrite Seriously."+r);"image"===e.effect.inputs[r].type?Object.defineProperty(this,r,{configurable:!0,enumerable:!0,get:function(r){return function(){var i=e.inputs[r];return i&&i.pub}}(r),set:function(e){return function(r){var n=i(e,r);return n&&n.pub}}(r)}):Object.defineProperty(this,r,{configurable:!0,enumerable:!0,get:function(r){return function(){return e.inputs[r]}}(r),set:function(e){return function(r){return i(e,r)}}(r)})}Object.defineProperties(this,{effect:{enumerable:!0,configurable:!0,get:function(){return e.hook}},title:{enumerable:!0,configurable:!0,get:function(){return e.effect.title||e.hook}},width:{enumerable:!0,configurable:!0,get:function(){return e.width}},height:{enumerable:!0,configurable:!0,get:function(){return e.height}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}}}),this.render=function(){return e.render(),this},this.readPixels=function(r,i,n,o,s){return e.readPixels(r,i,n,o,s)},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.inputs=function(r){var i,n,o,s;if(o=e.effect.inputs,r)return(n=o[r])?(i={type:n.type,defaultValue:n.defaultValue,title:n.title||r},"number"===n.type?(i.min=n.min,i.max=n.max,i.step=n.step,i.mod=n.mod):"enum"===n.type?i.options=F({},n.options):"vector"===n.type&&(i.dimensions=n.dimensions),n.description&&(i.description=n.description),i):null;for(s in i={},o)o.hasOwnProperty(s)&&(i[s]=this.inputs(s));return i},this.alias=function(r,i){return e.alias(r,i),this},this.matte=function(r){e.matte(r)},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(_=function(e,r){var i,s,a,c,d={};for(i in m.call(this,r),this.gl=n,this.effectRef=p[e],this.sources={},this.targets=[],this.inputElements={},this.dirty=!0,this.shaderDirty=!0,this.hook=e,this.options=r,this.transform=null,this.effect=F({},this.effectRef),this.effectRef.definition&&F(this.effect,this.effectRef.definition.call(this,r)),J(this.effect),this.uniforms.transform=o,this.inputs={},c=es[e],this.effect.inputs)this.effect.inputs.hasOwnProperty(i)&&(void 0!==(s=this.effect.inputs[i]).defaultValue&&null!==s.defaultValue||("number"===s.type?s.defaultValue=Math.min(Math.max(0,s.min),s.max):"color"===s.type?s.defaultValue=[0,0,0,0]:"boolean"===s.type?s.defaultValue=!1:"string"===s.type?s.defaultValue="":"enum"===s.type&&(s.defaultValue=s.firstValue)),a=s.validate.call(this,s.defaultValue,s),c&&void 0!==c[i]&&(a=s.validate.call(this,c[i],s,s.defaultValue,a),c[i]=a,"image"===s.type&&(d[i]=a)),this.inputs[i]=a,s.uniform&&(this.uniforms[s.uniform]=s.defaultValue));for(i in n&&(this.initialize(),this.effect.commonShader&&this.buildShader()),this.updateReady(),this.inPlace=this.effect.inPlace,this.pub=new P(this),W.push(this),K[this.id]=this,er.push(this),g[e].push(this),d)d.hasOwnProperty(i)&&this.setInput(i,d[i])}).prototype=Object.create(m.prototype),_.prototype.constructor=_,_.prototype.initialize=function(){if(!this.initialized){var e=this;this.baseShader=u,this.shape?this.model=eu(this.shape,this.gl):this.model=d,"function"==typeof this.effect.initialize?this.effect.initialize.call(this,function(){e.initFrameBuffer(!0)},n):this.initFrameBuffer(!0),this.frameBuffer&&(this.texture=this.frameBuffer.texture),this.initialized=!0}},_.prototype.resize=function(){var e;for(m.prototype.resize.call(this),this.effect.resize&&this.effect.resize.call(this),e=0;e<this.targets.length;e++)this.targets[e].resize()},_.prototype.updateReady=function(){var e,r,i,n,o=!0;for(r in(i=this.effect).inputs)if(i.inputs.hasOwnProperty(r)&&"image"===this.effect.inputs[r].type&&(!this.sources[r]||!this.sources[r].ready)&&(!i.requires||i.requires.call(this,r,this.inputs))){o=!1;break}if(this.ready!==o&&(this.ready=o,this.emit(o?"ready":"unready"),n=o?"setReady":"setUnready",this.targets))for(e=0;e<this.targets.length;e++)this.targets[e][n]()},_.prototype.setReady=_.prototype.updateReady,_.prototype.setUnready=_.prototype.updateReady,_.prototype.addTarget=function(e){var r;for(r=0;r<this.targets.length;r++)if(this.targets[r]===e)return;this.targets.push(e)},_.prototype.removeTarget=function(e){var r=this.targets&&this.targets.indexOf(e);r>=0&&this.targets.splice(r,1)},_.prototype.removeSource=function(e){var r,i=e&&e.pub;for(r in this.inputs)this.inputs.hasOwnProperty(r)&&(this.inputs[r]===e||this.inputs[r]===i)&&(this.inputs[r]=null);for(r in this.sources)this.sources.hasOwnProperty(r)&&(this.sources[r]===e||this.sources[r]===i)&&(this.sources[r]=null)},_.prototype.buildShader=function(){var e,r=this.effect,i=this;function o(e){return x.test(e)?e:"#define SHADER_NAME seriously."+i.hook+"\n"+e}this.shaderDirty&&(r.commonShader&&ea[this.hook]?(this.shader||ea[this.hook].count++,this.shader=ea[this.hook].shader):r.shader?(this.shader&&!r.commonShader&&this.shader.destroy(),(e=r.shader.call(this,this.inputs,{vertex:a,fragment:c},Q.util))instanceof X?this.shader=e:e&&e.vertex&&e.fragment?this.shader=new X(n,o(e.vertex),o(e.fragment)):this.shader=u,r.commonShader&&(ea[this.hook]={count:1,shader:this.shader})):this.shader=u,this.shaderDirty=!1)},_.prototype.render=function(){var e,r,i,o=this.effect,s=this;if(n){if(this.initialized||this.initialize(),this.shaderDirty&&this.buildShader(),this.dirty&&this.ready){for(e in this.sources)this.sources.hasOwnProperty(e)&&(!o.requires||o.requires.call(this,e,this.inputs))&&(i="function"==typeof this.inPlace?this.inPlace(e):this.inPlace,this.sources[e].render(!i));this.frameBuffer&&(r=this.frameBuffer.frameBuffer),"function"==typeof o.draw?(o.draw.call(this,this.shader,this.model,this.uniforms,r,function(e,r,i,n,o,a){ey(e,r,i,n,o||s,a)}),this.emit("render")):r&&(ey(this.shader,this.model,this.uniforms,r,this),this.emit("render")),this.dirty=!1}return this.texture}},_.prototype.setInput=function(e,r){var i,n,s,a,c,d=this;if(this.effect.inputs.hasOwnProperty(e)){if("image"===(i=this.effect.inputs[e]).type){if(r){if((r=eb(r))!==this.sources[e]){if(function(){var r,i=d.sources[e];if(i){for(r in d.sources)if(r!==e&&d.sources.hasOwnProperty(r)&&d.sources[r]===i)return;i.removeTarget(d)}}(),eS(r,this))throw Error("Attempt to make cyclical connection.");this.sources[e]=r,r.addTarget(this)}}else delete this.sources[e],r=!1;n=this.sources[e],s=Object.keys(this.sources),!0===this.inPlace&&1===s.length?(a=this.sources[s[0]],this.uniforms.transform=a&&a.cumulativeMatrix||o):this.uniforms.transform=o}else c=es[this.hook]&&void 0!==es[this.hook][e]?es[this.hook][e]:i.defaultValue,n=r=i.validate.call(this,r,i,c,this.inputs[e]);return this.inputs[e]===r&&"color"!==i.type&&"vector"!==i.type||(this.inputs[e]=r,i.uniform&&(this.uniforms[i.uniform]=n),"image"===i.type?(this.resize(),this.updateReady()):i.updateSources&&this.updateReady(),i.shaderDirty&&(this.shaderDirty=!0),this.setDirty(),i.update&&i.update.call(this,r)),r}},_.prototype.alias=function(e,r){var i=this;if(B.indexOf(r)>=0)throw Error("'"+r+"' is a reserved name and cannot be used as an alias.");return this.effect.inputs.hasOwnProperty(e)&&(r||(r=e),H.removeAlias(r),ei[r]={node:this,input:e},Object.defineProperty(H,r,{configurable:!0,enumerable:!0,get:function(){return i.inputs[e]},set:function(r){return i.setInput(e,r)}})),this},_.prototype.matte=function(e){var r,i,n,o,s,a,c,d,l=[],u=[],p={};for(i=(r=e)&&r.length&&Array.isArray(r)?Array.isArray(r[0])?Array.isArray(r[0])&&!isNaN(r[0][0])?[r]:r:[r]:[],o=0;o<i.length;o++){for(e=i[o],d=null,n={vertices:[],edges:[]},s=0;s<e.length;s++)a=e[s],"object"!==c8(a)||isNaN(a.x)||isNaN(a.y)?!(a.length>=2)||isNaN(a[0])||isNaN(a[1])||(c={x:a[0],y:a[1],id:u.length}):c={x:a.x,y:a.y,id:u.length},c&&(d?(d.next=c,c.prev=d,c.next=n.vertices[0],n.vertices[0].prev=c):(n.head=c,c.next=c,c.prev=c),u.push(c),n.vertices.push(c),d=c);if(n.vertices.length>2)for(3===n.vertices.length&&(n.simple=!0),l.push(n),s=0;s<n.vertices.length;s++)c=n.vertices[s],n.edges.push([c,c.next])}for(o=l.length-1;o>=0;o--)!function(e){var r,i,n,o,s,a,c,d,p,h,f,v=[];if(!e.simple){for(r=0;r<e.edges.length;r++)for(n=e.edges[r],i=r+1;i<e.edges.length;i++)o=e.edges[i],(s=function(e,r,i,n){var o,s,a,c,d;return o=(n.x-i.x)*(e.y-i.y)-(n.y-i.y)*(e.x-i.x),s=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),!!((a=(n.y-i.y)*(r.x-e.x)-(n.x-i.x)*(r.y-e.y))&&(d=s/a,(c=o/a)>0&&c<=1&&d>0&&d<=1))&&{x:e.x+c*(r.x-e.x),y:e.y+c*(r.y-e.y)}}(n[0],n[1],o[0],o[1]))&&(s.edge1=n,s.edge2=o,v.push(s));if(v.length){for(p=[],r=0;r<v.length;r++)n=(s=v[r]).edge1,o=s.edge2,h={x:s.x,y:s.y,prev:n[0],next:o[1],id:u.length},e.vertices.push(h),u.push(h),f={x:s.x,y:s.y,prev:o[0],next:n[1],id:u.length},e.vertices.push(f),u.push(h),h.prev.next=h,h.next.prev=h,f.prev.next=f,f.next.prev=f;do{a={edges:[],vertices:[],simple:!0},p.push(a),c=d=e.vertices[0];do r=e.vertices.indexOf(d),e.vertices.splice(r,1),a.edges.push([d,d.next]),a.vertices.push(d),d=d.next;while(d!==c)}while(e.vertices.length);for(r=l.indexOf(e),l.splice(r,1),r=0;r<p.length;r++)l.push(p[r])}else e.simple=!0}}(n=l[o]);for(o=0;o<l.length;o++)(n=l[o]).clockWise=function(e){var r,i,n,o,s=e.vertices.length,a=0;for(r=s-1,i=0;i<s;r=i,i++)n=e.vertices[r],o=e.vertices[i],a+=n.x*o.y-o.x*n.y;return a>0}(n),function(e){var r,i,o,s,a,c,d,l,u,p,h,f=e.vertices,v=[],m=[];if(i=f.length,e.clockWise)for(r=0;r<i;r++)v[r]=r;else for(r=0;r<i;r++)v[r]=i-1-r;for(s=2*(o=i),r=o-1;o>2;){if(s--<=0)return m;if(o<=(a=r)&&(a=0),o<=(r=a+1)&&(r=0),o<(c=r+1)&&(c=0),function(e,r,i,n,o){var s,a,c,d;if(a=f[o[e]],c=f[o[r]],d=f[o[i]],0>(c.x-a.x)*(d.y-a.y)-(c.y-a.y)*(d.x-a.x))return!1;for(s=0;s<n;s++)if(s!==e&&s!==r&&s!==i&&function(e,r,i,n){var o,s,a,c,d,l,u,p,h,f,v,m;return o=i.x-r.x,s=i.y-r.y,a=e.x-i.x,c=e.y-i.y,d=r.x-e.x,l=r.y-e.y,u=n.x-e.x,p=n.y-e.y,h=n.x-r.x,f=n.y-r.y,v=n.x-i.x,m=n.y-i.y,o*f-s*h>=0&&a*m-c*v>=0&&d*p-l*u>=0}(a,c,d,f[o[s]]))return!1;return!0}(a,r,c,o,v)){for(d=v[a],l=v[r],u=v[c],e.clockWise?(m.push(f[d]),m.push(f[l]),m.push(f[u])):(m.push(f[u]),m.push(f[l]),m.push(f[d])),p=r,h=r+1;h<o;p++,h++)v[p]=v[h];s=2*--o}}n.indices=m}(n);for(p.vertices=[],p.coords=[],o=0;o<u.length;o++)a=u[o],p.vertices.push(2*a.x-1),p.vertices.push(-2*a.y+1),p.vertices.push(-1),p.coords.push(a.x),p.coords.push(-1*a.y+1);for(p.vertices=new Float32Array(p.vertices),p.coords=new Float32Array(p.coords),p.indices=[],o=0;o<l.length;o++)for(n=l[o],s=0;s<n.indices.length;s++)a=n.indices[s],p.indices.push(a.id);p.indices=new Uint16Array(p.indices),this.shape=p,this.gl&&eu(p,this.gl)},_.prototype.destroy=function(){var e,r,i,n=this.hook;for(r in this.effect.destroy&&"function"==typeof this.effect.destroy&&this.effect.destroy.call(this),delete this.effect,ea[n]&&(ea[n].count--,ea[n].count||delete ea[n]),this.shader&&this.shader.destroy&&this.shader!==u&&!ea[n]&&this.shader.destroy(),delete this.shader,this.inputElements)this.inputElements.hasOwnProperty(r)&&((i=this.inputElements[r]).element.removeEventListener("change",i.listener,!0),i.element.removeEventListener("input",i.listener,!0));for(r in this.sources)this.sources.hasOwnProperty(r)&&((i=this.sources[r])&&i.removeTarget&&i.removeTarget(this),delete this.sources[r]);for(;this.targets.length;)(i=this.targets.pop())&&i.removeSource&&i.removeSource(this);for(r in this)this.hasOwnProperty(r)&&"id"!==r&&delete this[r];for(r in ei)ei.hasOwnProperty(r)&&(i=ei[r]).node===this&&H.removeAlias(r);(e=er.indexOf(this))>=0&&er.splice(e,1),(e=g[n].indexOf(this))>=0&&g[n].splice(e,1),m.prototype.destroy.call(this)},I=function(e){Object.defineProperties(this,{original:{enumerable:!0,configurable:!0,get:function(){return e.source}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}},width:{enumerable:!0,configurable:!0,get:function(){return e.width}},height:{enumerable:!0,configurable:!0,get:function(){return e.height}}}),this.render=function(){e.render()},this.update=function(){e.setDirty()},this.readPixels=function(r,i,n,o,s){return e.readPixels(r,i,n,o,s)},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(S=function(e,r,i){var o,s,a=i||{},c=void 0===a.flip||a.flip,d=a.width,l=a.height,u=!1,p=this,h=!1;function v(e,r,i,n){var o=f[e];if(o.definition){if(!(o=o.definition.call(p,r,i,n)))return null;o=F(F({},f[e]),o)}return o}function g(e){return p.source===e}if(m.call(this),(e&&"string"!=typeof e||!r&&0!==r)&&(i&&"object"===c8(i)||(i=r),r=e),"string"==typeof r&&isNaN(r)&&(r=L(r,["canvas","img","video"])),"string"==typeof e&&f[e]&&(s=v(e,r,i,!0))&&(this.hook=e,h=!0,u=s.deferTexture,this.plugin=s,this.compare=s.compare,this.checkDirty=s.checkDirty,s.source&&(r=s.source)),!s&&U(r))"CANVAS"===r.tagName?(this.width=r.width,this.height=r.height,this.render=this.renderImageCanvas,h=!0,this.hook="canvas",this.compare=g):"IMG"===r.tagName&&(this.width=r.naturalWidth||1,this.height=r.naturalHeight||1,r.complete&&r.naturalWidth||(u=!0),r.addEventListener("load",function(){p.isDestroyed||(p.width===r.naturalWidth&&p.height===r.naturalHeight||(p.width=r.naturalWidth,p.height=r.naturalHeight,p.resize()),p.setDirty(),p.setReady())},!0),this.render=this.renderImageCanvas,h=!0,this.hook="image",this.compare=g);else if(!s&&U(r,"WebGLTexture")){if(n&&!n.isTexture(r))throw Error("Not a valid WebGL texture.");isNaN(d)?isNaN(l)||(d=l):isNaN(l)&&(l=d),this.width=d,this.height=l,void 0===a.flip&&(c=!1),h=!0,this.texture=r,this.initialized=!0,this.hook="texture",this.compare=g,this.render=function(){}}if(!h&&!s){for(o in f)if(f.hasOwnProperty(o)&&f[o]&&(s=v(o,r,i,!1))){this.hook=o,h=!0,u=s.deferTexture,this.plugin=s,this.compare=s.compare,this.checkDirty=s.checkDirty,s.source&&(r=s.source);break}}if(!h)throw Error("Unknown source type");this.source=r,void 0===this.flip&&(this.flip=c),this.targets=[],u||p.setReady(),this.pub=new I(this),W.push(this),K[this.id]=this,Z.push(this),b[this.hook].push(this),Z.length&&!N&&eg()}).prototype=Object.create(m.prototype),S.prototype.constructor=S,S.prototype.initialize=function(){var e;n&&!this.texture&&this.ready&&(e=n.createTexture(),n.bindTexture(n.TEXTURE_2D,e),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),n.bindTexture(n.TEXTURE_2D,null),this.texture=e,this.initialized=!0,this.allowRefresh=!0,this.setDirty())},S.prototype.initFrameBuffer=function(e){n&&(this.frameBuffer=new $(n,this.width,this.height,{texture:this.texture,useFloat:e}))},S.prototype.addTarget=function(e){var r;for(r=0;r<this.targets.length;r++)if(this.targets[r]===e)return;this.targets.push(e)},S.prototype.removeTarget=function(e){var r=this.targets&&this.targets.indexOf(e);r>=0&&this.targets.splice(r,1)},S.prototype.resize=function(){var e,r;if(this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,this.framebuffer&&this.framebuffer.resize(this.width,this.height),this.emit("resize"),this.setDirty(),this.targets)for(e=0;e<this.targets.length;e++)(r=this.targets[e]).resize(),r.setTransformDirty&&r.setTransformDirty()},S.prototype.setReady=function(){var e;if(!this.ready&&(this.ready=!0,this.resize(),this.initialize(),this.emit("ready"),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setReady()},S.prototype.render=function(){var e=this.source;n&&(e||0===e)&&this.ready&&(this.initialized||this.initialize(),this.allowRefresh&&this.plugin&&this.plugin.render&&(this.dirty||this.checkDirty&&this.checkDirty())&&this.plugin.render.call(this,n,ey,d,u)&&(this.dirty=!1,this.emit("render")))},S.prototype.renderImageCanvas=function(){var r=this.source;if(n&&r&&this.ready&&(this.initialized||this.initialize(),this.allowRefresh&&this.dirty)){n.bindTexture(n.TEXTURE_2D,this.texture),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,this.flip),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);try{return n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),this.dirty=!1,this.emit("render"),!0}catch(r){r.code===e.DOMException.SECURITY_ERR&&(this.allowRefresh=!1,Q.logger.error("Unable to access cross-domain image"))}return!1}},S.prototype.destroy=function(){var e,r,i;for(this.plugin&&this.plugin.destroy&&this.plugin.destroy.call(this),n&&this.texture&&n.deleteTexture(this.texture);this.targets.length;)(i=this.targets.pop())&&i.removeSource&&i.removeSource(this);for(r in(e=Z.indexOf(this))>=0&&Z.splice(e,1),(e=b[this.hook].indexOf(this))>=0&&b[this.hook].splice(e,1),this)this.hasOwnProperty(r)&&"id"!==r&&delete this[r];m.prototype.destroy.call(this)},D=function(e){Object.defineProperties(this,{source:{enumerable:!0,configurable:!0,get:function(){if(e.source)return e.source.pub},set:function(r){e.setSource(r)}},original:{enumerable:!0,configurable:!0,get:function(){return e.target}},width:{enumerable:!0,configurable:!0,get:function(){return e.width},set:function(r){!isNaN(r)&&r>0&&e.width!==r&&(e.width=r,e.resize(),e.setTransformDirty())}},height:{enumerable:!0,configurable:!0,get:function(){return e.height},set:function(r){!isNaN(r)&&r>0&&e.height!==r&&(e.height=r,e.resize(),e.setTransformDirty())}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}}}),this.render=function(){e.render()},this.readPixels=function(r,i,n,o,s){return e.readPixels(r,i,n,o,s)},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.go=function(r){e.go(r)},this.stop=function(){e.stop()},this.getTexture=function(){return e.frameBuffer.texture},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.inputs=function(e){return{source:{type:"image"}}},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(E=function(e,r,i){var o,l,p,h,f,g,y,b,S,w=this,_=!1;function T(e,r,i,o){var s=v[e];if(s.definition){if(!(s=s.definition.call(w,r,i,o)))return null;s=F(F({},v[e]),s),w.hook=S,_=!0,w.plugin=s,w.compare=s.compare,s.target&&(r=s.target),s.gl&&!w.gl&&(w.gl=s.gl,n||ef(s.gl)),w.gl===n&&(w.model=d,w.shader=u)}return s}if(m.call(this),(e&&"string"!=typeof e||!r&&0!==r)&&(i&&"object"===c8(i)||(i=r),r=e),l=void 0===(o=i||{}).flip||o.flip,p=parseInt(o.width,10),h=parseInt(o.height,10),g=o.debugContext,"string"==typeof e&&v[e]&&T(e,r,o,!0),this.renderToTexture=o.renderToTexture,U(r,"WebGLFramebuffer"))if(y=r,U(o,"HTMLCanvasElement"))r=o;else if(U(o,"WebGLRenderingContext"))r=o.canvas;else if(U(o.canvas,"HTMLCanvasElement"))r=o.canvas;else{if(!U(o.context,"WebGLRenderingContext"))throw Error("Must provide a canvas with WebGLFramebuffer target");r=o.context.canvas}if(U(r,"HTMLCanvasElement")){if(p=r.width,h=r.height,(!n||n.canvas!==r&&o.allowSecondaryWebGL)&&(f=G(r,{alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!0,stencil:!0,debugContext:g})),f)n&&n!==f?(this.gl=f,this.frameBuffer={frameBuffer:y||null},this.shader=new X(this.gl,a,c),this.model=ep.call(this,this.gl),this.pixels=null,this.texture=this.gl.createTexture(),this.gl.bindTexture(n.TEXTURE_2D,this.texture),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),this.gl.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),this.render=this.renderSecondaryWebGL):(s||(s=this),n||ef(f),this.render=this.renderWebGL,o.renderToTexture?n&&(this.frameBuffer=new $(n,p,h,!1)):this.frameBuffer={frameBuffer:y||null});else{if(!o.allowSecondaryWebGL&&n&&n.canvas!==r)throw Error("Only one WebGL target canvas allowed. Set allowSecondaryWebGL option to create secondary context.");this.render=R,Q.logger.log("Unable to create WebGL context.")}_=!0}if(!_){for(S in v)if(v.hasOwnProperty(S)&&v[S]&&T(S,r,o,!1))break}if(!_)throw Error("Unknown target type");C&&((b=C.get(r))?Q.logger.warn("Target already in use by another instance",r,Object.keys(b).map(function(e){return b[e]})):(b={},C.set(r,b)),b[H.id]=H),this.target=r,this.transform=null,this.transformDirty=!0,this.flip=l,p&&(this.width=p),h&&(this.height=h),this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,void 0!==o.auto?this.auto=o.auto:this.auto=ec,this.frames=0,this.pub=new D(this),W.push(this),K[this.id]=this,ee.push(this)}).prototype=Object.create(m.prototype),E.prototype.constructor=E,E.prototype.setSource=function(e){var r;(r=eb(e))!==this.source&&(this.source&&this.source.removeTarget(this),this.source=r,r.addTarget(this),r&&(this.resize(),r.ready?this.setReady():this.setUnready()),this.setDirty())},E.prototype.setDirty=function(){this.dirty=!0,this.auto&&!N&&(N=M(eg))},E.prototype.resize=function(){U(this.target,"HTMLCanvasElement")?this.width===this.target.width&&this.height===this.target.height||(this.target.width=this.width,this.target.height=this.height,this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,this.emit("resize"),this.setTransformDirty()):this.plugin&&this.plugin.resize&&this.plugin.resize.call(this),!this.source||this.source.width===this.width&&this.source.height===this.height||this.transform||(this.transform=new Float32Array(16))},E.prototype.setTransformDirty=function(){this.transformDirty=!0,this.setDirty()},E.prototype.go=function(){this.auto=!0,this.setDirty()},E.prototype.stop=function(){this.auto=!1},E.prototype.render=function(){n&&this.plugin&&this.plugin.render&&this.plugin.render.call(this,ey,u,d)},E.prototype.renderWebGL=function(){var e,r,i;if(this.resize(),n&&this.dirty&&this.ready){if(!this.source)return;this.source.render(),this.uniforms.source=this.source.texture,this.source.width===this.width&&this.source.height===this.height?this.uniforms.transform=this.source.cumulativeMatrix||o:this.transformDirty&&(e=this.transform,A.copy(e,this.source.cumulativeMatrix||o),r=this.source.width/this.width,i=this.source.height/this.height,e[0]*=r,e[1]*=r,e[2]*=r,e[3]*=r,e[4]*=i,e[5]*=i,e[6]*=i,e[7]*=i,this.uniforms.transform=e,this.transformDirty=!1),ey(u,d,this.uniforms,this.frameBuffer.frameBuffer,this,k),this.emit("render"),this.dirty=!1}},E.prototype.renderSecondaryWebGL=function(){var e,r,i,n,s;this.dirty&&this.ready&&this.source&&(this.emit("render"),this.source.render(!0),e=this.source.width,r=this.source.height,this.pixels&&this.pixels.length===e*r*4||(this.pixels=new Uint8Array(e*r*4)),this.source.readPixels(0,0,e,r,this.pixels),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,e,r,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.pixels),e===this.width&&r===this.height?this.uniforms.transform=o:this.transformDirty&&(i=this.transform,A.copy(i,o),n=this.source.width/this.width,s=this.source.height/this.height,i[0]*=n,i[1]*=n,i[2]*=n,i[3]*=n,i[4]*=s,i[5]*=s,i[6]*=s,i[7]*=s,this.uniforms.transform=i,this.transformDirty=!1),this.uniforms.source=this.texture,ey(this.shader,this.model,this.uniforms,null,this,k),this.dirty=!1)},E.prototype.removeSource=function(e){this.source!==e&&this.source!==e.pub||(this.source=null)},E.prototype.destroy=function(){var e,r;this.source&&this.source.removeTarget&&this.source.removeTarget(this),C&&(delete(r=C.get(this.target))[H.id],Object.keys(r).length||C.delete(this.target)),this.plugin&&this.plugin.destroy&&this.plugin.destroy.call(this),delete this.source,delete this.target,delete this.pub,delete this.uniforms,delete this.pixels,delete this.auto,(e=ee.indexOf(this))>=0&&ee.splice(e,1),m.prototype.destroy.call(this),this===s&&(i.removeEventListener("webglcontextrestored",ev,!1),em(),s=null)},O=function(e){var r,i=this;for(r in Object.defineProperties(this,{transform:{enumerable:!0,configurable:!0,get:function(){return e.hook}},title:{enumerable:!0,configurable:!0,get:function(){return e.plugin.title||e.hook}},width:{enumerable:!0,configurable:!0,get:function(){return e.width}},height:{enumerable:!0,configurable:!0,get:function(){return e.height}},id:{enumerable:!0,configurable:!0,get:function(){return e.id}},source:{enumerable:!0,configurable:!0,get:function(){return e.source&&e.source.pub},set:function(r){e.setSource(r)}}}),e.methods)e.methods.hasOwnProperty(r)&&(this[r]=function(r){return function(){r.apply(e,arguments)&&e.setTransformDirty()}}(e.methods[r]));for(r in e.inputs)e.inputs.hasOwnProperty(r)&&function(r,n){Object.defineProperty(i,r,{configurable:!0,enumerable:!0,get:function(){return n.get.call(e)},set:function(i){var o,s,a,c;o=i,s=e.inputElements[r],"string"==typeof o&&isNaN(o)&&("enum"===n.type?n.options.hasOwnProperty(o)||(o=L(o,["select"])):"number"===n.type||"boolean"===n.type?o=L(o,["input","select"]):"image"===n.type&&(o=L(o,["canvas","img","video"]))),U(o,"HTMLInputElement")||U(o,"HTMLSelectElement")?(a=o.value,s&&s.element!==o&&(s.element.removeEventListener("change",s.listener,!0),s.element.removeEventListener("input",s.listener,!0),delete e.inputElements[r],s=null),s||(s={element:o,listener:(c=o,function(){var i,n;i="checkbox"===o.type?o.checked:c.value,n=e.setInput(r,i),"color"===o.type&&(n=q(n)),n!==i&&(c.value=n)})},e.inputElements[r]=s,"range"===o.type&&o.addEventListener("input",s.listener,!0),o.addEventListener("change",s.listener,!0)),s&&"checkbox"===o.type&&(a=o.checked)):(s&&(s.element.removeEventListener("change",s.listener,!0),s.element.removeEventListener("input",s.listener,!0),delete e.inputElements[r]),a=o),e.setInput(r,a)}})}(r,e.inputs[r]);this.update=function(){e.setDirty()},this.inputs=function(r){var i,n,o,s;if(o=e.plugin.inputs,r)return(n=o[r])&&!n.method?(i={type:n.type,defaultValue:n.defaultValue,title:n.title||r},"number"===n.type?(i.min=n.min,i.max=n.max,i.step=n.step,i.mod=n.mod):"enum"===n.type?i.options=F({},n.options):"vector"===n.type&&(i.dimensions=n.dimensions),n.description&&(i.description=n.description),i):null;for(s in i={},o)o.hasOwnProperty(s)&&!o[s].method&&(i[s]=this.inputs(s));return i},this.alias=function(r,i){return e.alias(r,i),this},this.on=function(r,i){e.on(r,i)},this.off=function(r,i){e.off(r,i)},this.destroy=function(){var r,i;for(r in e.destroy(),this)this.hasOwnProperty(r)&&"isDestroyed"!==r&&"id"!==r&&((i=Object.getOwnPropertyDescriptor(this,r)).get||i.set||"function"!=typeof this[r]?delete this[r]:this[r]=R)},this.isDestroyed=function(){return e.isDestroyed},this.isReady=function(){return e.ready}},(T=function(e,r){var i,n,o,s,a;for(i in this.matrix=new Float32Array(16),this.cumulativeMatrix=new Float32Array(16),this.ready=!1,this.width=1,this.height=1,this.seriously=H,this.transformRef=h[e],this.hook=e,this.id=Y,Y++,this.options=r,this.sources=null,this.targets=[],this.inputElements={},this.inputs={},this.methods={},this.listeners={},this.texture=null,this.frameBuffer=null,this.uniforms=null,this.dirty=!0,this.transformDirty=!0,this.renderDirty=!1,this.isDestroyed=!1,this.transformed=!1,this.plugin=F({},this.transformRef),this.transformRef.definition&&F(this.plugin,this.transformRef.definition.call(this,r)),this.plugin.inputs)this.plugin.inputs.hasOwnProperty(i)&&((n=this.plugin.inputs[i]).method&&"function"==typeof n.method?this.methods[i]=n.method:"function"==typeof n.set&&"function"==typeof n.get&&(this.inputs[i]=n));for(i in J(this.plugin),a=es[e],this.plugin.inputs)this.plugin.inputs.hasOwnProperty(i)&&"function"==typeof(n=this.plugin.inputs[i]).set&&"function"==typeof n.get&&"function"!=typeof n.method&&(o=n.get.call(this),s=void 0===n.defaultValue?o:n.defaultValue,s=n.validate.call(this,s,n,o),a&&void 0!==a[i]&&(s=n.validate.call(this,a[i],n,n.defaultValue,s),a[i]=s),s!==o&&n.set.call(this,s));W.push(this),K[this.id]=this,this.pub=new O(this),et.push(this),y[e].push(this)}).prototype=Object.create(m.prototype),T.prototype.constructor=T,T.prototype.setDirty=function(){this.renderDirty=!0,m.prototype.setDirty.call(this)},T.prototype.setTransformDirty=function(){var e,r;for(this.transformDirty=!0,this.dirty=!0,this.renderDirty=!0,e=0;e<this.targets.length;e++)(r=this.targets[e]).setTransformDirty?r.setTransformDirty():r.setDirty()},T.prototype.resize=function(){var e;for(m.prototype.resize.call(this),this.plugin.resize&&this.plugin.resize.call(this),e=0;e<this.targets.length;e++)this.targets[e].resize();this.setTransformDirty()},T.prototype.setSource=function(e){var r;if((r=eb(e))!==this.source){if(eS(r,this))throw Error("Attempt to make cyclical connection.");this.source&&this.source.removeTarget(this),this.source=r,r.addTarget(this),r&&r.ready?this.setReady():this.setUnready(),this.resize()}},T.prototype.addTarget=function(e){var r;for(r=0;r<this.targets.length;r++)if(this.targets[r]===e)return;this.targets.push(e)},T.prototype.removeTarget=function(e){var r=this.targets&&this.targets.indexOf(e);r>=0&&this.targets.splice(r,1),this.targets&&this.targets.length&&this.resize()},T.prototype.setInput=function(e,r){var i,n,o;if(this.plugin.inputs.hasOwnProperty(e))return i=this.plugin.inputs[e],n=es[this.hook]&&void 0!==es[this.hook][e]?es[this.hook][e]:i.defaultValue,o=i.get.call(this),void 0===n&&(n=o),r=i.validate.call(this,r,i,n,o),i.set.call(this,r)&&this.setTransformDirty(),i.get.call(this)},T.prototype.alias=function(e,r){var i,n,o=this;if(B.indexOf(r)>=0)throw Error("'"+r+"' is a reserved name and cannot be used as an alias.");return this.plugin.inputs.hasOwnProperty(e)&&(r||(r=e),H.removeAlias(r),(i=this.inputs[e])?(n=o.inputs[e],Object.defineProperty(H,r,{configurable:!0,enumerable:!0,get:function(){return n.get.call(o)},set:function(e){n.set.call(o,e)&&o.setTransformDirty()}})):(i=this.methods[e])&&(n=i,H[r]=function(){n.apply(o,arguments)&&o.setTransformDirty()}),i&&(ei[r]={node:this,input:e})),this},T.prototype.render=function(e){return this.source?(this.source.render(),this.transformDirty&&(this.transformed?this.source.cumulativeMatrix?A.multiply(this.cumulativeMatrix,this.matrix,this.source.cumulativeMatrix):A.copy(this.cumulativeMatrix,this.matrix):A.copy(this.cumulativeMatrix,this.source.cumulativeMatrix||o),this.transformDirty=!1),e&&n?(this.renderDirty&&(this.frameBuffer||(this.uniforms={resolution:[this.width,this.height]},this.frameBuffer=new $(n,this.width,this.height)),this.uniforms.source=this.source.texture,this.uniforms.transform=this.cumulativeMatrix||o,ey(u,d,this.uniforms,this.frameBuffer.frameBuffer,this),this.renderDirty=!1),this.texture=this.frameBuffer.texture):this.source?this.texture=this.source.texture:this.texture=null,this.dirty=!1,this.texture):(this.transformDirty&&(A.copy(this.cumulativeMatrix,this.matrix),this.transformDirty=!1),this.texture=null,void(this.dirty=!1))},T.prototype.readPixels=function(e,r,i,o,s){var a=this.gl||n;if(!n)throw Error("Cannot read pixels until a canvas is connected");if(this.render(!0),void 0===s)s=new Uint8Array(i*o*4);else if(!U(s,"Uint8Array"))throw Error("Incompatible array type");return a.bindFramebuffer(n.FRAMEBUFFER,this.frameBuffer.frameBuffer),a.readPixels(e,r,i,o,n.RGBA,n.UNSIGNED_BYTE,s),s},T.prototype.destroy=function(){var e,r,i,n=this.hook;for(e in this.plugin.destroy&&"function"==typeof this.plugin.destroy&&this.plugin.destroy.call(this),delete this.effect,this.frameBuffer&&(this.frameBuffer.destroy(),delete this.frameBuffer,delete this.texture),this.inputElements)this.inputElements.hasOwnProperty(e)&&((i=this.inputElements[e]).element.removeEventListener("change",i.listener,!0),i.element.removeEventListener("input",i.listener,!0));for(this.source&&this.source.removeTarget(this);this.targets.length;)(i=this.targets.pop())&&i.removeSource&&i.removeSource(this);for(r in this)this.hasOwnProperty(r)&&"id"!==r&&delete this[r];for(r in ei)ei.hasOwnProperty(r)&&(i=ei[r]).node===this&&H.removeAlias(r);(e=et.indexOf(this))>=0&&et.splice(e,1),(e=y[n].indexOf(this))>=0&&y[n].splice(e,1),m.prototype.destroy.call(this)},T.prototype.setReady=m.prototype.setReady,T.prototype.setUnready=m.prototype.setUnready,T.prototype.on=m.prototype.on,T.prototype.off=m.prototype.off,T.prototype.emit=m.prototype.emit,(r=U(r,"HTMLCanvasElement")?{canvas:r}:r||{}).canvas,this.effect=function(e,r){if(!p[e])throw Error("Unknown effect: "+e);return new _(e,r).pub},this.source=function(e,r,i){return eb(e,r,i).pub},this.transform=function(e,i){if("string"!=typeof e&&(i=e,e=!1),e){if(!h[e])throw Error("Unknown transform: "+e)}else if(!h[e=r&&r.defaultTransform||"2d"])throw Error("No transform specified");return new T(e,i).pub},this.target=function(e,r,i){var n,o,s;for(e&&"string"==typeof e&&!v[e]&&(o=l.querySelector(e)),("string"!=typeof e||!r&&0!==r||o)&&(i&&"object"===c8(i)||(i=r),r=o||e,e=null),"string"==typeof r&&isNaN(r)&&(r=l.querySelector(r)),s=0;s<ee.length;s++)if(n=ee[s],(!e||e===n.hook)&&(n.target===r||n.compare&&n.compare(r,i)))return n.pub;return(n=new E(e,r,i)).pub},this.aliases=function(){return Object.keys(ei)},this.removeAlias=function(e){ei[e]&&(delete this[e],delete ei[e])},this.defaults=function(e,r){var i;if(e)if("object"!==c8(e))null===r?delete es[e]:"object"===c8(r)&&(es[e]=F({},r));else for(i in e)e.hasOwnProperty(i)&&this.defaults(i,e[i]);else if(null===e)for(i in es)es.hasOwnProperty(i)&&delete es[i]},this.go=function(e,r){var i;for("function"==typeof e&&0>en.indexOf(e)&&en.push(e),"function"==typeof r&&0>eo.indexOf(r)&&eo.push(r),ec=!0,i=0;i<ee.length;i++)ee[i].go();!N&&(en.length||eo.length)&&eg()},this.stop=function(){en.length=0,eo.length=0,j(N),N=0},this.render=function(){var e;for(e=0;e<ee.length;e++)ee[e].render(r)},this.destroy=function(){for(var e,r;W.length;)W[0].pub.destroy();for(e in this)this.hasOwnProperty(e)&&"isDestroyed"!==e&&"id"!==e&&((r=Object.getOwnPropertyDescriptor(this,e)).get||r.set||"function"!=typeof this[e]?delete this[e]:this[e]=R);H=null,Z=[],ee=[],er=[],W=[],en.length=0,eo.length=0,j(N),N=0,ed=!0},this.isDestroyed=function(){return ed},this.incompatible=function(e){var r,i,n=!1;if(n=Q.incompatible(e))return n;if(!e){for(r in g)if(g.hasOwnProperty(r)&&g[r].length&&(i=p[r])&&"function"==typeof i.compatible&&!i.compatible.call(this))return"plugin-"+r;for(r in b)if(b.hasOwnProperty(r)&&b[r].length&&(i=f[r])&&"function"==typeof i.compatible&&!i.compatible.call(this))return"source-"+r}return!1},this.isNode=function(e){var r;return!(!e||!(r=K[e.id])||r.isDestroyed)},this.isSource=function(e){return this.isNode(e)&&e instanceof I},this.isEffect=function(e){return this.isNode(e)&&e instanceof P},this.isTransform=function(e){return this.isNode(e)&&e instanceof O},this.isTarget=function(e){return this.isNode(e)&&e instanceof D},Object.defineProperties(this,{id:{enumerable:!0,configurable:!0,get:function(){return z}}}),this.defaults(r.defaults)}return e.addEventListener("message",function(r){r.source===e&&"seriously-timeout-message"===r.data&&(r.stopPropagation(),m.length>0&&m.shift()())},!0),$.prototype.resize=function(e,r){var i=this.gl;this.width===e&&this.height===r||(this.width=e,this.height=r,i&&(i.bindTexture(i.TEXTURE_2D,this.texture),i.bindFramebuffer(i.FRAMEBUFFER,this.frameBuffer),i.bindRenderbuffer(i.RENDERBUFFER,this.renderBuffer),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,e,r,0,i.RGBA,i.UNSIGNED_BYTE,null),i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_COMPONENT16,e,r),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,this.texture,0),i.bindTexture(i.TEXTURE_2D,null),i.bindRenderbuffer(i.RENDERBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,null)))},$.prototype.destroy=function(){var e=this.gl;e&&(e.deleteFramebuffer(this.frameBuffer),e.deleteRenderbuffer(this.renderBuffer),this.ownTexture&&e.deleteTexture(this.texture)),delete this.frameBuffer,delete this.renderBuffer,delete this.texture,delete this.gl},X.prototype.use=function(){this.gl.useProgram(this.program)},Q.incompatible=function(r){var i,o,s;if(void 0===n&&((i=l.createElement("canvas"))&&i.getContext?e.WebGLRenderingContext?(o=K())||(n="context"):n="webgl":n="canvas"),n)return n;if(r){if((s=p[r])&&"function"==typeof s.compatible&&!s.compatible(o))return"plugin-"+r;if((s=f[r])&&"function"==typeof s.compatible&&!s.compatible(o))return"source-"+r}return!1},Q.plugin=function(e,r,i){var n;if(p[e])Q.logger.warn("Effect ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i)return n=F({},i),"function"==typeof r&&(n.definition=r),n.reserved=D,n.inputs&&J(n),n.title||(n.title=e),p[e]=n,g[e]=[],n},Q.removePlugin=function(e){var r;if(!e||!p[e])return this;if(r=g[e]){for(;r.length;)r.shift().destroy();delete g[e]}return delete p[e],this},Q.source=function(e,r,i){var n;if(f[e])Q.logger.warn("Source ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i||r)return n=F({},i),"function"==typeof r&&(n.definition=r),n.title||(n.title=e),f[e]=n,b[e]=[],n},Q.removeSource=function(e){var r;if(!e||!f[e])return this;if(r=b[e]){for(;r.length;)r.shift().destroy();delete b[e]}return delete f[e],this},Q.transform=function(e,r,i){var n;if(h[e])Q.logger.warn("Transform ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i||r)return n=F({},i),"function"==typeof r&&(n.definition=r),n.reserved=N,n.inputs&&J(n),n.title||(n.title=e),h[e]=n,y[e]=[],n},Q.removeTransform=function(e){var r;if(!e||!h[e])return this;if(r=y[e]){for(;r.length;)r.shift().destroy();delete y[e]}return delete h[e],this},Q.target=function(e,r,i){var n;if(v[e])Q.logger.warn("Target ["+e+"] already loaded");else if(void 0===i&&"object"===c8(r)&&(i=r),i||r)return n=F({},i),"function"==typeof r&&(n.definition=r),n.title||(n.title=e),v[e]=n,S[e]=[],n},Q.removeTarget=function(e){var r;if(!e||!v[e])return this;if(r=S[e]){for(;r.length;)r.shift().destroy();delete S[e]}return delete v[e],this},Q.inputValidators={color:function(e,r,n,o){var s,a,c,d;if(a=o||[],"string"==typeof e){if((c=T.exec(e))&&c.length){if(c.length<3)return a[0]=a[1]=a[2]=a[3]=0,a;for(a[3]=1,d=0;d<3;d++)a[d]=parseFloat(c[d+2])/255;return isNaN(c[6])||(a[3]=parseFloat(c[6])),"hsl"===c[1].toLowerCase()?H(a[0],a[1],a[2],a[3],a):a}if((c=E.exec(e))&&c.length)return 3===(s=c[1]).length?(a[0]=parseInt(s[0],16)/15,a[1]=parseInt(s[1],16)/15,a[2]=parseInt(s[2],16)/15,a[3]=1):4===s.length?(a[0]=parseInt(s[0],16)/15,a[1]=parseInt(s[1],16)/15,a[2]=parseInt(s[2],16)/15,a[3]=parseInt(s[3],16)/15):6===s.length?(a[0]=parseInt(s.substr(0,2),16)/255,a[1]=parseInt(s.substr(2,2),16)/255,a[2]=parseInt(s.substr(4,2),16)/255,a[3]=1):8===s.length?(a[0]=parseInt(s.substr(0,2),16)/255,a[1]=parseInt(s.substr(2,2),16)/255,a[2]=parseInt(s.substr(4,2),16)/255,a[3]=parseInt(s.substr(6,2),16)/255):a[0]=a[1]=a[2]=a[3]=0,a;if(c=_[e.toLowerCase()]){for(d=0;d<4;d++)a[d]=c[d];return a}return i||(i=l.createElement("canvas").getContext("2d")),i.fillStyle=e,(s=i.fillStyle)&&"#000000"!==s?Q.inputValidators.color(s,r,n,o):(a[0]=a[1]=a[2]=a[3]=0,a)}if(W(e)){if((a=e).length<3)return a[0]=a[1]=a[2]=a[3]=0,a;for(d=0;d<3;d++)if(isNaN(a[d]))return a[0]=a[1]=a[2]=a[3]=0,a;return a.length<4&&a.push(1),a}if("number"==typeof e)return a[0]=a[1]=a[2]=e,a[3]=1,a;if("object"===c8(e)){for(d=0;d<4;d++)null===e[s=I[d]]||isNaN(e[s])?a[d]=+(3===d):a[d]=e[s];return a}return a[0]=a[1]=a[2]=a[3]=0,a},number:function(e,r,i){return isNaN(e=parseFloat(e))?i||0:(r.mod&&(e-=r.mod*Math.floor(e/r.mod)),e<r.min?r.min:e>r.max?r.max:r.step?Math.round(e/r.step)*r.step:e)},enum:function(e,r,i){var n=r.options||[];return"string"==typeof e?e=e.toLowerCase():"number"==typeof e?e=e.toString():e||(e=""),n.hasOwnProperty(e)?e:i||""},vector:function(e,r,i,n){var o,s,a,c=r.dimensions||4;if(o=n||[],W(e)){for(s=0;s<c;s++)o[s]=e[s]||0;return o}if("object"===c8(e)){for(s=0;s<c;s++)void 0===e[a=P[s]]&&(a=I[s]),o[s]=e[a]||0;return o}for(e=parseFloat(e)||0,s=0;s<c;s++)o[s]=e;return o},boolean:function(e){return!(!e||e&&e.toLowerCase&&"false"===e.toLowerCase())},string:function(e){return"string"==typeof e?e:0===e||e?e.toString?e.toString():String(e):""}},Q.prototype.effects=Q.effects=function(){var e,r,i,n,o,s={};for(e in p)if(p.hasOwnProperty(e)){for(o in i={title:(r=p[e]).title||e,description:r.description||"",inputs:{}},r.inputs)r.inputs.hasOwnProperty(o)&&(n=r.inputs[o],i.inputs[o]={type:n.type,defaultValue:n.defaultValue,step:n.step,min:n.min,max:n.max,mod:n.mod,minCount:n.minCount,maxCount:n.maxCount,dimensions:n.dimensions,title:n.title||o,description:n.description||"",options:n.options||[]});s[e]=i}return s},e.Float32Array&&(o=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])),e.Seriously&&"object"===c8(e.Seriously)&&function(){var r;for(r in e.Seriously)e.Seriously.hasOwnProperty(r)&&"plugin"!==r&&"object"===c8(e.Seriously[r])&&Q.plugin(r,e.Seriously[r])}(),Q.logger={log:z("log"),info:z("info"),warn:z("warn"),error:z("error")},Q.util={mat4:A,checkSource:function(r){var i,n,o,s;if(!(i=L(r,["img","canvas","video"])))return!1;if(!(n=l.createElement("canvas")))return Q.logger.warn("Browser does not support canvas or Seriously.js"),!1;if(0===i.naturalWidth&&"IMG"===i.tagName)return Q.logger.warn("Image not loaded"),!1;if(0===i.readyState&&0===i.videoWidth&&"VIDEO"===i.tagName)return Q.logger.warn("Video not loaded"),!1;if(o=K()){(s=o.createTexture())||Q.logger.error("Test WebGL context has been lost"),o.bindTexture(o.TEXTURE_2D,s);try{o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,i)}catch(r){return r.code===e.DOMException.SECURITY_ERR?Q.logger.log("Unable to access cross-domain image"):Q.logger.error("Error storing image to texture: "+r.message),o.deleteTexture(s),!1}o.deleteTexture(s)}else{o=n.getContext("2d");try{o.drawImage(i,0,0),o.getImageData(0,0,1,1)}catch(r){return r.code===e.DOMException.SECURITY_ERR?Q.logger.log("Unable to access cross-domain image"):Q.logger.error("Error drawing image to canvas: "+r.message),!1}}return!0},hslToRgb:H,colors:_,setTimeoutZero:V,ShaderProgram:X,FrameBuffer:$,requestAnimationFrame:M,shader:{makeNoise:"float makeNoise(float u, float v, float timer) {\n float x = u * v * mod(timer * 1000.0, 100.0);\n x = mod(x, 13.0) * mod(x, 127.0);\n float dx = mod(x, 0.01);\n return clamp(0.1 + dx * 100.0, 0.0, 1.0);\n}\n",random:"#ifndef RANDOM\n#define RANDOM\nfloat random(vec2 n) {\n return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233)))* 43758.5453);\n}\n#endif\n"}},Q.source("video",function(r,i,n){var o,a,c=this,d=!1,u=!1,p=!1,h=0;function f(){r.removeEventListener("loadedmetadata",f,!0),d||(r.videoWidth?(c.width===r.videoWidth&&c.height===r.videoHeight||(c.width=r.videoWidth,c.height=r.videoHeight,c.resize()),u&&c.setReady()):(u=!0,setTimeout(f,50)))}function v(){p=!0}function m(){p=!1,c.setDirty()}if(U(r,"HTMLVideoElement"))return r.readyState?f():(u=!0,r.addEventListener("loadedmetadata",f,!0)),r.addEventListener("seeking",v,!1),r.addEventListener("seeked",m,!1),{deferTexture:u,source:r,render:function i(n){var d;if(h=r.currentTime,!r.videoHeight||!r.videoWidth)return!1;s?(a||((o=(a=l.createElement("canvas").getContext("2d")).canvas).width=c.width,o.height=c.height),d=o,a.drawImage(r,0,0,c.width,c.height)):d=r,n.bindTexture(n.TEXTURE_2D,c.texture),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,c.flip),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);try{if(n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,d),void 0===s){if(n.getError()===n.INVALID_VALUE)return s=!0,i(n);s=!1}return!0}catch(r){r.code===e.DOMException.SECURITY_ERR?(c.allowRefresh=!1,Q.logger.error("Unable to access cross-domain image")):Q.logger.error("Error rendering video source",r)}return!1},checkDirty:function(){return!p&&r.currentTime!==h},compare:function(e){return c.source===e},destroy:function(){d=!0,r.removeEventListener("seeking",v,!1),r.removeEventListener("seeked",m,!1),r.removeEventListener("loadedmetadata",f,!0)}}},{title:"Video"}),Q.transform("2d",function(e){var r=this,i=!(e&&e.radians),n=0,o=0,s=1,a=1,c=0,d=0,l=0,u=0,p=0;function h(){var e,h,f,v,m,g,y,b,S,C,w,R=r.matrix;function _(e,r){R[12]=R[0]*e+R[4]*r+R[12],R[13]=R[1]*e+R[5]*r+R[13],R[14]=R[2]*e+R[6]*r+R[14],R[15]=R[3]*e+R[7]*r+R[15]}c||d||l||u||p||1!==s||1!==a?(A.identity(R),_(c+n,d+o),u&&(R[4]=u/r.width),p&&(R[1]=p/r.height),l&&(v=R[0],m=R[1],g=R[2],y=R[3],b=R[4],S=R[5],C=R[6],w=R[7],h=Math.sin(e=-(i?l*Math.PI/180:l)),f=Math.cos(e),R[0]=v*f+b*h,R[1]=m*f+S*h,R[2]=g*f+C*h,R[3]=y*f+w*h,R[4]=b*f-v*h,R[5]=S*f-m*h,R[6]=C*f-g*h,R[7]=w*f-y*h),1!==s&&(R[0]*=s,R[1]*=s,R[2]*=s,R[3]*=s),1!==a&&(R[4]*=a,R[5]*=a,R[6]*=a,R[7]*=a),_(-n,-o),r.transformed=!0):r.transformed=!1}return{inputs:{reset:{method:function(){return n=0,o=0,s=1,a=1,c=0,d=0,l=0,u=0,p=0,!!r.transformed&&(r.transformed=!1,!0)}},translate:{method:function(e,r){return isNaN(e)&&(e=c),isNaN(r)&&(r=d),(e!==c||r!==d)&&(c=e,d=r,h(),!0)},type:["number","number"]},translateX:{get:function(){return c},set:function(e){return e!==c&&(c=e,h(),!0)},type:"number"},translateY:{get:function(){return d},set:function(e){return e!==d&&(d=e,h(),!0)},type:"number"},rotation:{get:function(){return l},set:function(e){return e!==l&&(l=parseFloat(e),h(),!0)},type:"number"},center:{method:function(e,r){return isNaN(e)&&(e=n),isNaN(r)&&(r=o),(e!==n||r!==o)&&(n=e,o=r,h(),!0)},type:["number","number"]},centerX:{get:function(){return n},set:function(e){return e!==n&&(n=e,h(),!0)},type:"number"},centerY:{get:function(){return o},set:function(e){return e!==o&&(o=e,h(),!0)},type:"number"},skew:{method:function(e,r){return isNaN(e)&&(e=u),isNaN(r)&&(r=p),(e!==u||r!==p)&&(u=e,p=r,h(),!0)},type:["number","number"]},skewX:{get:function(){return u},set:function(e){return e!==u&&(u=e,h(),!0)},type:"number"},skewY:{get:function(){return p},set:function(e){return e!==p&&(p=e,h(),!0)},type:"number"},scale:{method:function(e,r){var i,n;if(i=isNaN(e)?s:e,isNaN(r)){if(isNaN(e))return!1;n=i}else n=r;return(i!==s||n!==a)&&(s=i,a=n,h(),!0)},type:["number","number"]},scaleX:{get:function(){return s},set:function(e){return e!==s&&(s=e,h(),!0)},type:"number"},scaleY:{get:function(){return a},set:function(e){return e!==a&&(a=e,h(),!0)},type:"number"}}}},{title:"2D Transform",description:"Translate, Rotate, Scale, Skew"}),Q.transform("flip",function(){var e=this,r=!0;function i(){var i=e.matrix;r?(i[0]=-1,i[5]=1):(i[0]=1,i[5]=-1)}return A.identity(e.matrix),i(),e.transformDirty=!0,e.transformed=!0,{inputs:{direction:{get:function(){return r?"horizontal":"vertical"},set:function(e){var n;return(n="vertical"!==e)!==r&&(r=n,i(),!0)},type:"string"}}}},{title:"Flip",description:"Flip Horizontal/Vertical"}),Q.transform("reformat",function(){var e,r,i=this,n="contain";function o(){var o,s,a,c,d=i.matrix,l=e||i.width,u=r||i.height,p=i.source,h=p&&p.width||1,f=p&&p.height||1;"distort"===n||l===h&&u===f?i.transformed=!1:(a=h/f,c=l/u,"none"===n?(o=h/l,s=f/u):"width"===n||"contain"===n&&c<=a?(o=1,s=c/a):"height"===n||"contain"===n&&c>a?(o=a/c,s=1):c>a?(o=1,s=c/a):(o=a/c,s=1),1!==o||1!==s?(A.identity(d),1!==o&&(d[0]*=o,d[1]*=o,d[2]*=o,d[3]*=o),1!==s&&(d[4]*=s,d[5]*=s,d[6]*=s,d[7]*=s),i.transformed=!0):i.transformed=!1)}function s(){return e||i.source&&i.source.width||1}function a(){return r||i.source&&i.source.height||1}return this.resize=function(){var e,r=s(),i=a();if(this.width!==r||this.height!==i)for(this.width=r,this.height=i,this.uniforms&&this.uniforms.resolution&&(this.uniforms.resolution[0]=r,this.uniforms.resolution[1]=i),this.frameBuffer&&this.frameBuffer.resize&&this.frameBuffer.resize(r,i),e=0;e<this.targets.length;e++)this.targets[e].resize();this.setTransformDirty(),o()},{inputs:{width:{get:s,set:function(r){return(r=Math.floor(r))===e||(e=r,this.resize()),!1},type:"number"},height:{get:a,set:function(e){return(e=Math.floor(e))===r||(r=e,this.resize()),!1},type:"number"},mode:{get:function(){return n},set:function(e){return e!==n&&(n=e,o(),!0)},type:"enum",options:["cover","contain","distort","width","height","none"]}}}},{title:"Reformat",description:"Change output dimensions"}),a="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nvoid main(void) {\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n gl_Position.w = screenPosition.w;\n vTexCoord = texCoord;\n}\n",c="precision mediump float;\nvarying vec2 vTexCoord;\nuniform sampler2D source;\nvoid main(void) {\n gl_FragColor = texture2D(source, vTexCoord);\n}",Q.util.shader.noiseHelpers="#ifndef NOISE_HELPERS\n#define NOISE_HELPERS\nvec2 mod289(vec2 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec3 mod289(vec3 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec4 mod289(vec4 x) {\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec3 permute(vec3 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\nvec4 permute(vec4 x) {\n return mod289(((x*34.0)+1.0)*x);\n}\nvec4 taylorInvSqrt(vec4 r) {\n return 1.79284291400159 - 0.85373472095314 * r;\n}\nfloat taylorInvSqrt(float r) {\n return 1.79284291400159 - 0.85373472095314 * r;\n}\n#endif\n",Q.util.shader.snoise2d="#ifndef NOISE2D\n#define NOISE2D\nfloat snoise(vec2 v) {\n const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0\n 0.366025403784439, // 0.5*(sqrt(3.0)-1.0)\n -0.577350269189626, // -1.0 + 2.0 * C.x\n 0.024390243902439); // 1.0 / 41.0\n vec2 i = floor(v + dot(v, C.yy));\n vec2 x0 = v - i + dot(i, C.xx);\n vec2 i1;\n //i1.x = step(x0.y, x0.x); // x0.x > x0.y ? 1.0 : 0.0\n //i1.y = 1.0 - i1.x;\n i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);\n // x0 = x0 - 0.0 + 0.0 * C.xx ;\n // x1 = x0 - i1 + 1.0 * C.xx ;\n // x2 = x0 - 1.0 + 2.0 * C.xx ;\n vec4 x12 = x0.xyxy + C.xxzz;\n x12.xy -= i1;\n i = mod289(i); // Avoid truncation effects in permutation\n vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + i.x + vec3(0.0, i1.x, 1.0));\n vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0);\n m = m*m ;\n m = m*m ;\n vec3 x = 2.0 * fract(p * C.www) - 1.0;\n vec3 h = abs(x) - 0.5;\n vec3 ox = floor(x + 0.5);\n vec3 a0 = x - ox;\n m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);\n vec3 g;\n g.x = a0.x * x0.x + h.x * x0.y;\n g.yz = a0.yz * x12.xz + h.yz * x12.yw;\n return 130.0 * dot(m, g);\n}\n#endif\n",Q.util.shader.snoise3d="#ifndef NOISE3D\n#define NOISE3D\nfloat snoise(vec3 v) {\n const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;\n const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);\n vec3 i = floor(v + dot(v, C.yyy));\n vec3 x0 = v - i + dot(i, C.xxx) ;\n vec3 g = step(x0.yzx, x0.xyz);\n vec3 l = 1.0 - g;\n vec3 i1 = min(g.xyz, l.zxy);\n vec3 i2 = max(g.xyz, l.zxy);\n // x0 = x0 - 0.0 + 0.0 * C.xxx;\n // x1 = x0 - i1 + 1.0 * C.xxx;\n // x2 = x0 - i2 + 2.0 * C.xxx;\n // x3 = x0 - 1.0 + 3.0 * C.xxx;\n vec3 x1 = x0 - i1 + C.xxx;\n vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y\n vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y\n i = mod289(i);\n vec4 p = permute(permute(permute(\n i.z + vec4(0.0, i1.z, i2.z, 1.0))\n + i.y + vec4(0.0, i1.y, i2.y, 1.0))\n + i.x + vec4(0.0, i1.x, i2.x, 1.0));\n float n_ = 0.142857142857; // 1.0/7.0\n vec3 ns = n_ * D.wyz - D.xzx;\n vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p, 7 * 7)\n vec4 x_ = floor(j * ns.z);\n vec4 y_ = floor(j - 7.0 * x_); // mod(j, N)\n vec4 x = x_ * ns.x + ns.yyyy;\n vec4 y = y_ * ns.x + ns.yyyy;\n vec4 h = 1.0 - abs(x) - abs(y);\n vec4 b0 = vec4(x.xy, y.xy);\n vec4 b1 = vec4(x.zw, y.zw);\n //vec4 s0 = vec4(lessThan(b0, 0.0)) * 2.0 - 1.0;\n //vec4 s1 = vec4(lessThan(b1, 0.0)) * 2.0 - 1.0;\n vec4 s0 = floor(b0) * 2.0 + 1.0;\n vec4 s1 = floor(b1) * 2.0 + 1.0;\n vec4 sh = -step(h, vec4(0.0));\n vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy ;\n vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww ;\n vec3 p0 = vec3(a0.xy, h.x);\n vec3 p1 = vec3(a0.zw, h.y);\n vec3 p2 = vec3(a1.xy, h.z);\n vec3 p3 = vec3(a1.zw, h.w);\n vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);\n m = m * m;\n return 42.0 * dot(m*m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));\n}\n#endif\n",Q.util.shader.snoise4d="#ifndef NOISE4D\n#define NOISE4D\nvec4 grad4(float j, vec4 ip)\n {\n const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);\n vec4 p, s;\n\n p.xyz = floor(fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;\n p.w = 1.5 - dot(abs(p.xyz), ones.xyz);\n s = vec4(lessThan(p, vec4(0.0)));\n p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www;\n\n return p;\n }\n\n#define F4 0.309016994374947451\n\nfloat snoise(vec4 v)\n {\n const vec4 C = vec4(0.138196601125011, // (5 - sqrt(5))/20 G4\n 0.276393202250021, // 2 * G4\n 0.414589803375032, // 3 * G4\n -0.447213595499958); // -1 + 4 * G4\n\n vec4 i = floor(v + dot(v, vec4(F4)));\n vec4 x0 = v - i + dot(i, C.xxxx);\n\n\n vec4 i0;\n vec3 isX = step(x0.yzw, x0.xxx);\n vec3 isYZ = step(x0.zww, x0.yyz);\n i0.x = isX.x + isX.y + isX.z;\n i0.yzw = 1.0 - isX;\n i0.y += isYZ.x + isYZ.y;\n i0.zw += 1.0 - isYZ.xy;\n i0.z += isYZ.z;\n i0.w += 1.0 - isYZ.z;\n\n vec4 i3 = clamp(i0, 0.0, 1.0);\n vec4 i2 = clamp(i0 - 1.0, 0.0, 1.0);\n vec4 i1 = clamp(i0 - 2.0, 0.0, 1.0);\n\n vec4 x1 = x0 - i1 + C.xxxx;\n vec4 x2 = x0 - i2 + C.yyyy;\n vec4 x3 = x0 - i3 + C.zzzz;\n vec4 x4 = x0 + C.wwww;\n\n i = mod289(i);\n float j0 = permute(permute(permute(permute(i.w) + i.z) + i.y) + i.x);\n vec4 j1 = permute(permute(permute(permute (\n i.w + vec4(i1.w, i2.w, i3.w, 1.0))\n + i.z + vec4(i1.z, i2.z, i3.z, 1.0))\n + i.y + vec4(i1.y, i2.y, i3.y, 1.0))\n + i.x + vec4(i1.x, i2.x, i3.x, 1.0));\n\n vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;\n\n vec4 p0 = grad4(j0, ip);\n vec4 p1 = grad4(j1.x, ip);\n vec4 p2 = grad4(j1.y, ip);\n vec4 p3 = grad4(j1.z, ip);\n vec4 p4 = grad4(j1.w, ip);\n\n vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));\n p0 *= norm.x;\n p1 *= norm.y;\n p2 *= norm.z;\n p3 *= norm.w;\n p4 *= taylorInvSqrt(dot(p4, p4));\n\n vec3 m0 = max(0.6 - vec3(dot(x0, x0), dot(x1, x1), dot(x2, x2)), 0.0);\n vec2 m1 = max(0.6 - vec2(dot(x3, x3), dot(x4, x4)), 0.0);\n m0 = m0 * m0;\n m1 = m1 * m1;\n return 49.0 * (dot(m0*m0, vec3(dot(p0, x0), dot(p1, x1), dot(p2, x2)))\n + dot(m1*m1, vec2(dot(p3, x3), dot(p4, x4)))) ;\n}\n#endif\n",Q}(m=window),m.Seriously||(m.Seriously=g),de.exports=g;var dt=de.exports;window,console.info("seriously version: chroma"),dt.plugin("chroma",{shader:function(e,r){return r.vertex="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nuniform vec4 screen;\nuniform float balance;\nvarying float screenSat;\nvarying vec3 screenPrimary;\nvoid main(void) {\n float fmin = min(min(screen.r, screen.g), screen.b);\n float fmax = max(max(screen.r, screen.g), screen.b);\n float secondaryComponents;\n screenPrimary = step(fmax, screen.rgb);\n secondaryComponents = dot(1.0 - screenPrimary, screen.rgb);\n screenSat = fmax - mix(secondaryComponents - fmin, secondaryComponents / 2.0, balance);\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position = screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n vTexCoord = texCoord;\n}",r.fragment=[this.inputs.mask?"#define MASK":"","precision mediump float;\nvarying vec2 vTexCoord;\nuniform sampler2D source;\nuniform vec4 screen;\nuniform float screenWeight;\nuniform float balance;\nuniform float clipBlack;\nuniform float clipWhite;\nuniform bool mask;\nvarying float screenSat;\nvarying vec3 screenPrimary;\nvoid main(void) {\n float pixelSat, secondaryComponents;\n vec4 sourcePixel = texture2D(source, vTexCoord);\n\n if (screen.a == 0.0) {\n gl_FragColor = sourcePixel;\n return;\n }\n \n float fmin = min(min(sourcePixel.r, sourcePixel.g), sourcePixel.b);\n float fmax = max(max(sourcePixel.r, sourcePixel.g), sourcePixel.b);\n vec3 pixelPrimary = step(fmax, sourcePixel.rgb);\n secondaryComponents = dot(1.0 - pixelPrimary, sourcePixel.rgb);\n pixelSat = fmax - mix(secondaryComponents - fmin, secondaryComponents / 2.0, balance);\n float diffPrimary = dot(abs(pixelPrimary - screenPrimary), vec3(1.0));\n float solid = step(1.0, step(pixelSat, 0.1) + step(fmax, 0.1) + diffPrimary);\n float alpha = max(0.0, 1.0 - pixelSat / screenSat);\n alpha = smoothstep(clipBlack, clipWhite, alpha);\n vec4 semiTransparentPixel = vec4((sourcePixel.rgb - (1.0 - alpha) * screen.rgb * screenWeight) / max(0.00001, alpha), alpha);\n vec4 pixel = mix(semiTransparentPixel, sourcePixel, solid);\n#ifdef MASK\n gl_FragColor = vec4(vec3(pixel.a), 1.0);\n#else\n gl_FragColor = pixel;\n#endif\n}"].join("\n"),r},inPlace:!0,inputs:{source:{type:"image",uniform:"source"},screen:{type:"color",uniform:"screen",defaultValue:[66/255,195/255,31/255,1]},weight:{type:"number",uniform:"screenWeight",defaultValue:1,min:0},balance:{type:"number",uniform:"balance",defaultValue:1,min:0,max:1},clipBlack:{type:"number",uniform:"clipBlack",defaultValue:0,min:0,max:1},clipWhite:{type:"number",uniform:"clipWhite",defaultValue:1,min:0,max:1},mask:{type:"boolean",defaultValue:!1,uniform:"mask",shaderDirty:!0}},title:"Chroma Key",description:""}),window,console.info("seriously version: chroma_obs"),dt.plugin("chroma_obs",{shader:function(e,r){return r.vertex="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nconst vec4 cb_v4 = vec4(-0.100644, -0.338572, 0.439216, 0.501961);\nconst vec4 cr_v4 = vec4(0.439216, -0.398942, -0.040274, 0.501961);\nuniform vec4 screen;\nuniform float similarity;\nuniform float smoothness;\nuniform float spill;\nuniform float contrast;\nuniform float gamma;\nvarying vec2 chroma_key;\nvarying vec2 pixel_size;\nvarying float similarity_v;\nvarying float smoothness_v;\nvarying float spill_v;\nvarying float contrast_v;\nvarying float gamma_v;\nvoid main(void) {\n float cb = dot(screen.rgb, cb_v4.xyz) + cb_v4.w;\n float cr = dot(screen.rgb, cr_v4.xyz) + cr_v4.w;\n chroma_key.x = cb;\n chroma_key.y = cr;\n pixel_size.x = 1.0 / resolution.x;\n pixel_size.y = 1.0 / resolution.y;\n similarity_v = similarity * 1.0 / 1000.0;\n smoothness_v = smoothness * 1.0 / 1000.0;\n spill_v = spill * 1.0 / 1000.0;\n contrast_v = (contrast < 0.0) ? (1.0 / (-contrast + 1.0)) : (contrast + 1.0);\n gamma_v = (gamma < 0.0) ? (-gamma + 1.0) : (1.0 / (gamma + 1.0));\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position = screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n vTexCoord = texCoord;\n}",r.fragment=[this.inputs.mask?"#define MASK":"","precision mediump float;\nvarying vec2 vTexCoord;\nuniform bool mask;\nuniform vec4 screen;\nuniform sampler2D source;\nconst vec4 cb_v4 = vec4(-0.100644, -0.338572, 0.439216, 0.501961);\nconst vec4 cr_v4 = vec4(0.439216, -0.398942, -0.040274, 0.501961);\nuniform float opacity;\nuniform float brightness;\nvarying vec2 chroma_key;\nvarying vec2 pixel_size;\nvarying float similarity_v;\nvarying float smoothness_v;\nvarying float spill_v;\nvarying float contrast_v;\nvarying float gamma_v;\nvec4 CalcColor(vec4 rgba) {\n return vec4(pow(rgba.rgb, vec3(gamma_v, gamma_v, gamma_v)) * contrast_v + brightness, rgba.a);\n}\nfloat GetChromaDist(vec3 rgb) {\n float cb = dot(rgb.rgb, cb_v4.xyz) + cb_v4.w;\n float cr = dot(rgb.rgb, cr_v4.xyz) + cr_v4.w;\n return distance(chroma_key, vec2(cb, cr));\n}\nfloat GetNonlinearChannel(float u) {\n return u;\n}\nvec3 GetNonlinearColor(vec3 rgb)\n{\n return vec3(GetNonlinearChannel(rgb.r), GetNonlinearChannel(rgb.g), GetNonlinearChannel(rgb.b));\n}\nvec3 SampleTexture(vec2 uv)\n{\n vec3 rgb = texture2D(source, uv).rgb;\n return GetNonlinearColor(rgb);\n}\nfloat GetBoxFilteredChromaDist(vec3 rgb, vec2 texCoord) {\n vec2 h_pixel_size = pixel_size / 2.0;\n vec2 point_0 = vec2(pixel_size.x, h_pixel_size.y);\n vec2 point_1 = vec2(h_pixel_size.x, -pixel_size.y);\n float distVal = GetChromaDist(SampleTexture(texCoord-point_0));\n distVal += GetChromaDist(SampleTexture(texCoord+point_0));\n distVal += GetChromaDist(SampleTexture(texCoord-point_1));\n distVal += GetChromaDist(SampleTexture(texCoord+point_1));\n distVal *= 2.0;\n distVal += GetChromaDist(GetNonlinearColor(rgb));\n return distVal / 9.0;\n}\nvec4 ProcessChromaKey(vec4 rgba, vec2 uv)\n{\n float chromaDist = GetBoxFilteredChromaDist(rgba.rgb, uv);\n float baseMask = chromaDist - similarity_v;\n float fullMask = pow(clamp(baseMask / smoothness_v, 0.0, 1.0), 1.5);\n float spillVal = pow(clamp(baseMask / spill_v, 0.0, 1.0), 1.5);\n rgba.a *= opacity;\n rgba.a *= fullMask;\n float desat = dot(rgba.rgb, vec3(0.2126, 0.7152, 0.0722));\n rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);\n return CalcColor(rgba);\n}\nvoid main(void) {\n vec4 rgba = texture2D(source, vTexCoord);\n\n if (screen.w == 0.0) {\n gl_FragColor = rgba;\n return;\n }\n \n rgba.rgb *= (rgba.a > 0.) ? (1. / rgba.a) : 0.;\n rgba = ProcessChromaKey(rgba, vTexCoord);\n rgba.rgb *= rgba.a;\n#ifdef MASK\n gl_FragColor = vec4(vec3(rgba.a), 1.0);\n#else\n gl_FragColor = rgba;\n#endif\n}"].join("\n"),r},inPlace:!0,inputs:{source:{type:"image",uniform:"source"},screen:{type:"color",uniform:"screen",defaultValue:[0,1,0,1]},similarity:{type:"number",uniform:"similarity",defaultValue:400,min:1,max:1e3},smoothness:{type:"number",uniform:"smoothness",defaultValue:80,min:1,max:1e3},opacity:{type:"number",uniform:"opacity",defaultValue:1,min:0,max:1},contrast:{type:"number",uniform:"contrast",defaultValue:0,min:-4,max:4},brightness:{type:"number",uniform:"brightness",defaultValue:0,min:-1,max:1},gamma:{type:"number",uniform:"gamma",defaultValue:0,min:-1,max:1},spill:{type:"number",uniform:"spill",defaultValue:100,min:1,max:1e3},mask:{type:"boolean",defaultValue:!1,uniform:"mask",shaderDirty:!0}},title:"Chroma Key OBS",description:""}),window,console.info("seriously version: chroma_post"),dt.plugin("chroma_post",{shader:function(e,r){return r.vertex="precision mediump float;\nattribute vec4 position;\nattribute vec2 texCoord;\nuniform vec2 resolution;\nuniform mat4 transform;\nvarying vec2 vTexCoord;\nvarying vec2 pixel_size;\nvoid main(void) {\n pixel_size.x = 1.0 / resolution.x;\n pixel_size.y = 1.0 / resolution.y;\n vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);\n screenPosition = transform * screenPosition;\n gl_Position = screenPosition;\n gl_Position.xy = screenPosition.xy * 2.0 / resolution;\n gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);\n vTexCoord = texCoord;\n}",r.fragment=[this.inputs.mask?"#define MASK":"","precision mediump float;\nvarying vec2 vTexCoord;\nuniform bool mask;\nuniform sampler2D source;\nuniform float edgeShrink;\nvarying vec2 pixel_size;\nconst int filter_size = 3;\nfloat edgeSmoothSuppKernelV2(vec4 rgba, vec2 coord) {\n float alpha = rgba.a;\n if (edgeShrink > 1.0) {\n float sum = 0.0;\n float weightSum = 0.0;\n // float sigma = 1.0f;\n for (int j = - filter_size / 2; j <= filter_size / 2; j++) {\n for (int i = - filter_size / 2; i <= filter_size / 2; i++) {\n // float weight = exp(-(i*i + j*j) / (2 * sigma * sigma)) / (2 * 3.1415926f * sigma * sigma);\n float weight = 1.0;\n vec4 neighborColor = texture2D(source, coord + vec2(i, j) * pixel_size);\n // speedup: move the powf to chroma_key\n float alpha_ker = pow(neighborColor.w, edgeShrink);\n sum += (alpha_ker * weight);\n weightSum += weight;\n }\n }\n alpha = sum * 1.0 / weightSum;\n }\n return alpha;\n}\nvoid main(void) {\n vec4 rgba = texture2D(source, vTexCoord);\n rgba.a = edgeSmoothSuppKernelV2(rgba, vTexCoord);\n rgba.a = pow(rgba.a, edgeShrink);\n#ifdef MASK\n gl_FragColor = vec4(vec3(rgba.a), 1.0);\n#else\n gl_FragColor = rgba;\n#endif\n}"].join("\n"),r},inPlace:!0,inputs:{source:{type:"image",uniform:"source"},edgeShrink:{type:"number",uniform:"edgeShrink",defaultValue:3,min:1,max:10},mask:{type:"boolean",defaultValue:!1,uniform:"mask",shaderDirty:!0}},title:"Chroma Key Post",description:""});class dr{seriously;version;defaultOptions={screen:[0,255,0,0]};targetElement;sourceElement;source=null;target=null;effect=null;backEffect=null;constructor(e,r,i,n=0){this.seriously=new window.Seriously,this.version=n,this.targetElement="string"==typeof e?document.getElementById(e):e,this.sourceElement="string"==typeof r?document.getElementById(r):r,this.init(i)}async loadEffect(e){return 1===e?"chroma":"chroma_obs"}async init(e){console.info("serious version:",this.version);let r=await this.loadEffect(this.version);await c7(()=>!(this.sourceElement?.videoWidth>0&&this.sourceElement?.videoHeight>0)),this.targetElement.width=this.sourceElement.videoWidth,this.targetElement.height=this.sourceElement.videoHeight,this.source=this.seriously.source(this.sourceElement),this.target=this.seriously.target(this.targetElement),this.effect=this.seriously.effect(r),this.backEffect=this.seriously.effect("chroma_post"),this.effect.source=this.source,this.backEffect.source=this.effect,this.target.source=this.backEffect,this.seriously.go(),this.setOptions(this.defaultOptions),e&&this.setOptions(e)}destroy(){this.seriously.destroy()}async updateSource(e){e&&this.effect&&this.backEffect?(this.sourceElement="string"==typeof e?document.getElementById(e):e,await c7(()=>!(this.sourceElement?.videoWidth>0&&this.sourceElement?.videoHeight>0)),this.source?.destroy(),console.info("update source: ",this.source?.isDestroyed()),this.source=this.seriously.source(this.sourceElement),this.effect.source=this.source,this.backEffect.source=this.effect,this.target.source=this.backEffect):console.warn("update source error: source or effect is null",e,this.effect)}async setOptions(e){if(this.defaultOptions={...this.defaultOptions,...e},!this.effect||!this.backEffect||cP()(e))return;console.info("set options: ",e);let{screen:r,edgeShrink:i}=e;if(r&&r.length>=3){let[e,i,n,o]=r;this.effect.screen=[e/255,i/255,n/255,c5()(o)?o:1]}for(let[r,n]of(i&&(this.backEffect.edgeShrink=i),Object.entries(e)))"number"==typeof n&&"screen"!==r&&"edgeShrink"!==r&&(this.effect[r]=n)}}var di={screen:[53,186,123],similarity:90,edgeShrink:3,smoothness:80,spill:100,opacity:1,contrast:0,brightness:0,gamma:0},dn=function(){function e(r){ak(this,e),aA(this,"cutoutInstance",void 0);var i=r.effects,n=r.sourceId;this.cutoutInstance=new dr("starling-cutout-canvas",n||"starling-cutout-video",i&&i.chromaKey||di,i&&i.version||2)}return ax(e,[{key:"setOptions",value:function(e){e&&this.cutoutInstance&&this.cutoutInstance.setOptions(e)}},{key:"destroy",value:function(){return this.cutoutInstance.destroy()}},{key:"updateSource",value:function(e){return this.cutoutInstance.updateSource(e)}}]),e}(),ds=function(e,r){function i(e){ak(this,i),aA(this,"onAudioData",void 0),aA(this,"onError",void 0),aA(this,"audioContext",null),aA(this,"processor",null),aA(this,"mediaStream",null),aA(this,"recording",!1),this.onAudioData=e.onAudioData,this.onError=e.onError,this.preWarmStream()}return ax(i,[{key:"preWarmStream",value:function(){return(e=e||aI(aT().mark(function e(){var r;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:16e3}),e.next=4,navigator.mediaDevices.getUserMedia({audio:!0,video:!1});case 4:this.mediaStream=e.sent,r=this.audioContext.createMediaStreamSource(this.mediaStream),this.processor=this.audioContext.createScriptProcessor(1024,1,1),r.connect(this.processor),this.processor.connect(this.audioContext.destination),this.processor.onaudioprocess=function(){},e.next=15;break;case 12:e.prev=12,e.t0=e.catch(0),console.error("preWarmStream error",e.t0);case 15:case"end":return e.stop()}},e,this,[[0,12]])}))).apply(this,arguments)}},{key:"start",value:function(){return(r=r||aI(aT().mark(function e(){var r=this;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.recording){e.next=2;break}return e.abrupt("return");case 2:if(this.audioContext&&this.processor){e.next=4;break}return e.abrupt("return");case 4:try{this.processor.onaudioprocess=function(e){if(r.recording){var i=function(e,r,i,n){try{for(var o=(n=n||{},"number"==typeof n.index)?n.index:0,s=n&&"number"==typeof n.offset?n.offset:0,a=0,c=o;c<e.length;c++)a+=e[c].length;a=Math.max(0,a-Math.floor(s));var d=r/i;d>1?a=Math.floor(a/d):(d=1,i=r);for(var l=new Int16Array(a),u=0,p=e.length;o<p;o++){for(var h=e[o],f=s,v=h.length;f<v;){var m=Math.floor(f),g=Math.ceil(f),y=f-m;l[u]=h[m]+(h[g]-h[m])*y,u++,f+=d}s=f-v}return{index:o,offset:s,sampleRate:i,data:l}}catch(e){console.log("转音错误了",e)}}([function(e){for(var r=new Int16Array(e.length),i=0;i<e.length;i++){var n=Math.max(-1,Math.min(1,e[i]));r[i]=n<0?32768*n:32767*n}return r}(e.inputBuffer.getChannelData(0))],r.audioContext.sampleRate,16e3,null);i&&i.data&&r.onAudioData(i.data.buffer)}},this.recording=!0}catch(e){this.onError&&this.onError(e)}case 5:case"end":return e.stop()}},e,this)}))).apply(this,arguments)}},{key:"stop",value:function(){this.recording=!1,this.processor.onaudioprocess=function(){}}},{key:"destroy",value:function(){this.recording=!1,this.processor&&(this.processor.disconnect(),this.processor.onaudioprocess=null),this.audioContext&&this.audioContext.close(),this.mediaStream&&this.mediaStream.getTracks().forEach(function(e){e.stop()})}}]),i}(),da=function(){function e(r){var i,n=this;ak(this,e),aA(this,"token",void 0),aA(this,"appKey",void 0),aA(this,"appId",void 0),aA(this,"connectParams",void 0),aA(this,"onDigitalHumanCallback",void 0),aA(this,"dhServer",void 0),aA(this,"rtcServer",void 0),aA(this,"rtcConnectParams",void 0),aA(this,"cutoutInstance",void 0),aA(this,"isHuawei",(i=navigator.userAgent||navigator.vendor,/huawei/i.test(i)||/honor/i.test(i))),aA(this,"rtcServerUrl",void 0),aA(this,"recordController",null),aA(this,"wsReadyState",-1),aA(this,"isPreOpenSession",!1),aA(this,"onDigitalHumanCallbackPlus",function(e){var r;e.status===c_.DH_LIB_FULL_STATUS&&"wsState"===(null==(r=e.content)?void 0:r.type)&&(n.wsReadyState=e.content.readyState),n.onDigitalHumanCallback&&n.onDigitalHumanCallback(e)}),aA(this,"onRemoteVideoComing",function(e){n.rtcConnectParams&&n.rtcConnectParams.feedId&&e===+n.rtcConnectParams.feedId&&n.rtcServer&&n.rtcServer.client&&n.rtcServer.client.subscribeStreaming("remotevideo500",+n.rtcConnectParams.feedId)}),aA(this,"onLocalStream",function(){(n.connectParams||{}).pullAudioFromRtc&&n.rtcServer&&n.rtcServer.muteMicphone(!0)}),aA(this,"onRemoteVideoOn",function(){setTimeout(aI(aT().mark(function e(){var r,i,o,s,a;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=document.getElementById(c2),e.next=3,n.cutoutInstance&&n.cutoutInstance.updateSource(c2);case 3:r&&(r.setAttribute("data-playing","true"),i=r.videoWidth,o=r.videoHeight,a=(s=document.getElementById(c0)).getContext("2d"),s&&a&&(s.width=i,s.height=o,a.drawImage(r,0,0,i,o)));case 4:case"end":return e.stop()}},e)})),100)}),aA(this,"connectListener",function(e){var r=e.code,i=e.body,o=e.message;if(0===r&&n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_WS_SUCCESS,content:e}),0===r){var s=az.parse(i),a=s.rtcServerUrl,c=s.appId,d=s.clientToken,l=s.roomName,u=s.clientId,p=s.feedId,h=s.chargeId;c&&l&&(n.rtcConnectParams={server:n.rtcServerUrl||a,appId:c,token:d,roomName:l,userId:u,feedId:p,chargeId:h},n.rtcServer&&n.rtcServer.openRtc(n.rtcConnectParams))}else n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:r,errMsg:o}}})}),aA(this,"createServer",function(e){var r,i=a_(a_(a_({token:n.token,appKey:n.appKey,appId:n.appId},e?{sessionId:e}:{}),cx()(n.connectParams,cA)),{},{parameters:ck()(n.connectParams,cA),onConnect:n.connectListener,onDigitalHumanCallback:n.onDigitalHumanCallbackPlus});null!=(r=n.dhServer)&&r.preConnectSuccess?(n.dhServer.connectParams=i,n.dhServer&&n.dhServer.sendPreConnect(i)):n.dhServer&&n.dhServer.createSocket(i)}),aA(this,"checkHumanInstansce",function(){return n.dhServer?!(n.isPreOpenSession&&!n.dhServer.preConnectSuccess)||(n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:4001,errMsg:"webSocket连接中"}}}),!1):(n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:4002,errMsg:"请先初始化数字人实例"}}}),!1)}),aA(this,"sendMessage",function(e,r){return n.dhServer&&n.dhServer.sendMessage(e,r)}),aA(this,"interrupt",aI(aT().mark(function e(){return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e){n.dhServer&&n.dhServer.sendMessage({requestId:ix(),action:"TEXT_RENDER",body:"<interrupt></interrupt>",clientTs:(new Date).getTime()},function(){return e()})}));case 1:case"end":return e.stop()}},e)}))),aA(this,"textRender",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"TEXT_RENDER",body:i,clientTs:(new Date).getTime()},o)}),aA(this,"textStreamRender",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg,s=az.parse(i).first;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"TEXT_STREAM_RENDER",body:i,clientTs:(new Date).getTime()},s?o:null)}),aA(this,"audioRender",function(e){var r=e.body,i=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:ix(),action:"AUDIO_RENDER",body:r,clientTs:(new Date).getTime()},i)}),aA(this,"audioStreamRender",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"AUDIO_STREAM_RENDER",body:i,clientTs:(new Date).getTime()},o)}),aA(this,"textQuery",function(e){var r=e.requestId,i=e.body,o=e.onCallbackMsg;n.dhServer&&n.dhServer.sendMessage({requestId:r||ix(),action:"TEXT_QUERY",body:i,clientTs:(new Date).getTime()},o)}),aA(this,"destroy",aI(aT().mark(function e(){var r;return aT().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.dhServer&&n.dhServer.closeSocket();case 2:n.rtcServer&&n.rtcServer.closeRtc(),function(){var e=document.getElementById(c1);e&&e.parentNode&&e.parentNode.removeChild(e)}(),null==(r=n.recordController)||r.destroy(),n.dhServer=null,n.rtcServer=null;case 7:case"end":return e.stop()}},e)}))),aA(this,"pauseHuman",function(){return c4(!1)}),aA(this,"playHuman",function(){return c4(!0)}),aA(this,"muteHuman",function(){return c3(!0)}),aA(this,"unMuteHuman",function(){var e=c3(!1);try{return n.isHuawei?(e.pause(),e.play()):e.paused&&e.play()}catch(e){console.info(e)}});var o=r.isPreOpenSession,s=void 0!==o&&o,a=r.wsUrl,c=r.renderParams,d=r.onDigitalHumanCallback;this.isPreOpenSession=s,this.dhServer=new cF(a||"wss://open.xiling.baidu.com/cloud/digital-human-demonstration"),this.onDigitalHumanCallback=function(e){e.status!==c_.DH_LIB_FULL_STATUS?d&&d(e):(null==c?void 0:c.fullStatus)&&d&&d(e)},s?this.dhServer.createSocket({onDigitalHumanCallback:this.onDigitalHumanCallbackPlus},s):this.init(r)}return ax(e,[{key:"init",value:function(e){var r,i=this,n=e.wrapperId,o=e.token,s=e.appKey,a=e.appId,c=e.connectParams,d=e.renderParams,l=void 0===d?{}:d,u=e.rtcConnectParams,p=e.brtcParams,h=e.rtcServerUrl;if(this.token=o,this.appKey=s,this.appId=a,this.rtcServerUrl=h,this.connectParams=a_({autoChromaKey:(null==l?void 0:l.autoChromaKey)||!1},c),!a&&!s&&!o)throw Error("appId and appKey or token is required");var f=l.closeLog,v=(function(e){var r=e.autoChromaKey,i=void 0!==r&&r,n=e.autoplay;if(document.getElementById(c2))return console.error('DOM with id "'.concat(c2,'" already exists.')),null;var o=document.createElement("div");o.className=c1,o.id=c1,o.style.position="relative";var s=document.createElement("video");if(s.id=c2,s.width=0,s.height=0,s.setAttribute("width","100%"),s.setAttribute("height","100%"),s.setAttribute("data-playing","true"),s.setAttribute("playsinline",""),(void 0===n||n)&&s.setAttribute("autoplay",""),o.appendChild(s),i){var a=document.createElement("canvas");a.id=c0,Object.assign(a.style,{position:"absolute",top:"0",left:"0",height:"100%",width:"100%",zIndex:"1",display:i?"block":"none"}),s.style.visibility="hidden",o.appendChild(a)}return{playerWrapper:o,video:s}}({autoChromaKey:!!l.autoChromaKey||!cP()(l.chromaEffects)})||{}).playerWrapper,m=document.getElementById(n||"");m||console.error("dom with wrapperId is not find"),v&&m&&m.appendChild(v),(r=document.createElement("style")).appendChild(document.createTextNode('\n [id^="videoremote1-"] {\n display: none !important;\n }\n \n video#remotevideo500 {\n width: auto !important;\n height: auto !important;\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n object-fit: cover;\n }\n\n .cloud-brtc-player-wrapper {\n width: inherit !important;\n background-size: cover;\n height: inherit;\n display: flex;\n justify-content: center;\n }\n\n #starling-cutout-canvas {\n object-fit: cover;\n }\n ')),document.head.appendChild(r);var g=a_({remotevideoviewid:n,showvideobps:!1,usingvideo:!1,usingaudio:!(null==c||!c.pullAudioFromRtc),aspublisher:!(null==c||!c.pullAudioFromRtc),autopublish:!(null==c||!c.pullAudioFromRtc),usingdatachannel:!0,autoplaymuted:!1},p);this.rtcServer=new cZ({closeLog:f,videoWrapperId:c2,rtcConfig:g,bizConfig:{},rtcCallback:{onRemoteVideoComing:this.onRemoteVideoComing,onDigitalHumanCallback:this.onDigitalHumanCallback,onLocalStream:this.onLocalStream}}),(!cP()(null==l?void 0:l.chromaEffects)||null!=l&&l.autoChromaKey)&&(this.cutoutInstance=new dn({sourceId:c2,effects:null==l?void 0:l.chromaEffects})),cP()(u)||(this.rtcConnectParams=u,this.rtcServer.openRtc(u)),null!=c&&c.pullAudioFromRtc?this.recordController=null:this.recordController=new ds({pickAudioMode:null==c?void 0:c.pickAudioMode,onAudioData:function(e){1===i.wsReadyState&&i.sendMessage(e,null)},onError:function(e){i.onDigitalHumanCallback&&i.onDigitalHumanCallback({status:c_.DH_LIB_ERROR,content:{type:cT.CONNECT_ERROR,msg:{code:-1,errMsg:e.message}}})}})}},{key:"startRecord",value:function(){var e;null!=(e=this.connectParams)&&e.pullAudioFromRtc?this.rtcServer&&this.rtcServer.muteMicphone(!1):this.recordController&&this.recordController.start()}},{key:"stopRecord",value:function(){var e;null!=(e=this.connectParams)&&e.pullAudioFromRtc?this.rtcServer&&this.rtcServer.muteMicphone(!0):this.recordController&&this.recordController.stop(),this.sendMessage({action:"AUDIO_QUERY_INTERRUPT",requestId:ix(),clientTs:Date.now(),body:""},null)}}]),e}();class dc extends sa{get ready(){return!!this.humanInstance&&!!this.token}constructor(...e){super(...e),this.humanInstance=null,this.requestId=ix(),this.isWSConnected=!1,this.isRtcReady=!1,this.isStreamTextRendering=!1,this.wsClosedCount=0,this.mount=async e=>{e?(this.humanInstance&&this.dispose(),e.id||(e.id=`dh-container-${ix()}`),this.opts.enableDebugMode&&"development"===this.opts.env&&!this.opts.token?this.token=await this.getAccessToken():this.token=this.opts.token,this.humanInstance=new da({token:this.token,wrapperId:e.id,connectParams:this.buildConnectParams(),renderParams:this.buildRenderParams(),onDigitalHumanCallback:this.onDigitalHumanCallback}),this.humanInstance.createServer()):this.errorManager.handleError(new iu("容器元素不能为空"))},this.bindEvents=()=>this,this.unbindEvents=()=>this,this.renderPlainText=e=>{var r;if(!this.ready)return this;let i=this.runSsmlHandlers(e);return this.refreshRequestId(),null==(r=this.humanInstance)||r.textRender({requestId:this.requestId,body:i,onCallbackMsg:this.handleTextRenderCallback}),this},this.renderStreamText=(e,r)=>{var i;if(!this.ready)return this;let n=this.runSsmlHandlers(e),o=!this.isStreamTextRendering;return o&&(this.refreshRequestId(),this.isStreamTextRendering=!0,this.latencyStartMap.set(this.requestId,performance.now())),null==(i=this.humanInstance)||i.textStreamRender({requestId:this.requestId,body:JSON.stringify({first:o,last:null!=r&&r,text:n}),onCallbackMsg:this.handleTextRenderCallback}),r&&(this.isStreamTextRendering=!1),this},this.interrupt=()=>{var e;if(!this.ready)return this;let r=this.requestId;return null==(e=this.humanInstance)||e.interrupt().catch(e=>{e instanceof Error?this.errorManager.handleError(new ih(`打断当前数字员工播报失败:${e.message}`,{requestId:r})):"string"==typeof e&&this.errorManager.handleError(new ih(`打断当前数字员工播报失败:${e}`,{requestId:r}))}).finally(()=>{this.onRenderFinished(r)}),this},this.sendSilenceMessage=()=>{var e;if(!this.ready)return this;let r=ix();return null==(e=this.humanInstance)||e.textRender({requestId:r,body:"",onCallbackMsg:iA}),this.emitter.emit("send_silence_message",{requestId:r}).catch(iA),this},this.dispose=()=>{var e;return null==(e=this.humanInstance)||e.destroy().catch(iA),this.ssmlHandlers=[],this.isWSConnected=!1,this.isRtcReady=!1,this.wsClosedCount=0,this.isStreamTextRendering=!1,this.emitter.clearListeners(),this.latencyStartMap.clear(),this.humanInstance=null,this},this.GetRequestId=()=>this.requestId,this.checkIsReady=()=>{let e=this.isWSConnected&&this.isRtcReady;return e&&this.emitter.emit("ready").catch(iA),e},this.cancelMute=async()=>{var e;await (null==(e=this.humanInstance)?void 0:e.unMuteHuman()),this._isMuted=!1},this.muteHuman=()=>{var e;null==(e=this.humanInstance)||e.muteHuman(),this._isMuted=!0},this.play=async()=>{var e;await (null==(e=this.humanInstance)?void 0:e.playHuman())},this.pause=()=>{var e;null==(e=this.humanInstance)||e.pauseHuman()},this.buildConnectParams=()=>{var e,r,i,n,o;return{initMode:"noAudio",mode:"crop",figureId:this.opts.figureId,resolutionWidth:null!=(e=this.opts.figureResolutionWidth)?e:1920,resolutionHeight:null!=(r=this.opts.figureResolutionHeight)?r:1080,ttsPer:this.opts.ttsPer,ttsPitch:5,ttsSpeed:null!=(i=this.opts.speechSpeed)?i:6,ttsVolume:5,inactiveDisconnectSec:null!=(n=this.opts.timeoutSec)?n:130,preAlertSec:null!=(o=this.opts.disconnectAlertSec)?o:10,ttsSample:this.opts.ttsSample,ttsModel:this.opts.ttsModel,minSplitLen:this.opts.minSplitLen,positionV2:JSON.stringify(this.opts.position),ttsLang:iV(this.opts.lang)}},this.buildRenderParams=()=>{var e,r;return{autoChromaKey:null!=(e=this.opts.autoChromaKey)&&e,closeLog:!(null!=(r=this.opts.enableDebugMode)&&r),fullStatus:!1}},this.refreshRequestId=()=>{this.requestId=ix()},this.onRenderFinished=e=>{if(e!==this.requestId){this.isRendering&&this.errorManager.handleError(new ih(`[DigitalHuman] Received FINISHED signal
|
|
284
284
|
for ID ${e}, but current ID is ${this.requestId}.
|
|
285
285
|
Ignored.`));return}this._isRendering=!1,this.isStreamTextRendering=!1,this.emitter.emit("is_rendering_change",!1).catch(iA),this.refreshRequestId(),this.emitter.emit("render_finished",{requestId:e}).catch(iA)},this.onDigitalHumanCallback=e=>{let{status:r,content:i}=e;switch(r){case"DH_LIB_INIT":this.opts.enableDebugMode&&console.log("数字员工初始化中...");break;case"DH_LIB_WS_SUCCESS":this.isWSConnected=!0,this.wsClosedCount=0,this.checkIsReady();break;case"DH_LIB_OPEN":this.isRtcReady=!0,this.checkIsReady();break;case"DH_LIB_CLOSE":this.isWSConnected=!1,this.wsClosedCount++,this.wsClosedCount>=3&&(this.emitter.emit("reconnect_failed").catch(iA),this.errorManager.handleError(new iv("检测到 Websocket 链接异常断开,如长时间无法恢复,请联系技术支持。")));break;case"DH_LIB_ERROR":i&&this.handleError(i);break;case"DH_LIB_WARNING":this.opts.enableDebugMode&&console.warn("数字人警告:",i);break;case"DH_LIB_STATUS":i&&this.handleStatusMessage(i)}},this.handleStatusMessage=e=>{if(e&&"object"==typeof e){let{type:r}=e;switch(r){case"LOCAL_VIDEO_MUTED":this._isMuted=!0;break;case"TIMEOUT_EXIT":this.emitter.emit("timeout",{requestId:this.requestId}).catch(iA);break;case"DISCONNECT_ALERT":this.emitter.emit("disconnect_alert",{requestId:this.requestId}).catch(iA)}}},this.handleTextRenderCallback=e=>{let r=e.requestId;switch(e.action){case"RENDER_START":this._isRendering=!0,this.emitter.emit("is_rendering_change",!0).catch(iA);break;case"FINISHED":case"RENDER_INTERRUPTED":this.onRenderFinished(r);break;case"DOWN_SUBTITLE":if(e.body){let i,n=JSON.parse(e.body),o=this.latencyStartMap.get(r);void 0!==o&&(i=performance.now()-o,this.latencyStartMap.clear()),this.emitter.emit("render_subtitle",{subtitle:n,requestId:r,latency:i}).catch(iA)}break;case"RENDER_ERROR":this.onRenderFinished(r),this.errorManager.handleError(new ih("数字员工文本驱动渲染失败,请确认配置后重试",{requestId:r,context:{code:e.code,body:e.body}}));break;case"TEXT_RENDER":case"TEXT_STREAM_RENDER":0!==e.code&&(this.onRenderFinished(r),this.errorManager.handleError(new ih("数字员工文本驱动渲染失败,请确认配置后重试",{requestId:r,context:{code:e.code,body:e.body}})))}},this.handleError=e=>{if(!e||"object"!=typeof e)return;let{type:r,msg:i}=e;switch(r){case"CONNECT_ERROR":{let e=null==i?void 0:i.code;1004===e||3001===e?(this.emitter.emit("reach_session_limit",{requestId:this.requestId}).catch(iA),this.errorManager.handleError(new iy("资源配额已用尽,请联系技术支持申请扩容",{context:{code:e}}))):[1002,1003,1005,1009].includes(e)?this.errorManager.handleError(new ig((null==i?void 0:i.errMsg)||"认证失败",{context:{code:e}})):this.errorManager.handleError(new iv((null==i?void 0:i.errMsg)||"连接失败",{context:{code:e}}));break}case"RTC_ERROR":this.errorManager.handleError(new im("RTC 房间连接失败,请检查网络后重试",{context:{msg:i}}));break;case"LOCAL_VIDEO_ERROR":this.errorManager.handleError(new ih("视频播放受限,请检查浏览器权限",{context:{msg:i}}))}}}}function dd(e,r){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,r)}dc=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),eS()],dc);class dl{static #z=this.DEFAULT_AUDIO_FEATURES={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0};constructor(e={}){var r,i,n;this.mediaStream=null,this.checkFeatureSupport=()=>{if(!navigator.mediaDevices||!navigator.mediaDevices.getSupportedConstraints)return{supported:[],unsupported:Object.keys(this.options.audioFeatures),hasUnsupportedFeatures:!0};let e=navigator.mediaDevices.getSupportedConstraints(),r=[],i=[];for(let[n,o]of Object.entries(this.options.audioFeatures))null!=o&&(e[n]?r.push(n):i.push(n));return{supported:r,unsupported:i,hasUnsupportedFeatures:i.length>0}},this.getUserMedia=async()=>{let e,r=this.checkFeatureSupport();this.logUnsupportedFeaturesWarning(r.unsupported);let i=this.buildAudioConstraints(r);if(0===Object.keys(i).length)if(this.options.enableFallback)console.warn("浏览器不支持任何音频处理特性,使用基础约束 {audio: true}"),e={audio:!0};else throw Error("浏览器不支持任何音频处理特性,且已禁用降级策略");else e={audio:i};try{this.mediaStream=await navigator.mediaDevices.getUserMedia(e)}catch(r){let e=r instanceof Error?r.message:String(r);throw Error(`启用麦克风失败: ${e}`)}let n=Object.keys(i);return this.logEnabledFeatures(n),{stream:this.mediaStream,appliedConstraints:i,enabledFeatures:n,unsupportedFeatures:r.unsupported}},this.getStream=()=>this.mediaStream,this.mute=e=>{var r;return null==(r=this.mediaStream)||r.getAudioTracks().forEach(r=>{r.enabled=!e}),this},this.cleanup=()=>{this.mediaStream&&(this.mediaStream.getTracks().forEach(e=>{e.stop()}),this.mediaStream=null)},this.hasActiveStream=()=>{if(!this.mediaStream)return!1;let e=this.mediaStream.getAudioTracks();return e.length>0&&e.some(e=>"live"===e.readyState)},this.buildAudioConstraints=e=>{let r={},{audioFeatures:i}=this.options;for(let n of e.supported){let e=i[n];null!=e&&(r[n]=e)}return r},this.logUnsupportedFeaturesWarning=e=>{if(!this.options.warnOnUnsupportedFeatures||0===e.length)return;let r={echoCancellation:"回声消除(echoCancellation)",noiseSuppression:"降噪(noiseSuppression)",autoGainControl:"自动增益(autoGainControl)",sampleRate:"采样率(sampleRate)",sampleSize:"采样大小(sampleSize)",channelCount:"通道数(channelCount)",deviceId:"设备ID(deviceId)"},i=e.map(e=>r[e]||e);console.warn(`当前浏览器不支持以下音频处理特性: ${i.join("、")}。这可能影响语音识别准确率,建议在安静环境使用或更换浏览器。`)},this.logEnabledFeatures=e=>{if(!this.options.logEnabledFeatures||0===e.length)return;let r={echoCancellation:"回声消除",noiseSuppression:"降噪",autoGainControl:"自动增益",sampleRate:"采样率",sampleSize:"采样大小",channelCount:"通道数",deviceId:"设备ID"},i=e.map(e=>r[e]||e);console.log(`已启用音频处理特性: ${i.join("、")}`)},this.options={audioFeatures:{...dl.DEFAULT_AUDIO_FEATURES,...e.audioFeatures},warnOnUnsupportedFeatures:null==(r=e.warnOnUnsupportedFeatures)||r,logEnabledFeatures:null==(i=e.logEnabledFeatures)||i,enableFallback:null==(n=e.enableFallback)||n}}}dl=function(e,r,i,n){var o,s=arguments.length,a=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,r,i,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(a=(s<3?o(a):s>3?o(r,i,a):o(r,i))||a);return s>3&&a&&Object.defineProperty(r,i,a),a}([ey(),dd("design:type",Function),dd("design:paramtypes",["undefined"==typeof IMediaStreamManagerOptions?Object:IMediaStreamManagerOptions])],dl),"undefined"==typeof AbortSignal?console.warn("AbortSignal is not defined in this environment. The polyfill will not be installed."):(nK("any",nW.abortSignalAny),nK("timeout",nV.abortSignalTimeout),nK("abort",nG.abortSignalAbort));let du=e=>{var r,i,n;let o,s=new t0({defaultScope:"Singleton"});e.asr?o=e.asr:void 0!==e.asrVad||void 0!==e.lang?(o={provider:"baidu",config:{asrVad:e.asrVad,lang:e.lang}},e.enableDebugMode&&console.warn("[createAaaSPilotKit] 检测到使用已弃用的 asrVad/lang 字段,请迁移到新的 asr 配置格式。参考文档:https://aaas-pilot-kit-docs.cloud.baidu.com/docs/vanilla/options")):o={provider:"baidu",config:{asrVad:600,lang:iU.CHINESE}};let a="baidu"===o.provider&&null!=(r=o.config.lang)?r:iU.CHINESE,c="baidu"===o.provider&&null!=(i=o.config.asrVad)?i:600,d={...iG,...e,asr:o,lang:a,asrVad:c,hotWordReplacementRules:[...iF,...null!=(n=e.hotWordReplacementRules)?n:[]]};s.bind(ru.IOptions).toConstantValue(d),s.bind(ru.MediaStreamManager).toDynamicValue(()=>{var e,r;let i=null==(r=d.asr)||null==(e=r.config)?void 0:e.audioConstraints;return new dl({audioFeatures:i||{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},warnOnUnsupportedFeatures:!0,logEnabledFeatures:!0,enableFallback:!0})}).inTransientScope(),s.bind(ru.ErrorManager).to(iP),s.bind(ru.CommonRequest).to(rK);let{agentConfig:l,agentService:u,enableDebugMode:p}=d,h=!!(null==l?void 0:l.robotId),f=!!(null==l?void 0:l.token),v=!!u;if(v&&l&&p&&console.warn("[createAaaSPilotKit] agentService 已提供,agentConfig 配置将被忽略。"),!v&&!h&&!f)throw Error("[createAaaSPilotKit] 未检测到有效的 agent 配置,请至少提供 agentService 或 agentConfig 中的 robotId/token。");u?(Reflect.hasOwnMetadata("@inversifyjs/core/classIsInjectableFlagReflectKey",u)||(es(eS(),u),es(ey(),u)),s.bind(ru.AgentService).to(u)):f?s.bind(ru.AgentService).to(sT):h&&s.bind(ru.AgentService).to(s_),"azure"===d.asr.provider?(s.bind(ru.SignalingService).to(sx),s.bind(ru.ASRService).to(aw)):(s.bind(ru.SignalingService).to(sO),s.bind(ru.ASRService).to(aS));let{rendererMode:m}=d;switch(m){case"cloud":default:s.bind(ru.DigitalHumanService).to(sy);break;case"cloud-native":s.bind(ru.DigitalHumanService).to(dc)}return s.bind(ru.ConversationService).to(nq),s.bind(ru.AaaSPilotKitController).to(sC),s.get(ru.AaaSPilotKitController)};function dp(e,r){let{onUpdate:i,onComplete:n}=r;if(!e)return()=>{};if(e.isCompleted())return null==i||i(e),null==n||n(e),()=>{};let o=e.emitter.on("update",e=>{let r=e.response;null==i||i(r),r.isCompleted()&&(null==n||n(r),o())});return o}let dh={EAST_ASIA:"eastasia",SOUTHEAST_ASIA:"southeastasia",JAPAN_EAST:"japaneast",JAPAN_WEST:"japanwest",KOREA_CENTRAL:"koreacentral",AUSTRALIA_EAST:"australiaeast",CENTRAL_INDIA:"centralindia",EAST_US:"eastus",EAST_US_2:"eastus2",WEST_US:"westus",WEST_US_2:"westus2",WEST_US_3:"westus3",CENTRAL_US:"centralus",CANADA_CENTRAL:"canadacentral",NORTH_EUROPE:"northeurope",WEST_EUROPE:"westeurope",UK_SOUTH:"uksouth",FRANCE_CENTRAL:"francecentral",GERMANY_WEST_CENTRAL:"germanywestcentral",SWITZERLAND_NORTH:"switzerlandnorth",NORWAY_EAST:"norwayeast",BRAZIL_SOUTH:"brazilsouth",SOUTH_AFRICA_NORTH:"southafricanorth",UAE_NORTH:"uaenorth"},df={CHINESE_SIMPLIFIED_CN:"zh-CN",CHINESE_TRADITIONAL_TW:"zh-TW",CHINESE_TRADITIONAL_HK:"zh-HK",ENGLISH_US:"en-US",ENGLISH_UK:"en-GB",ENGLISH_AU:"en-AU",ENGLISH_CA:"en-CA",ENGLISH_IN:"en-IN",ENGLISH_NZ:"en-NZ",JAPANESE_JP:"ja-JP",KOREAN_KR:"ko-KR",VIETNAMESE_VN:"vi-VN",THAI_TH:"th-TH",INDONESIAN_ID:"id-ID",MALAY_MY:"ms-MY",FILIPINO_PH:"fil-PH",HINDI_IN:"hi-IN",TAMIL_IN:"ta-IN",TELUGU_IN:"te-IN",GERMAN_DE:"de-DE",FRENCH_FR:"fr-FR",SPANISH_ES:"es-ES",SPANISH_MX:"es-MX",ITALIAN_IT:"it-IT",PORTUGUESE_BR:"pt-BR",PORTUGUESE_PT:"pt-PT",RUSSIAN_RU:"ru-RU",DUTCH_NL:"nl-NL",POLISH_PL:"pl-PL",SWEDISH_SE:"sv-SE",NORWEGIAN_NO:"nb-NO",DANISH_DK:"da-DK",FINNISH_FI:"fi-FI",ARABIC_SA:"ar-SA",ARABIC_AE:"ar-AE",TURKISH_TR:"tr-TR",HEBREW_IL:"he-IL"},dv={[dh.SOUTHEAST_ASIA]:{displayName:"东南亚(新加坡)",displayNameEn:"Southeast Asia (Singapore)",location:"Singapore",recommendedFor:["东南亚","印度","澳大利亚"]},[dh.EAST_ASIA]:{displayName:"东亚(香港)",displayNameEn:"East Asia (Hong Kong)",location:"Hong Kong",recommendedFor:["中国香港","华南地区"]},[dh.JAPAN_EAST]:{displayName:"日本东部(东京)",displayNameEn:"Japan East (Tokyo)",location:"Tokyo",recommendedFor:["日本","东亚地区"]},[dh.KOREA_CENTRAL]:{displayName:"韩国中部(首尔)",displayNameEn:"Korea Central (Seoul)",location:"Seoul",recommendedFor:["韩国","东亚地区"]}},dm={[df.CHINESE_SIMPLIFIED_CN]:{displayName:"中文(简体)",displayNameEn:"Chinese (Simplified)",nativeName:"中文(简体)"},[df.ENGLISH_US]:{displayName:"英语(美国)",displayNameEn:"English (United States)",nativeName:"English (United States)"},[df.JAPANESE_JP]:{displayName:"日语",displayNameEn:"Japanese",nativeName:"日本語"},[df.KOREAN_KR]:{displayName:"韩语",displayNameEn:"Korean",nativeName:"한국어"}},dg=e=>Object.values(dh).includes(e),dy=e=>Object.values(df).includes(e),db=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh",i=dv[e];return i?"zh"===r?i.displayName:i.displayNameEn:e},dS=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh",i=dm[e];if(!i)return e;switch(r){case"zh":return i.displayName;case"en":return i.displayNameEn;case"native":return i.nativeName;default:return e}};export{nz as AIWorkerConversationBean,sC as AaaSPilotKitController,o6 as AudioDeviceDetector,o4 as AudioDeviceError,df as AzureSpeechLanguage,dh as AzureSpeechRegion,iL as BaseAgentService,iJ as ClientConversationBean,iK as ConversationBean,nq as ConversationService,iG as DEFAULT_OPTIONS,iU as Language,dl as MediaStreamManager,o5 as checkAudioDevice,du as createAaaSPilotKit,o8 as getErrorMessage,dS as getLanguageDisplayName,db as getRegionDisplayName,dy as isValidAzureLanguage,dg as isValidAzureRegion,dp as subscribeAgentResponse};
|