crim-wasm-sdk 2.8.0

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.
@@ -0,0 +1 @@
1
+ function e(e){return(t,n,s)=>{if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope)throw new Error("`startWorkerFromMain` should only be called from the main thread");if("undefined"==typeof Worker)throw new Error("Web workers not available. sqlite3 requires web workers to work.");e().then((({default:e})=>{let i=new e;i.postMessage({type:"init",buffers:[t,n]}),i.addEventListener("message",(e=>{s.postMessage(e.data)}))}))}}(()=>{const e=()=>{const e=new Error("not implemented");return e.code="ENOSYS",e};if(!globalThis.fs){let t="";globalThis.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1,O_DIRECTORY:-1},writeSync(e,s){t+=n.decode(s);const i=t.lastIndexOf("\n");return-1!=i&&(console.log(t.substring(0,i)),t=t.substring(i+1)),s.length},write(t,n,s,i,o,r){if(0!==s||i!==n.length||null!==o)return void r(e());r(null,this.writeSync(t,n))},chmod(t,n,s){s(e())},chown(t,n,s,i){i(e())},close(t,n){n(e())},fchmod(t,n,s){s(e())},fchown(t,n,s,i){i(e())},fstat(t,n){n(e())},fsync(e,t){t(null)},ftruncate(t,n,s){s(e())},lchown(t,n,s,i){i(e())},link(t,n,s){s(e())},lstat(t,n){n(e())},mkdir(t,n,s){s(e())},open(t,n,s,i){i(e())},read(t,n,s,i,o,r){r(e())},readdir(t,n){n(e())},readlink(t,n){n(e())},rename(t,n,s){s(e())},rmdir(t,n){n(e())},stat(t,n){n(e())},symlink(t,n,s){s(e())},truncate(t,n,s){s(e())},unlink(t,n){n(e())},utimes(t,n,s,i){i(e())}}}if(globalThis.process||(globalThis.process={getuid:()=>-1,getgid:()=>-1,geteuid:()=>-1,getegid:()=>-1,getgroups(){throw e()},pid:-1,ppid:-1,umask(){throw e()},cwd(){throw e()},chdir(){throw e()}}),globalThis.path||(globalThis.path={resolve:(...e)=>e.join("/")}),!globalThis.crypto)throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");if(!globalThis.performance)throw new Error("globalThis.performance is not available, polyfill required (performance.now only)");if(!globalThis.TextEncoder)throw new Error("globalThis.TextEncoder is not available, polyfill required");if(!globalThis.TextDecoder)throw new Error("globalThis.TextDecoder is not available, polyfill required");const t=new TextEncoder("utf-8"),n=new TextDecoder("utf-8");globalThis.Go=class{constructor(){this.argv=["js"],this.env={},this.exit=e=>{0!==e&&console.warn("exit code:",e)},this._exitPromise=new Promise((e=>{this._resolveExitPromise=e})),this._pendingEvent=null,this._scheduledTimeouts=new Map,this._nextCallbackTimeoutID=1;const e=(e,t)=>{this.mem.setUint32(e+0,t,!0),this.mem.setUint32(e+4,Math.floor(t/4294967296),!0)},s=e=>this.mem.getUint32(e+0,!0)+4294967296*this.mem.getInt32(e+4,!0),i=e=>{const t=this.mem.getFloat64(e,!0);if(0===t)return;if(!isNaN(t))return t;const n=this.mem.getUint32(e,!0);return this._values[n]},o=(e,t)=>{const n=2146959360;if("number"==typeof t&&0!==t)return isNaN(t)?(this.mem.setUint32(e+4,n,!0),void this.mem.setUint32(e,0,!0)):void this.mem.setFloat64(e,t,!0);if(void 0===t)return void this.mem.setFloat64(e,0,!0);let s=this._ids.get(t);void 0===s&&(s=this._idPool.pop(),void 0===s&&(s=this._values.length),this._values[s]=t,this._goRefCounts[s]=0,this._ids.set(t,s)),this._goRefCounts[s]++;let i=0;switch(typeof t){case"object":null!==t&&(i=1);break;case"string":i=2;break;case"symbol":i=3;break;case"function":i=4}this.mem.setUint32(e+4,n|i,!0),this.mem.setUint32(e,s,!0)},r=e=>{const t=s(e+0),n=s(e+8);return new Uint8Array(this._inst.exports.mem.buffer,t,n)},a=e=>{const t=s(e+0),n=s(e+8),o=new Array(n);for(let e=0;e<n;e++)o[e]=i(t+8*e);return o},d=e=>{const t=s(e+0),i=s(e+8);return n.decode(new DataView(this._inst.exports.mem.buffer,t,i))},l=Date.now()-performance.now();this.importObject={_gotest:{add:(e,t)=>e+t,callExport:(e,t)=>(this._inst.exports.testExport0(),this._inst.exports.testExport(e,t))},gojs:{"runtime.wasmExit":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);this.exited=!0,delete this._inst,delete this._values,delete this._goRefCounts,delete this._ids,delete this._idPool,this.exit(t)},"runtime.wasmWrite":e=>{const t=s((e>>>=0)+8),n=s(e+16),i=this.mem.getInt32(e+24,!0);fs.writeSync(t,new Uint8Array(this._inst.exports.mem.buffer,n,i))},"runtime.resetMemoryDataView":e=>{this.mem=new DataView(this._inst.exports.mem.buffer)},"runtime.nanotime1":t=>{e((t>>>=0)+8,1e6*(l+performance.now()))},"runtime.walltime":t=>{t>>>=0;const n=(new Date).getTime();e(t+8,n/1e3),this.mem.setInt32(t+16,n%1e3*1e6,!0)},"runtime.scheduleTimeoutEvent":e=>{e>>>=0;const t=this._nextCallbackTimeoutID;this._nextCallbackTimeoutID++,this._scheduledTimeouts.set(t,setTimeout((()=>{for(this._resume();this._scheduledTimeouts.has(t);)console.warn("scheduleTimeoutEvent: missed timeout event"),this._resume()}),s(e+8))),this.mem.setInt32(e+16,t,!0)},"runtime.clearTimeoutEvent":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);clearTimeout(this._scheduledTimeouts.get(t)),this._scheduledTimeouts.delete(t)},"runtime.getRandomData":e=>{e>>>=0,crypto.getRandomValues(r(e+8))},"syscall/js.finalizeRef":e=>{e>>>=0;const t=this.mem.getUint32(e+8,!0);if(this._goRefCounts[t]--,0===this._goRefCounts[t]){const e=this._values[t];this._values[t]=null,this._ids.delete(e),this._idPool.push(t)}},"syscall/js.stringVal":e=>{o((e>>>=0)+24,d(e+8))},"syscall/js.valueGet":e=>{e>>>=0;const t=Reflect.get(i(e+8),d(e+16));e=this._inst.exports.getsp()>>>0,o(e+32,t)},"syscall/js.valueSet":e=>{e>>>=0,Reflect.set(i(e+8),d(e+16),i(e+32))},"syscall/js.valueDelete":e=>{e>>>=0,Reflect.deleteProperty(i(e+8),d(e+16))},"syscall/js.valueIndex":e=>{o((e>>>=0)+24,Reflect.get(i(e+8),s(e+16)))},"syscall/js.valueSetIndex":e=>{e>>>=0,Reflect.set(i(e+8),s(e+16),i(e+24))},"syscall/js.valueCall":e=>{e>>>=0;try{const t=i(e+8),n=Reflect.get(t,d(e+16)),s=a(e+32),r=Reflect.apply(n,t,s);e=this._inst.exports.getsp()>>>0,o(e+56,r),this.mem.setUint8(e+64,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+56,t),this.mem.setUint8(e+64,0)}},"syscall/js.valueInvoke":e=>{e>>>=0;try{const t=i(e+8),n=a(e+16),s=Reflect.apply(t,void 0,n);e=this._inst.exports.getsp()>>>0,o(e+40,s),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueNew":e=>{e>>>=0;try{const t=i(e+8),n=a(e+16),s=Reflect.construct(t,n);e=this._inst.exports.getsp()>>>0,o(e+40,s),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueLength":t=>{e((t>>>=0)+16,parseInt(i(t+8).length))},"syscall/js.valuePrepareString":n=>{n>>>=0;const s=t.encode(String(i(n+8)));o(n+16,s),e(n+24,s.length)},"syscall/js.valueLoadString":e=>{const t=i((e>>>=0)+8);r(e+16).set(t)},"syscall/js.valueInstanceOf":e=>{e>>>=0,this.mem.setUint8(e+24,i(e+8)instanceof i(e+16)?1:0)},"syscall/js.copyBytesToGo":t=>{const n=r((t>>>=0)+8),s=i(t+32);if(!(s instanceof Uint8Array||s instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);const o=s.subarray(0,n.length);n.set(o),e(t+40,o.length),this.mem.setUint8(t+48,1)},"syscall/js.copyBytesToJS":t=>{const n=i((t>>>=0)+8),s=r(t+16);if(!(n instanceof Uint8Array||n instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);const o=s.subarray(0,n.length);n.set(o),e(t+40,o.length),this.mem.setUint8(t+48,1)},debug:e=>{console.log(e)}}}}async run(e){if(!(e instanceof WebAssembly.Instance))throw new Error("Go.run: WebAssembly.Instance expected");this._inst=e,this.mem=new DataView(this._inst.exports.mem.buffer),this._values=[NaN,0,null,!0,!1,globalThis,this],this._goRefCounts=new Array(this._values.length).fill(1/0),this._ids=new Map([[0,1],[null,2],[!0,3],[!1,4],[globalThis,5],[this,6]]),this._idPool=[],this.exited=!1;let n=4096;const s=e=>{const s=n,i=t.encode(e+"\0");return new Uint8Array(this.mem.buffer,n,i.length).set(i),n+=i.length,n%8!=0&&(n+=8-n%8),s},i=this.argv.length,o=[];this.argv.forEach((e=>{o.push(s(e))})),o.push(0);Object.keys(this.env).sort().forEach((e=>{o.push(s(`${e}=${this.env[e]}`))})),o.push(0);const r=n;o.forEach((e=>{this.mem.setUint32(n,e,!0),this.mem.setUint32(n+4,0,!0),n+=8}));if(n>=12288)throw new Error("total length of command line and environment variables exceeds limit");this._inst.exports.run(i,r),this.exited&&this._resolveExitPromise(),await this._exitPromise}_resume(){if(this.exited)throw new Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(e){const t=this;return function(){const n={id:e,this:this,args:arguments};return t._pendingEvent=n,t._resume(),n.result}}}})();const t=function(t,n){const s=e(n);return e=>{e.addEventListener("message",(n=>{if(n.data.type===t)s(n.data.argBuffer,n.data.resultBuffer,e)}))}}("__absurd:spawn-idb-worker",(()=>Promise.resolve().then((function(){return we}))));var n=Object.defineProperty,s=Object.defineProperties,i=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,d=(e,t,s)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,l=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&d(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&d(e,n,t[n]);return e},c=(e,t)=>s(e,i(t)),g=(e,t,n)=>(d(e,"symbol"!=typeof t?t+"":t,n),n);const u={CONNECT_TIMEOUT:{code:-32300,message:"Connect timeout"},APPLICATION_ERROR:{code:-32500,message:"Application error"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"}};class p{constructor(e){g(this,"_currentEndpoint"),g(this,"_targetEndpoint"),g(this,"_events"),g(this,"_originOnmessage"),g(this,"_receiveMessage"),g(this,"onerror",null),g(this,"config"),g(this,"sendAdapter"),g(this,"receiveAdapter"),this._events={},this._currentEndpoint=e.currentEndpoint,this._targetEndpoint=e.targetEndpoint,this._originOnmessage=null,this.config=e.config,this.receiveAdapter=e.receiveAdapter,this.sendAdapter=e.sendAdapter;const t=e=>{const t=this.receiveAdapter?this.receiveAdapter(e):e.data;if(t&&"string"==typeof t.event){const e=this._events[t.event]||[];if(e.length)return void e.forEach((e=>{e(...t.args||[])}));this.onerror&&this.onerror(c(l({},u.METHOD_NOT_FOUND),{data:t}))}};if(this._currentEndpoint.addEventListener)return"start"in this._currentEndpoint&&this._currentEndpoint.start&&this._currentEndpoint.start(),this._currentEndpoint.addEventListener("message",t,!1),void(this._receiveMessage=t);this._originOnmessage=this._currentEndpoint.onmessage,this._currentEndpoint.onmessage=e=>{this._originOnmessage&&this._originOnmessage(e),t(e)},this._receiveMessage=this._currentEndpoint.onmessage}emit(e,...t){const n={event:e,args:t},s=this.sendAdapter?this.sendAdapter(n,this._targetEndpoint):{data:n},i=s.data||n,o=this.config?"function"==typeof this.config?this.config(i,this._targetEndpoint)||{}:this.config||{}:{};Array.isArray(s.transfer)&&s.transfer.length&&(o.transfer=s.transfer),this._targetEndpoint.postMessage(i,o)}on(e,t){this._events[e]||(this._events[e]=[]),this._events[e].push(t)}off(e,t){if(!this._events[e])return;if(!t)return void(this._events[e]=[]);const n=this._events[e]||[];this._events[e]=n.filter((e=>e!==t))}destroy(){if(this._currentEndpoint.removeEventListener)this._currentEndpoint.removeEventListener("message",this._receiveMessage,!1);else try{this._currentEndpoint.onmessage=this._originOnmessage}catch(e){console.warn(e)}}}const h=class{constructor(e){g(this,"_event"),g(this,"_methods",{}),g(this,"_timeout",0),g(this,"_$connect",null),this._event=e.event,this._timeout=e.timeout||0,e.methods&&Object.entries(e.methods).forEach((([e,t])=>{this.registerMethod(e,t)})),this._event.onerror=e=>{const{code:t,message:n,data:s}=e;if(s.event&&Array.isArray(s.args)&&s.args.length){const e=s.args[0],i=this._getAckEventName(e.method),o={jsonrpc:"2.0",id:null==e?void 0:e.id,error:{code:t,message:n,data:e}};this._event.emit(i,o)}else console.error(e)},this.connect()}static uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}_getSynEventName(e){return`${h.EVENT.SYN_SIGN}${e}`}_getAckEventName(e){return`${h.EVENT.ACK_SIGN}${e}`}connect(e){return this._$connect||(this._$connect=new Promise(((t,n)=>{const s=e||this._timeout;let i;s&&(i=setTimeout((()=>{const e=c(l({},u.TIMEOUT),{data:{timeout:s}});n(e)}),s));const o=h.EVENT.CONNECT,r=this._getAckEventName(o),a=this._getSynEventName(o),d=()=>{clearTimeout(i),t()};this._event.on(r,d);this._event.on(a,(()=>{this._event.emit(r),d()})),this._event.emit(a)}))),this._$connect}registerMethod(e,t){if(this._methods[e])throw new Error(`${e} already registered`);this._methods[e]=t;const n=this._getSynEventName(e);this._event.on(n,(n=>{const s=this._getAckEventName(e);n.id?Promise.resolve(t(...n.params)).then((e=>{const t={jsonrpc:"2.0",result:e,id:n.id};this._event.emit(s,t)})).catch((e=>{const t={jsonrpc:"2.0",id:n.id,error:{code:(null==e?void 0:e.code)||u.APPLICATION_ERROR.code,message:(null==e?void 0:e.message)||u.APPLICATION_ERROR.message,data:null}};this._event.emit(s,t)})):t(...n.params)}))}removeMethod(e){this._methods[e]||delete this._methods[e];const t=this._getSynEventName(e);this._event.off(t)}invoke(e,...t){return new Promise(((n,s)=>{const i=t[t.length-1],o=i&&"object"==typeof i&&(Reflect.has(i,"isNotify")||Reflect.has(i,"timeout")),r=o?i:{isNotify:!1,timeout:0},a=o?t.slice(0,-1):t,d=this._getSynEventName(e),g=h.uuid(),p={jsonrpc:"2.0",method:e,params:a,id:g};if(this._event.emit(d,p),r.isNotify)n(void 0);else{const t=this._getAckEventName(e),i=r.timeout||this._timeout;let o;i&&(o=setTimeout((()=>{const e=c(l({},u.CONNECT_TIMEOUT),{data:{timeout:i}});s(e)}),i));const a=e=>{e.id===g&&(clearTimeout(o),this._event.off(t,a),e.error?s(e.error):n(e.result))};this._event.on(t,a)}}))}destroy(){Object.entries(this._methods).forEach((([e])=>{const t=this._getSynEventName(e);this._event.off(t)}));const e=this._getAckEventName(h.EVENT.CONNECT),t=this._getSynEventName(h.EVENT.CONNECT);this._event.off(t),this._event.off(e),this._event.destroy&&this._event.destroy()}};let m=h;g(m,"CODES",u),g(m,"EVENT",{SYN_SIGN:"syn:",ACK_SIGN:"ack:",CONNECT:"__rpc_connect_event",SYNC_METHODS:"__rpc_sync_methods_event"});const w={ErrorInit:10001,ErrorNoRecord:10002,ErrorDBTimeout:10003};var G;let y,M;!function(e){e.Login="Login",e.OnConnectFailed="OnConnectFailed",e.OnConnectSuccess="OnConnectSuccess",e.OnConnecting="OnConnecting",e.OnKickedOffline="OnKickedOffline",e.OnSelfInfoUpdated="OnSelfInfoUpdated",e.OnUserTokenExpired="OnUserTokenExpired",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnProgress="OnProgress",e.OnMsgDeleted="OnMsgDeleted",e.OnDeleteUserAllMsgsInConv="OnDeleteUserAllMsgsInConv",e.OnRecvNewMsg="OnRecvNewMsg",e.OnRecvNewMsgs="OnRecvNewMsgs",e.OnMsgModified="OnMsgModified",e.OnChangedPinnedMsg="OnChangedPinnedMsg",e.OnRecvOnlineOnlyMsg="OnRecvOnlineOnlyMsg",e.OnRecvOfflineNewMsg="onRecvOfflineNewMsg",e.OnRecvOnlineOnlyMsgs="OnRecvOnlineOnlyMsgs",e.OnRecvOfflineNewMsgs="onRecvOfflineNewMsgs",e.OnRecvMsgRevoked="OnRecvMsgRevoked",e.OnNewRecvMsgRevoked="OnNewRecvMsgRevoked",e.OnRecv1v1ReadReceipt="OnRecv1v1ReadReceipt",e.OnRecvGrpReadReceipt="OnRecvGrpReadReceipt",e.OnConversationChanged="OnConversationChanged",e.OnNewConversation="OnNewConversation",e.OnConversationUserInputStatusChanged="OnConversationUserInputStatusChanged",e.OnSyncServerFailed="OnSyncServerFailed",e.OnSyncServerFinish="OnSyncServerFinish",e.OnSyncServerProgress="OnSyncServerProgress",e.OnSyncServerStart="OnSyncServerStart",e.OnTotalUnreadMsgCountChanged="OnTotalUnreadMsgCountChanged",e.OnBlackAdded="OnBlackAdded",e.OnBlackDeleted="OnBlackDeleted",e.OnFriendReqAccepted="OnFriendReqAccepted",e.OnFriendReqAdded="OnFriendReqAdded",e.OnFriendReqDeleted="OnFriendReqDeleted",e.OnFriendReqRejected="OnFriendReqRejected",e.OnFriendInfoChanged="OnFriendInfoChanged",e.OnFriendAdded="OnFriendAdded",e.OnFriendDeleted="OnFriendDeleted",e.OnJoinedGrpAdded="OnJoinedGrpAdded",e.OnJoinedGrpDeleted="OnJoinedGrpDeleted",e.OnGrpDismissed="OnGrpDismissed",e.OnGrpMemberAdded="OnGrpMemberAdded",e.OnGrpMemberDeleted="OnGrpMemberDeleted",e.OnGrpReqAdded="OnGrpReqAdded",e.OnGrpReqDeleted="OnGrpReqDeleted",e.OnGrpInfoChanged="OnGrpInfoChanged",e.OnGrpMemberInfoChanged="OnGrpMemberInfoChanged",e.OnGrpReqAccepted="OnGrpReqAccepted",e.OnGrpReqRejected="OnGrpReqRejected",e.UploadComplete="UploadComplete",e.OnRecvCustomBusinessMsg="OnRecvCustomBusinessMsg",e.OnUserStatusChanged="OnUserStatusChanged",e.OnUploadLogsProgress="OnUploadLogsProgress",e.OnReceiveNewInvitation="OnReceiveNewInvitation",e.OnInviteeAccepted="OnInviteeAccepted",e.OnInviteeRejected="OnInviteeRejected",e.OnInvitationCancelled="OnInvitationCancelled",e.OnHangUp="OnHangUp",e.OnInvitationTimeout="OnInvitationTimeout",e.OnInviteeAcceptedByOtherDevice="OnInviteeAcceptedByOtherDevice",e.OnInviteeRejectedByOtherDevice="OnInviteeRejectedByOtherDevice",e.OnStreamChange="OnStreamChange",e.OnRoomParticipantConnected="OnRoomParticipantConnected",e.OnRoomParticipantDisconnected="OnRoomParticipantDisconnected",e.OnReceiveCustomSignal="OnReceiveCustomSignal",e.UnUsedEvent="UnUsedEvent"}(G||(G={}));let v=!1;function b(){if("undefined"==typeof window)return;const e=function(){if("undefined"!=typeof Worker&&"type"in Worker.prototype)return!0;try{const e=new Blob([""],{type:"text/javascript"}),t=URL.createObjectURL(e);return new Worker(t,{type:"module"}),URL.revokeObjectURL(t),!0}catch(e){return!1}}(),n=e?new URL("worker.js",import.meta.url):new URL("worker-legacy.js",import.meta.url);M=new Worker(n,{type:e?"module":"classic"}),t(M),y=new m({event:new p({currentEndpoint:M,targetEndpoint:M})})}function S(e){if(-32300===e.code)return y&&(y.destroy(),y=void 0),M&&(M.terminate(),M=void 0),JSON.stringify({data:"",errCode:w.ErrorDBTimeout,errMsg:"database maybe damaged"});throw e}function f(...e){v&&console.info(...e)}function I(e,t,n=!0){return f(`=> (database api) registe ${null!=t?t:e}`),async(...s)=>{if(y&&M||b(),y)try{f(`=> (invoked by go wasm) run ${null!=t?t:e} method with args ${JSON.stringify(s)}`);const i=await y.invoke(e,...s,{timeout:5e6});return f(`=> (invoked by go wasm) run ${null!=t?t:e} method with response `,JSON.stringify(i)),n?JSON.stringify(i):i}catch(e){S(e)}}}b();const C=null==y?void 0:y.connect(5e3);class R{constructor(){this.events={}}emit(e,t){return this.events[e]&&this.events[e].forEach((e=>e(t))),this}on(e,t){return this.events[e]?this.events[e].push(t):this.events[e]=[t],this}off(e,t){if(e&&"function"==typeof t&&this.events[e]){const n=this.events[e];if(!n||0===n.length)return;const s=n.findIndex((e=>e===t));-1!==s&&n.splice(s,1)}return this}}let L;const Z=new Uint8Array(16);function k(){if(!L&&(L="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!L))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return L(Z)}const O=[];for(let e=0;e<256;++e)O.push((e+256).toString(16).slice(1));var U={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function X(e,t,n){if(U.randomUUID&&!t&&!e)return U.randomUUID();const s=(e=e||{}).random||(e.rng||k)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=s[e];return t}return function(e,t=0){return(O[e[t+0]]+O[e[t+1]]+O[e[t+2]]+O[e[t+3]]+"-"+O[e[t+4]]+O[e[t+5]]+"-"+O[e[t+6]]+O[e[t+7]]+"-"+O[e[t+8]]+O[e[t+9]]+"-"+O[e[t+10]]+O[e[t+11]]+O[e[t+12]]+O[e[t+13]]+O[e[t+14]]+O[e[t+15]]).toLowerCase()}(s)}function N(e,t){return`font-size:14px; background:${null!=e?e:"#ffffff"}; color:${null!=t?t:"#000000"}; border-radius:4px; padding-inline:4px;`}let W,A=!1;const F="crim-cache";async function D(e){if(A)return null;if("undefined"==typeof window)return Promise.resolve(null);let t;W=new Go;try{if("instantiateStreaming"in WebAssembly)t=await WebAssembly.instantiateStreaming(x(e),W.importObject);else{const n=await x(e).then((e=>e.arrayBuffer()));t=await WebAssembly.instantiate(n,W.importObject)}W.run(t.instance)}catch(e){return console.error("Failed to initialize WASM:",e),null}return await async function(e){return new Promise((t=>{const n=setTimeout((()=>{clearTimeout(n),t(null)}),e)}))}(100),A=!0,W}function V(){return W}async function x(e){if(!("caches"in window))return fetch(e);const t=await caches.open(F),n=await t.match(e);return n&&!await(async()=>{const t=await fetch(e,{method:"HEAD"}),s=t.headers.get("ETag"),i=t.headers.get("Last-Modified");return t.ok&&(s!==(null==n?void 0:n.headers.get("ETag"))||i!==(null==n?void 0:n.headers.get("Last-Modified")))})()?n:async function(e,t){const n=await fetch(e,{cache:"no-cache"});try{await t.put(e,n.clone())}catch(e){console.warn("Failed to put cache")}return n}(e,t)}var B,_,K,J,T,Y,z,H,P,E,Q,j,q,$,ee,te,ne,se,ie,oe,re;!function(e){e[e.Normal=0]="Normal",e[e.NotReceive=1]="NotReceive",e[e.NotNotify=2]="NotNotify"}(B||(B={})),function(e){e[e.AddFriendAllowed=0]="AddFriendAllowed",e[e.AddFriendAllowedNoReview=1]="AddFriendAllowedNoReview",e[e.AddFriendDenied=2]="AddFriendDenied"}(_||(_={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(K||(K={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(J||(J={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(T||(T={})),function(e){e[e.Normal=20]="Normal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(Y||(Y={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(z||(z={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(H||(H={})),function(e){e[e.iOS=1]="iOS",e[e.Android=2]="Android",e[e.Windows=3]="Windows",e[e.MacOSX=4]="MacOSX",e[e.Web=5]="Web",e[e.Linux=7]="Linux",e[e.AndroidPad=8]="AndroidPad",e[e.iPad=9]="iPad"}(P||(P={})),function(e){e[e.Verbose=6]="Verbose",e[e.Debug=5]="Debug",e[e.Info=4]="Info",e[e.Warn=3]="Warn",e[e.Error=2]="Error",e[e.Fatal=1]="Fatal",e[e.Panic=0]="Panic"}(E||(E={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(Q||(Q={})),function(e){e[e.TextMessage=101]="TextMessage",e[e.PictureMessage=102]="PictureMessage",e[e.VoiceMessage=103]="VoiceMessage",e[e.VideoMessage=104]="VideoMessage",e[e.FileMessage=105]="FileMessage",e[e.AtTextMessage=106]="AtTextMessage",e[e.MergeMessage=107]="MergeMessage",e[e.CardMessage=108]="CardMessage",e[e.LocationMessage=109]="LocationMessage",e[e.CustomMessage=110]="CustomMessage",e[e.TypingMessage=113]="TypingMessage",e[e.QuoteMessage=114]="QuoteMessage",e[e.FaceMessage=115]="FaceMessage",e[e.MarkdownMessage=118]="MarkdownMessage",e[e.StreamMessage=143]="StreamMessage",e[e.FriendAdded=1201]="FriendAdded",e[e.OANotification=1400]="OANotification",e[e.GroupCreated=1501]="GroupCreated",e[e.GroupInfoUpdated=1502]="GroupInfoUpdated",e[e.MemberQuit=1504]="MemberQuit",e[e.GroupOwnerTransferred=1507]="GroupOwnerTransferred",e[e.MemberKicked=1508]="MemberKicked",e[e.MemberInvited=1509]="MemberInvited",e[e.MemberEnter=1510]="MemberEnter",e[e.GroupDismissed=1511]="GroupDismissed",e[e.GroupMemberMuted=1512]="GroupMemberMuted",e[e.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",e[e.GroupMuted=1514]="GroupMuted",e[e.GroupCancelMuted=1515]="GroupCancelMuted",e[e.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",e[e.GroupNameUpdated=1520]="GroupNameUpdated",e[e.BurnMessageChange=1701]="BurnMessageChange",e[e.RevokeMessage=2101]="RevokeMessage",e[e.MsgPinned=2400]="MsgPinned"}(j||(j={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(q||(q={})),function(e){e[e.Normal=0]="Normal",e[e.Banned=1]="Banned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}($||($={})),function(e){e[e.AtNormal=0]="AtNormal",e[e.AtMe=1]="AtMe",e[e.AtAll=2]="AtAll",e[e.AtAllAtMe=3]="AtAllAtMe",e[e.AtGroupNotice=4]="AtGroupNotice"}(ee||(ee={})),function(e){e[e.All=0]="All",e[e.Owner=1]="Owner",e[e.Admin=2]="Admin",e[e.Normal=3]="Normal",e[e.AdminAndNormal=4]="AdminAndNormal",e[e.AdminAndOwner=5]="AdminAndOwner"}(te||(te={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(ne||(ne={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(se||(se={})),function(e){e[e.Online=1]="Online",e[e.Offline=0]="Offline"}(ie||(ie={})),function(e){e[e.Read=0]="Read",e[e.UnRead=1]="UnRead"}(oe||(oe={})),function(e){e[e.History=0]="History",e[e.Search=1]="Search"}(re||(re={}));class ae extends R{constructor(e){super(),this.goExisted=!1,this.tryParse=!0,this.isLogStandardOutput=!0,this.sdkVersion="2.8.0",this.login=async(e,t=X())=>{var n,s,i,o,r;this._logWrap(`SDK => (invoked by js) run login with args ${JSON.stringify({params:e,operationID:t})}`),await C,await this.wasmInitializedPromise,window.commonEventFunc((e=>{try{this._logWrap(`%cSDK =>%c received event %c${e}%c `,N("#282828","#ffffff"),"","color: #4f2398;","");const t=JSON.parse(e);if(this.tryParse)try{t.data=JSON.parse(t.data)}catch(e){}this.emit(t.event,t)}catch(e){console.error(e)}}));let a=e.sdkServer;/^https?:\/\//.test(a)||(a="http://"+a);const d={platformID:P.Web,sdkServer:a,dataDir:"./",logLevel:e.logLevel||5,isLogStandardOutput:null!==(n=e.isLogStandardOutput)&&void 0!==n?n:this.isLogStandardOutput,logFilePath:"./",isExternalExtensions:e.isExternalExtensions||!1};return this.tryParse=null===(s=e.tryParse)||void 0===s||s,window.initSDK(t,JSON.stringify(d)),await window.login(t,e.userID,null!==(i=e.token)&&void 0!==i?i:"",null!==(o=e.appId)&&void 0!==o?o:"",null!==(r=e.appSecret)&&void 0!==r?r:"")},this.logout=(e=X())=>(window.fileMapClear(),this._invoker("logout",window.logout,[e])),this.getAllConversationList=(e=X())=>this._invoker("getAllConversationList",window.getAllConversationList,[e]),this.getOneConversation=(e,t=X())=>this._invoker("getOneConversation",window.getOneConversation,[t,e.sessionType,e.sourceID]),this.getAdvancedHistoryMsgList=(e,t=X())=>this._invoker("getAdvancedHistoryMsgList",window.getAdvancedHistoryMsgList,[t,JSON.stringify(e)]),this.getAdvancedHistoryMsgListReverse=(e,t=X())=>this._invoker("getAdvancedHistoryMsgListReverse",window.getAdvancedHistoryMsgListReverse,[t,JSON.stringify(e)]),this.getSpecifiedGrpsInfo=(e,t=X())=>this._invoker("getSpecifiedGrpsInfo",window.getSpecifiedGrpsInfo,[t,JSON.stringify(e)]),this.deleteConversationAndDeleteAllMsg=(e,t=X())=>this._invoker("deleteConversationAndDeleteAllMsg",window.deleteConversationAndDeleteAllMsg,[t,e]),this.markConversationMsgAsRead=(e,t=X())=>this._invoker("markConversationMsgAsRead",window.markConversationMsgAsRead,[t,e]),this.sendGroupMessageReadReceipt=(e,t=X())=>this._invoker("sendGroupMessageReadReceipt",window.sendGroupMessageReadReceipt,[t,e.conversationID,JSON.stringify(e.clientMsgIDList)]),this.getGroupMessageReaderList=(e,t=X())=>this._invoker("getGroupMessageReaderList",window.getGroupMessageReaderList,[t,e.conversationID,e.clientMsgID,e.filter,e.offset,e.count]),this.getGrpMemberList=(e,t=X())=>this._invoker("getGrpMemberList",window.getGrpMemberList,[t,e.groupID,e.filter,e.offset,e.count]),this.createTextMsg=(e,t=X())=>this._invoker("createTextMsg",window.createTextMsg,[t,e],(e=>e[0])),this.createImageMsgByURL=(e,t=X())=>this._invoker("createImageMsgByURL",window.createImageMsgByURL,[t,e.sourcePath,JSON.stringify(e.sourcePicture),JSON.stringify(e.bigPicture),JSON.stringify(e.snapshotPicture)],(e=>e[0])),this.createImageMsgByFile=(e,t=X())=>(e.sourcePicture.uuid=`${e.sourcePicture.uuid}/${e.file.name}`,window.fileMapSet(e.sourcePicture.uuid,e.file),this._invoker("createImageMsgByFile",window.createImageMsgByURL,[t,e.sourcePath,JSON.stringify(e.sourcePicture),JSON.stringify(e.bigPicture),JSON.stringify(e.snapshotPicture)],(e=>e[0]))),this.createCustomMsg=(e,t=X())=>this._invoker("createCustomMsg",window.createCustomMsg,[t,e.data,e.extension,e.description],(e=>e[0])),this.createQuoteMsg=(e,t=X())=>this._invoker("createQuoteMsg",window.createQuoteMsg,[t,e.text,e.message],(e=>e[0])),this.createAdvancedQuoteMsg=(e,t=X())=>this._invoker("createAdvancedQuoteMsg",window.createAdvancedQuoteMsg,[t,e.text,JSON.stringify(e.message),JSON.stringify(e.messageEntityList)],(e=>e[0])),this.createAdvancedTextMsg=(e,t=X())=>this._invoker("createAdvancedTextMsg",window.createAdvancedTextMsg,[t,e.text,JSON.stringify(e.messageEntityList)],(e=>e[0])),this.sendMsg=(e,t=X())=>{var n,s;const i=null!==(n=e.offlinePushInfo)&&void 0!==n?n:{title:"You have a new message.",desc:"",ex:"",iOSPushSound:"+1",iOSBadgeCount:!0};return this._invoker("sendMsg",window.sendMsg,[t,JSON.stringify(e.message),e.recvID,e.groupID,JSON.stringify(i),null!==(s=e.isOnlineOnly)&&void 0!==s&&s])},this.getHistoryMsgListReverse=(e,t=X())=>this._invoker("getHistoryMsgListReverse",window.getHistoryMsgListReverse,[t,JSON.stringify(e)]),this.revokeMsg=(e,t=X())=>this._invoker("revokeMsg",window.revokeMsg,[t,e.conversationID,e.clientMsgID]),this.setConversation=(e,t=X())=>this._invoker("setConversation",window.setConversation,[t,e.conversationID,JSON.stringify(e)]),this.getLoginStatus=(e=X())=>this._invoker("getLoginStatus",window.getLoginStatus,[e],(e=>e[0])),this.setAppBackgroundStatus=(e,t=X())=>this._invoker("setAppBackgroundStatus",window.setAppBackgroundStatus,[t,e]),this.networkStatusChanged=(e=X())=>this._invoker("networkStatusChanged ",window.networkStatusChanged,[e]),this.getLoginUserID=(e=X())=>this._invoker("getLoginUserID",window.getLoginUserID,[e]),this.getSelfUserInfo=(e=X())=>this._invoker("getSelfUserInfo",window.getSelfUserInfo,[e]),this.getUsersInfo=(e,t=X())=>this._invoker("getUsersInfo",window.getUsersInfo,[t,JSON.stringify(e)]),this.setSelfInfo=(e,t=X())=>this._invoker("setSelfInfo",window.setSelfInfo,[t,JSON.stringify(e)]),this.createTextAtMsg=(e,t=X())=>{var n;return this._invoker("createTextAtMsg",window.createTextAtMsg,[t,e.text,JSON.stringify(e.atUserIDList),JSON.stringify(e.atUsersInfo),null!==(n=JSON.stringify(e.message))&&void 0!==n?n:""],(e=>e[0]))},this.createSoundMsgByURL=(e,t=X())=>this._invoker("createSoundMsgByURL",window.createSoundMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createSoundMsgByFile=(e,t=X())=>(e.uuid=`${e.uuid}/${e.file.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("createSoundMsgByFile",window.createSoundMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createVideoMsgByURL=(e,t=X())=>this._invoker("createVideoMsgByURL",window.createVideoMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createVideoMsgByFile=(e,t=X())=>(e.videoUUID=`${e.videoUUID}/${e.videoFile.name}`,e.snapshotUUID=`${e.snapshotUUID}/${e.snapshotFile.name}`,window.fileMapSet(e.videoUUID,e.videoFile),window.fileMapSet(e.snapshotUUID,e.snapshotFile),this._invoker("createVideoMsgByFile",window.createVideoMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createFileMsgByURL=(e,t=X())=>this._invoker("createFileMsgByURL",window.createFileMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createFileMsgByFile=(e,t=X())=>(e.uuid=`${e.uuid}/${e.file.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("createFileMsgByFile",window.createFileMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createMergerMsg=(e,t=X())=>this._invoker("createMergerMsg ",window.createMergerMsg,[t,JSON.stringify(e.messageList),e.title,JSON.stringify(e.summaryList)],(e=>e[0])),this.createForwardMsg=(e,t=X())=>this._invoker("createForwardMsg ",window.createForwardMsg,[t,JSON.stringify(e)],(e=>e[0])),this.createFaceMsg=(e,t=X())=>this._invoker("createFaceMsg ",window.createFaceMsg,[t,e.index,e.data],(e=>e[0])),this.createLocationMsg=(e,t=X())=>this._invoker("createLocationMsg ",window.createLocationMsg,[t,e.description,e.longitude,e.latitude],(e=>e[0])),this.createCardMsg=(e,t=X())=>this._invoker("createCardMsg ",window.createCardMsg,[t,JSON.stringify(e)],(e=>e[0])),this.deleteMsgFromLocalStorage=(e,t=X())=>this._invoker("deleteMsgFromLocalStorage ",window.deleteMsgFromLocalStorage,[t,e.conversationID,e.clientMsgID]),this.deleteMsg=(e,t=X())=>this._invoker("deleteMsg ",window.deleteMsg,[t,e.conversationID,e.clientMsgID]),this.deleteAllConversationFromLocal=(e=X())=>this._invoker("deleteAllConversationFromLocal ",window.deleteAllConversationFromLocal,[e]),this.deleteAllMsgFromLocal=(e=X())=>this._invoker("deleteAllMsgFromLocal ",window.deleteAllMsgFromLocal,[e]),this.deleteAllMsgFromLocalAndSvr=(e=X())=>this._invoker("deleteAllMsgFromLocalAndSvr ",window.deleteAllMsgFromLocalAndSvr,[e]),this.insertSingleMsgToLocalStorage=(e,t=X())=>this._invoker("insertSingleMsgToLocalStorage ",window.insertSingleMsgToLocalStorage,[t,JSON.stringify(e.message),e.recvID,e.sendID]),this.insertGrpMsgToLocalStorage=(e,t=X())=>this._invoker("insertGrpMsgToLocalStorage ",window.insertGrpMsgToLocalStorage,[t,JSON.stringify(e.message),e.groupID,e.sendID]),this.changeInputStates=(e,t=X())=>this._invoker("changeInputStates ",window.changeInputStates,[t,e.conversationID,e.focus]),this.getInputstates=(e,t=X())=>this._invoker("getInputstates ",window.getInputstates,[t,e.conversationID,e.userID]),this.clearConversationAndDeleteAllMsg=(e,t=X())=>this._invoker("clearConversationAndDeleteAllMsg ",window.clearConversationAndDeleteAllMsg,[t,e]),this.hideConversation=(e,t=X())=>this._invoker("hideConversation ",window.hideConversation,[t,e]),this.getConversationListSplit=(e,t=X())=>this._invoker("getConversationListSplit ",window.getConversationListSplit,[t,e.offset,e.count]),this.getConversationIDBySessionType=(e,t=X())=>this._invoker("getConversationIDBySessionType ",window.getConversationIDBySessionType,[t,e.sourceID,e.sessionType]),this.getMultipleConversation=(e,t=X())=>this._invoker("getMultipleConversation ",window.getMultipleConversation,[t,JSON.stringify(e)]),this.deleteConversation=(e,t=X())=>this._invoker("deleteConversation ",window.deleteConversation,[t,e]),this.setConversationDraft=(e,t=X())=>this._invoker("setConversationDraft ",window.setConversationDraft,[t,e.conversationID,e.draftText]),this.getTotalUnreadMsgCount=(e=X())=>this._invoker("getTotalUnreadMsgCount ",window.getTotalUnreadMsgCount,[e]),this.searchLocalMsgs=(e,t=X())=>this._invoker("searchLocalMsgs ",window.searchLocalMsgs,[t,JSON.stringify(e)]),this.addFriend=(e,t=X())=>this._invoker("addFriend ",window.addFriend,[t,JSON.stringify(e)]),this.searchFriends=(e,t=X())=>this._invoker("searchFriends ",window.searchFriends,[t,JSON.stringify(e)]),this.getSpecifiedFriendsInfo=(e,t=X())=>this._invoker("getSpecifiedFriendsInfo",window.getSpecifiedFriendsInfo,[t,JSON.stringify(e.friendUserIDList),e.filterBlack]),this.getFriendReqListAsRecipient=(e={handleResults:[],offset:0,count:0},t=X())=>this._invoker("getFriendReqListAsRecipient ",window.getFriendReqListAsRecipient,[t,JSON.stringify(e)]),this.getFriendReqListAsApplicant=(e={offset:0,count:0},t=X())=>this._invoker("getFriendReqListAsApplicant ",window.getFriendReqListAsApplicant,[t,JSON.stringify(e)]),this.getFriendReqUnhandledCount=(e,t=X())=>this._invoker("getFriendReqUnhandledCount ",window.getFriendReqUnhandledCount,[t,JSON.stringify(e)]),this.deleteFriendRequests=(e,t=X())=>this._invoker("deleteFriendRequests ",window.deleteFriendRequests,[t,JSON.stringify({friendRequests:e})]),this.getFriendList=(e=!1,t=X())=>this._invoker("getFriendList ",window.getFriendList,[t,e]),this.getFriendListPage=(e,t=X())=>{var n;return this._invoker("getFriendListPage ",window.getFriendListPage,[t,e.offset,e.count,null!==(n=e.filterBlack)&&void 0!==n&&n])},this.updateFriends=(e,t=X())=>this._invoker("updateFriends ",window.updateFriends,[t,JSON.stringify(e)]),this.checkFriend=(e,t=X())=>this._invoker("checkFriend",window.checkFriend,[t,JSON.stringify(e)]),this.acceptFriendReq=(e,t=X())=>this._invoker("acceptFriendReq",window.acceptFriendReq,[t,JSON.stringify(e)]),this.refuseFriendReq=(e,t=X())=>this._invoker("refuseFriendReq ",window.refuseFriendReq,[t,JSON.stringify(e)]),this.deleteFriend=(e,t=X())=>this._invoker("deleteFriend ",window.deleteFriend,[t,e]),this.addBlack=(e,t=X())=>{var n;return this._invoker("addBlack ",window.addBlack,[t,e.toUserID,null!==(n=e.ex)&&void 0!==n?n:""])},this.removeBlack=(e,t=X())=>this._invoker("removeBlack ",window.removeBlack,[t,e]),this.getBlackList=(e=X())=>this._invoker("getBlackList ",window.getBlackList,[e]),this.inviteUserToGrp=(e,t=X())=>this._invoker("inviteUserToGrp ",window.inviteUserToGrp,[t,e.groupID,e.reason,JSON.stringify(e.userIDList)]),this.kickGrpMember=(e,t=X())=>this._invoker("kickGrpMember ",window.kickGrpMember,[t,e.groupID,e.reason,JSON.stringify(e.userIDList)]),this.isJoinGrp=(e,t=X())=>this._invoker("isJoinGrp ",window.isJoinGrp,[t,e]),this.getSpecifiedGrpMembersInfo=(e,t=X())=>this._invoker("getSpecifiedGrpMembersInfo ",window.getSpecifiedGrpMembersInfo,[t,e.groupID,JSON.stringify(e.userIDList)]),this.getUsersInGrp=(e,t=X())=>this._invoker("getUsersInGrp ",window.getUsersInGrp,[t,e.groupID,JSON.stringify(e.userIDList)]),this.getGrpMemberListByJoinTimeFilter=(e,t=X())=>this._invoker("getGrpMemberListByJoinTimeFilter ",window.getGrpMemberListByJoinTimeFilter,[t,e.groupID,e.offset,e.count,e.joinTimeBegin,e.joinTimeEnd,JSON.stringify(e.filterUserIDList)]),this.searchGrpMembers=(e,t=X())=>this._invoker("searchGrpMembers ",window.searchGrpMembers,[t,JSON.stringify(e)]),this.getJoinedGrpList=(e=X())=>this._invoker("getJoinedGrpList ",window.getJoinedGrpList,[e]),this.getJoinedGrpListPage=(e,t=X())=>this._invoker("getJoinedGrpListPage ",window.getJoinedGrpListPage,[t,e.offset,e.count]),this.createGrp=(e,t=X())=>this._invoker("createGrp ",window.createGrp,[t,JSON.stringify(e)]),this.setGrpInfo=(e,t=X())=>this._invoker("setGrpInfo ",window.setGrpInfo,[t,JSON.stringify(e)]),this.setGrpMemberInfo=(e,t=X())=>this._invoker("setGrpMemberInfo ",window.setGrpMemberInfo,[t,JSON.stringify(e)]),this.joinGrp=(e,t=X())=>{var n;return this._invoker("joinGrp ",window.joinGrp,[t,e.groupID,e.reqMsg,e.joinSource,null!==(n=e.ex)&&void 0!==n?n:""])},this.searchGrps=(e,t=X())=>this._invoker("searchGrps ",window.searchGrps,[t,JSON.stringify(e)]),this.quitGrp=(e,t=X())=>this._invoker("quitGrp ",window.quitGrp,[t,e]),this.dismissGrp=(e,t=X())=>this._invoker("dismissGrp ",window.dismissGrp,[t,e]),this.changeGrpMute=(e,t=X())=>this._invoker("changeGrpMute ",window.changeGrpMute,[t,e.groupID,e.isMute]),this.changeGrpMemberMute=(e,t=X())=>this._invoker("changeGrpMemberMute ",window.changeGrpMemberMute,[t,e.groupID,e.userID,e.mutedSeconds]),this.transferGrpOwner=(e,t=X())=>this._invoker("transferGrpOwner ",window.transferGrpOwner,[t,e.groupID,e.newOwnerUserID]),this.getGrpReqListAsApplicant=(e={groupID:[],handleResults:[],offset:0,count:0},t=X())=>this._invoker("getGrpReqListAsApplicant ",window.getGrpReqListAsApplicant,[t,JSON.stringify(e)]),this.getGrpReqListAsRecipient=(e={groupID:[],handleResults:[],offset:0,count:0},t=X())=>this._invoker("getGrpReqListAsRecipient ",window.getGrpReqListAsRecipient,[t,JSON.stringify(e)]),this.getGrpReqUnhandledCount=(e,t=X())=>this._invoker("getGrpReqUnhandledCount ",window.getGrpReqUnhandledCount,[t,JSON.stringify(e)]),this.deleteGroupRequests=(e,t=X())=>this._invoker("deleteGroupRequests ",window.deleteGroupRequests,[t,JSON.stringify({groupRequests:e})]),this.acceptGrpReq=(e,t=X())=>this._invoker("acceptGrpReq ",window.acceptGrpReq,[t,e.groupID,e.fromUserID,e.handleMsg]),this.refuseGrpReq=(e,t=X())=>this._invoker("refuseGrpReq ",window.refuseGrpReq,[t,e.groupID,e.fromUserID,e.handleMsg]),this.getGrpMemberOwnerAndAdmin=(e,t=X())=>this._invoker("getGrpMemberOwnerAndAdmin ",window.getGrpMemberOwnerAndAdmin,[t,e]),this.findMsgList=(e,t=X())=>this._invoker("findMsgList ",window.findMsgList,[t,JSON.stringify(e)]),this.uploadFile=(e,t=X())=>{var n;return e.uuid=`${e.uuid}/${null===(n=e.file)||void 0===n?void 0:n.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("uploadFile ",window.uploadFile,[t,JSON.stringify({...e,filepath:"",cause:""})])},this.subscribeUsersStatus=(e,t=X())=>this._invoker("subscribeUsersStatus ",window.subscribeUsersStatus,[t,JSON.stringify(e)]),this.unsubscribeUsersStatus=(e,t=X())=>this._invoker("unsubscribeUsersStatus ",window.unsubscribeUsersStatus,[t,JSON.stringify(e)]),this.getUserStatus=(e=X())=>this._invoker("getUserStatus ",window.getUserStatus,[e]),this.getSubscribeUsersStatus=(e=X())=>this._invoker("getSubscribeUsersStatus ",window.getSubscribeUsersStatus,[e]),this.signalingInvite=(e,t=X())=>this._invoker("signalingInvite ",window.signalingInvite,[t,JSON.stringify(e)]),this.signalingInviteInGroup=(e,t=X())=>this._invoker("signalingInviteInGroup ",window.signalingInviteInGroup,[t,JSON.stringify(e)]),this.signalingAccept=(e,t=X())=>this._invoker("signalingAccept ",window.signalingAccept,[t,JSON.stringify(e)]),this.signalingReject=(e,t=X())=>this._invoker("signalingReject ",window.signalingReject,[t,JSON.stringify(e)]),this.signalingCancel=(e,t=X())=>this._invoker("signalingCancel ",window.signalingCancel,[t,JSON.stringify(e)]),this.signalingHungUp=(e,t=X())=>this._invoker("signalingHungUp ",window.signalingHungUp,[t,JSON.stringify(e)]),this.signalingGetRoomByGroupID=(e,t=X())=>this._invoker("signalingGetRoomByGroupID ",window.signalingGetRoomByGroupID,[t,e]),this.signalingGetTokenByRoomID=(e,t=X())=>this._invoker("signalingGetTokenByRoomID ",window.signalingGetTokenByRoomID,[t,e]),this.getSignalingInvitationInfoStartApp=(e=X())=>this._invoker("getSignalingInvitationInfoStartApp ",window.getSignalingInvitationInfoStartApp,[e]),this.signalingSendCustomSignal=(e,t=X())=>this._invoker("signalingSendCustomSignal ",window.signalingSendCustomSignal,[t,e.customInfo,e.roomID]),this.setConversationIsMsgDestruct=(e,t=X())=>this._invoker("setConversationIsMsgDestruct ",window.setConversation,[t,e.conversationID,JSON.stringify({isMsgDestruct:e.isMsgDestruct})]),this.setConversationMsgDestructTime=(e,t=X())=>this._invoker("setConversationMsgDestructTime ",window.setConversation,[t,e.conversationID,JSON.stringify({msgDestructTime:e.msgDestructTime})]),this.createTargetedGroupMessage=(e,t=X())=>this._invoker("createTargetedGroupMessage",window.createTargetedGroupMessage,[t,JSON.stringify(e.message),JSON.stringify(e.dstUserIDs)],(e=>e[0])),this.setConversationPinnedMsg=(e,t=X())=>this._invoker("setConversationPinnedMsg ",window.setConversationPinnedMsg,[t,e.conversationID,e.clientMsgID,e.pinned]),this.getConversationPinnedMsg=(e,t=X())=>this._invoker("getConversationPinnedMsg ",window.getConversationPinnedMsg,[t,e]),this.fileMapSet=(e,t)=>window.fileMapSet(e,t),function(e=!0){y&&(v=e,window.wasmOpen=I("wasmOpen"),window.wasmClose=I("wasmClose"),window.wasmRead=I("wasmRead","wasmRead",!1),window.getUpload=I("getUpload"),window.insertUpload=I("insertUpload"),window.updateUpload=I("updateUpload"),window.deleteUpload=I("deleteUpload"),window.fileMapSet=I("fileMapSet"),window.fileMapClear=I("fileMapClear"),window.setSqlWasmPath=I("setSqlWasmPath"),window.initDB=I("initDB"),window.close=I("close"),window.getMessage=I("getMessage"),window.getMultipleMessage=I("getMultipleMessage"),window.getSendingMessageList=I("getSendingMessageList"),window.getNormalMsgSeq=I("getNormalMsgSeq"),window.updateMessageTimeAndStatus=I("updateMessageTimeAndStatus"),window.updateMessage=I("updateMessage"),window.updateMessageBySeq=I("updateMessageBySeq"),window.updateColumnsMessage=I("updateColumnsMessage"),window.insertMessage=I("insertMessage"),window.batchInsertMessageList=I("batchInsertMessageList"),window.getMessageList=I("getMessageList"),window.getMessageListNoTime=I("getMessageListNoTime"),window.messageIfExists=I("messageIfExists"),window.messageIfExistsBySeq=I("messageIfExistsBySeq"),window.getAbnormalMsgSeq=I("getAbnormalMsgSeq"),window.getAbnormalMsgSeqList=I("getAbnormalMsgSeqList"),window.batchInsertExceptionMsg=I("batchInsertExceptionMsg"),window.searchMessageByKeyword=I("searchMessageByKeyword"),window.searchMessageByContentType=I("searchMessageByContentType"),window.searchMessageByContentTypeAndKeyword=I("searchMessageByContentTypeAndKeyword"),window.updateMsgSenderNickname=I("updateMsgSenderNickname"),window.updateMsgSenderFaceURL=I("updateMsgSenderFaceURL"),window.updateMsgSenderFaceURLAndSenderNickname=I("updateMsgSenderFaceURLAndSenderNickname"),window.getMsgSeqByClientMsgID=I("getMsgSeqByClientMsgID"),window.getMsgSeqListByGroupID=I("getMsgSeqListByGroupID"),window.getMsgSeqListByPeerUserID=I("getMsgSeqListByPeerUserID"),window.getMsgSeqListBySelfUserID=I("getMsgSeqListBySelfUserID"),window.deleteAllMessage=I("deleteAllMessage"),window.getAllUnDeleteMessageSeqList=I("getAllUnDeleteMessageSeqList"),window.updateSingleMessageHasRead=I("updateSingleMessageHasRead"),window.updateGroupMessageHasRead=I("updateGroupMessageHasRead"),window.updateMessageStatusBySourceID=I("updateMessageStatusBySourceID"),window.getAlreadyExistSeqList=I("getAlreadyExistSeqList"),window.getLatestValidServerMessage=I("getLatestValidServerMessage"),window.getMessageByUserID=I("getMessageByUserID"),window.getMessageBySeq=I("getMessageBySeq"),window.getMessagesByClientMsgIDs=I("getMessagesByClientMsgIDs"),window.getMessagesBySeqs=I("getMessagesBySeqs"),window.getConversationNormalMsgSeq=I("getConversationNormalMsgSeq"),window.checkConversationNormalMsgSeq=I("getConversationNormalMsgSeq"),window.getConversationPeerNormalMsgSeq=I("getConversationPeerNormalMsgSeq"),window.deleteConversationAllMessages=I("deleteConversationAllMessages"),window.markDeleteConversationAllMessages=I("markDeleteConversationAllMessages"),window.getUnreadMessage=I("getUnreadMessage"),window.markConversationMessageAsReadBySeqs=I("markConversationMessageAsReadBySeqs"),window.markConversationMessageAsReadDB=I("markConversationMessageAsRead"),window.deleteMessagesByClientMsgIDs=I("deleteMessagesByClientMsgIDs"),window.deleteConversationMsgs=I("deleteConversationMsgs"),window.markConversationAllMessageAsRead=I("markConversationAllMessageAsRead"),window.searchAllMessageByContentType=I("searchAllMessageByContentType"),window.insertSendingMessage=I("insertSendingMessage"),window.deleteSendingMessage=I("deleteSendingMessage"),window.getAllSendingMessages=I("getAllSendingMessages"),window.getAllConversationListDB=I("getAllConversationList"),window.getAllConversationListToSync=I("getAllConversationListToSync"),window.getHiddenConversationList=I("getHiddenConversationList"),window.getConversation=I("getConversation"),window.getMultipleConversationDB=I("getMultipleConversation"),window.updateColumnsConversation=I("updateColumnsConversation"),window.updateConversation=I("updateColumnsConversation","updateConversation"),window.updateConversationForSync=I("updateColumnsConversation","updateConversationForSync"),window.decrConversationUnreadCount=I("decrConversationUnreadCount"),window.batchInsertConversationList=I("batchInsertConversationList"),window.insertConversation=I("insertConversation"),window.getTotalUnreadMsgCountDB=I("getTotalUnreadMsgCount"),window.getConversationByUserID=I("getConversationByUserID"),window.getConversationListSplitDB=I("getConversationListSplit"),window.deleteConversation=I("deleteConversation"),window.deleteAllConversation=I("deleteAllConversation"),window.batchUpdateConversationList=I("batchUpdateConversationList"),window.conversationIfExists=I("conversationIfExists"),window.resetConversation=I("resetConversation"),window.resetAllConversation=I("resetAllConversation"),window.clearConversation=I("clearConversation"),window.clearAllConversation=I("clearAllConversation"),window.setConversationDraftDB=I("setConversationDraft"),window.removeConversationDraft=I("removeConversationDraft"),window.unPinConversation=I("unPinConversation"),window.incrConversationUnreadCount=I("incrConversationUnreadCount"),window.setMultipleConversationRecvMsgOpt=I("setMultipleConversationRecvMsgOpt"),window.getAllSingleConversationIDList=I("getAllSingleConversationIDList"),window.findAllUnreadConversationConversationID=I("findAllUnreadConversationConversationID"),window.getAllConversationIDList=I("getAllConversationIDList"),window.getAllConversations=I("getAllConversations"),window.searchConversations=I("searchConversations"),window.getLatestActiveMessage=I("getLatestActiveMessage"),window.getLoginUser=I("getLoginUser"),window.insertLoginUser=I("insertLoginUser"),window.updateLoginUser=I("updateLoginUser"),window.getStrangerInfo=I("getStrangerInfo"),window.setStrangerInfo=I("setStrangerInfo"),window.getAppSDKVersion=I("getAppSDKVersion"),window.setAppSDKVersion=I("setAppSDKVersion"),window.getVersionSync=I("getVersionSync"),window.setVersionSync=I("setVersionSync"),window.deleteVersionSync=I("deleteVersionSync"),window.getJoinedSuperGroupList=I("getJoinedSuperGroupList"),window.getJoinedSuperGroupIDList=I("getJoinedSuperGroupIDList"),window.getSuperGroupInfoByGroupID=I("getSuperGroupInfoByGroupID"),window.deleteSuperGroup=I("deleteSuperGroup"),window.insertSuperGroup=I("insertSuperGroup"),window.updateSuperGroup=I("updateSuperGroup"),window.deleteConversationUnreadMessageList=I("deleteConversationUnreadMessageList"),window.batchInsertConversationUnreadMessageList=I("batchInsertConversationUnreadMessageList"),window.superGroupGetMessage=I("superGroupGetMessage"),window.superGroupGetMultipleMessage=I("superGroupGetMultipleMessage"),window.superGroupGetNormalMinSeq=I("superGroupGetNormalMinSeq"),window.getSuperGroupNormalMsgSeq=I("getSuperGroupNormalMsgSeq"),window.superGroupUpdateMessageTimeAndStatus=I("superGroupUpdateMessageTimeAndStatus"),window.superGroupUpdateMessage=I("superGroupUpdateMessage"),window.superGroupInsertMessage=I("superGroupInsertMessage"),window.superGroupBatchInsertMessageList=I("superGroupBatchInsertMessageList"),window.superGroupGetMessageListNoTime=I("superGroupGetMessageListNoTime"),window.superGroupGetMessageList=I("superGroupGetMessageList"),window.superGroupUpdateColumnsMessage=I("superGroupUpdateColumnsMessage"),window.superGroupDeleteAllMessage=I("superGroupDeleteAllMessage"),window.superGroupSearchMessageByKeyword=I("superGroupSearchMessageByKeyword"),window.superGroupSearchMessageByContentType=I("superGroupSearchMessageByContentType"),window.superGroupSearchMessageByContentTypeAndKeyword=I("superGroupSearchMessageByContentTypeAndKeyword"),window.superGroupUpdateMessageStatusBySourceID=I("superGroupUpdateMessageStatusBySourceID"),window.superGroupGetSendingMessageList=I("superGroupGetSendingMessageList"),window.superGroupUpdateGroupMessageHasRead=I("superGroupUpdateGroupMessageHasRead"),window.superGroupGetMsgSeqByClientMsgID=I("superGroupGetMsgSeqByClientMsgID"),window.superGroupUpdateMsgSenderFaceURLAndSenderNickname=I("superGroupUpdateMsgSenderFaceURLAndSenderNickname"),window.superGroupSearchAllMessageByContentType=I("superGroupSearchAllMessageByContentType"),window.exec=I("exec"),window.getRowsModified=I("getRowsModified"),window.exportDB=async()=>{if(y&&M||b(),y)try{f("=> (invoked by go wasm) run exportDB method ");const e=await y.invoke("exportDB",void 0,{timeout:5e3});return f("=> (invoked by go wasm) run exportDB method with response ",JSON.stringify(e)),e}catch(e){S(e)}},window.getBlackListDB=I("getBlackList"),window.getBlackListUserID=I("getBlackListUserID"),window.getBlackInfoByBlockUserID=I("getBlackInfoByBlockUserID"),window.getBlackInfoList=I("getBlackInfoList"),window.insertBlack=I("insertBlack"),window.deleteBlack=I("deleteBlack"),window.updateBlack=I("updateBlack"),window.insertFriendRequest=I("insertFriendRequest"),window.deleteFriendRequestBothUserID=I("deleteFriendRequestBothUserID"),window.deleteSelfFriendRequests=I("deleteSelfFriendRequests"),window.updateFriendRequest=I("updateFriendRequest"),window.getRecvFriendApplication=I("getRecvFriendApplication"),window.getSendFriendApplication=I("getSendFriendApplication"),window.getFriendApplicationByBothID=I("getFriendApplicationByBothID"),window.getBothFriendReq=I("getBothFriendReq"),window.insertFriend=I("insertFriend"),window.deleteFriendDB=I("deleteFriend"),window.updateFriend=I("updateFriend"),window.getAllFriendList=I("getAllFriendList"),window.searchFriendList=I("searchFriendList"),window.getFriendInfoByFriendUserID=I("getFriendInfoByFriendUserID"),window.getFriendInfoList=I("getFriendInfoList"),window.getPageFriendList=I("getPageFriendList"),window.updateColumnsFriend=I("updateColumnsFriend"),window.getFriendListCount=I("getFriendListCount"),window.batchInsertFriend=I("batchInsertFriend"),window.deleteAllFriend=I("deleteAllFriend"),window.insertGroup=I("insertGroup"),window.deleteGroup=I("deleteGroup"),window.updateGroup=I("updateGroup"),window.getJoinedGroupListDB=I("getJoinedGroupList"),window.getGroupInfoByGroupID=I("getGroupInfoByGroupID"),window.getAllGroupInfoByGroupIDOrGroupName=I("getAllGroupInfoByGroupIDOrGroupName"),window.subtractMemberCount=I("subtractMemberCount"),window.addMemberCount=I("addMemberCount"),window.getJoinedWorkingGroupIDList=I("getJoinedWorkingGroupIDList"),window.getJoinedWorkingGroupList=I("getJoinedWorkingGroupList"),window.getGroupMemberAllGroupIDs=I("getGroupMemberAllGroupIDs"),window.getUserJoinedGroupIDs=I("getUserJoinedGroupIDs"),window.getGroups=I("getGroups"),window.getGroupMemberListByUserIDs=I("getGroupMemberListByUserIDs"),window.batchInsertGroup=I("batchInsertGroup"),window.deleteAllGroup=I("deleteAllGroup"),window.insertGroupRequest=I("insertGroupRequest"),window.deleteGroupRequest=I("deleteGroupRequest"),window.deleteGroupRequestsFromUserID=I("deleteGroupRequestsFromUserID"),window.updateGroupRequest=I("updateGroupRequest"),window.getSendGroupApplication=I("getSendGroupApplication"),window.insertAdminGroupRequest=I("insertAdminGroupRequest"),window.deleteAdminGroupRequest=I("deleteAdminGroupRequest"),window.updateAdminGroupRequest=I("updateAdminGroupRequest"),window.getAdminGroupApplication=I("getAdminGroupApplication"),window.getGroupMemberInfoByGroupIDUserID=I("getGroupMemberInfoByGroupIDUserID"),window.getAllGroupMemberList=I("getAllGroupMemberList"),window.getAllGroupMemberUserIDList=I("getAllGroupMemberUserIDList"),window.getGroupMemberCount=I("getGroupMemberCount"),window.getGroupSomeMemberInfo=I("getGroupSomeMemberInfo"),window.getGroupAdminID=I("getGroupAdminID"),window.getGroupMemberListByGroupID=I("getGroupMemberListByGroupID"),window.getGroupMemberListSplit=I("getGroupMemberListSplit"),window.getGroupMemberOwnerAndAdminDB=I("getGroupMemberOwnerAndAdmin"),window.getGroupMemberOwner=I("getGroupMemberOwner"),window.getGroupMemberListSplitByJoinTimeFilter=I("getGroupMemberListSplitByJoinTimeFilter"),window.getGroupOwnerAndAdminByGroupID=I("getGroupOwnerAndAdminByGroupID"),window.getGroupMemberUIDListByGroupID=I("getGroupMemberUIDListByGroupID"),window.insertGroupMember=I("insertGroupMember"),window.batchInsertGroupMember=I("batchInsertGroupMember"),window.deleteGroupMember=I("deleteGroupMember"),window.deleteGroupAllMembers=I("deleteGroupAllMembers"),window.updateGroupMember=I("updateGroupMember"),window.updateGroupMemberField=I("updateGroupMemberField"),window.searchGroupMembersDB=I("searchGroupMembers","searchGroupMembersDB"),window.batchInsertTempCacheMessageList=I("batchInsertTempCacheMessageList"),window.InsertTempCacheMessage=I("InsertTempCacheMessage"),window.getNotificationAllSeqs=I("getNotificationAllSeqs"),window.setNotificationSeq=I("setNotificationSeq"),window.batchInsertNotificationSeq=I("batchInsertNotificationSeq"),window.getExistedTables=I("getExistedTables"))}(e.debug),this.isLogStandardOutput=e.debug,this.wasmInitializedPromise=D(e.assetsUrl.sdkWasm),this.goExitPromise=void 0,this.goExitPromise&&this.goExitPromise.then((()=>{this._logWrap("SDK => wasm exist")})).catch((e=>{this._logWrap("SDK => wasm with error ",e)})).finally((()=>{this.goExisted=!0}))}_logWrap(...e){this.isLogStandardOutput&&console.info(...e)}_invoker(e,t,n,s){return new Promise((async(i,o)=>{this._logWrap(`%cSDK =>%c [OperationID:${n[0]}] (invoked by js) run ${e} with args ${JSON.stringify(n)}`,"font-size:14px; background:#7CAEFF; border-radius:4px; padding-inline:4px;","");let r={operationID:n[0],event:e.slice(0,1).toUpperCase()+e.slice(1).toLowerCase()};try{if(!V()||V().exited||this.goExisted)throw"wasm exist already, fail to run";let o=await t(...n);if(s&&(this._logWrap(`%cSDK =>%c [OperationID:${n[0]}] (invoked by js) run ${e} with response before processor ${JSON.stringify(o)}`,N("#FFDC19"),""),o=s(o)),this.tryParse)try{o=JSON.parse(o)}catch(e){}r.data=o,i(r)}catch(t){this._logWrap(`%cSDK =>%c [OperationID:${n[0]}] (invoked by js) run ${e} with error ${JSON.stringify(t)}`,N("#EE4245"),""),r={...r,...t},o(r)}}))}exportDB(e=X()){return this._invoker("exportDB",window.exportDB,[e])}}let de;function le(e){var t;return"string"==typeof e.assetsUrl&&(e.assetsUrl={sdkWasm:`${e.assetsUrl}/CRIM.wasm`,sqlWasm:`${e.assetsUrl}/sql-wasm.wasm`}),e.debug=null===(t=e.debug)||void 0===t||t,"undefined"==typeof window?{}:de||(de=new ae(e),window.setSqlWasmPath(e.assetsUrl.sqlWasm),de)}function ce(e,t,n){var s=void 0===t?null:t,i=function(e,t){var n=atob(e);if(t){for(var s=new Uint8Array(n.length),i=0,o=n.length;i<o;++i)s[i]=n.charCodeAt(i);return String.fromCharCode.apply(null,new Uint16Array(s.buffer))}return n}(e,void 0!==n&&n),o=i.indexOf("\n",10)+1,r=i.substring(o)+(s?"//# sourceMappingURL="+s:""),a=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(a)}var ge,ue,pe,he,me=(ge="Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7bGV0IHQ9MzczNTkyODU1OTtjbGFzcyBle2NvbnN0cnVjdG9yKHQse2luaXRpYWxPZmZzZXQ6ZT00LHVzZUF0b21pY3M6aT0hMCxzdHJlYW06cz0hMCxkZWJ1ZzpyLG5hbWU6bn09e30pe3RoaXMuYnVmZmVyPXQsdGhpcy5hdG9taWNWaWV3PW5ldyBJbnQzMkFycmF5KHQpLHRoaXMub2Zmc2V0PWUsdGhpcy51c2VBdG9taWNzPWksdGhpcy5zdHJlYW09cyx0aGlzLmRlYnVnPXIsdGhpcy5uYW1lPW59bG9nKC4uLnQpe3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKGBbcmVhZGVyOiAke3RoaXMubmFtZX1dYCwuLi50KX13YWl0V3JpdGUodCxlPW51bGwpe2lmKHRoaXMudXNlQXRvbWljcyl7Zm9yKHRoaXMubG9nKGB3YWl0aW5nIGZvciAke3R9YCk7MD09PUF0b21pY3MubG9hZCh0aGlzLmF0b21pY1ZpZXcsMCk7KXtpZihudWxsIT1lJiYidGltZWQtb3V0Ij09PUF0b21pY3Mud2FpdCh0aGlzLmF0b21pY1ZpZXcsMCwwLGUpKXRocm93IG5ldyBFcnJvcigidGltZW91dCIpO0F0b21pY3Mud2FpdCh0aGlzLmF0b21pY1ZpZXcsMCwwLDUwMCl9dGhpcy5sb2coYHJlc3VtZWQgZm9yICR7dH1gKX1lbHNlIGlmKDEhPT10aGlzLmF0b21pY1ZpZXdbMF0pdGhyb3cgbmV3IEVycm9yKCJgd2FpdFdyaXRlYCBleHBlY3RlZCBhcnJheSB0byBiZSByZWFkYWJsZSIpfWZsaXAoKXtpZih0aGlzLmxvZygiZmxpcCIpLHRoaXMudXNlQXRvbWljcyl7aWYoMSE9PUF0b21pY3MuY29tcGFyZUV4Y2hhbmdlKHRoaXMuYXRvbWljVmlldywwLDEsMCkpdGhyb3cgbmV3IEVycm9yKCJSZWFkIGRhdGEgb3V0IG9mIHN5bmMhIFRoaXMgaXMgZGlzYXN0cm91cyIpO0F0b21pY3Mubm90aWZ5KHRoaXMuYXRvbWljVmlldywwKX1lbHNlIHRoaXMuYXRvbWljVmlld1swXT0wO3RoaXMub2Zmc2V0PTR9ZG9uZSgpe3RoaXMud2FpdFdyaXRlKCJkb25lIik7bGV0IGU9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5nZXRVaW50MzIoMCk9PT10O3JldHVybiBlJiYodGhpcy5sb2coImRvbmUiKSx0aGlzLmZsaXAoKSksZX1wZWVrKHQpe3RoaXMucGVla09mZnNldD10aGlzLm9mZnNldDtsZXQgZT10KCk7cmV0dXJuIHRoaXMub2Zmc2V0PXRoaXMucGVla09mZnNldCx0aGlzLnBlZWtPZmZzZXQ9bnVsbCxlfXN0cmluZyh0KXt0aGlzLndhaXRXcml0ZSgic3RyaW5nIix0KTtsZXQgZT10aGlzLl9pbnQzMigpLGk9ZS8yLHM9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0LGUpLHI9W107Zm9yKGxldCB0PTA7dDxpO3QrKylyLnB1c2gocy5nZXRVaW50MTYoMip0KSk7bGV0IG49U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHIpO3JldHVybiB0aGlzLmxvZygic3RyaW5nIixuKSx0aGlzLm9mZnNldCs9ZSxudWxsPT10aGlzLnBlZWtPZmZzZXQmJnRoaXMuZmxpcCgpLG59X2ludDMyKCl7bGV0IHQ9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5nZXRJbnQzMigpO3JldHVybiB0aGlzLmxvZygiX2ludDMyIix0KSx0aGlzLm9mZnNldCs9NCx0fWludDMyKCl7dGhpcy53YWl0V3JpdGUoImludDMyIik7bGV0IHQ9dGhpcy5faW50MzIoKTtyZXR1cm4gdGhpcy5sb2coImludDMyIix0KSxudWxsPT10aGlzLnBlZWtPZmZzZXQmJnRoaXMuZmxpcCgpLHR9Ynl0ZXMoKXt0aGlzLndhaXRXcml0ZSgiYnl0ZXMiKTtsZXQgdD10aGlzLl9pbnQzMigpLGU9bmV3IEFycmF5QnVmZmVyKHQpO3JldHVybiBuZXcgVWludDhBcnJheShlKS5zZXQobmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsdGhpcy5vZmZzZXQsdCkpLHRoaXMubG9nKCJieXRlcyIsZSksdGhpcy5vZmZzZXQrPXQsbnVsbD09dGhpcy5wZWVrT2Zmc2V0JiZ0aGlzLmZsaXAoKSxlfX1jbGFzcyBpe2NvbnN0cnVjdG9yKHQse2luaXRpYWxPZmZzZXQ6ZT00LHVzZUF0b21pY3M6aT0hMCxzdHJlYW06cz0hMCxkZWJ1ZzpyLG5hbWU6bn09e30pe3RoaXMuYnVmZmVyPXQsdGhpcy5hdG9taWNWaWV3PW5ldyBJbnQzMkFycmF5KHQpLHRoaXMub2Zmc2V0PWUsdGhpcy51c2VBdG9taWNzPWksdGhpcy5zdHJlYW09cyx0aGlzLmRlYnVnPXIsdGhpcy5uYW1lPW4sdGhpcy51c2VBdG9taWNzP0F0b21pY3Muc3RvcmUodGhpcy5hdG9taWNWaWV3LDAsMCk6dGhpcy5hdG9taWNWaWV3WzBdPTB9bG9nKC4uLnQpe3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKGBbd3JpdGVyOiAke3RoaXMubmFtZX1dYCwuLi50KX13YWl0UmVhZCh0KXtpZih0aGlzLnVzZUF0b21pY3Mpe2lmKHRoaXMubG9nKGB3YWl0aW5nIGZvciAke3R9YCksMCE9PUF0b21pY3MuY29tcGFyZUV4Y2hhbmdlKHRoaXMuYXRvbWljVmlldywwLDAsMSkpdGhyb3cgbmV3IEVycm9yKCJXcm90ZSBzb21ldGhpbmcgaW50byB1bndyaXRhYmxlIGJ1ZmZlciEgVGhpcyBpcyBkaXNhc3Ryb3VzIik7Zm9yKEF0b21pY3Mubm90aWZ5KHRoaXMuYXRvbWljVmlldywwKTsxPT09QXRvbWljcy5sb2FkKHRoaXMuYXRvbWljVmlldywwKTspQXRvbWljcy53YWl0KHRoaXMuYXRvbWljVmlldywwLDEsNTAwKTt0aGlzLmxvZyhgcmVzdW1lZCBmb3IgJHt0fWApfWVsc2UgdGhpcy5hdG9taWNWaWV3WzBdPTE7dGhpcy5vZmZzZXQ9NH1maW5hbGl6ZSgpe3RoaXMubG9nKCJmaW5hbGl6aW5nIiksbmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5zZXRVaW50MzIoMCx0KSx0aGlzLndhaXRSZWFkKCJmaW5hbGl6ZSIpfXN0cmluZyh0KXt0aGlzLmxvZygic3RyaW5nIix0KTtsZXQgZT0yKnQubGVuZ3RoO3RoaXMuX2ludDMyKGUpO2xldCBpPW5ldyBEYXRhVmlldyh0aGlzLmJ1ZmZlcix0aGlzLm9mZnNldCxlKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpLnNldFVpbnQxNigyKmUsdC5jaGFyQ29kZUF0KGUpKTt0aGlzLm9mZnNldCs9ZSx0aGlzLndhaXRSZWFkKCJzdHJpbmciKX1faW50MzIodCl7bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5zZXRJbnQzMigwLHQpLHRoaXMub2Zmc2V0Kz00fWludDMyKHQpe3RoaXMubG9nKCJpbnQzMiIsdCksdGhpcy5faW50MzIodCksdGhpcy53YWl0UmVhZCgiaW50MzIiKX1ieXRlcyh0KXt0aGlzLmxvZygiYnl0ZXMiLHQpO2xldCBlPXQuYnl0ZUxlbmd0aDt0aGlzLl9pbnQzMihlKSxuZXcgVWludDhBcnJheSh0aGlzLmJ1ZmZlcix0aGlzLm9mZnNldCkuc2V0KG5ldyBVaW50OEFycmF5KHQpKSx0aGlzLm9mZnNldCs9ZSx0aGlzLndhaXRSZWFkKCJieXRlcyIpfX1sZXQgcz0wLHI9MSxuPTIsbz00O2xldCBhPS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbD1uZXcgTWFwLGM9bmV3IE1hcDtmdW5jdGlvbiBoKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGUpfWNsYXNzIGZ7Y29uc3RydWN0b3IodCxlPSJyZWFkb25seSIpe3RoaXMuZGI9dCx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sZSksdGhpcy5zdG9yZT10aGlzLnRyYW5zLm9iamVjdFN0b3JlKCJkYXRhIiksdGhpcy5sb2NrVHlwZT0icmVhZG9ubHkiPT09ZT9yOm8sdGhpcy5jYWNoZWRGaXJzdEJsb2NrPW51bGwsdGhpcy5jdXJzb3I9bnVsbCx0aGlzLnByZXZSZWFkcz1udWxsfWFzeW5jIHByZWZldGNoRmlyc3RCbG9jayh0KXtsZXQgZT1hd2FpdCB0aGlzLmdldCgwKTtyZXR1cm4gdGhpcy5jYWNoZWRGaXJzdEJsb2NrPWUsZX1hc3luYyB3YWl0Q29tcGxldGUoKXtyZXR1cm4gbmV3IFByb21pc2UoKCh0LGUpPT57dGhpcy5jb21taXQoKSx0aGlzLmxvY2tUeXBlPT09bz8odGhpcy50cmFucy5vbmNvbXBsZXRlPWU9PnQoKSx0aGlzLnRyYW5zLm9uZXJyb3I9dD0+ZSh0KSk6YT90aGlzLnRyYW5zLm9uY29tcGxldGU9ZT0+dCgpOnQoKX0pKX1jb21taXQoKXt0aGlzLnRyYW5zLmNvbW1pdCYmdGhpcy50cmFucy5jb21taXQoKX1hc3luYyB1cGdyYWRlRXhjbHVzaXZlKCl7dGhpcy5jb21taXQoKSx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sInJlYWR3cml0ZSIpLHRoaXMuc3RvcmU9dGhpcy50cmFucy5vYmplY3RTdG9yZSgiZGF0YSIpLHRoaXMubG9ja1R5cGU9bztsZXQgdD10aGlzLmNhY2hlZEZpcnN0QmxvY2s7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCYmbnVsbCE9ZSl7bGV0IGk9bmV3IFVpbnQ4QXJyYXkodCkscz1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IHQ9MjQ7dDw0MDt0KyspaWYoaVt0XSE9PXNbdF0pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIG51bGw9PXQmJm51bGw9PWV9KGF3YWl0IHRoaXMucHJlZmV0Y2hGaXJzdEJsb2NrKDUwMCksdCl9ZG93bmdyYWRlU2hhcmVkKCl7dGhpcy5jb21taXQoKSx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sInJlYWRvbmx5IiksdGhpcy5zdG9yZT10aGlzLnRyYW5zLm9iamVjdFN0b3JlKCJkYXRhIiksdGhpcy5sb2NrVHlwZT1yfWFzeW5jIGdldCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLGkpPT57bGV0IHM9dGhpcy5zdG9yZS5nZXQodCk7cy5vbnN1Y2Nlc3M9dD0+e2Uocy5yZXN1bHQpfSxzLm9uZXJyb3I9dD0+aSh0KX0pKX1nZXRSZWFkRGlyZWN0aW9uKCl7bGV0IHQ9dGhpcy5wcmV2UmVhZHM7aWYodCl7aWYodFswXTx0WzFdJiZ0WzFdPHRbMl0mJnRbMl0tdFswXTwxMClyZXR1cm4ibmV4dCI7aWYodFswXT50WzFdJiZ0WzFdPnRbMl0mJnRbMF0tdFsyXTwxMClyZXR1cm4icHJldiJ9cmV0dXJuIG51bGx9cmVhZCh0KXtsZXQgZT0oKT0+bmV3IFByb21pc2UoKCh0LGUpPT57aWYobnVsbCE9dGhpcy5jdXJzb3JQcm9taXNlKXRocm93IG5ldyBFcnJvcigid2FpdEN1cnNvcigpIGNhbGxlZCBidXQgc29tZXRoaW5nIGVsc2UgaXMgYWxyZWFkeSB3YWl0aW5nIik7dGhpcy5jdXJzb3JQcm9taXNlPXtyZXNvbHZlOnQscmVqZWN0OmV9fSkpO2lmKHRoaXMuY3Vyc29yKXtsZXQgaT10aGlzLmN1cnNvcjtyZXR1cm4ibmV4dCI9PT1pLmRpcmVjdGlvbiYmdD5pLmtleSYmdDxpLmtleSsxMDA/KGkuYWR2YW5jZSh0LWkua2V5KSxlKCkpOiJwcmV2Ij09PWkuZGlyZWN0aW9uJiZ0PGkua2V5JiZ0Pmkua2V5LTEwMD8oaS5hZHZhbmNlKGkua2V5LXQpLGUoKSk6KHRoaXMuY3Vyc29yPW51bGwsdGhpcy5yZWFkKHQpKX17bGV0IGk9dGhpcy5nZXRSZWFkRGlyZWN0aW9uKCk7aWYoaSl7bGV0IHM7dGhpcy5wcmV2UmVhZHM9bnVsbCxzPSJwcmV2Ij09PWk/SURCS2V5UmFuZ2UudXBwZXJCb3VuZCh0KTpJREJLZXlSYW5nZS5sb3dlckJvdW5kKHQpO2xldCByPXRoaXMuc3RvcmUub3BlbkN1cnNvcihzLGkpO3JldHVybiByLm9uc3VjY2Vzcz10PT57bGV0IGU9dC50YXJnZXQucmVzdWx0O2lmKHRoaXMuY3Vyc29yPWUsbnVsbD09dGhpcy5jdXJzb3JQcm9taXNlKXRocm93IG5ldyBFcnJvcigiR290IGRhdGEgZnJvbSBjdXJzb3IgYnV0IG5vdGhpbmcgaXMgd2FpdGluZyBpdCIpO3RoaXMuY3Vyc29yUHJvbWlzZS5yZXNvbHZlKGU/ZS52YWx1ZTpudWxsKSx0aGlzLmN1cnNvclByb21pc2U9bnVsbH0sci5vbmVycm9yPXQ9PntpZihjb25zb2xlLmxvZygiQ3Vyc29yIGZhaWx1cmU6Iix0KSxudWxsPT10aGlzLmN1cnNvclByb21pc2UpdGhyb3cgbmV3IEVycm9yKCJHb3QgZGF0YSBmcm9tIGN1cnNvciBidXQgbm90aGluZyBpcyB3YWl0aW5nIGl0Iik7dGhpcy5jdXJzb3JQcm9taXNlLnJlamVjdCh0KSx0aGlzLmN1cnNvclByb21pc2U9bnVsbH0sZSgpfXJldHVybiBudWxsPT10aGlzLnByZXZSZWFkcyYmKHRoaXMucHJldlJlYWRzPVswLDAsMF0pLHRoaXMucHJldlJlYWRzLnB1c2godCksdGhpcy5wcmV2UmVhZHMuc2hpZnQoKSx0aGlzLmdldCh0KX19YXN5bmMgc2V0KHQpe3JldHVybiB0aGlzLnByZXZSZWFkcz1udWxsLG5ldyBQcm9taXNlKCgoZSxpKT0+e2xldCBzPXRoaXMuc3RvcmUucHV0KHQudmFsdWUsdC5rZXkpO3Mub25zdWNjZXNzPXQ9PmUocy5yZXN1bHQpLHMub25lcnJvcj10PT5pKHQpfSkpfWFzeW5jIGJ1bGtTZXQodCl7dGhpcy5wcmV2UmVhZHM9bnVsbDtmb3IobGV0IGUgb2YgdCl0aGlzLnN0b3JlLnB1dChlLnZhbHVlLGUua2V5KX19YXN5bmMgZnVuY3Rpb24gdSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLGkpPT57aWYobC5nZXQodCkpcmV0dXJuIHZvaWQgZShsLmdldCh0KSk7bGV0IHM9Z2xvYmFsVGhpcy5pbmRleGVkREIub3Blbih0LDIpO3Mub25zdWNjZXNzPWk9PntsZXQgcz1pLnRhcmdldC5yZXN1bHQ7cy5vbnZlcnNpb25jaGFuZ2U9KCk9Pntjb25zb2xlLmxvZygiY2xvc2luZyBiZWNhdXNlIHZlcnNpb24gY2hhbmdlZCIpLHMuY2xvc2UoKSxsLmRlbGV0ZSh0KX0scy5vbmNsb3NlPSgpPT57bC5kZWxldGUodCl9LGwuc2V0KHQscyksZShzKX0scy5vbnVwZ3JhZGVuZWVkZWQ9dD0+e2xldCBlPXQudGFyZ2V0LnJlc3VsdDtlLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoImRhdGEiKXx8ZS5jcmVhdGVPYmplY3RTdG9yZSgiZGF0YSIpfSxzLm9uYmxvY2tlZD10PT5jb25zb2xlLmxvZygiYmxvY2tlZCIsdCkscy5vbmVycm9yPXMub25hYm9ydD10PT5pKHQudGFyZ2V0LmVycm9yKX0pKX1hc3luYyBmdW5jdGlvbiB3KHQsZSxpKXtsZXQgcz1jLmdldCh0KTtpZihzKXtpZigicmVhZHdyaXRlIj09PWUmJnMubG9ja1R5cGU9PT1yKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHdyaXRlIGJ1dCBvbmx5IGhhcyBTSEFSRUQgbG9jayIpO3JldHVybiBpKHMpfXM9bmV3IGYoYXdhaXQgdSh0KSxlKSxhd2FpdCBpKHMpLGF3YWl0IHMud2FpdENvbXBsZXRlKCl9YXN5bmMgZnVuY3Rpb24gZCh0LGUsaSl7bGV0IG49ZnVuY3Rpb24odCl7cmV0dXJuIGMuZ2V0KHQpfShlKTtpZihpPT09cil7aWYobnVsbD09bil0aHJvdyBuZXcgRXJyb3IoIlVubG9jayBlcnJvciAoU0hBUkVEKTogbm8gdHJhbnNhY3Rpb24gcnVubmluZyIpO24ubG9ja1R5cGU9PT1vJiZuLmRvd25ncmFkZVNoYXJlZCgpfWVsc2UgaT09PXMmJm4mJihhd2FpdCBuLndhaXRDb21wbGV0ZSgpLGMuZGVsZXRlKGUpKTt0LmludDMyKDApLHQuZmluYWxpemUoKX1hc3luYyBmdW5jdGlvbiBnKHQsZSl7bGV0IGk9dC5zdHJpbmcoKTtzd2l0Y2goaSl7Y2FzZSJwcm9maWxlLXN0YXJ0Ijp0LmRvbmUoKSxlLmludDMyKDApLGUuZmluYWxpemUoKSxnKHQsZSk7YnJlYWs7Y2FzZSJwcm9maWxlLXN0b3AiOnQuZG9uZSgpLGF3YWl0IG5ldyBQcm9taXNlKCh0PT5zZXRUaW1lb3V0KHQsMWUzKSkpLGUuaW50MzIoMCksZS5maW5hbGl6ZSgpLGcodCxlKTticmVhaztjYXNlIndyaXRlQmxvY2tzIjp7bGV0IGk9dC5zdHJpbmcoKSxzPVtdO2Zvcig7IXQuZG9uZSgpOyl7bGV0IGU9dC5pbnQzMigpLGk9dC5ieXRlcygpO3MucHVzaCh7cG9zOmUsZGF0YTppfSl9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlLGkpe3JldHVybiB3KGUsInJlYWR3cml0ZSIsKGFzeW5jIGU9Pnthd2FpdCBlLmJ1bGtTZXQoaS5tYXAoKHQ9Pih7a2V5OnQucG9zLHZhbHVlOnQuZGF0YX0pKSkpLHQuaW50MzIoMCksdC5maW5hbGl6ZSgpfSkpfShlLGkscyksZyh0LGUpO2JyZWFrfWNhc2UicmVhZEJsb2NrIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHcoZSwicmVhZG9ubHkiLChhc3luYyBlPT57bGV0IHM9YXdhaXQgZS5yZWFkKGkpO251bGw9PXM/dC5ieXRlcyhuZXcgQXJyYXlCdWZmZXIoMCkpOnQuYnl0ZXMocyksdC5maW5hbGl6ZSgpfSkpfShlLGkscyksZyh0LGUpO2JyZWFrfWNhc2UicmVhZE1ldGEiOntsZXQgaT10LnN0cmluZygpO3QuZG9uZSgpLGF3YWl0IGFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHcoZSwicmVhZG9ubHkiLChhc3luYyBpPT57dHJ5e2NvbnNvbGUubG9nKCJSZWFkaW5nIG1ldGEuLi4iKTtsZXQgcz1hd2FpdCBpLmdldCgtMSk7aWYoY29uc29sZS5sb2coYEdvdCBtZXRhIGZvciAke2V9OmAscyksbnVsbD09cyl0LmludDMyKC0xKSx0LmludDMyKDQwOTYpLHQuZmluYWxpemUoKTtlbHNle2xldCBlPWF3YWl0IGkuZ2V0KDApLHI9NDA5NjtlJiYocj0yNTYqbmV3IFVpbnQxNkFycmF5KGUpWzhdKSx0LmludDMyKHMuc2l6ZSksdC5pbnQzMihyKSx0LmZpbmFsaXplKCl9fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpLHQuaW50MzIoLTEpLHQuaW50MzIoLTEpLHQuZmluYWxpemUoKX19KSl9KGUsaSksZyh0LGUpO2JyZWFrfWNhc2Uid3JpdGVNZXRhIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHcoZSwicmVhZHdyaXRlIiwoYXN5bmMgZT0+e3RyeXthd2FpdCBlLnNldCh7a2V5Oi0xLHZhbHVlOml9KSx0LmludDMyKDApLHQuZmluYWxpemUoKX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKSx0LmludDMyKC0xKSx0LmZpbmFsaXplKCl9fSkpfShlLGkse3NpemU6c30pLGcodCxlKTticmVha31jYXNlImNsb3NlRmlsZSI6e2xldCBpPXQuc3RyaW5nKCk7dC5kb25lKCksZS5pbnQzMigwKSxlLmZpbmFsaXplKCksZnVuY3Rpb24odCl7bGV0IGU9bC5nZXQodCk7ZSYmKGUuY2xvc2UoKSxsLmRlbGV0ZSh0KSl9KGkpLHNlbGYuY2xvc2UoKTticmVha31jYXNlImxvY2tGaWxlIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7bGV0IHM9Yy5nZXQoZSk7aWYocylpZihpPnMubG9ja1R5cGUpe2gocy5sb2NrVHlwZT09PXIsYFVwcmFkaW5nIGxvY2sgdHlwZSBmcm9tICR7cy5sb2NrVHlwZX0gaXMgaW52YWxpZGApLGgoaT09PW58fGk9PT1vLGBVcGdyYWRpbmcgbG9jayB0eXBlIHRvICR7aX0gaXMgaW52YWxpZGApO2xldCBlPWF3YWl0IHMudXBncmFkZUV4Y2x1c2l2ZSgpO3QuaW50MzIoZT8wOi0xKSx0LmZpbmFsaXplKCl9ZWxzZSBoKHMubG9ja1R5cGU9PT1pLGBEb3duZ3JhZGluZyBsb2NrIHRvICR7aX0gaXMgaW52YWxpZGApLHQuaW50MzIoMCksdC5maW5hbGl6ZSgpO2Vsc2V7aChpPT09cixgTmV3IGxvY2tzIG11c3Qgc3RhcnQgYXMgU0hBUkVEIGluc3RlYWQgb2YgJHtpfWApO2xldCBzPW5ldyBmKGF3YWl0IHUoZSkpO2F3YWl0IHMucHJlZmV0Y2hGaXJzdEJsb2NrKDUwMCksYy5zZXQoZSxzKSx0LmludDMyKDApLHQuZmluYWxpemUoKX19KGUsaSxzKSxnKHQsZSk7YnJlYWt9Y2FzZSJ1bmxvY2tGaWxlIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBkKGUsaSxzKSxnKHQsZSk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWV0aG9kOiAiK2kpfX1zZWxmLm9ubWVzc2FnZT10PT57c3dpdGNoKHQuZGF0YS50eXBlKXtjYXNlImluaXQiOntsZXRbcyxyXT10LmRhdGEuYnVmZmVycztnKG5ldyBlKHMse25hbWU6ImFyZ3MiLGRlYnVnOiExfSksbmV3IGkocix7bmFtZToicmVzdWx0cyIsZGVidWc6ITF9KSk7YnJlYWt9fX19KCk7Cgo=",ue=null,pe=!1,function(e){return he=he||ce(ge,ue,pe),new Worker(he,e)}),we=Object.freeze({__proto__:null,default:me});export{_ as AddFriendPermission,K as AllowType,Q as ApplicationHandleResult,G as CbEvents,ee as GroupAtType,T as GroupJoinSource,te as GroupMemberFilter,Y as GroupMemberRole,oe as GroupMessageReaderFilter,$ as GroupStatus,J as GroupType,z as GroupVerificationType,E as LogLevel,se as LoginStatus,B as MessageReceiveOptType,H as MessageStatus,j as MessageType,ie as OnlineState,P as Platform,ne as Relationship,q as SessionType,re as ViewType,le as getSDK};
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";function e(e){return(t,s,n)=>{if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope)throw new Error("`startWorkerFromMain` should only be called from the main thread");if("undefined"==typeof Worker)throw new Error("Web workers not available. sqlite3 requires web workers to work.");e().then((({default:e})=>{let i=new e;i.postMessage({type:"init",buffers:[t,s]}),i.addEventListener("message",(e=>{n.postMessage(e.data)}))}))}}Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=()=>{const e=new Error("not implemented");return e.code="ENOSYS",e};if(!globalThis.fs){let t="";globalThis.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1,O_DIRECTORY:-1},writeSync(e,n){t+=s.decode(n);const i=t.lastIndexOf("\n");return-1!=i&&(console.log(t.substring(0,i)),t=t.substring(i+1)),n.length},write(t,s,n,i,o,r){if(0!==n||i!==s.length||null!==o)return void r(e());r(null,this.writeSync(t,s))},chmod(t,s,n){n(e())},chown(t,s,n,i){i(e())},close(t,s){s(e())},fchmod(t,s,n){n(e())},fchown(t,s,n,i){i(e())},fstat(t,s){s(e())},fsync(e,t){t(null)},ftruncate(t,s,n){n(e())},lchown(t,s,n,i){i(e())},link(t,s,n){n(e())},lstat(t,s){s(e())},mkdir(t,s,n){n(e())},open(t,s,n,i){i(e())},read(t,s,n,i,o,r){r(e())},readdir(t,s){s(e())},readlink(t,s){s(e())},rename(t,s,n){n(e())},rmdir(t,s){s(e())},stat(t,s){s(e())},symlink(t,s,n){n(e())},truncate(t,s,n){n(e())},unlink(t,s){s(e())},utimes(t,s,n,i){i(e())}}}if(globalThis.process||(globalThis.process={getuid:()=>-1,getgid:()=>-1,geteuid:()=>-1,getegid:()=>-1,getgroups(){throw e()},pid:-1,ppid:-1,umask(){throw e()},cwd(){throw e()},chdir(){throw e()}}),globalThis.path||(globalThis.path={resolve:(...e)=>e.join("/")}),!globalThis.crypto)throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");if(!globalThis.performance)throw new Error("globalThis.performance is not available, polyfill required (performance.now only)");if(!globalThis.TextEncoder)throw new Error("globalThis.TextEncoder is not available, polyfill required");if(!globalThis.TextDecoder)throw new Error("globalThis.TextDecoder is not available, polyfill required");const t=new TextEncoder("utf-8"),s=new TextDecoder("utf-8");globalThis.Go=class{constructor(){this.argv=["js"],this.env={},this.exit=e=>{0!==e&&console.warn("exit code:",e)},this._exitPromise=new Promise((e=>{this._resolveExitPromise=e})),this._pendingEvent=null,this._scheduledTimeouts=new Map,this._nextCallbackTimeoutID=1;const e=(e,t)=>{this.mem.setUint32(e+0,t,!0),this.mem.setUint32(e+4,Math.floor(t/4294967296),!0)},n=e=>this.mem.getUint32(e+0,!0)+4294967296*this.mem.getInt32(e+4,!0),i=e=>{const t=this.mem.getFloat64(e,!0);if(0===t)return;if(!isNaN(t))return t;const s=this.mem.getUint32(e,!0);return this._values[s]},o=(e,t)=>{const s=2146959360;if("number"==typeof t&&0!==t)return isNaN(t)?(this.mem.setUint32(e+4,s,!0),void this.mem.setUint32(e,0,!0)):void this.mem.setFloat64(e,t,!0);if(void 0===t)return void this.mem.setFloat64(e,0,!0);let n=this._ids.get(t);void 0===n&&(n=this._idPool.pop(),void 0===n&&(n=this._values.length),this._values[n]=t,this._goRefCounts[n]=0,this._ids.set(t,n)),this._goRefCounts[n]++;let i=0;switch(typeof t){case"object":null!==t&&(i=1);break;case"string":i=2;break;case"symbol":i=3;break;case"function":i=4}this.mem.setUint32(e+4,s|i,!0),this.mem.setUint32(e,n,!0)},r=e=>{const t=n(e+0),s=n(e+8);return new Uint8Array(this._inst.exports.mem.buffer,t,s)},a=e=>{const t=n(e+0),s=n(e+8),o=new Array(s);for(let e=0;e<s;e++)o[e]=i(t+8*e);return o},d=e=>{const t=n(e+0),i=n(e+8);return s.decode(new DataView(this._inst.exports.mem.buffer,t,i))},l=Date.now()-performance.now();this.importObject={_gotest:{add:(e,t)=>e+t,callExport:(e,t)=>(this._inst.exports.testExport0(),this._inst.exports.testExport(e,t))},gojs:{"runtime.wasmExit":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);this.exited=!0,delete this._inst,delete this._values,delete this._goRefCounts,delete this._ids,delete this._idPool,this.exit(t)},"runtime.wasmWrite":e=>{const t=n((e>>>=0)+8),s=n(e+16),i=this.mem.getInt32(e+24,!0);fs.writeSync(t,new Uint8Array(this._inst.exports.mem.buffer,s,i))},"runtime.resetMemoryDataView":e=>{this.mem=new DataView(this._inst.exports.mem.buffer)},"runtime.nanotime1":t=>{e((t>>>=0)+8,1e6*(l+performance.now()))},"runtime.walltime":t=>{t>>>=0;const s=(new Date).getTime();e(t+8,s/1e3),this.mem.setInt32(t+16,s%1e3*1e6,!0)},"runtime.scheduleTimeoutEvent":e=>{e>>>=0;const t=this._nextCallbackTimeoutID;this._nextCallbackTimeoutID++,this._scheduledTimeouts.set(t,setTimeout((()=>{for(this._resume();this._scheduledTimeouts.has(t);)console.warn("scheduleTimeoutEvent: missed timeout event"),this._resume()}),n(e+8))),this.mem.setInt32(e+16,t,!0)},"runtime.clearTimeoutEvent":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);clearTimeout(this._scheduledTimeouts.get(t)),this._scheduledTimeouts.delete(t)},"runtime.getRandomData":e=>{e>>>=0,crypto.getRandomValues(r(e+8))},"syscall/js.finalizeRef":e=>{e>>>=0;const t=this.mem.getUint32(e+8,!0);if(this._goRefCounts[t]--,0===this._goRefCounts[t]){const e=this._values[t];this._values[t]=null,this._ids.delete(e),this._idPool.push(t)}},"syscall/js.stringVal":e=>{o((e>>>=0)+24,d(e+8))},"syscall/js.valueGet":e=>{e>>>=0;const t=Reflect.get(i(e+8),d(e+16));e=this._inst.exports.getsp()>>>0,o(e+32,t)},"syscall/js.valueSet":e=>{e>>>=0,Reflect.set(i(e+8),d(e+16),i(e+32))},"syscall/js.valueDelete":e=>{e>>>=0,Reflect.deleteProperty(i(e+8),d(e+16))},"syscall/js.valueIndex":e=>{o((e>>>=0)+24,Reflect.get(i(e+8),n(e+16)))},"syscall/js.valueSetIndex":e=>{e>>>=0,Reflect.set(i(e+8),n(e+16),i(e+24))},"syscall/js.valueCall":e=>{e>>>=0;try{const t=i(e+8),s=Reflect.get(t,d(e+16)),n=a(e+32),r=Reflect.apply(s,t,n);e=this._inst.exports.getsp()>>>0,o(e+56,r),this.mem.setUint8(e+64,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+56,t),this.mem.setUint8(e+64,0)}},"syscall/js.valueInvoke":e=>{e>>>=0;try{const t=i(e+8),s=a(e+16),n=Reflect.apply(t,void 0,s);e=this._inst.exports.getsp()>>>0,o(e+40,n),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueNew":e=>{e>>>=0;try{const t=i(e+8),s=a(e+16),n=Reflect.construct(t,s);e=this._inst.exports.getsp()>>>0,o(e+40,n),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueLength":t=>{e((t>>>=0)+16,parseInt(i(t+8).length))},"syscall/js.valuePrepareString":s=>{s>>>=0;const n=t.encode(String(i(s+8)));o(s+16,n),e(s+24,n.length)},"syscall/js.valueLoadString":e=>{const t=i((e>>>=0)+8);r(e+16).set(t)},"syscall/js.valueInstanceOf":e=>{e>>>=0,this.mem.setUint8(e+24,i(e+8)instanceof i(e+16)?1:0)},"syscall/js.copyBytesToGo":t=>{const s=r((t>>>=0)+8),n=i(t+32);if(!(n instanceof Uint8Array||n instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);const o=n.subarray(0,s.length);s.set(o),e(t+40,o.length),this.mem.setUint8(t+48,1)},"syscall/js.copyBytesToJS":t=>{const s=i((t>>>=0)+8),n=r(t+16);if(!(s instanceof Uint8Array||s instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);const o=n.subarray(0,s.length);s.set(o),e(t+40,o.length),this.mem.setUint8(t+48,1)},debug:e=>{console.log(e)}}}}async run(e){if(!(e instanceof WebAssembly.Instance))throw new Error("Go.run: WebAssembly.Instance expected");this._inst=e,this.mem=new DataView(this._inst.exports.mem.buffer),this._values=[NaN,0,null,!0,!1,globalThis,this],this._goRefCounts=new Array(this._values.length).fill(1/0),this._ids=new Map([[0,1],[null,2],[!0,3],[!1,4],[globalThis,5],[this,6]]),this._idPool=[],this.exited=!1;let s=4096;const n=e=>{const n=s,i=t.encode(e+"\0");return new Uint8Array(this.mem.buffer,s,i.length).set(i),s+=i.length,s%8!=0&&(s+=8-s%8),n},i=this.argv.length,o=[];this.argv.forEach((e=>{o.push(n(e))})),o.push(0);Object.keys(this.env).sort().forEach((e=>{o.push(n(`${e}=${this.env[e]}`))})),o.push(0);const r=s;o.forEach((e=>{this.mem.setUint32(s,e,!0),this.mem.setUint32(s+4,0,!0),s+=8}));if(s>=12288)throw new Error("total length of command line and environment variables exceeds limit");this._inst.exports.run(i,r),this.exited&&this._resolveExitPromise(),await this._exitPromise}_resume(){if(this.exited)throw new Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(e){const t=this;return function(){const s={id:e,this:this,args:arguments};return t._pendingEvent=s,t._resume(),s.result}}}})();const t=function(t,s){const n=e(s);return e=>{e.addEventListener("message",(s=>{if(s.data.type===t)n(s.data.argBuffer,s.data.resultBuffer,e)}))}}("__absurd:spawn-idb-worker",(()=>Promise.resolve().then((function(){return me}))));var s=Object.defineProperty,n=Object.defineProperties,i=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,d=(e,t,n)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var s in t||(t={}))r.call(t,s)&&d(e,s,t[s]);if(o)for(var s of o(t))a.call(t,s)&&d(e,s,t[s]);return e},c=(e,t)=>n(e,i(t)),p=(e,t,s)=>(d(e,"symbol"!=typeof t?t+"":t,s),s);const g={CONNECT_TIMEOUT:{code:-32300,message:"Connect timeout"},APPLICATION_ERROR:{code:-32500,message:"Application error"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"}};class u{constructor(e){p(this,"_currentEndpoint"),p(this,"_targetEndpoint"),p(this,"_events"),p(this,"_originOnmessage"),p(this,"_receiveMessage"),p(this,"onerror",null),p(this,"config"),p(this,"sendAdapter"),p(this,"receiveAdapter"),this._events={},this._currentEndpoint=e.currentEndpoint,this._targetEndpoint=e.targetEndpoint,this._originOnmessage=null,this.config=e.config,this.receiveAdapter=e.receiveAdapter,this.sendAdapter=e.sendAdapter;const t=e=>{const t=this.receiveAdapter?this.receiveAdapter(e):e.data;if(t&&"string"==typeof t.event){const e=this._events[t.event]||[];if(e.length)return void e.forEach((e=>{e(...t.args||[])}));this.onerror&&this.onerror(c(l({},g.METHOD_NOT_FOUND),{data:t}))}};if(this._currentEndpoint.addEventListener)return"start"in this._currentEndpoint&&this._currentEndpoint.start&&this._currentEndpoint.start(),this._currentEndpoint.addEventListener("message",t,!1),void(this._receiveMessage=t);this._originOnmessage=this._currentEndpoint.onmessage,this._currentEndpoint.onmessage=e=>{this._originOnmessage&&this._originOnmessage(e),t(e)},this._receiveMessage=this._currentEndpoint.onmessage}emit(e,...t){const s={event:e,args:t},n=this.sendAdapter?this.sendAdapter(s,this._targetEndpoint):{data:s},i=n.data||s,o=this.config?"function"==typeof this.config?this.config(i,this._targetEndpoint)||{}:this.config||{}:{};Array.isArray(n.transfer)&&n.transfer.length&&(o.transfer=n.transfer),this._targetEndpoint.postMessage(i,o)}on(e,t){this._events[e]||(this._events[e]=[]),this._events[e].push(t)}off(e,t){if(!this._events[e])return;if(!t)return void(this._events[e]=[]);const s=this._events[e]||[];this._events[e]=s.filter((e=>e!==t))}destroy(){if(this._currentEndpoint.removeEventListener)this._currentEndpoint.removeEventListener("message",this._receiveMessage,!1);else try{this._currentEndpoint.onmessage=this._originOnmessage}catch(e){console.warn(e)}}}const h=class{constructor(e){p(this,"_event"),p(this,"_methods",{}),p(this,"_timeout",0),p(this,"_$connect",null),this._event=e.event,this._timeout=e.timeout||0,e.methods&&Object.entries(e.methods).forEach((([e,t])=>{this.registerMethod(e,t)})),this._event.onerror=e=>{const{code:t,message:s,data:n}=e;if(n.event&&Array.isArray(n.args)&&n.args.length){const e=n.args[0],i=this._getAckEventName(e.method),o={jsonrpc:"2.0",id:null==e?void 0:e.id,error:{code:t,message:s,data:e}};this._event.emit(i,o)}else console.error(e)},this.connect()}static uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}_getSynEventName(e){return`${h.EVENT.SYN_SIGN}${e}`}_getAckEventName(e){return`${h.EVENT.ACK_SIGN}${e}`}connect(e){return this._$connect||(this._$connect=new Promise(((t,s)=>{const n=e||this._timeout;let i;n&&(i=setTimeout((()=>{const e=c(l({},g.TIMEOUT),{data:{timeout:n}});s(e)}),n));const o=h.EVENT.CONNECT,r=this._getAckEventName(o),a=this._getSynEventName(o),d=()=>{clearTimeout(i),t()};this._event.on(r,d);this._event.on(a,(()=>{this._event.emit(r),d()})),this._event.emit(a)}))),this._$connect}registerMethod(e,t){if(this._methods[e])throw new Error(`${e} already registered`);this._methods[e]=t;const s=this._getSynEventName(e);this._event.on(s,(s=>{const n=this._getAckEventName(e);s.id?Promise.resolve(t(...s.params)).then((e=>{const t={jsonrpc:"2.0",result:e,id:s.id};this._event.emit(n,t)})).catch((e=>{const t={jsonrpc:"2.0",id:s.id,error:{code:(null==e?void 0:e.code)||g.APPLICATION_ERROR.code,message:(null==e?void 0:e.message)||g.APPLICATION_ERROR.message,data:null}};this._event.emit(n,t)})):t(...s.params)}))}removeMethod(e){this._methods[e]||delete this._methods[e];const t=this._getSynEventName(e);this._event.off(t)}invoke(e,...t){return new Promise(((s,n)=>{const i=t[t.length-1],o=i&&"object"==typeof i&&(Reflect.has(i,"isNotify")||Reflect.has(i,"timeout")),r=o?i:{isNotify:!1,timeout:0},a=o?t.slice(0,-1):t,d=this._getSynEventName(e),p=h.uuid(),u={jsonrpc:"2.0",method:e,params:a,id:p};if(this._event.emit(d,u),r.isNotify)s(void 0);else{const t=this._getAckEventName(e),i=r.timeout||this._timeout;let o;i&&(o=setTimeout((()=>{const e=c(l({},g.CONNECT_TIMEOUT),{data:{timeout:i}});n(e)}),i));const a=e=>{e.id===p&&(clearTimeout(o),this._event.off(t,a),e.error?n(e.error):s(e.result))};this._event.on(t,a)}}))}destroy(){Object.entries(this._methods).forEach((([e])=>{const t=this._getSynEventName(e);this._event.off(t)}));const e=this._getAckEventName(h.EVENT.CONNECT),t=this._getSynEventName(h.EVENT.CONNECT);this._event.off(t),this._event.off(e),this._event.destroy&&this._event.destroy()}};let m=h;p(m,"CODES",g),p(m,"EVENT",{SYN_SIGN:"syn:",ACK_SIGN:"ack:",CONNECT:"__rpc_connect_event",SYNC_METHODS:"__rpc_sync_methods_event"});const w={ErrorInit:10001,ErrorNoRecord:10002,ErrorDBTimeout:10003};var y;let G,v;exports.CbEvents=void 0,(y=exports.CbEvents||(exports.CbEvents={})).Login="Login",y.OnConnectFailed="OnConnectFailed",y.OnConnectSuccess="OnConnectSuccess",y.OnConnecting="OnConnecting",y.OnKickedOffline="OnKickedOffline",y.OnSelfInfoUpdated="OnSelfInfoUpdated",y.OnUserTokenExpired="OnUserTokenExpired",y.OnUserTokenInvalid="OnUserTokenInvalid",y.OnProgress="OnProgress",y.OnMsgDeleted="OnMsgDeleted",y.OnDeleteUserAllMsgsInConv="OnDeleteUserAllMsgsInConv",y.OnRecvNewMsg="OnRecvNewMsg",y.OnRecvNewMsgs="OnRecvNewMsgs",y.OnMsgModified="OnMsgModified",y.OnChangedPinnedMsg="OnChangedPinnedMsg",y.OnRecvOnlineOnlyMsg="OnRecvOnlineOnlyMsg",y.OnRecvOfflineNewMsg="onRecvOfflineNewMsg",y.OnRecvOnlineOnlyMsgs="OnRecvOnlineOnlyMsgs",y.OnRecvOfflineNewMsgs="onRecvOfflineNewMsgs",y.OnRecvMsgRevoked="OnRecvMsgRevoked",y.OnNewRecvMsgRevoked="OnNewRecvMsgRevoked",y.OnRecv1v1ReadReceipt="OnRecv1v1ReadReceipt",y.OnRecvGrpReadReceipt="OnRecvGrpReadReceipt",y.OnConversationChanged="OnConversationChanged",y.OnNewConversation="OnNewConversation",y.OnConversationUserInputStatusChanged="OnConversationUserInputStatusChanged",y.OnSyncServerFailed="OnSyncServerFailed",y.OnSyncServerFinish="OnSyncServerFinish",y.OnSyncServerProgress="OnSyncServerProgress",y.OnSyncServerStart="OnSyncServerStart",y.OnTotalUnreadMsgCountChanged="OnTotalUnreadMsgCountChanged",y.OnBlackAdded="OnBlackAdded",y.OnBlackDeleted="OnBlackDeleted",y.OnFriendReqAccepted="OnFriendReqAccepted",y.OnFriendReqAdded="OnFriendReqAdded",y.OnFriendReqDeleted="OnFriendReqDeleted",y.OnFriendReqRejected="OnFriendReqRejected",y.OnFriendInfoChanged="OnFriendInfoChanged",y.OnFriendAdded="OnFriendAdded",y.OnFriendDeleted="OnFriendDeleted",y.OnJoinedGrpAdded="OnJoinedGrpAdded",y.OnJoinedGrpDeleted="OnJoinedGrpDeleted",y.OnGrpDismissed="OnGrpDismissed",y.OnGrpMemberAdded="OnGrpMemberAdded",y.OnGrpMemberDeleted="OnGrpMemberDeleted",y.OnGrpReqAdded="OnGrpReqAdded",y.OnGrpReqDeleted="OnGrpReqDeleted",y.OnGrpInfoChanged="OnGrpInfoChanged",y.OnGrpMemberInfoChanged="OnGrpMemberInfoChanged",y.OnGrpReqAccepted="OnGrpReqAccepted",y.OnGrpReqRejected="OnGrpReqRejected",y.UploadComplete="UploadComplete",y.OnRecvCustomBusinessMsg="OnRecvCustomBusinessMsg",y.OnUserStatusChanged="OnUserStatusChanged",y.OnUploadLogsProgress="OnUploadLogsProgress",y.OnReceiveNewInvitation="OnReceiveNewInvitation",y.OnInviteeAccepted="OnInviteeAccepted",y.OnInviteeRejected="OnInviteeRejected",y.OnInvitationCancelled="OnInvitationCancelled",y.OnHangUp="OnHangUp",y.OnInvitationTimeout="OnInvitationTimeout",y.OnInviteeAcceptedByOtherDevice="OnInviteeAcceptedByOtherDevice",y.OnInviteeRejectedByOtherDevice="OnInviteeRejectedByOtherDevice",y.OnStreamChange="OnStreamChange",y.OnRoomParticipantConnected="OnRoomParticipantConnected",y.OnRoomParticipantDisconnected="OnRoomParticipantDisconnected",y.OnReceiveCustomSignal="OnReceiveCustomSignal",y.UnUsedEvent="UnUsedEvent";let M=!1;function b(){if("undefined"==typeof window)return;const e=function(){if("undefined"!=typeof Worker&&"type"in Worker.prototype)return!0;try{const e=new Blob([""],{type:"text/javascript"}),t=URL.createObjectURL(e);return new Worker(t,{type:"module"}),URL.revokeObjectURL(t),!0}catch(e){return!1}}(),s=e?new URL("worker.js","undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.js",document.baseURI).href):new URL("worker-legacy.js","undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.js",document.baseURI).href);v=new Worker(s,{type:e?"module":"classic"}),t(v),G=new m({event:new u({currentEndpoint:v,targetEndpoint:v})})}function S(e){if(-32300===e.code)return G&&(G.destroy(),G=void 0),v&&(v.terminate(),v=void 0),JSON.stringify({data:"",errCode:w.ErrorDBTimeout,errMsg:"database maybe damaged"});throw e}function f(...e){M&&console.info(...e)}function I(e,t,s=!0){return f(`=> (database api) registe ${null!=t?t:e}`),async(...n)=>{if(G&&v||b(),G)try{f(`=> (invoked by go wasm) run ${null!=t?t:e} method with args ${JSON.stringify(n)}`);const i=await G.invoke(e,...n,{timeout:5e6});return f(`=> (invoked by go wasm) run ${null!=t?t:e} method with response `,JSON.stringify(i)),s?JSON.stringify(i):i}catch(e){S(e)}}}b();const R=null==G?void 0:G.connect(5e3);class C{constructor(){this.events={}}emit(e,t){return this.events[e]&&this.events[e].forEach((e=>e(t))),this}on(e,t){return this.events[e]?this.events[e].push(t):this.events[e]=[t],this}off(e,t){if(e&&"function"==typeof t&&this.events[e]){const s=this.events[e];if(!s||0===s.length)return;const n=s.findIndex((e=>e===t));-1!==n&&s.splice(n,1)}return this}}let L;const Z=new Uint8Array(16);function k(){if(!L&&(L="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!L))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return L(Z)}const O=[];for(let e=0;e<256;++e)O.push((e+256).toString(16).slice(1));var x={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function U(e,t,s){if(x.randomUUID&&!t&&!e)return x.randomUUID();const n=(e=e||{}).random||(e.rng||k)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t){s=s||0;for(let e=0;e<16;++e)t[s+e]=n[e];return t}return function(e,t=0){return(O[e[t+0]]+O[e[t+1]]+O[e[t+2]]+O[e[t+3]]+"-"+O[e[t+4]]+O[e[t+5]]+"-"+O[e[t+6]]+O[e[t+7]]+"-"+O[e[t+8]]+O[e[t+9]]+"-"+O[e[t+10]]+O[e[t+11]]+O[e[t+12]]+O[e[t+13]]+O[e[t+14]]+O[e[t+15]]).toLowerCase()}(n)}function X(e,t){return`font-size:14px; background:${null!=e?e:"#ffffff"}; color:${null!=t?t:"#000000"}; border-radius:4px; padding-inline:4px;`}let N,A=!1;const W="crim-cache";async function F(e){if(A)return null;if("undefined"==typeof window)return Promise.resolve(null);let t;N=new Go;try{if("instantiateStreaming"in WebAssembly)t=await WebAssembly.instantiateStreaming(V(e),N.importObject);else{const s=await V(e).then((e=>e.arrayBuffer()));t=await WebAssembly.instantiate(s,N.importObject)}N.run(t.instance)}catch(e){return console.error("Failed to initialize WASM:",e),null}return await async function(e){return new Promise((t=>{const s=setTimeout((()=>{clearTimeout(s),t(null)}),e)}))}(100),A=!0,N}function D(){return N}async function V(e){if(!("caches"in window))return fetch(e);const t=await caches.open(W),s=await t.match(e);return s&&!await(async()=>{const t=await fetch(e,{method:"HEAD"}),n=t.headers.get("ETag"),i=t.headers.get("Last-Modified");return t.ok&&(n!==(null==s?void 0:s.headers.get("ETag"))||i!==(null==s?void 0:s.headers.get("Last-Modified")))})()?s:async function(e,t){const s=await fetch(e,{cache:"no-cache"});try{await t.put(e,s.clone())}catch(e){console.warn("Failed to put cache")}return s}(e,t)}var B,_,T,K,J,Y,z,P,H,E,Q,j,q,$,ee,te,se,ne,ie,oe,re;exports.MessageReceiveOptType=void 0,(B=exports.MessageReceiveOptType||(exports.MessageReceiveOptType={}))[B.Normal=0]="Normal",B[B.NotReceive=1]="NotReceive",B[B.NotNotify=2]="NotNotify",exports.AddFriendPermission=void 0,(_=exports.AddFriendPermission||(exports.AddFriendPermission={}))[_.AddFriendAllowed=0]="AddFriendAllowed",_[_.AddFriendAllowedNoReview=1]="AddFriendAllowedNoReview",_[_.AddFriendDenied=2]="AddFriendDenied",exports.AllowType=void 0,(T=exports.AllowType||(exports.AllowType={}))[T.Allowed=0]="Allowed",T[T.NotAllowed=1]="NotAllowed",exports.GroupType=void 0,(K=exports.GroupType||(exports.GroupType={}))[K.Group=2]="Group",K[K.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(J=exports.GroupJoinSource||(exports.GroupJoinSource={}))[J.Invitation=2]="Invitation",J[J.Search=3]="Search",J[J.QrCode=4]="QrCode",exports.GroupMemberRole=void 0,(Y=exports.GroupMemberRole||(exports.GroupMemberRole={}))[Y.Normal=20]="Normal",Y[Y.Admin=60]="Admin",Y[Y.Owner=100]="Owner",exports.GroupVerificationType=void 0,(z=exports.GroupVerificationType||(exports.GroupVerificationType={}))[z.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",z[z.AllNeed=1]="AllNeed",z[z.AllNot=2]="AllNot",exports.MessageStatus=void 0,(P=exports.MessageStatus||(exports.MessageStatus={}))[P.Sending=1]="Sending",P[P.Succeed=2]="Succeed",P[P.Failed=3]="Failed",exports.Platform=void 0,(H=exports.Platform||(exports.Platform={}))[H.iOS=1]="iOS",H[H.Android=2]="Android",H[H.Windows=3]="Windows",H[H.MacOSX=4]="MacOSX",H[H.Web=5]="Web",H[H.Linux=7]="Linux",H[H.AndroidPad=8]="AndroidPad",H[H.iPad=9]="iPad",exports.LogLevel=void 0,(E=exports.LogLevel||(exports.LogLevel={}))[E.Verbose=6]="Verbose",E[E.Debug=5]="Debug",E[E.Info=4]="Info",E[E.Warn=3]="Warn",E[E.Error=2]="Error",E[E.Fatal=1]="Fatal",E[E.Panic=0]="Panic",exports.ApplicationHandleResult=void 0,(Q=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[Q.Unprocessed=0]="Unprocessed",Q[Q.Agree=1]="Agree",Q[Q.Reject=-1]="Reject",exports.MessageType=void 0,(j=exports.MessageType||(exports.MessageType={}))[j.TextMessage=101]="TextMessage",j[j.PictureMessage=102]="PictureMessage",j[j.VoiceMessage=103]="VoiceMessage",j[j.VideoMessage=104]="VideoMessage",j[j.FileMessage=105]="FileMessage",j[j.AtTextMessage=106]="AtTextMessage",j[j.MergeMessage=107]="MergeMessage",j[j.CardMessage=108]="CardMessage",j[j.LocationMessage=109]="LocationMessage",j[j.CustomMessage=110]="CustomMessage",j[j.TypingMessage=113]="TypingMessage",j[j.QuoteMessage=114]="QuoteMessage",j[j.FaceMessage=115]="FaceMessage",j[j.MarkdownMessage=118]="MarkdownMessage",j[j.StreamMessage=143]="StreamMessage",j[j.FriendAdded=1201]="FriendAdded",j[j.OANotification=1400]="OANotification",j[j.GroupCreated=1501]="GroupCreated",j[j.GroupInfoUpdated=1502]="GroupInfoUpdated",j[j.MemberQuit=1504]="MemberQuit",j[j.GroupOwnerTransferred=1507]="GroupOwnerTransferred",j[j.MemberKicked=1508]="MemberKicked",j[j.MemberInvited=1509]="MemberInvited",j[j.MemberEnter=1510]="MemberEnter",j[j.GroupDismissed=1511]="GroupDismissed",j[j.GroupMemberMuted=1512]="GroupMemberMuted",j[j.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",j[j.GroupMuted=1514]="GroupMuted",j[j.GroupCancelMuted=1515]="GroupCancelMuted",j[j.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",j[j.GroupNameUpdated=1520]="GroupNameUpdated",j[j.BurnMessageChange=1701]="BurnMessageChange",j[j.RevokeMessage=2101]="RevokeMessage",j[j.MsgPinned=2400]="MsgPinned",exports.SessionType=void 0,(q=exports.SessionType||(exports.SessionType={}))[q.Single=1]="Single",q[q.Group=3]="Group",q[q.WorkingGroup=3]="WorkingGroup",q[q.Notification=4]="Notification",exports.GroupStatus=void 0,($=exports.GroupStatus||(exports.GroupStatus={}))[$.Normal=0]="Normal",$[$.Banned=1]="Banned",$[$.Dismissed=2]="Dismissed",$[$.Muted=3]="Muted",exports.GroupAtType=void 0,(ee=exports.GroupAtType||(exports.GroupAtType={}))[ee.AtNormal=0]="AtNormal",ee[ee.AtMe=1]="AtMe",ee[ee.AtAll=2]="AtAll",ee[ee.AtAllAtMe=3]="AtAllAtMe",ee[ee.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(te=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[te.All=0]="All",te[te.Owner=1]="Owner",te[te.Admin=2]="Admin",te[te.Normal=3]="Normal",te[te.AdminAndNormal=4]="AdminAndNormal",te[te.AdminAndOwner=5]="AdminAndOwner",exports.Relationship=void 0,(se=exports.Relationship||(exports.Relationship={}))[se.isBlack=0]="isBlack",se[se.isFriend=1]="isFriend",exports.LoginStatus=void 0,(ne=exports.LoginStatus||(exports.LoginStatus={}))[ne.Logout=1]="Logout",ne[ne.Logging=2]="Logging",ne[ne.Logged=3]="Logged",exports.OnlineState=void 0,(ie=exports.OnlineState||(exports.OnlineState={}))[ie.Online=1]="Online",ie[ie.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(oe=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[oe.Read=0]="Read",oe[oe.UnRead=1]="UnRead",exports.ViewType=void 0,(re=exports.ViewType||(exports.ViewType={}))[re.History=0]="History",re[re.Search=1]="Search";class ae extends C{constructor(e){super(),this.goExisted=!1,this.tryParse=!0,this.isLogStandardOutput=!0,this.sdkVersion="2.8.0",this.login=async(e,t=U())=>{var s,n,i,o,r;this._logWrap(`SDK => (invoked by js) run login with args ${JSON.stringify({params:e,operationID:t})}`),await R,await this.wasmInitializedPromise,window.commonEventFunc((e=>{try{this._logWrap(`%cSDK =>%c received event %c${e}%c `,X("#282828","#ffffff"),"","color: #4f2398;","");const t=JSON.parse(e);if(this.tryParse)try{t.data=JSON.parse(t.data)}catch(e){}this.emit(t.event,t)}catch(e){console.error(e)}}));let a=e.sdkServer;/^https?:\/\//.test(a)||(a="http://"+a);const d={platformID:exports.Platform.Web,sdkServer:a,dataDir:"./",logLevel:e.logLevel||5,isLogStandardOutput:null!==(s=e.isLogStandardOutput)&&void 0!==s?s:this.isLogStandardOutput,logFilePath:"./",isExternalExtensions:e.isExternalExtensions||!1};return this.tryParse=null===(n=e.tryParse)||void 0===n||n,window.initSDK(t,JSON.stringify(d)),await window.login(t,e.userID,null!==(i=e.token)&&void 0!==i?i:"",null!==(o=e.appId)&&void 0!==o?o:"",null!==(r=e.appSecret)&&void 0!==r?r:"")},this.logout=(e=U())=>(window.fileMapClear(),this._invoker("logout",window.logout,[e])),this.getAllConversationList=(e=U())=>this._invoker("getAllConversationList",window.getAllConversationList,[e]),this.getOneConversation=(e,t=U())=>this._invoker("getOneConversation",window.getOneConversation,[t,e.sessionType,e.sourceID]),this.getAdvancedHistoryMsgList=(e,t=U())=>this._invoker("getAdvancedHistoryMsgList",window.getAdvancedHistoryMsgList,[t,JSON.stringify(e)]),this.getAdvancedHistoryMsgListReverse=(e,t=U())=>this._invoker("getAdvancedHistoryMsgListReverse",window.getAdvancedHistoryMsgListReverse,[t,JSON.stringify(e)]),this.getSpecifiedGrpsInfo=(e,t=U())=>this._invoker("getSpecifiedGrpsInfo",window.getSpecifiedGrpsInfo,[t,JSON.stringify(e)]),this.deleteConversationAndDeleteAllMsg=(e,t=U())=>this._invoker("deleteConversationAndDeleteAllMsg",window.deleteConversationAndDeleteAllMsg,[t,e]),this.markConversationMsgAsRead=(e,t=U())=>this._invoker("markConversationMsgAsRead",window.markConversationMsgAsRead,[t,e]),this.sendGroupMessageReadReceipt=(e,t=U())=>this._invoker("sendGroupMessageReadReceipt",window.sendGroupMessageReadReceipt,[t,e.conversationID,JSON.stringify(e.clientMsgIDList)]),this.getGroupMessageReaderList=(e,t=U())=>this._invoker("getGroupMessageReaderList",window.getGroupMessageReaderList,[t,e.conversationID,e.clientMsgID,e.filter,e.offset,e.count]),this.getGrpMemberList=(e,t=U())=>this._invoker("getGrpMemberList",window.getGrpMemberList,[t,e.groupID,e.filter,e.offset,e.count]),this.createTextMsg=(e,t=U())=>this._invoker("createTextMsg",window.createTextMsg,[t,e],(e=>e[0])),this.createImageMsgByURL=(e,t=U())=>this._invoker("createImageMsgByURL",window.createImageMsgByURL,[t,e.sourcePath,JSON.stringify(e.sourcePicture),JSON.stringify(e.bigPicture),JSON.stringify(e.snapshotPicture)],(e=>e[0])),this.createImageMsgByFile=(e,t=U())=>(e.sourcePicture.uuid=`${e.sourcePicture.uuid}/${e.file.name}`,window.fileMapSet(e.sourcePicture.uuid,e.file),this._invoker("createImageMsgByFile",window.createImageMsgByURL,[t,e.sourcePath,JSON.stringify(e.sourcePicture),JSON.stringify(e.bigPicture),JSON.stringify(e.snapshotPicture)],(e=>e[0]))),this.createCustomMsg=(e,t=U())=>this._invoker("createCustomMsg",window.createCustomMsg,[t,e.data,e.extension,e.description],(e=>e[0])),this.createQuoteMsg=(e,t=U())=>this._invoker("createQuoteMsg",window.createQuoteMsg,[t,e.text,e.message],(e=>e[0])),this.createAdvancedQuoteMsg=(e,t=U())=>this._invoker("createAdvancedQuoteMsg",window.createAdvancedQuoteMsg,[t,e.text,JSON.stringify(e.message),JSON.stringify(e.messageEntityList)],(e=>e[0])),this.createAdvancedTextMsg=(e,t=U())=>this._invoker("createAdvancedTextMsg",window.createAdvancedTextMsg,[t,e.text,JSON.stringify(e.messageEntityList)],(e=>e[0])),this.sendMsg=(e,t=U())=>{var s,n;const i=null!==(s=e.offlinePushInfo)&&void 0!==s?s:{title:"You have a new message.",desc:"",ex:"",iOSPushSound:"+1",iOSBadgeCount:!0};return this._invoker("sendMsg",window.sendMsg,[t,JSON.stringify(e.message),e.recvID,e.groupID,JSON.stringify(i),null!==(n=e.isOnlineOnly)&&void 0!==n&&n])},this.getHistoryMsgListReverse=(e,t=U())=>this._invoker("getHistoryMsgListReverse",window.getHistoryMsgListReverse,[t,JSON.stringify(e)]),this.revokeMsg=(e,t=U())=>this._invoker("revokeMsg",window.revokeMsg,[t,e.conversationID,e.clientMsgID]),this.setConversation=(e,t=U())=>this._invoker("setConversation",window.setConversation,[t,e.conversationID,JSON.stringify(e)]),this.getLoginStatus=(e=U())=>this._invoker("getLoginStatus",window.getLoginStatus,[e],(e=>e[0])),this.setAppBackgroundStatus=(e,t=U())=>this._invoker("setAppBackgroundStatus",window.setAppBackgroundStatus,[t,e]),this.networkStatusChanged=(e=U())=>this._invoker("networkStatusChanged ",window.networkStatusChanged,[e]),this.getLoginUserID=(e=U())=>this._invoker("getLoginUserID",window.getLoginUserID,[e]),this.getSelfUserInfo=(e=U())=>this._invoker("getSelfUserInfo",window.getSelfUserInfo,[e]),this.getUsersInfo=(e,t=U())=>this._invoker("getUsersInfo",window.getUsersInfo,[t,JSON.stringify(e)]),this.setSelfInfo=(e,t=U())=>this._invoker("setSelfInfo",window.setSelfInfo,[t,JSON.stringify(e)]),this.createTextAtMsg=(e,t=U())=>{var s;return this._invoker("createTextAtMsg",window.createTextAtMsg,[t,e.text,JSON.stringify(e.atUserIDList),JSON.stringify(e.atUsersInfo),null!==(s=JSON.stringify(e.message))&&void 0!==s?s:""],(e=>e[0]))},this.createSoundMsgByURL=(e,t=U())=>this._invoker("createSoundMsgByURL",window.createSoundMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createSoundMsgByFile=(e,t=U())=>(e.uuid=`${e.uuid}/${e.file.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("createSoundMsgByFile",window.createSoundMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createVideoMsgByURL=(e,t=U())=>this._invoker("createVideoMsgByURL",window.createVideoMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createVideoMsgByFile=(e,t=U())=>(e.videoUUID=`${e.videoUUID}/${e.videoFile.name}`,e.snapshotUUID=`${e.snapshotUUID}/${e.snapshotFile.name}`,window.fileMapSet(e.videoUUID,e.videoFile),window.fileMapSet(e.snapshotUUID,e.snapshotFile),this._invoker("createVideoMsgByFile",window.createVideoMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createFileMsgByURL=(e,t=U())=>this._invoker("createFileMsgByURL",window.createFileMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createFileMsgByFile=(e,t=U())=>(e.uuid=`${e.uuid}/${e.file.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("createFileMsgByFile",window.createFileMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createMergerMsg=(e,t=U())=>this._invoker("createMergerMsg ",window.createMergerMsg,[t,JSON.stringify(e.messageList),e.title,JSON.stringify(e.summaryList)],(e=>e[0])),this.createForwardMsg=(e,t=U())=>this._invoker("createForwardMsg ",window.createForwardMsg,[t,JSON.stringify(e)],(e=>e[0])),this.createFaceMsg=(e,t=U())=>this._invoker("createFaceMsg ",window.createFaceMsg,[t,e.index,e.data],(e=>e[0])),this.createLocationMsg=(e,t=U())=>this._invoker("createLocationMsg ",window.createLocationMsg,[t,e.description,e.longitude,e.latitude],(e=>e[0])),this.createCardMsg=(e,t=U())=>this._invoker("createCardMsg ",window.createCardMsg,[t,JSON.stringify(e)],(e=>e[0])),this.deleteMsgFromLocalStorage=(e,t=U())=>this._invoker("deleteMsgFromLocalStorage ",window.deleteMsgFromLocalStorage,[t,e.conversationID,e.clientMsgID]),this.deleteMsg=(e,t=U())=>this._invoker("deleteMsg ",window.deleteMsg,[t,e.conversationID,e.clientMsgID]),this.deleteAllConversationFromLocal=(e=U())=>this._invoker("deleteAllConversationFromLocal ",window.deleteAllConversationFromLocal,[e]),this.deleteAllMsgFromLocal=(e=U())=>this._invoker("deleteAllMsgFromLocal ",window.deleteAllMsgFromLocal,[e]),this.deleteAllMsgFromLocalAndSvr=(e=U())=>this._invoker("deleteAllMsgFromLocalAndSvr ",window.deleteAllMsgFromLocalAndSvr,[e]),this.insertSingleMsgToLocalStorage=(e,t=U())=>this._invoker("insertSingleMsgToLocalStorage ",window.insertSingleMsgToLocalStorage,[t,JSON.stringify(e.message),e.recvID,e.sendID]),this.insertGrpMsgToLocalStorage=(e,t=U())=>this._invoker("insertGrpMsgToLocalStorage ",window.insertGrpMsgToLocalStorage,[t,JSON.stringify(e.message),e.groupID,e.sendID]),this.changeInputStates=(e,t=U())=>this._invoker("changeInputStates ",window.changeInputStates,[t,e.conversationID,e.focus]),this.getInputstates=(e,t=U())=>this._invoker("getInputstates ",window.getInputstates,[t,e.conversationID,e.userID]),this.clearConversationAndDeleteAllMsg=(e,t=U())=>this._invoker("clearConversationAndDeleteAllMsg ",window.clearConversationAndDeleteAllMsg,[t,e]),this.hideConversation=(e,t=U())=>this._invoker("hideConversation ",window.hideConversation,[t,e]),this.getConversationListSplit=(e,t=U())=>this._invoker("getConversationListSplit ",window.getConversationListSplit,[t,e.offset,e.count]),this.getConversationIDBySessionType=(e,t=U())=>this._invoker("getConversationIDBySessionType ",window.getConversationIDBySessionType,[t,e.sourceID,e.sessionType]),this.getMultipleConversation=(e,t=U())=>this._invoker("getMultipleConversation ",window.getMultipleConversation,[t,JSON.stringify(e)]),this.deleteConversation=(e,t=U())=>this._invoker("deleteConversation ",window.deleteConversation,[t,e]),this.setConversationDraft=(e,t=U())=>this._invoker("setConversationDraft ",window.setConversationDraft,[t,e.conversationID,e.draftText]),this.getTotalUnreadMsgCount=(e=U())=>this._invoker("getTotalUnreadMsgCount ",window.getTotalUnreadMsgCount,[e]),this.searchLocalMsgs=(e,t=U())=>this._invoker("searchLocalMsgs ",window.searchLocalMsgs,[t,JSON.stringify(e)]),this.addFriend=(e,t=U())=>this._invoker("addFriend ",window.addFriend,[t,JSON.stringify(e)]),this.searchFriends=(e,t=U())=>this._invoker("searchFriends ",window.searchFriends,[t,JSON.stringify(e)]),this.getSpecifiedFriendsInfo=(e,t=U())=>this._invoker("getSpecifiedFriendsInfo",window.getSpecifiedFriendsInfo,[t,JSON.stringify(e.friendUserIDList),e.filterBlack]),this.getFriendReqListAsRecipient=(e={handleResults:[],offset:0,count:0},t=U())=>this._invoker("getFriendReqListAsRecipient ",window.getFriendReqListAsRecipient,[t,JSON.stringify(e)]),this.getFriendReqListAsApplicant=(e={offset:0,count:0},t=U())=>this._invoker("getFriendReqListAsApplicant ",window.getFriendReqListAsApplicant,[t,JSON.stringify(e)]),this.getFriendReqUnhandledCount=(e,t=U())=>this._invoker("getFriendReqUnhandledCount ",window.getFriendReqUnhandledCount,[t,JSON.stringify(e)]),this.deleteFriendRequests=(e,t=U())=>this._invoker("deleteFriendRequests ",window.deleteFriendRequests,[t,JSON.stringify({friendRequests:e})]),this.getFriendList=(e=!1,t=U())=>this._invoker("getFriendList ",window.getFriendList,[t,e]),this.getFriendListPage=(e,t=U())=>{var s;return this._invoker("getFriendListPage ",window.getFriendListPage,[t,e.offset,e.count,null!==(s=e.filterBlack)&&void 0!==s&&s])},this.updateFriends=(e,t=U())=>this._invoker("updateFriends ",window.updateFriends,[t,JSON.stringify(e)]),this.checkFriend=(e,t=U())=>this._invoker("checkFriend",window.checkFriend,[t,JSON.stringify(e)]),this.acceptFriendReq=(e,t=U())=>this._invoker("acceptFriendReq",window.acceptFriendReq,[t,JSON.stringify(e)]),this.refuseFriendReq=(e,t=U())=>this._invoker("refuseFriendReq ",window.refuseFriendReq,[t,JSON.stringify(e)]),this.deleteFriend=(e,t=U())=>this._invoker("deleteFriend ",window.deleteFriend,[t,e]),this.addBlack=(e,t=U())=>{var s;return this._invoker("addBlack ",window.addBlack,[t,e.toUserID,null!==(s=e.ex)&&void 0!==s?s:""])},this.removeBlack=(e,t=U())=>this._invoker("removeBlack ",window.removeBlack,[t,e]),this.getBlackList=(e=U())=>this._invoker("getBlackList ",window.getBlackList,[e]),this.inviteUserToGrp=(e,t=U())=>this._invoker("inviteUserToGrp ",window.inviteUserToGrp,[t,e.groupID,e.reason,JSON.stringify(e.userIDList)]),this.kickGrpMember=(e,t=U())=>this._invoker("kickGrpMember ",window.kickGrpMember,[t,e.groupID,e.reason,JSON.stringify(e.userIDList)]),this.isJoinGrp=(e,t=U())=>this._invoker("isJoinGrp ",window.isJoinGrp,[t,e]),this.getSpecifiedGrpMembersInfo=(e,t=U())=>this._invoker("getSpecifiedGrpMembersInfo ",window.getSpecifiedGrpMembersInfo,[t,e.groupID,JSON.stringify(e.userIDList)]),this.getUsersInGrp=(e,t=U())=>this._invoker("getUsersInGrp ",window.getUsersInGrp,[t,e.groupID,JSON.stringify(e.userIDList)]),this.getGrpMemberListByJoinTimeFilter=(e,t=U())=>this._invoker("getGrpMemberListByJoinTimeFilter ",window.getGrpMemberListByJoinTimeFilter,[t,e.groupID,e.offset,e.count,e.joinTimeBegin,e.joinTimeEnd,JSON.stringify(e.filterUserIDList)]),this.searchGrpMembers=(e,t=U())=>this._invoker("searchGrpMembers ",window.searchGrpMembers,[t,JSON.stringify(e)]),this.getJoinedGrpList=(e=U())=>this._invoker("getJoinedGrpList ",window.getJoinedGrpList,[e]),this.getJoinedGrpListPage=(e,t=U())=>this._invoker("getJoinedGrpListPage ",window.getJoinedGrpListPage,[t,e.offset,e.count]),this.createGrp=(e,t=U())=>this._invoker("createGrp ",window.createGrp,[t,JSON.stringify(e)]),this.setGrpInfo=(e,t=U())=>this._invoker("setGrpInfo ",window.setGrpInfo,[t,JSON.stringify(e)]),this.setGrpMemberInfo=(e,t=U())=>this._invoker("setGrpMemberInfo ",window.setGrpMemberInfo,[t,JSON.stringify(e)]),this.joinGrp=(e,t=U())=>{var s;return this._invoker("joinGrp ",window.joinGrp,[t,e.groupID,e.reqMsg,e.joinSource,null!==(s=e.ex)&&void 0!==s?s:""])},this.searchGrps=(e,t=U())=>this._invoker("searchGrps ",window.searchGrps,[t,JSON.stringify(e)]),this.quitGrp=(e,t=U())=>this._invoker("quitGrp ",window.quitGrp,[t,e]),this.dismissGrp=(e,t=U())=>this._invoker("dismissGrp ",window.dismissGrp,[t,e]),this.changeGrpMute=(e,t=U())=>this._invoker("changeGrpMute ",window.changeGrpMute,[t,e.groupID,e.isMute]),this.changeGrpMemberMute=(e,t=U())=>this._invoker("changeGrpMemberMute ",window.changeGrpMemberMute,[t,e.groupID,e.userID,e.mutedSeconds]),this.transferGrpOwner=(e,t=U())=>this._invoker("transferGrpOwner ",window.transferGrpOwner,[t,e.groupID,e.newOwnerUserID]),this.getGrpReqListAsApplicant=(e={groupID:[],handleResults:[],offset:0,count:0},t=U())=>this._invoker("getGrpReqListAsApplicant ",window.getGrpReqListAsApplicant,[t,JSON.stringify(e)]),this.getGrpReqListAsRecipient=(e={groupID:[],handleResults:[],offset:0,count:0},t=U())=>this._invoker("getGrpReqListAsRecipient ",window.getGrpReqListAsRecipient,[t,JSON.stringify(e)]),this.getGrpReqUnhandledCount=(e,t=U())=>this._invoker("getGrpReqUnhandledCount ",window.getGrpReqUnhandledCount,[t,JSON.stringify(e)]),this.deleteGroupRequests=(e,t=U())=>this._invoker("deleteGroupRequests ",window.deleteGroupRequests,[t,JSON.stringify({groupRequests:e})]),this.acceptGrpReq=(e,t=U())=>this._invoker("acceptGrpReq ",window.acceptGrpReq,[t,e.groupID,e.fromUserID,e.handleMsg]),this.refuseGrpReq=(e,t=U())=>this._invoker("refuseGrpReq ",window.refuseGrpReq,[t,e.groupID,e.fromUserID,e.handleMsg]),this.getGrpMemberOwnerAndAdmin=(e,t=U())=>this._invoker("getGrpMemberOwnerAndAdmin ",window.getGrpMemberOwnerAndAdmin,[t,e]),this.findMsgList=(e,t=U())=>this._invoker("findMsgList ",window.findMsgList,[t,JSON.stringify(e)]),this.uploadFile=(e,t=U())=>{var s;return e.uuid=`${e.uuid}/${null===(s=e.file)||void 0===s?void 0:s.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("uploadFile ",window.uploadFile,[t,JSON.stringify({...e,filepath:"",cause:""})])},this.subscribeUsersStatus=(e,t=U())=>this._invoker("subscribeUsersStatus ",window.subscribeUsersStatus,[t,JSON.stringify(e)]),this.unsubscribeUsersStatus=(e,t=U())=>this._invoker("unsubscribeUsersStatus ",window.unsubscribeUsersStatus,[t,JSON.stringify(e)]),this.getUserStatus=(e=U())=>this._invoker("getUserStatus ",window.getUserStatus,[e]),this.getSubscribeUsersStatus=(e=U())=>this._invoker("getSubscribeUsersStatus ",window.getSubscribeUsersStatus,[e]),this.signalingInvite=(e,t=U())=>this._invoker("signalingInvite ",window.signalingInvite,[t,JSON.stringify(e)]),this.signalingInviteInGroup=(e,t=U())=>this._invoker("signalingInviteInGroup ",window.signalingInviteInGroup,[t,JSON.stringify(e)]),this.signalingAccept=(e,t=U())=>this._invoker("signalingAccept ",window.signalingAccept,[t,JSON.stringify(e)]),this.signalingReject=(e,t=U())=>this._invoker("signalingReject ",window.signalingReject,[t,JSON.stringify(e)]),this.signalingCancel=(e,t=U())=>this._invoker("signalingCancel ",window.signalingCancel,[t,JSON.stringify(e)]),this.signalingHungUp=(e,t=U())=>this._invoker("signalingHungUp ",window.signalingHungUp,[t,JSON.stringify(e)]),this.signalingGetRoomByGroupID=(e,t=U())=>this._invoker("signalingGetRoomByGroupID ",window.signalingGetRoomByGroupID,[t,e]),this.signalingGetTokenByRoomID=(e,t=U())=>this._invoker("signalingGetTokenByRoomID ",window.signalingGetTokenByRoomID,[t,e]),this.getSignalingInvitationInfoStartApp=(e=U())=>this._invoker("getSignalingInvitationInfoStartApp ",window.getSignalingInvitationInfoStartApp,[e]),this.signalingSendCustomSignal=(e,t=U())=>this._invoker("signalingSendCustomSignal ",window.signalingSendCustomSignal,[t,e.customInfo,e.roomID]),this.setConversationIsMsgDestruct=(e,t=U())=>this._invoker("setConversationIsMsgDestruct ",window.setConversation,[t,e.conversationID,JSON.stringify({isMsgDestruct:e.isMsgDestruct})]),this.setConversationMsgDestructTime=(e,t=U())=>this._invoker("setConversationMsgDestructTime ",window.setConversation,[t,e.conversationID,JSON.stringify({msgDestructTime:e.msgDestructTime})]),this.createTargetedGroupMessage=(e,t=U())=>this._invoker("createTargetedGroupMessage",window.createTargetedGroupMessage,[t,JSON.stringify(e.message),JSON.stringify(e.dstUserIDs)],(e=>e[0])),this.setConversationPinnedMsg=(e,t=U())=>this._invoker("setConversationPinnedMsg ",window.setConversationPinnedMsg,[t,e.conversationID,e.clientMsgID,e.pinned]),this.getConversationPinnedMsg=(e,t=U())=>this._invoker("getConversationPinnedMsg ",window.getConversationPinnedMsg,[t,e]),this.fileMapSet=(e,t)=>window.fileMapSet(e,t),function(e=!0){G&&(M=e,window.wasmOpen=I("wasmOpen"),window.wasmClose=I("wasmClose"),window.wasmRead=I("wasmRead","wasmRead",!1),window.getUpload=I("getUpload"),window.insertUpload=I("insertUpload"),window.updateUpload=I("updateUpload"),window.deleteUpload=I("deleteUpload"),window.fileMapSet=I("fileMapSet"),window.fileMapClear=I("fileMapClear"),window.setSqlWasmPath=I("setSqlWasmPath"),window.initDB=I("initDB"),window.close=I("close"),window.getMessage=I("getMessage"),window.getMultipleMessage=I("getMultipleMessage"),window.getSendingMessageList=I("getSendingMessageList"),window.getNormalMsgSeq=I("getNormalMsgSeq"),window.updateMessageTimeAndStatus=I("updateMessageTimeAndStatus"),window.updateMessage=I("updateMessage"),window.updateMessageBySeq=I("updateMessageBySeq"),window.updateColumnsMessage=I("updateColumnsMessage"),window.insertMessage=I("insertMessage"),window.batchInsertMessageList=I("batchInsertMessageList"),window.getMessageList=I("getMessageList"),window.getMessageListNoTime=I("getMessageListNoTime"),window.messageIfExists=I("messageIfExists"),window.messageIfExistsBySeq=I("messageIfExistsBySeq"),window.getAbnormalMsgSeq=I("getAbnormalMsgSeq"),window.getAbnormalMsgSeqList=I("getAbnormalMsgSeqList"),window.batchInsertExceptionMsg=I("batchInsertExceptionMsg"),window.searchMessageByKeyword=I("searchMessageByKeyword"),window.searchMessageByContentType=I("searchMessageByContentType"),window.searchMessageByContentTypeAndKeyword=I("searchMessageByContentTypeAndKeyword"),window.updateMsgSenderNickname=I("updateMsgSenderNickname"),window.updateMsgSenderFaceURL=I("updateMsgSenderFaceURL"),window.updateMsgSenderFaceURLAndSenderNickname=I("updateMsgSenderFaceURLAndSenderNickname"),window.getMsgSeqByClientMsgID=I("getMsgSeqByClientMsgID"),window.getMsgSeqListByGroupID=I("getMsgSeqListByGroupID"),window.getMsgSeqListByPeerUserID=I("getMsgSeqListByPeerUserID"),window.getMsgSeqListBySelfUserID=I("getMsgSeqListBySelfUserID"),window.deleteAllMessage=I("deleteAllMessage"),window.getAllUnDeleteMessageSeqList=I("getAllUnDeleteMessageSeqList"),window.updateSingleMessageHasRead=I("updateSingleMessageHasRead"),window.updateGroupMessageHasRead=I("updateGroupMessageHasRead"),window.updateMessageStatusBySourceID=I("updateMessageStatusBySourceID"),window.getAlreadyExistSeqList=I("getAlreadyExistSeqList"),window.getLatestValidServerMessage=I("getLatestValidServerMessage"),window.getMessageByUserID=I("getMessageByUserID"),window.getMessageBySeq=I("getMessageBySeq"),window.getMessagesByClientMsgIDs=I("getMessagesByClientMsgIDs"),window.getMessagesBySeqs=I("getMessagesBySeqs"),window.getConversationNormalMsgSeq=I("getConversationNormalMsgSeq"),window.checkConversationNormalMsgSeq=I("getConversationNormalMsgSeq"),window.getConversationPeerNormalMsgSeq=I("getConversationPeerNormalMsgSeq"),window.deleteConversationAllMessages=I("deleteConversationAllMessages"),window.markDeleteConversationAllMessages=I("markDeleteConversationAllMessages"),window.getUnreadMessage=I("getUnreadMessage"),window.markConversationMessageAsReadBySeqs=I("markConversationMessageAsReadBySeqs"),window.markConversationMessageAsReadDB=I("markConversationMessageAsRead"),window.deleteMessagesByClientMsgIDs=I("deleteMessagesByClientMsgIDs"),window.deleteConversationMsgs=I("deleteConversationMsgs"),window.markConversationAllMessageAsRead=I("markConversationAllMessageAsRead"),window.searchAllMessageByContentType=I("searchAllMessageByContentType"),window.insertSendingMessage=I("insertSendingMessage"),window.deleteSendingMessage=I("deleteSendingMessage"),window.getAllSendingMessages=I("getAllSendingMessages"),window.getAllConversationListDB=I("getAllConversationList"),window.getAllConversationListToSync=I("getAllConversationListToSync"),window.getHiddenConversationList=I("getHiddenConversationList"),window.getConversation=I("getConversation"),window.getMultipleConversationDB=I("getMultipleConversation"),window.updateColumnsConversation=I("updateColumnsConversation"),window.updateConversation=I("updateColumnsConversation","updateConversation"),window.updateConversationForSync=I("updateColumnsConversation","updateConversationForSync"),window.decrConversationUnreadCount=I("decrConversationUnreadCount"),window.batchInsertConversationList=I("batchInsertConversationList"),window.insertConversation=I("insertConversation"),window.getTotalUnreadMsgCountDB=I("getTotalUnreadMsgCount"),window.getConversationByUserID=I("getConversationByUserID"),window.getConversationListSplitDB=I("getConversationListSplit"),window.deleteConversation=I("deleteConversation"),window.deleteAllConversation=I("deleteAllConversation"),window.batchUpdateConversationList=I("batchUpdateConversationList"),window.conversationIfExists=I("conversationIfExists"),window.resetConversation=I("resetConversation"),window.resetAllConversation=I("resetAllConversation"),window.clearConversation=I("clearConversation"),window.clearAllConversation=I("clearAllConversation"),window.setConversationDraftDB=I("setConversationDraft"),window.removeConversationDraft=I("removeConversationDraft"),window.unPinConversation=I("unPinConversation"),window.incrConversationUnreadCount=I("incrConversationUnreadCount"),window.setMultipleConversationRecvMsgOpt=I("setMultipleConversationRecvMsgOpt"),window.getAllSingleConversationIDList=I("getAllSingleConversationIDList"),window.findAllUnreadConversationConversationID=I("findAllUnreadConversationConversationID"),window.getAllConversationIDList=I("getAllConversationIDList"),window.getAllConversations=I("getAllConversations"),window.searchConversations=I("searchConversations"),window.getLatestActiveMessage=I("getLatestActiveMessage"),window.getLoginUser=I("getLoginUser"),window.insertLoginUser=I("insertLoginUser"),window.updateLoginUser=I("updateLoginUser"),window.getStrangerInfo=I("getStrangerInfo"),window.setStrangerInfo=I("setStrangerInfo"),window.getAppSDKVersion=I("getAppSDKVersion"),window.setAppSDKVersion=I("setAppSDKVersion"),window.getVersionSync=I("getVersionSync"),window.setVersionSync=I("setVersionSync"),window.deleteVersionSync=I("deleteVersionSync"),window.getJoinedSuperGroupList=I("getJoinedSuperGroupList"),window.getJoinedSuperGroupIDList=I("getJoinedSuperGroupIDList"),window.getSuperGroupInfoByGroupID=I("getSuperGroupInfoByGroupID"),window.deleteSuperGroup=I("deleteSuperGroup"),window.insertSuperGroup=I("insertSuperGroup"),window.updateSuperGroup=I("updateSuperGroup"),window.deleteConversationUnreadMessageList=I("deleteConversationUnreadMessageList"),window.batchInsertConversationUnreadMessageList=I("batchInsertConversationUnreadMessageList"),window.superGroupGetMessage=I("superGroupGetMessage"),window.superGroupGetMultipleMessage=I("superGroupGetMultipleMessage"),window.superGroupGetNormalMinSeq=I("superGroupGetNormalMinSeq"),window.getSuperGroupNormalMsgSeq=I("getSuperGroupNormalMsgSeq"),window.superGroupUpdateMessageTimeAndStatus=I("superGroupUpdateMessageTimeAndStatus"),window.superGroupUpdateMessage=I("superGroupUpdateMessage"),window.superGroupInsertMessage=I("superGroupInsertMessage"),window.superGroupBatchInsertMessageList=I("superGroupBatchInsertMessageList"),window.superGroupGetMessageListNoTime=I("superGroupGetMessageListNoTime"),window.superGroupGetMessageList=I("superGroupGetMessageList"),window.superGroupUpdateColumnsMessage=I("superGroupUpdateColumnsMessage"),window.superGroupDeleteAllMessage=I("superGroupDeleteAllMessage"),window.superGroupSearchMessageByKeyword=I("superGroupSearchMessageByKeyword"),window.superGroupSearchMessageByContentType=I("superGroupSearchMessageByContentType"),window.superGroupSearchMessageByContentTypeAndKeyword=I("superGroupSearchMessageByContentTypeAndKeyword"),window.superGroupUpdateMessageStatusBySourceID=I("superGroupUpdateMessageStatusBySourceID"),window.superGroupGetSendingMessageList=I("superGroupGetSendingMessageList"),window.superGroupUpdateGroupMessageHasRead=I("superGroupUpdateGroupMessageHasRead"),window.superGroupGetMsgSeqByClientMsgID=I("superGroupGetMsgSeqByClientMsgID"),window.superGroupUpdateMsgSenderFaceURLAndSenderNickname=I("superGroupUpdateMsgSenderFaceURLAndSenderNickname"),window.superGroupSearchAllMessageByContentType=I("superGroupSearchAllMessageByContentType"),window.exec=I("exec"),window.getRowsModified=I("getRowsModified"),window.exportDB=async()=>{if(G&&v||b(),G)try{f("=> (invoked by go wasm) run exportDB method ");const e=await G.invoke("exportDB",void 0,{timeout:5e3});return f("=> (invoked by go wasm) run exportDB method with response ",JSON.stringify(e)),e}catch(e){S(e)}},window.getBlackListDB=I("getBlackList"),window.getBlackListUserID=I("getBlackListUserID"),window.getBlackInfoByBlockUserID=I("getBlackInfoByBlockUserID"),window.getBlackInfoList=I("getBlackInfoList"),window.insertBlack=I("insertBlack"),window.deleteBlack=I("deleteBlack"),window.updateBlack=I("updateBlack"),window.insertFriendRequest=I("insertFriendRequest"),window.deleteFriendRequestBothUserID=I("deleteFriendRequestBothUserID"),window.deleteSelfFriendRequests=I("deleteSelfFriendRequests"),window.updateFriendRequest=I("updateFriendRequest"),window.getRecvFriendApplication=I("getRecvFriendApplication"),window.getSendFriendApplication=I("getSendFriendApplication"),window.getFriendApplicationByBothID=I("getFriendApplicationByBothID"),window.getBothFriendReq=I("getBothFriendReq"),window.insertFriend=I("insertFriend"),window.deleteFriendDB=I("deleteFriend"),window.updateFriend=I("updateFriend"),window.getAllFriendList=I("getAllFriendList"),window.searchFriendList=I("searchFriendList"),window.getFriendInfoByFriendUserID=I("getFriendInfoByFriendUserID"),window.getFriendInfoList=I("getFriendInfoList"),window.getPageFriendList=I("getPageFriendList"),window.updateColumnsFriend=I("updateColumnsFriend"),window.getFriendListCount=I("getFriendListCount"),window.batchInsertFriend=I("batchInsertFriend"),window.deleteAllFriend=I("deleteAllFriend"),window.insertGroup=I("insertGroup"),window.deleteGroup=I("deleteGroup"),window.updateGroup=I("updateGroup"),window.getJoinedGroupListDB=I("getJoinedGroupList"),window.getGroupInfoByGroupID=I("getGroupInfoByGroupID"),window.getAllGroupInfoByGroupIDOrGroupName=I("getAllGroupInfoByGroupIDOrGroupName"),window.subtractMemberCount=I("subtractMemberCount"),window.addMemberCount=I("addMemberCount"),window.getJoinedWorkingGroupIDList=I("getJoinedWorkingGroupIDList"),window.getJoinedWorkingGroupList=I("getJoinedWorkingGroupList"),window.getGroupMemberAllGroupIDs=I("getGroupMemberAllGroupIDs"),window.getUserJoinedGroupIDs=I("getUserJoinedGroupIDs"),window.getGroups=I("getGroups"),window.getGroupMemberListByUserIDs=I("getGroupMemberListByUserIDs"),window.batchInsertGroup=I("batchInsertGroup"),window.deleteAllGroup=I("deleteAllGroup"),window.insertGroupRequest=I("insertGroupRequest"),window.deleteGroupRequest=I("deleteGroupRequest"),window.deleteGroupRequestsFromUserID=I("deleteGroupRequestsFromUserID"),window.updateGroupRequest=I("updateGroupRequest"),window.getSendGroupApplication=I("getSendGroupApplication"),window.insertAdminGroupRequest=I("insertAdminGroupRequest"),window.deleteAdminGroupRequest=I("deleteAdminGroupRequest"),window.updateAdminGroupRequest=I("updateAdminGroupRequest"),window.getAdminGroupApplication=I("getAdminGroupApplication"),window.getGroupMemberInfoByGroupIDUserID=I("getGroupMemberInfoByGroupIDUserID"),window.getAllGroupMemberList=I("getAllGroupMemberList"),window.getAllGroupMemberUserIDList=I("getAllGroupMemberUserIDList"),window.getGroupMemberCount=I("getGroupMemberCount"),window.getGroupSomeMemberInfo=I("getGroupSomeMemberInfo"),window.getGroupAdminID=I("getGroupAdminID"),window.getGroupMemberListByGroupID=I("getGroupMemberListByGroupID"),window.getGroupMemberListSplit=I("getGroupMemberListSplit"),window.getGroupMemberOwnerAndAdminDB=I("getGroupMemberOwnerAndAdmin"),window.getGroupMemberOwner=I("getGroupMemberOwner"),window.getGroupMemberListSplitByJoinTimeFilter=I("getGroupMemberListSplitByJoinTimeFilter"),window.getGroupOwnerAndAdminByGroupID=I("getGroupOwnerAndAdminByGroupID"),window.getGroupMemberUIDListByGroupID=I("getGroupMemberUIDListByGroupID"),window.insertGroupMember=I("insertGroupMember"),window.batchInsertGroupMember=I("batchInsertGroupMember"),window.deleteGroupMember=I("deleteGroupMember"),window.deleteGroupAllMembers=I("deleteGroupAllMembers"),window.updateGroupMember=I("updateGroupMember"),window.updateGroupMemberField=I("updateGroupMemberField"),window.searchGroupMembersDB=I("searchGroupMembers","searchGroupMembersDB"),window.batchInsertTempCacheMessageList=I("batchInsertTempCacheMessageList"),window.InsertTempCacheMessage=I("InsertTempCacheMessage"),window.getNotificationAllSeqs=I("getNotificationAllSeqs"),window.setNotificationSeq=I("setNotificationSeq"),window.batchInsertNotificationSeq=I("batchInsertNotificationSeq"),window.getExistedTables=I("getExistedTables"))}(e.debug),this.isLogStandardOutput=e.debug,this.wasmInitializedPromise=F(e.assetsUrl.sdkWasm),this.goExitPromise=void 0,this.goExitPromise&&this.goExitPromise.then((()=>{this._logWrap("SDK => wasm exist")})).catch((e=>{this._logWrap("SDK => wasm with error ",e)})).finally((()=>{this.goExisted=!0}))}_logWrap(...e){this.isLogStandardOutput&&console.info(...e)}_invoker(e,t,s,n){return new Promise((async(i,o)=>{this._logWrap(`%cSDK =>%c [OperationID:${s[0]}] (invoked by js) run ${e} with args ${JSON.stringify(s)}`,"font-size:14px; background:#7CAEFF; border-radius:4px; padding-inline:4px;","");let r={operationID:s[0],event:e.slice(0,1).toUpperCase()+e.slice(1).toLowerCase()};try{if(!D()||D().exited||this.goExisted)throw"wasm exist already, fail to run";let o=await t(...s);if(n&&(this._logWrap(`%cSDK =>%c [OperationID:${s[0]}] (invoked by js) run ${e} with response before processor ${JSON.stringify(o)}`,X("#FFDC19"),""),o=n(o)),this.tryParse)try{o=JSON.parse(o)}catch(e){}r.data=o,i(r)}catch(t){this._logWrap(`%cSDK =>%c [OperationID:${s[0]}] (invoked by js) run ${e} with error ${JSON.stringify(t)}`,X("#EE4245"),""),r={...r,...t},o(r)}}))}exportDB(e=U()){return this._invoker("exportDB",window.exportDB,[e])}}let de;function le(e,t,s){var n=void 0===t?null:t,i=function(e,t){var s=atob(e);if(t){for(var n=new Uint8Array(s.length),i=0,o=s.length;i<o;++i)n[i]=s.charCodeAt(i);return String.fromCharCode.apply(null,new Uint16Array(n.buffer))}return s}(e,void 0!==s&&s),o=i.indexOf("\n",10)+1,r=i.substring(o)+(n?"//# sourceMappingURL="+n:""),a=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(a)}var ce,pe,ge,ue,he=(ce="Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7bGV0IHQ9MzczNTkyODU1OTtjbGFzcyBle2NvbnN0cnVjdG9yKHQse2luaXRpYWxPZmZzZXQ6ZT00LHVzZUF0b21pY3M6aT0hMCxzdHJlYW06cz0hMCxkZWJ1ZzpyLG5hbWU6bn09e30pe3RoaXMuYnVmZmVyPXQsdGhpcy5hdG9taWNWaWV3PW5ldyBJbnQzMkFycmF5KHQpLHRoaXMub2Zmc2V0PWUsdGhpcy51c2VBdG9taWNzPWksdGhpcy5zdHJlYW09cyx0aGlzLmRlYnVnPXIsdGhpcy5uYW1lPW59bG9nKC4uLnQpe3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKGBbcmVhZGVyOiAke3RoaXMubmFtZX1dYCwuLi50KX13YWl0V3JpdGUodCxlPW51bGwpe2lmKHRoaXMudXNlQXRvbWljcyl7Zm9yKHRoaXMubG9nKGB3YWl0aW5nIGZvciAke3R9YCk7MD09PUF0b21pY3MubG9hZCh0aGlzLmF0b21pY1ZpZXcsMCk7KXtpZihudWxsIT1lJiYidGltZWQtb3V0Ij09PUF0b21pY3Mud2FpdCh0aGlzLmF0b21pY1ZpZXcsMCwwLGUpKXRocm93IG5ldyBFcnJvcigidGltZW91dCIpO0F0b21pY3Mud2FpdCh0aGlzLmF0b21pY1ZpZXcsMCwwLDUwMCl9dGhpcy5sb2coYHJlc3VtZWQgZm9yICR7dH1gKX1lbHNlIGlmKDEhPT10aGlzLmF0b21pY1ZpZXdbMF0pdGhyb3cgbmV3IEVycm9yKCJgd2FpdFdyaXRlYCBleHBlY3RlZCBhcnJheSB0byBiZSByZWFkYWJsZSIpfWZsaXAoKXtpZih0aGlzLmxvZygiZmxpcCIpLHRoaXMudXNlQXRvbWljcyl7aWYoMSE9PUF0b21pY3MuY29tcGFyZUV4Y2hhbmdlKHRoaXMuYXRvbWljVmlldywwLDEsMCkpdGhyb3cgbmV3IEVycm9yKCJSZWFkIGRhdGEgb3V0IG9mIHN5bmMhIFRoaXMgaXMgZGlzYXN0cm91cyIpO0F0b21pY3Mubm90aWZ5KHRoaXMuYXRvbWljVmlldywwKX1lbHNlIHRoaXMuYXRvbWljVmlld1swXT0wO3RoaXMub2Zmc2V0PTR9ZG9uZSgpe3RoaXMud2FpdFdyaXRlKCJkb25lIik7bGV0IGU9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5nZXRVaW50MzIoMCk9PT10O3JldHVybiBlJiYodGhpcy5sb2coImRvbmUiKSx0aGlzLmZsaXAoKSksZX1wZWVrKHQpe3RoaXMucGVla09mZnNldD10aGlzLm9mZnNldDtsZXQgZT10KCk7cmV0dXJuIHRoaXMub2Zmc2V0PXRoaXMucGVla09mZnNldCx0aGlzLnBlZWtPZmZzZXQ9bnVsbCxlfXN0cmluZyh0KXt0aGlzLndhaXRXcml0ZSgic3RyaW5nIix0KTtsZXQgZT10aGlzLl9pbnQzMigpLGk9ZS8yLHM9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0LGUpLHI9W107Zm9yKGxldCB0PTA7dDxpO3QrKylyLnB1c2gocy5nZXRVaW50MTYoMip0KSk7bGV0IG49U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHIpO3JldHVybiB0aGlzLmxvZygic3RyaW5nIixuKSx0aGlzLm9mZnNldCs9ZSxudWxsPT10aGlzLnBlZWtPZmZzZXQmJnRoaXMuZmxpcCgpLG59X2ludDMyKCl7bGV0IHQ9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5nZXRJbnQzMigpO3JldHVybiB0aGlzLmxvZygiX2ludDMyIix0KSx0aGlzLm9mZnNldCs9NCx0fWludDMyKCl7dGhpcy53YWl0V3JpdGUoImludDMyIik7bGV0IHQ9dGhpcy5faW50MzIoKTtyZXR1cm4gdGhpcy5sb2coImludDMyIix0KSxudWxsPT10aGlzLnBlZWtPZmZzZXQmJnRoaXMuZmxpcCgpLHR9Ynl0ZXMoKXt0aGlzLndhaXRXcml0ZSgiYnl0ZXMiKTtsZXQgdD10aGlzLl9pbnQzMigpLGU9bmV3IEFycmF5QnVmZmVyKHQpO3JldHVybiBuZXcgVWludDhBcnJheShlKS5zZXQobmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsdGhpcy5vZmZzZXQsdCkpLHRoaXMubG9nKCJieXRlcyIsZSksdGhpcy5vZmZzZXQrPXQsbnVsbD09dGhpcy5wZWVrT2Zmc2V0JiZ0aGlzLmZsaXAoKSxlfX1jbGFzcyBpe2NvbnN0cnVjdG9yKHQse2luaXRpYWxPZmZzZXQ6ZT00LHVzZUF0b21pY3M6aT0hMCxzdHJlYW06cz0hMCxkZWJ1ZzpyLG5hbWU6bn09e30pe3RoaXMuYnVmZmVyPXQsdGhpcy5hdG9taWNWaWV3PW5ldyBJbnQzMkFycmF5KHQpLHRoaXMub2Zmc2V0PWUsdGhpcy51c2VBdG9taWNzPWksdGhpcy5zdHJlYW09cyx0aGlzLmRlYnVnPXIsdGhpcy5uYW1lPW4sdGhpcy51c2VBdG9taWNzP0F0b21pY3Muc3RvcmUodGhpcy5hdG9taWNWaWV3LDAsMCk6dGhpcy5hdG9taWNWaWV3WzBdPTB9bG9nKC4uLnQpe3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKGBbd3JpdGVyOiAke3RoaXMubmFtZX1dYCwuLi50KX13YWl0UmVhZCh0KXtpZih0aGlzLnVzZUF0b21pY3Mpe2lmKHRoaXMubG9nKGB3YWl0aW5nIGZvciAke3R9YCksMCE9PUF0b21pY3MuY29tcGFyZUV4Y2hhbmdlKHRoaXMuYXRvbWljVmlldywwLDAsMSkpdGhyb3cgbmV3IEVycm9yKCJXcm90ZSBzb21ldGhpbmcgaW50byB1bndyaXRhYmxlIGJ1ZmZlciEgVGhpcyBpcyBkaXNhc3Ryb3VzIik7Zm9yKEF0b21pY3Mubm90aWZ5KHRoaXMuYXRvbWljVmlldywwKTsxPT09QXRvbWljcy5sb2FkKHRoaXMuYXRvbWljVmlldywwKTspQXRvbWljcy53YWl0KHRoaXMuYXRvbWljVmlldywwLDEsNTAwKTt0aGlzLmxvZyhgcmVzdW1lZCBmb3IgJHt0fWApfWVsc2UgdGhpcy5hdG9taWNWaWV3WzBdPTE7dGhpcy5vZmZzZXQ9NH1maW5hbGl6ZSgpe3RoaXMubG9nKCJmaW5hbGl6aW5nIiksbmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5zZXRVaW50MzIoMCx0KSx0aGlzLndhaXRSZWFkKCJmaW5hbGl6ZSIpfXN0cmluZyh0KXt0aGlzLmxvZygic3RyaW5nIix0KTtsZXQgZT0yKnQubGVuZ3RoO3RoaXMuX2ludDMyKGUpO2xldCBpPW5ldyBEYXRhVmlldyh0aGlzLmJ1ZmZlcix0aGlzLm9mZnNldCxlKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpLnNldFVpbnQxNigyKmUsdC5jaGFyQ29kZUF0KGUpKTt0aGlzLm9mZnNldCs9ZSx0aGlzLndhaXRSZWFkKCJzdHJpbmciKX1faW50MzIodCl7bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5zZXRJbnQzMigwLHQpLHRoaXMub2Zmc2V0Kz00fWludDMyKHQpe3RoaXMubG9nKCJpbnQzMiIsdCksdGhpcy5faW50MzIodCksdGhpcy53YWl0UmVhZCgiaW50MzIiKX1ieXRlcyh0KXt0aGlzLmxvZygiYnl0ZXMiLHQpO2xldCBlPXQuYnl0ZUxlbmd0aDt0aGlzLl9pbnQzMihlKSxuZXcgVWludDhBcnJheSh0aGlzLmJ1ZmZlcix0aGlzLm9mZnNldCkuc2V0KG5ldyBVaW50OEFycmF5KHQpKSx0aGlzLm9mZnNldCs9ZSx0aGlzLndhaXRSZWFkKCJieXRlcyIpfX1sZXQgcz0wLHI9MSxuPTIsbz00O2xldCBhPS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbD1uZXcgTWFwLGM9bmV3IE1hcDtmdW5jdGlvbiBoKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGUpfWNsYXNzIGZ7Y29uc3RydWN0b3IodCxlPSJyZWFkb25seSIpe3RoaXMuZGI9dCx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sZSksdGhpcy5zdG9yZT10aGlzLnRyYW5zLm9iamVjdFN0b3JlKCJkYXRhIiksdGhpcy5sb2NrVHlwZT0icmVhZG9ubHkiPT09ZT9yOm8sdGhpcy5jYWNoZWRGaXJzdEJsb2NrPW51bGwsdGhpcy5jdXJzb3I9bnVsbCx0aGlzLnByZXZSZWFkcz1udWxsfWFzeW5jIHByZWZldGNoRmlyc3RCbG9jayh0KXtsZXQgZT1hd2FpdCB0aGlzLmdldCgwKTtyZXR1cm4gdGhpcy5jYWNoZWRGaXJzdEJsb2NrPWUsZX1hc3luYyB3YWl0Q29tcGxldGUoKXtyZXR1cm4gbmV3IFByb21pc2UoKCh0LGUpPT57dGhpcy5jb21taXQoKSx0aGlzLmxvY2tUeXBlPT09bz8odGhpcy50cmFucy5vbmNvbXBsZXRlPWU9PnQoKSx0aGlzLnRyYW5zLm9uZXJyb3I9dD0+ZSh0KSk6YT90aGlzLnRyYW5zLm9uY29tcGxldGU9ZT0+dCgpOnQoKX0pKX1jb21taXQoKXt0aGlzLnRyYW5zLmNvbW1pdCYmdGhpcy50cmFucy5jb21taXQoKX1hc3luYyB1cGdyYWRlRXhjbHVzaXZlKCl7dGhpcy5jb21taXQoKSx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sInJlYWR3cml0ZSIpLHRoaXMuc3RvcmU9dGhpcy50cmFucy5vYmplY3RTdG9yZSgiZGF0YSIpLHRoaXMubG9ja1R5cGU9bztsZXQgdD10aGlzLmNhY2hlZEZpcnN0QmxvY2s7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCYmbnVsbCE9ZSl7bGV0IGk9bmV3IFVpbnQ4QXJyYXkodCkscz1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IHQ9MjQ7dDw0MDt0KyspaWYoaVt0XSE9PXNbdF0pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIG51bGw9PXQmJm51bGw9PWV9KGF3YWl0IHRoaXMucHJlZmV0Y2hGaXJzdEJsb2NrKDUwMCksdCl9ZG93bmdyYWRlU2hhcmVkKCl7dGhpcy5jb21taXQoKSx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sInJlYWRvbmx5IiksdGhpcy5zdG9yZT10aGlzLnRyYW5zLm9iamVjdFN0b3JlKCJkYXRhIiksdGhpcy5sb2NrVHlwZT1yfWFzeW5jIGdldCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLGkpPT57bGV0IHM9dGhpcy5zdG9yZS5nZXQodCk7cy5vbnN1Y2Nlc3M9dD0+e2Uocy5yZXN1bHQpfSxzLm9uZXJyb3I9dD0+aSh0KX0pKX1nZXRSZWFkRGlyZWN0aW9uKCl7bGV0IHQ9dGhpcy5wcmV2UmVhZHM7aWYodCl7aWYodFswXTx0WzFdJiZ0WzFdPHRbMl0mJnRbMl0tdFswXTwxMClyZXR1cm4ibmV4dCI7aWYodFswXT50WzFdJiZ0WzFdPnRbMl0mJnRbMF0tdFsyXTwxMClyZXR1cm4icHJldiJ9cmV0dXJuIG51bGx9cmVhZCh0KXtsZXQgZT0oKT0+bmV3IFByb21pc2UoKCh0LGUpPT57aWYobnVsbCE9dGhpcy5jdXJzb3JQcm9taXNlKXRocm93IG5ldyBFcnJvcigid2FpdEN1cnNvcigpIGNhbGxlZCBidXQgc29tZXRoaW5nIGVsc2UgaXMgYWxyZWFkeSB3YWl0aW5nIik7dGhpcy5jdXJzb3JQcm9taXNlPXtyZXNvbHZlOnQscmVqZWN0OmV9fSkpO2lmKHRoaXMuY3Vyc29yKXtsZXQgaT10aGlzLmN1cnNvcjtyZXR1cm4ibmV4dCI9PT1pLmRpcmVjdGlvbiYmdD5pLmtleSYmdDxpLmtleSsxMDA/KGkuYWR2YW5jZSh0LWkua2V5KSxlKCkpOiJwcmV2Ij09PWkuZGlyZWN0aW9uJiZ0PGkua2V5JiZ0Pmkua2V5LTEwMD8oaS5hZHZhbmNlKGkua2V5LXQpLGUoKSk6KHRoaXMuY3Vyc29yPW51bGwsdGhpcy5yZWFkKHQpKX17bGV0IGk9dGhpcy5nZXRSZWFkRGlyZWN0aW9uKCk7aWYoaSl7bGV0IHM7dGhpcy5wcmV2UmVhZHM9bnVsbCxzPSJwcmV2Ij09PWk/SURCS2V5UmFuZ2UudXBwZXJCb3VuZCh0KTpJREJLZXlSYW5nZS5sb3dlckJvdW5kKHQpO2xldCByPXRoaXMuc3RvcmUub3BlbkN1cnNvcihzLGkpO3JldHVybiByLm9uc3VjY2Vzcz10PT57bGV0IGU9dC50YXJnZXQucmVzdWx0O2lmKHRoaXMuY3Vyc29yPWUsbnVsbD09dGhpcy5jdXJzb3JQcm9taXNlKXRocm93IG5ldyBFcnJvcigiR290IGRhdGEgZnJvbSBjdXJzb3IgYnV0IG5vdGhpbmcgaXMgd2FpdGluZyBpdCIpO3RoaXMuY3Vyc29yUHJvbWlzZS5yZXNvbHZlKGU/ZS52YWx1ZTpudWxsKSx0aGlzLmN1cnNvclByb21pc2U9bnVsbH0sci5vbmVycm9yPXQ9PntpZihjb25zb2xlLmxvZygiQ3Vyc29yIGZhaWx1cmU6Iix0KSxudWxsPT10aGlzLmN1cnNvclByb21pc2UpdGhyb3cgbmV3IEVycm9yKCJHb3QgZGF0YSBmcm9tIGN1cnNvciBidXQgbm90aGluZyBpcyB3YWl0aW5nIGl0Iik7dGhpcy5jdXJzb3JQcm9taXNlLnJlamVjdCh0KSx0aGlzLmN1cnNvclByb21pc2U9bnVsbH0sZSgpfXJldHVybiBudWxsPT10aGlzLnByZXZSZWFkcyYmKHRoaXMucHJldlJlYWRzPVswLDAsMF0pLHRoaXMucHJldlJlYWRzLnB1c2godCksdGhpcy5wcmV2UmVhZHMuc2hpZnQoKSx0aGlzLmdldCh0KX19YXN5bmMgc2V0KHQpe3JldHVybiB0aGlzLnByZXZSZWFkcz1udWxsLG5ldyBQcm9taXNlKCgoZSxpKT0+e2xldCBzPXRoaXMuc3RvcmUucHV0KHQudmFsdWUsdC5rZXkpO3Mub25zdWNjZXNzPXQ9PmUocy5yZXN1bHQpLHMub25lcnJvcj10PT5pKHQpfSkpfWFzeW5jIGJ1bGtTZXQodCl7dGhpcy5wcmV2UmVhZHM9bnVsbDtmb3IobGV0IGUgb2YgdCl0aGlzLnN0b3JlLnB1dChlLnZhbHVlLGUua2V5KX19YXN5bmMgZnVuY3Rpb24gdSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLGkpPT57aWYobC5nZXQodCkpcmV0dXJuIHZvaWQgZShsLmdldCh0KSk7bGV0IHM9Z2xvYmFsVGhpcy5pbmRleGVkREIub3Blbih0LDIpO3Mub25zdWNjZXNzPWk9PntsZXQgcz1pLnRhcmdldC5yZXN1bHQ7cy5vbnZlcnNpb25jaGFuZ2U9KCk9Pntjb25zb2xlLmxvZygiY2xvc2luZyBiZWNhdXNlIHZlcnNpb24gY2hhbmdlZCIpLHMuY2xvc2UoKSxsLmRlbGV0ZSh0KX0scy5vbmNsb3NlPSgpPT57bC5kZWxldGUodCl9LGwuc2V0KHQscyksZShzKX0scy5vbnVwZ3JhZGVuZWVkZWQ9dD0+e2xldCBlPXQudGFyZ2V0LnJlc3VsdDtlLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoImRhdGEiKXx8ZS5jcmVhdGVPYmplY3RTdG9yZSgiZGF0YSIpfSxzLm9uYmxvY2tlZD10PT5jb25zb2xlLmxvZygiYmxvY2tlZCIsdCkscy5vbmVycm9yPXMub25hYm9ydD10PT5pKHQudGFyZ2V0LmVycm9yKX0pKX1hc3luYyBmdW5jdGlvbiB3KHQsZSxpKXtsZXQgcz1jLmdldCh0KTtpZihzKXtpZigicmVhZHdyaXRlIj09PWUmJnMubG9ja1R5cGU9PT1yKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHdyaXRlIGJ1dCBvbmx5IGhhcyBTSEFSRUQgbG9jayIpO3JldHVybiBpKHMpfXM9bmV3IGYoYXdhaXQgdSh0KSxlKSxhd2FpdCBpKHMpLGF3YWl0IHMud2FpdENvbXBsZXRlKCl9YXN5bmMgZnVuY3Rpb24gZCh0LGUsaSl7bGV0IG49ZnVuY3Rpb24odCl7cmV0dXJuIGMuZ2V0KHQpfShlKTtpZihpPT09cil7aWYobnVsbD09bil0aHJvdyBuZXcgRXJyb3IoIlVubG9jayBlcnJvciAoU0hBUkVEKTogbm8gdHJhbnNhY3Rpb24gcnVubmluZyIpO24ubG9ja1R5cGU9PT1vJiZuLmRvd25ncmFkZVNoYXJlZCgpfWVsc2UgaT09PXMmJm4mJihhd2FpdCBuLndhaXRDb21wbGV0ZSgpLGMuZGVsZXRlKGUpKTt0LmludDMyKDApLHQuZmluYWxpemUoKX1hc3luYyBmdW5jdGlvbiBnKHQsZSl7bGV0IGk9dC5zdHJpbmcoKTtzd2l0Y2goaSl7Y2FzZSJwcm9maWxlLXN0YXJ0Ijp0LmRvbmUoKSxlLmludDMyKDApLGUuZmluYWxpemUoKSxnKHQsZSk7YnJlYWs7Y2FzZSJwcm9maWxlLXN0b3AiOnQuZG9uZSgpLGF3YWl0IG5ldyBQcm9taXNlKCh0PT5zZXRUaW1lb3V0KHQsMWUzKSkpLGUuaW50MzIoMCksZS5maW5hbGl6ZSgpLGcodCxlKTticmVhaztjYXNlIndyaXRlQmxvY2tzIjp7bGV0IGk9dC5zdHJpbmcoKSxzPVtdO2Zvcig7IXQuZG9uZSgpOyl7bGV0IGU9dC5pbnQzMigpLGk9dC5ieXRlcygpO3MucHVzaCh7cG9zOmUsZGF0YTppfSl9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlLGkpe3JldHVybiB3KGUsInJlYWR3cml0ZSIsKGFzeW5jIGU9Pnthd2FpdCBlLmJ1bGtTZXQoaS5tYXAoKHQ9Pih7a2V5OnQucG9zLHZhbHVlOnQuZGF0YX0pKSkpLHQuaW50MzIoMCksdC5maW5hbGl6ZSgpfSkpfShlLGkscyksZyh0LGUpO2JyZWFrfWNhc2UicmVhZEJsb2NrIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHcoZSwicmVhZG9ubHkiLChhc3luYyBlPT57bGV0IHM9YXdhaXQgZS5yZWFkKGkpO251bGw9PXM/dC5ieXRlcyhuZXcgQXJyYXlCdWZmZXIoMCkpOnQuYnl0ZXMocyksdC5maW5hbGl6ZSgpfSkpfShlLGkscyksZyh0LGUpO2JyZWFrfWNhc2UicmVhZE1ldGEiOntsZXQgaT10LnN0cmluZygpO3QuZG9uZSgpLGF3YWl0IGFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHcoZSwicmVhZG9ubHkiLChhc3luYyBpPT57dHJ5e2NvbnNvbGUubG9nKCJSZWFkaW5nIG1ldGEuLi4iKTtsZXQgcz1hd2FpdCBpLmdldCgtMSk7aWYoY29uc29sZS5sb2coYEdvdCBtZXRhIGZvciAke2V9OmAscyksbnVsbD09cyl0LmludDMyKC0xKSx0LmludDMyKDQwOTYpLHQuZmluYWxpemUoKTtlbHNle2xldCBlPWF3YWl0IGkuZ2V0KDApLHI9NDA5NjtlJiYocj0yNTYqbmV3IFVpbnQxNkFycmF5KGUpWzhdKSx0LmludDMyKHMuc2l6ZSksdC5pbnQzMihyKSx0LmZpbmFsaXplKCl9fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpLHQuaW50MzIoLTEpLHQuaW50MzIoLTEpLHQuZmluYWxpemUoKX19KSl9KGUsaSksZyh0LGUpO2JyZWFrfWNhc2Uid3JpdGVNZXRhIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHcoZSwicmVhZHdyaXRlIiwoYXN5bmMgZT0+e3RyeXthd2FpdCBlLnNldCh7a2V5Oi0xLHZhbHVlOml9KSx0LmludDMyKDApLHQuZmluYWxpemUoKX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKSx0LmludDMyKC0xKSx0LmZpbmFsaXplKCl9fSkpfShlLGkse3NpemU6c30pLGcodCxlKTticmVha31jYXNlImNsb3NlRmlsZSI6e2xldCBpPXQuc3RyaW5nKCk7dC5kb25lKCksZS5pbnQzMigwKSxlLmZpbmFsaXplKCksZnVuY3Rpb24odCl7bGV0IGU9bC5nZXQodCk7ZSYmKGUuY2xvc2UoKSxsLmRlbGV0ZSh0KSl9KGkpLHNlbGYuY2xvc2UoKTticmVha31jYXNlImxvY2tGaWxlIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7bGV0IHM9Yy5nZXQoZSk7aWYocylpZihpPnMubG9ja1R5cGUpe2gocy5sb2NrVHlwZT09PXIsYFVwcmFkaW5nIGxvY2sgdHlwZSBmcm9tICR7cy5sb2NrVHlwZX0gaXMgaW52YWxpZGApLGgoaT09PW58fGk9PT1vLGBVcGdyYWRpbmcgbG9jayB0eXBlIHRvICR7aX0gaXMgaW52YWxpZGApO2xldCBlPWF3YWl0IHMudXBncmFkZUV4Y2x1c2l2ZSgpO3QuaW50MzIoZT8wOi0xKSx0LmZpbmFsaXplKCl9ZWxzZSBoKHMubG9ja1R5cGU9PT1pLGBEb3duZ3JhZGluZyBsb2NrIHRvICR7aX0gaXMgaW52YWxpZGApLHQuaW50MzIoMCksdC5maW5hbGl6ZSgpO2Vsc2V7aChpPT09cixgTmV3IGxvY2tzIG11c3Qgc3RhcnQgYXMgU0hBUkVEIGluc3RlYWQgb2YgJHtpfWApO2xldCBzPW5ldyBmKGF3YWl0IHUoZSkpO2F3YWl0IHMucHJlZmV0Y2hGaXJzdEJsb2NrKDUwMCksYy5zZXQoZSxzKSx0LmludDMyKDApLHQuZmluYWxpemUoKX19KGUsaSxzKSxnKHQsZSk7YnJlYWt9Y2FzZSJ1bmxvY2tGaWxlIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBkKGUsaSxzKSxnKHQsZSk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWV0aG9kOiAiK2kpfX1zZWxmLm9ubWVzc2FnZT10PT57c3dpdGNoKHQuZGF0YS50eXBlKXtjYXNlImluaXQiOntsZXRbcyxyXT10LmRhdGEuYnVmZmVycztnKG5ldyBlKHMse25hbWU6ImFyZ3MiLGRlYnVnOiExfSksbmV3IGkocix7bmFtZToicmVzdWx0cyIsZGVidWc6ITF9KSk7YnJlYWt9fX19KCk7Cgo=",pe=null,ge=!1,function(e){return ue=ue||le(ce,pe,ge),new Worker(ue,e)}),me=Object.freeze({__proto__:null,default:he});exports.getSDK=function(e){var t;return"string"==typeof e.assetsUrl&&(e.assetsUrl={sdkWasm:`${e.assetsUrl}/CRIM.wasm`,sqlWasm:`${e.assetsUrl}/sql-wasm.wasm`}),e.debug=null===(t=e.debug)||void 0===t||t,"undefined"==typeof window?{}:de||(de=new ae(e),window.setSqlWasmPath(e.assetsUrl.sqlWasm),de)};
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CRIM={})}(this,(function(e){"use strict";function t(e){return(t,n,s)=>{if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope)throw new Error("`startWorkerFromMain` should only be called from the main thread");if("undefined"==typeof Worker)throw new Error("Web workers not available. sqlite3 requires web workers to work.");e().then((({default:e})=>{let i=new e;i.postMessage({type:"init",buffers:[t,n]}),i.addEventListener("message",(e=>{s.postMessage(e.data)}))}))}}(()=>{const e=()=>{const e=new Error("not implemented");return e.code="ENOSYS",e};if(!globalThis.fs){let t="";globalThis.fs={constants:{O_WRONLY:-1,O_RDWR:-1,O_CREAT:-1,O_TRUNC:-1,O_APPEND:-1,O_EXCL:-1,O_DIRECTORY:-1},writeSync(e,s){t+=n.decode(s);const i=t.lastIndexOf("\n");return-1!=i&&(console.log(t.substring(0,i)),t=t.substring(i+1)),s.length},write(t,n,s,i,o,r){if(0!==s||i!==n.length||null!==o)return void r(e());r(null,this.writeSync(t,n))},chmod(t,n,s){s(e())},chown(t,n,s,i){i(e())},close(t,n){n(e())},fchmod(t,n,s){s(e())},fchown(t,n,s,i){i(e())},fstat(t,n){n(e())},fsync(e,t){t(null)},ftruncate(t,n,s){s(e())},lchown(t,n,s,i){i(e())},link(t,n,s){s(e())},lstat(t,n){n(e())},mkdir(t,n,s){s(e())},open(t,n,s,i){i(e())},read(t,n,s,i,o,r){r(e())},readdir(t,n){n(e())},readlink(t,n){n(e())},rename(t,n,s){s(e())},rmdir(t,n){n(e())},stat(t,n){n(e())},symlink(t,n,s){s(e())},truncate(t,n,s){s(e())},unlink(t,n){n(e())},utimes(t,n,s,i){i(e())}}}if(globalThis.process||(globalThis.process={getuid:()=>-1,getgid:()=>-1,geteuid:()=>-1,getegid:()=>-1,getgroups(){throw e()},pid:-1,ppid:-1,umask(){throw e()},cwd(){throw e()},chdir(){throw e()}}),globalThis.path||(globalThis.path={resolve:(...e)=>e.join("/")}),!globalThis.crypto)throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");if(!globalThis.performance)throw new Error("globalThis.performance is not available, polyfill required (performance.now only)");if(!globalThis.TextEncoder)throw new Error("globalThis.TextEncoder is not available, polyfill required");if(!globalThis.TextDecoder)throw new Error("globalThis.TextDecoder is not available, polyfill required");const t=new TextEncoder("utf-8"),n=new TextDecoder("utf-8");globalThis.Go=class{constructor(){this.argv=["js"],this.env={},this.exit=e=>{0!==e&&console.warn("exit code:",e)},this._exitPromise=new Promise((e=>{this._resolveExitPromise=e})),this._pendingEvent=null,this._scheduledTimeouts=new Map,this._nextCallbackTimeoutID=1;const e=(e,t)=>{this.mem.setUint32(e+0,t,!0),this.mem.setUint32(e+4,Math.floor(t/4294967296),!0)},s=e=>this.mem.getUint32(e+0,!0)+4294967296*this.mem.getInt32(e+4,!0),i=e=>{const t=this.mem.getFloat64(e,!0);if(0===t)return;if(!isNaN(t))return t;const n=this.mem.getUint32(e,!0);return this._values[n]},o=(e,t)=>{const n=2146959360;if("number"==typeof t&&0!==t)return isNaN(t)?(this.mem.setUint32(e+4,n,!0),void this.mem.setUint32(e,0,!0)):void this.mem.setFloat64(e,t,!0);if(void 0===t)return void this.mem.setFloat64(e,0,!0);let s=this._ids.get(t);void 0===s&&(s=this._idPool.pop(),void 0===s&&(s=this._values.length),this._values[s]=t,this._goRefCounts[s]=0,this._ids.set(t,s)),this._goRefCounts[s]++;let i=0;switch(typeof t){case"object":null!==t&&(i=1);break;case"string":i=2;break;case"symbol":i=3;break;case"function":i=4}this.mem.setUint32(e+4,n|i,!0),this.mem.setUint32(e,s,!0)},r=e=>{const t=s(e+0),n=s(e+8);return new Uint8Array(this._inst.exports.mem.buffer,t,n)},a=e=>{const t=s(e+0),n=s(e+8),o=new Array(n);for(let e=0;e<n;e++)o[e]=i(t+8*e);return o},d=e=>{const t=s(e+0),i=s(e+8);return n.decode(new DataView(this._inst.exports.mem.buffer,t,i))},l=Date.now()-performance.now();this.importObject={_gotest:{add:(e,t)=>e+t,callExport:(e,t)=>(this._inst.exports.testExport0(),this._inst.exports.testExport(e,t))},gojs:{"runtime.wasmExit":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);this.exited=!0,delete this._inst,delete this._values,delete this._goRefCounts,delete this._ids,delete this._idPool,this.exit(t)},"runtime.wasmWrite":e=>{const t=s((e>>>=0)+8),n=s(e+16),i=this.mem.getInt32(e+24,!0);fs.writeSync(t,new Uint8Array(this._inst.exports.mem.buffer,n,i))},"runtime.resetMemoryDataView":e=>{this.mem=new DataView(this._inst.exports.mem.buffer)},"runtime.nanotime1":t=>{e((t>>>=0)+8,1e6*(l+performance.now()))},"runtime.walltime":t=>{t>>>=0;const n=(new Date).getTime();e(t+8,n/1e3),this.mem.setInt32(t+16,n%1e3*1e6,!0)},"runtime.scheduleTimeoutEvent":e=>{e>>>=0;const t=this._nextCallbackTimeoutID;this._nextCallbackTimeoutID++,this._scheduledTimeouts.set(t,setTimeout((()=>{for(this._resume();this._scheduledTimeouts.has(t);)console.warn("scheduleTimeoutEvent: missed timeout event"),this._resume()}),s(e+8))),this.mem.setInt32(e+16,t,!0)},"runtime.clearTimeoutEvent":e=>{e>>>=0;const t=this.mem.getInt32(e+8,!0);clearTimeout(this._scheduledTimeouts.get(t)),this._scheduledTimeouts.delete(t)},"runtime.getRandomData":e=>{e>>>=0,crypto.getRandomValues(r(e+8))},"syscall/js.finalizeRef":e=>{e>>>=0;const t=this.mem.getUint32(e+8,!0);if(this._goRefCounts[t]--,0===this._goRefCounts[t]){const e=this._values[t];this._values[t]=null,this._ids.delete(e),this._idPool.push(t)}},"syscall/js.stringVal":e=>{o((e>>>=0)+24,d(e+8))},"syscall/js.valueGet":e=>{e>>>=0;const t=Reflect.get(i(e+8),d(e+16));e=this._inst.exports.getsp()>>>0,o(e+32,t)},"syscall/js.valueSet":e=>{e>>>=0,Reflect.set(i(e+8),d(e+16),i(e+32))},"syscall/js.valueDelete":e=>{e>>>=0,Reflect.deleteProperty(i(e+8),d(e+16))},"syscall/js.valueIndex":e=>{o((e>>>=0)+24,Reflect.get(i(e+8),s(e+16)))},"syscall/js.valueSetIndex":e=>{e>>>=0,Reflect.set(i(e+8),s(e+16),i(e+24))},"syscall/js.valueCall":e=>{e>>>=0;try{const t=i(e+8),n=Reflect.get(t,d(e+16)),s=a(e+32),r=Reflect.apply(n,t,s);e=this._inst.exports.getsp()>>>0,o(e+56,r),this.mem.setUint8(e+64,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+56,t),this.mem.setUint8(e+64,0)}},"syscall/js.valueInvoke":e=>{e>>>=0;try{const t=i(e+8),n=a(e+16),s=Reflect.apply(t,void 0,n);e=this._inst.exports.getsp()>>>0,o(e+40,s),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueNew":e=>{e>>>=0;try{const t=i(e+8),n=a(e+16),s=Reflect.construct(t,n);e=this._inst.exports.getsp()>>>0,o(e+40,s),this.mem.setUint8(e+48,1)}catch(t){e=this._inst.exports.getsp()>>>0,o(e+40,t),this.mem.setUint8(e+48,0)}},"syscall/js.valueLength":t=>{e((t>>>=0)+16,parseInt(i(t+8).length))},"syscall/js.valuePrepareString":n=>{n>>>=0;const s=t.encode(String(i(n+8)));o(n+16,s),e(n+24,s.length)},"syscall/js.valueLoadString":e=>{const t=i((e>>>=0)+8);r(e+16).set(t)},"syscall/js.valueInstanceOf":e=>{e>>>=0,this.mem.setUint8(e+24,i(e+8)instanceof i(e+16)?1:0)},"syscall/js.copyBytesToGo":t=>{const n=r((t>>>=0)+8),s=i(t+32);if(!(s instanceof Uint8Array||s instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);const o=s.subarray(0,n.length);n.set(o),e(t+40,o.length),this.mem.setUint8(t+48,1)},"syscall/js.copyBytesToJS":t=>{const n=i((t>>>=0)+8),s=r(t+16);if(!(n instanceof Uint8Array||n instanceof Uint8ClampedArray))return void this.mem.setUint8(t+48,0);const o=s.subarray(0,n.length);n.set(o),e(t+40,o.length),this.mem.setUint8(t+48,1)},debug:e=>{console.log(e)}}}}async run(e){if(!(e instanceof WebAssembly.Instance))throw new Error("Go.run: WebAssembly.Instance expected");this._inst=e,this.mem=new DataView(this._inst.exports.mem.buffer),this._values=[NaN,0,null,!0,!1,globalThis,this],this._goRefCounts=new Array(this._values.length).fill(1/0),this._ids=new Map([[0,1],[null,2],[!0,3],[!1,4],[globalThis,5],[this,6]]),this._idPool=[],this.exited=!1;let n=4096;const s=e=>{const s=n,i=t.encode(e+"\0");return new Uint8Array(this.mem.buffer,n,i.length).set(i),n+=i.length,n%8!=0&&(n+=8-n%8),s},i=this.argv.length,o=[];this.argv.forEach((e=>{o.push(s(e))})),o.push(0);Object.keys(this.env).sort().forEach((e=>{o.push(s(`${e}=${this.env[e]}`))})),o.push(0);const r=n;o.forEach((e=>{this.mem.setUint32(n,e,!0),this.mem.setUint32(n+4,0,!0),n+=8}));if(n>=12288)throw new Error("total length of command line and environment variables exceeds limit");this._inst.exports.run(i,r),this.exited&&this._resolveExitPromise(),await this._exitPromise}_resume(){if(this.exited)throw new Error("Go program has already exited");this._inst.exports.resume(),this.exited&&this._resolveExitPromise()}_makeFuncWrapper(e){const t=this;return function(){const n={id:e,this:this,args:arguments};return t._pendingEvent=n,t._resume(),n.result}}}})();const n=function(e,n){const s=t(n);return t=>{t.addEventListener("message",(n=>{if(n.data.type===e)s(n.data.argBuffer,n.data.resultBuffer,t)}))}}("__absurd:spawn-idb-worker",(()=>Promise.resolve().then((function(){return we}))));var s=Object.defineProperty,i=Object.defineProperties,o=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable,l=(e,t,n)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,c=(e,t)=>{for(var n in t||(t={}))a.call(t,n)&&l(e,n,t[n]);if(r)for(var n of r(t))d.call(t,n)&&l(e,n,t[n]);return e},g=(e,t)=>i(e,o(t)),u=(e,t,n)=>(l(e,"symbol"!=typeof t?t+"":t,n),n);const p={CONNECT_TIMEOUT:{code:-32300,message:"Connect timeout"},APPLICATION_ERROR:{code:-32500,message:"Application error"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"}};class h{constructor(e){u(this,"_currentEndpoint"),u(this,"_targetEndpoint"),u(this,"_events"),u(this,"_originOnmessage"),u(this,"_receiveMessage"),u(this,"onerror",null),u(this,"config"),u(this,"sendAdapter"),u(this,"receiveAdapter"),this._events={},this._currentEndpoint=e.currentEndpoint,this._targetEndpoint=e.targetEndpoint,this._originOnmessage=null,this.config=e.config,this.receiveAdapter=e.receiveAdapter,this.sendAdapter=e.sendAdapter;const t=e=>{const t=this.receiveAdapter?this.receiveAdapter(e):e.data;if(t&&"string"==typeof t.event){const e=this._events[t.event]||[];if(e.length)return void e.forEach((e=>{e(...t.args||[])}));this.onerror&&this.onerror(g(c({},p.METHOD_NOT_FOUND),{data:t}))}};if(this._currentEndpoint.addEventListener)return"start"in this._currentEndpoint&&this._currentEndpoint.start&&this._currentEndpoint.start(),this._currentEndpoint.addEventListener("message",t,!1),void(this._receiveMessage=t);this._originOnmessage=this._currentEndpoint.onmessage,this._currentEndpoint.onmessage=e=>{this._originOnmessage&&this._originOnmessage(e),t(e)},this._receiveMessage=this._currentEndpoint.onmessage}emit(e,...t){const n={event:e,args:t},s=this.sendAdapter?this.sendAdapter(n,this._targetEndpoint):{data:n},i=s.data||n,o=this.config?"function"==typeof this.config?this.config(i,this._targetEndpoint)||{}:this.config||{}:{};Array.isArray(s.transfer)&&s.transfer.length&&(o.transfer=s.transfer),this._targetEndpoint.postMessage(i,o)}on(e,t){this._events[e]||(this._events[e]=[]),this._events[e].push(t)}off(e,t){if(!this._events[e])return;if(!t)return void(this._events[e]=[]);const n=this._events[e]||[];this._events[e]=n.filter((e=>e!==t))}destroy(){if(this._currentEndpoint.removeEventListener)this._currentEndpoint.removeEventListener("message",this._receiveMessage,!1);else try{this._currentEndpoint.onmessage=this._originOnmessage}catch(e){console.warn(e)}}}const m=class{constructor(e){u(this,"_event"),u(this,"_methods",{}),u(this,"_timeout",0),u(this,"_$connect",null),this._event=e.event,this._timeout=e.timeout||0,e.methods&&Object.entries(e.methods).forEach((([e,t])=>{this.registerMethod(e,t)})),this._event.onerror=e=>{const{code:t,message:n,data:s}=e;if(s.event&&Array.isArray(s.args)&&s.args.length){const e=s.args[0],i=this._getAckEventName(e.method),o={jsonrpc:"2.0",id:null==e?void 0:e.id,error:{code:t,message:n,data:e}};this._event.emit(i,o)}else console.error(e)},this.connect()}static uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}_getSynEventName(e){return`${m.EVENT.SYN_SIGN}${e}`}_getAckEventName(e){return`${m.EVENT.ACK_SIGN}${e}`}connect(e){return this._$connect||(this._$connect=new Promise(((t,n)=>{const s=e||this._timeout;let i;s&&(i=setTimeout((()=>{const e=g(c({},p.TIMEOUT),{data:{timeout:s}});n(e)}),s));const o=m.EVENT.CONNECT,r=this._getAckEventName(o),a=this._getSynEventName(o),d=()=>{clearTimeout(i),t()};this._event.on(r,d);this._event.on(a,(()=>{this._event.emit(r),d()})),this._event.emit(a)}))),this._$connect}registerMethod(e,t){if(this._methods[e])throw new Error(`${e} already registered`);this._methods[e]=t;const n=this._getSynEventName(e);this._event.on(n,(n=>{const s=this._getAckEventName(e);n.id?Promise.resolve(t(...n.params)).then((e=>{const t={jsonrpc:"2.0",result:e,id:n.id};this._event.emit(s,t)})).catch((e=>{const t={jsonrpc:"2.0",id:n.id,error:{code:(null==e?void 0:e.code)||p.APPLICATION_ERROR.code,message:(null==e?void 0:e.message)||p.APPLICATION_ERROR.message,data:null}};this._event.emit(s,t)})):t(...n.params)}))}removeMethod(e){this._methods[e]||delete this._methods[e];const t=this._getSynEventName(e);this._event.off(t)}invoke(e,...t){return new Promise(((n,s)=>{const i=t[t.length-1],o=i&&"object"==typeof i&&(Reflect.has(i,"isNotify")||Reflect.has(i,"timeout")),r=o?i:{isNotify:!1,timeout:0},a=o?t.slice(0,-1):t,d=this._getSynEventName(e),l=m.uuid(),u={jsonrpc:"2.0",method:e,params:a,id:l};if(this._event.emit(d,u),r.isNotify)n(void 0);else{const t=this._getAckEventName(e),i=r.timeout||this._timeout;let o;i&&(o=setTimeout((()=>{const e=g(c({},p.CONNECT_TIMEOUT),{data:{timeout:i}});s(e)}),i));const a=e=>{e.id===l&&(clearTimeout(o),this._event.off(t,a),e.error?s(e.error):n(e.result))};this._event.on(t,a)}}))}destroy(){Object.entries(this._methods).forEach((([e])=>{const t=this._getSynEventName(e);this._event.off(t)}));const e=this._getAckEventName(m.EVENT.CONNECT),t=this._getSynEventName(m.EVENT.CONNECT);this._event.off(t),this._event.off(e),this._event.destroy&&this._event.destroy()}};let w=m;u(w,"CODES",p),u(w,"EVENT",{SYN_SIGN:"syn:",ACK_SIGN:"ack:",CONNECT:"__rpc_connect_event",SYNC_METHODS:"__rpc_sync_methods_event"});const y={ErrorInit:10001,ErrorNoRecord:10002,ErrorDBTimeout:10003};var G;let v,M;e.CbEvents=void 0,(G=e.CbEvents||(e.CbEvents={})).Login="Login",G.OnConnectFailed="OnConnectFailed",G.OnConnectSuccess="OnConnectSuccess",G.OnConnecting="OnConnecting",G.OnKickedOffline="OnKickedOffline",G.OnSelfInfoUpdated="OnSelfInfoUpdated",G.OnUserTokenExpired="OnUserTokenExpired",G.OnUserTokenInvalid="OnUserTokenInvalid",G.OnProgress="OnProgress",G.OnMsgDeleted="OnMsgDeleted",G.OnDeleteUserAllMsgsInConv="OnDeleteUserAllMsgsInConv",G.OnRecvNewMsg="OnRecvNewMsg",G.OnRecvNewMsgs="OnRecvNewMsgs",G.OnMsgModified="OnMsgModified",G.OnChangedPinnedMsg="OnChangedPinnedMsg",G.OnRecvOnlineOnlyMsg="OnRecvOnlineOnlyMsg",G.OnRecvOfflineNewMsg="onRecvOfflineNewMsg",G.OnRecvOnlineOnlyMsgs="OnRecvOnlineOnlyMsgs",G.OnRecvOfflineNewMsgs="onRecvOfflineNewMsgs",G.OnRecvMsgRevoked="OnRecvMsgRevoked",G.OnNewRecvMsgRevoked="OnNewRecvMsgRevoked",G.OnRecv1v1ReadReceipt="OnRecv1v1ReadReceipt",G.OnRecvGrpReadReceipt="OnRecvGrpReadReceipt",G.OnConversationChanged="OnConversationChanged",G.OnNewConversation="OnNewConversation",G.OnConversationUserInputStatusChanged="OnConversationUserInputStatusChanged",G.OnSyncServerFailed="OnSyncServerFailed",G.OnSyncServerFinish="OnSyncServerFinish",G.OnSyncServerProgress="OnSyncServerProgress",G.OnSyncServerStart="OnSyncServerStart",G.OnTotalUnreadMsgCountChanged="OnTotalUnreadMsgCountChanged",G.OnBlackAdded="OnBlackAdded",G.OnBlackDeleted="OnBlackDeleted",G.OnFriendReqAccepted="OnFriendReqAccepted",G.OnFriendReqAdded="OnFriendReqAdded",G.OnFriendReqDeleted="OnFriendReqDeleted",G.OnFriendReqRejected="OnFriendReqRejected",G.OnFriendInfoChanged="OnFriendInfoChanged",G.OnFriendAdded="OnFriendAdded",G.OnFriendDeleted="OnFriendDeleted",G.OnJoinedGrpAdded="OnJoinedGrpAdded",G.OnJoinedGrpDeleted="OnJoinedGrpDeleted",G.OnGrpDismissed="OnGrpDismissed",G.OnGrpMemberAdded="OnGrpMemberAdded",G.OnGrpMemberDeleted="OnGrpMemberDeleted",G.OnGrpReqAdded="OnGrpReqAdded",G.OnGrpReqDeleted="OnGrpReqDeleted",G.OnGrpInfoChanged="OnGrpInfoChanged",G.OnGrpMemberInfoChanged="OnGrpMemberInfoChanged",G.OnGrpReqAccepted="OnGrpReqAccepted",G.OnGrpReqRejected="OnGrpReqRejected",G.UploadComplete="UploadComplete",G.OnRecvCustomBusinessMsg="OnRecvCustomBusinessMsg",G.OnUserStatusChanged="OnUserStatusChanged",G.OnUploadLogsProgress="OnUploadLogsProgress",G.OnReceiveNewInvitation="OnReceiveNewInvitation",G.OnInviteeAccepted="OnInviteeAccepted",G.OnInviteeRejected="OnInviteeRejected",G.OnInvitationCancelled="OnInvitationCancelled",G.OnHangUp="OnHangUp",G.OnInvitationTimeout="OnInvitationTimeout",G.OnInviteeAcceptedByOtherDevice="OnInviteeAcceptedByOtherDevice",G.OnInviteeRejectedByOtherDevice="OnInviteeRejectedByOtherDevice",G.OnStreamChange="OnStreamChange",G.OnRoomParticipantConnected="OnRoomParticipantConnected",G.OnRoomParticipantDisconnected="OnRoomParticipantDisconnected",G.OnReceiveCustomSignal="OnReceiveCustomSignal",G.UnUsedEvent="UnUsedEvent";let b=!1;function S(){if("undefined"==typeof window)return;const e=function(){if("undefined"!=typeof Worker&&"type"in Worker.prototype)return!0;try{const e=new Blob([""],{type:"text/javascript"}),t=URL.createObjectURL(e);return new Worker(t,{type:"module"}),URL.revokeObjectURL(t),!0}catch(e){return!1}}(),t=e?new URL("worker.js","undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("index.umd.js",document.baseURI).href):new URL("worker-legacy.js","undefined"==typeof document&&"undefined"==typeof location?new(require("url").URL)("file:"+__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("index.umd.js",document.baseURI).href);M=new Worker(t,{type:e?"module":"classic"}),n(M),v=new w({event:new h({currentEndpoint:M,targetEndpoint:M})})}function f(e){if(-32300===e.code)return v&&(v.destroy(),v=void 0),M&&(M.terminate(),M=void 0),JSON.stringify({data:"",errCode:y.ErrorDBTimeout,errMsg:"database maybe damaged"});throw e}function I(...e){b&&console.info(...e)}function R(e,t,n=!0){return I(`=> (database api) registe ${null!=t?t:e}`),async(...s)=>{if(v&&M||S(),v)try{I(`=> (invoked by go wasm) run ${null!=t?t:e} method with args ${JSON.stringify(s)}`);const i=await v.invoke(e,...s,{timeout:5e6});return I(`=> (invoked by go wasm) run ${null!=t?t:e} method with response `,JSON.stringify(i)),n?JSON.stringify(i):i}catch(e){f(e)}}}S();const C=null==v?void 0:v.connect(5e3);class L{constructor(){this.events={}}emit(e,t){return this.events[e]&&this.events[e].forEach((e=>e(t))),this}on(e,t){return this.events[e]?this.events[e].push(t):this.events[e]=[t],this}off(e,t){if(e&&"function"==typeof t&&this.events[e]){const n=this.events[e];if(!n||0===n.length)return;const s=n.findIndex((e=>e===t));-1!==s&&n.splice(s,1)}return this}}let Z;const k=new Uint8Array(16);function O(){if(!Z&&(Z="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Z))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Z(k)}const U=[];for(let e=0;e<256;++e)U.push((e+256).toString(16).slice(1));var X={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function N(e,t,n){if(X.randomUUID&&!t&&!e)return X.randomUUID();const s=(e=e||{}).random||(e.rng||O)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=s[e];return t}return function(e,t=0){return(U[e[t+0]]+U[e[t+1]]+U[e[t+2]]+U[e[t+3]]+"-"+U[e[t+4]]+U[e[t+5]]+"-"+U[e[t+6]]+U[e[t+7]]+"-"+U[e[t+8]]+U[e[t+9]]+"-"+U[e[t+10]]+U[e[t+11]]+U[e[t+12]]+U[e[t+13]]+U[e[t+14]]+U[e[t+15]]).toLowerCase()}(s)}function A(e,t){return`font-size:14px; background:${null!=e?e:"#ffffff"}; color:${null!=t?t:"#000000"}; border-radius:4px; padding-inline:4px;`}let W,F=!1;const D="crim-cache";async function V(e){if(F)return null;if("undefined"==typeof window)return Promise.resolve(null);let t;W=new Go;try{if("instantiateStreaming"in WebAssembly)t=await WebAssembly.instantiateStreaming(B(e),W.importObject);else{const n=await B(e).then((e=>e.arrayBuffer()));t=await WebAssembly.instantiate(n,W.importObject)}W.run(t.instance)}catch(e){return console.error("Failed to initialize WASM:",e),null}return await async function(e){return new Promise((t=>{const n=setTimeout((()=>{clearTimeout(n),t(null)}),e)}))}(100),F=!0,W}function x(){return W}async function B(e){if(!("caches"in window))return fetch(e);const t=await caches.open(D),n=await t.match(e);return n&&!await(async()=>{const t=await fetch(e,{method:"HEAD"}),s=t.headers.get("ETag"),i=t.headers.get("Last-Modified");return t.ok&&(s!==(null==n?void 0:n.headers.get("ETag"))||i!==(null==n?void 0:n.headers.get("Last-Modified")))})()?n:async function(e,t){const n=await fetch(e,{cache:"no-cache"});try{await t.put(e,n.clone())}catch(e){console.warn("Failed to put cache")}return n}(e,t)}var _,T,K,J,Y,z,P,H,E,Q,j,q,$,ee,te,ne,se,ie,oe,re,ae;e.MessageReceiveOptType=void 0,(_=e.MessageReceiveOptType||(e.MessageReceiveOptType={}))[_.Normal=0]="Normal",_[_.NotReceive=1]="NotReceive",_[_.NotNotify=2]="NotNotify",e.AddFriendPermission=void 0,(T=e.AddFriendPermission||(e.AddFriendPermission={}))[T.AddFriendAllowed=0]="AddFriendAllowed",T[T.AddFriendAllowedNoReview=1]="AddFriendAllowedNoReview",T[T.AddFriendDenied=2]="AddFriendDenied",e.AllowType=void 0,(K=e.AllowType||(e.AllowType={}))[K.Allowed=0]="Allowed",K[K.NotAllowed=1]="NotAllowed",e.GroupType=void 0,(J=e.GroupType||(e.GroupType={}))[J.Group=2]="Group",J[J.WorkingGroup=2]="WorkingGroup",e.GroupJoinSource=void 0,(Y=e.GroupJoinSource||(e.GroupJoinSource={}))[Y.Invitation=2]="Invitation",Y[Y.Search=3]="Search",Y[Y.QrCode=4]="QrCode",e.GroupMemberRole=void 0,(z=e.GroupMemberRole||(e.GroupMemberRole={}))[z.Normal=20]="Normal",z[z.Admin=60]="Admin",z[z.Owner=100]="Owner",e.GroupVerificationType=void 0,(P=e.GroupVerificationType||(e.GroupVerificationType={}))[P.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",P[P.AllNeed=1]="AllNeed",P[P.AllNot=2]="AllNot",e.MessageStatus=void 0,(H=e.MessageStatus||(e.MessageStatus={}))[H.Sending=1]="Sending",H[H.Succeed=2]="Succeed",H[H.Failed=3]="Failed",e.Platform=void 0,(E=e.Platform||(e.Platform={}))[E.iOS=1]="iOS",E[E.Android=2]="Android",E[E.Windows=3]="Windows",E[E.MacOSX=4]="MacOSX",E[E.Web=5]="Web",E[E.Linux=7]="Linux",E[E.AndroidPad=8]="AndroidPad",E[E.iPad=9]="iPad",e.LogLevel=void 0,(Q=e.LogLevel||(e.LogLevel={}))[Q.Verbose=6]="Verbose",Q[Q.Debug=5]="Debug",Q[Q.Info=4]="Info",Q[Q.Warn=3]="Warn",Q[Q.Error=2]="Error",Q[Q.Fatal=1]="Fatal",Q[Q.Panic=0]="Panic",e.ApplicationHandleResult=void 0,(j=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[j.Unprocessed=0]="Unprocessed",j[j.Agree=1]="Agree",j[j.Reject=-1]="Reject",e.MessageType=void 0,(q=e.MessageType||(e.MessageType={}))[q.TextMessage=101]="TextMessage",q[q.PictureMessage=102]="PictureMessage",q[q.VoiceMessage=103]="VoiceMessage",q[q.VideoMessage=104]="VideoMessage",q[q.FileMessage=105]="FileMessage",q[q.AtTextMessage=106]="AtTextMessage",q[q.MergeMessage=107]="MergeMessage",q[q.CardMessage=108]="CardMessage",q[q.LocationMessage=109]="LocationMessage",q[q.CustomMessage=110]="CustomMessage",q[q.TypingMessage=113]="TypingMessage",q[q.QuoteMessage=114]="QuoteMessage",q[q.FaceMessage=115]="FaceMessage",q[q.MarkdownMessage=118]="MarkdownMessage",q[q.StreamMessage=143]="StreamMessage",q[q.FriendAdded=1201]="FriendAdded",q[q.OANotification=1400]="OANotification",q[q.GroupCreated=1501]="GroupCreated",q[q.GroupInfoUpdated=1502]="GroupInfoUpdated",q[q.MemberQuit=1504]="MemberQuit",q[q.GroupOwnerTransferred=1507]="GroupOwnerTransferred",q[q.MemberKicked=1508]="MemberKicked",q[q.MemberInvited=1509]="MemberInvited",q[q.MemberEnter=1510]="MemberEnter",q[q.GroupDismissed=1511]="GroupDismissed",q[q.GroupMemberMuted=1512]="GroupMemberMuted",q[q.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",q[q.GroupMuted=1514]="GroupMuted",q[q.GroupCancelMuted=1515]="GroupCancelMuted",q[q.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",q[q.GroupNameUpdated=1520]="GroupNameUpdated",q[q.BurnMessageChange=1701]="BurnMessageChange",q[q.RevokeMessage=2101]="RevokeMessage",q[q.MsgPinned=2400]="MsgPinned",e.SessionType=void 0,($=e.SessionType||(e.SessionType={}))[$.Single=1]="Single",$[$.Group=3]="Group",$[$.WorkingGroup=3]="WorkingGroup",$[$.Notification=4]="Notification",e.GroupStatus=void 0,(ee=e.GroupStatus||(e.GroupStatus={}))[ee.Normal=0]="Normal",ee[ee.Banned=1]="Banned",ee[ee.Dismissed=2]="Dismissed",ee[ee.Muted=3]="Muted",e.GroupAtType=void 0,(te=e.GroupAtType||(e.GroupAtType={}))[te.AtNormal=0]="AtNormal",te[te.AtMe=1]="AtMe",te[te.AtAll=2]="AtAll",te[te.AtAllAtMe=3]="AtAllAtMe",te[te.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(ne=e.GroupMemberFilter||(e.GroupMemberFilter={}))[ne.All=0]="All",ne[ne.Owner=1]="Owner",ne[ne.Admin=2]="Admin",ne[ne.Normal=3]="Normal",ne[ne.AdminAndNormal=4]="AdminAndNormal",ne[ne.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(se=e.Relationship||(e.Relationship={}))[se.isBlack=0]="isBlack",se[se.isFriend=1]="isFriend",e.LoginStatus=void 0,(ie=e.LoginStatus||(e.LoginStatus={}))[ie.Logout=1]="Logout",ie[ie.Logging=2]="Logging",ie[ie.Logged=3]="Logged",e.OnlineState=void 0,(oe=e.OnlineState||(e.OnlineState={}))[oe.Online=1]="Online",oe[oe.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(re=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[re.Read=0]="Read",re[re.UnRead=1]="UnRead",e.ViewType=void 0,(ae=e.ViewType||(e.ViewType={}))[ae.History=0]="History",ae[ae.Search=1]="Search";class de extends L{constructor(t){super(),this.goExisted=!1,this.tryParse=!0,this.isLogStandardOutput=!0,this.sdkVersion="2.8.0",this.login=async(t,n=N())=>{var s,i,o,r,a;this._logWrap(`SDK => (invoked by js) run login with args ${JSON.stringify({params:t,operationID:n})}`),await C,await this.wasmInitializedPromise,window.commonEventFunc((e=>{try{this._logWrap(`%cSDK =>%c received event %c${e}%c `,A("#282828","#ffffff"),"","color: #4f2398;","");const t=JSON.parse(e);if(this.tryParse)try{t.data=JSON.parse(t.data)}catch(e){}this.emit(t.event,t)}catch(e){console.error(e)}}));let d=t.sdkServer;/^https?:\/\//.test(d)||(d="http://"+d);const l={platformID:e.Platform.Web,sdkServer:d,dataDir:"./",logLevel:t.logLevel||5,isLogStandardOutput:null!==(s=t.isLogStandardOutput)&&void 0!==s?s:this.isLogStandardOutput,logFilePath:"./",isExternalExtensions:t.isExternalExtensions||!1};return this.tryParse=null===(i=t.tryParse)||void 0===i||i,window.initSDK(n,JSON.stringify(l)),await window.login(n,t.userID,null!==(o=t.token)&&void 0!==o?o:"",null!==(r=t.appId)&&void 0!==r?r:"",null!==(a=t.appSecret)&&void 0!==a?a:"")},this.logout=(e=N())=>(window.fileMapClear(),this._invoker("logout",window.logout,[e])),this.getAllConversationList=(e=N())=>this._invoker("getAllConversationList",window.getAllConversationList,[e]),this.getOneConversation=(e,t=N())=>this._invoker("getOneConversation",window.getOneConversation,[t,e.sessionType,e.sourceID]),this.getAdvancedHistoryMsgList=(e,t=N())=>this._invoker("getAdvancedHistoryMsgList",window.getAdvancedHistoryMsgList,[t,JSON.stringify(e)]),this.getAdvancedHistoryMsgListReverse=(e,t=N())=>this._invoker("getAdvancedHistoryMsgListReverse",window.getAdvancedHistoryMsgListReverse,[t,JSON.stringify(e)]),this.getSpecifiedGrpsInfo=(e,t=N())=>this._invoker("getSpecifiedGrpsInfo",window.getSpecifiedGrpsInfo,[t,JSON.stringify(e)]),this.deleteConversationAndDeleteAllMsg=(e,t=N())=>this._invoker("deleteConversationAndDeleteAllMsg",window.deleteConversationAndDeleteAllMsg,[t,e]),this.markConversationMsgAsRead=(e,t=N())=>this._invoker("markConversationMsgAsRead",window.markConversationMsgAsRead,[t,e]),this.sendGroupMessageReadReceipt=(e,t=N())=>this._invoker("sendGroupMessageReadReceipt",window.sendGroupMessageReadReceipt,[t,e.conversationID,JSON.stringify(e.clientMsgIDList)]),this.getGroupMessageReaderList=(e,t=N())=>this._invoker("getGroupMessageReaderList",window.getGroupMessageReaderList,[t,e.conversationID,e.clientMsgID,e.filter,e.offset,e.count]),this.getGrpMemberList=(e,t=N())=>this._invoker("getGrpMemberList",window.getGrpMemberList,[t,e.groupID,e.filter,e.offset,e.count]),this.createTextMsg=(e,t=N())=>this._invoker("createTextMsg",window.createTextMsg,[t,e],(e=>e[0])),this.createImageMsgByURL=(e,t=N())=>this._invoker("createImageMsgByURL",window.createImageMsgByURL,[t,e.sourcePath,JSON.stringify(e.sourcePicture),JSON.stringify(e.bigPicture),JSON.stringify(e.snapshotPicture)],(e=>e[0])),this.createImageMsgByFile=(e,t=N())=>(e.sourcePicture.uuid=`${e.sourcePicture.uuid}/${e.file.name}`,window.fileMapSet(e.sourcePicture.uuid,e.file),this._invoker("createImageMsgByFile",window.createImageMsgByURL,[t,e.sourcePath,JSON.stringify(e.sourcePicture),JSON.stringify(e.bigPicture),JSON.stringify(e.snapshotPicture)],(e=>e[0]))),this.createCustomMsg=(e,t=N())=>this._invoker("createCustomMsg",window.createCustomMsg,[t,e.data,e.extension,e.description],(e=>e[0])),this.createQuoteMsg=(e,t=N())=>this._invoker("createQuoteMsg",window.createQuoteMsg,[t,e.text,e.message],(e=>e[0])),this.createAdvancedQuoteMsg=(e,t=N())=>this._invoker("createAdvancedQuoteMsg",window.createAdvancedQuoteMsg,[t,e.text,JSON.stringify(e.message),JSON.stringify(e.messageEntityList)],(e=>e[0])),this.createAdvancedTextMsg=(e,t=N())=>this._invoker("createAdvancedTextMsg",window.createAdvancedTextMsg,[t,e.text,JSON.stringify(e.messageEntityList)],(e=>e[0])),this.sendMsg=(e,t=N())=>{var n,s;const i=null!==(n=e.offlinePushInfo)&&void 0!==n?n:{title:"You have a new message.",desc:"",ex:"",iOSPushSound:"+1",iOSBadgeCount:!0};return this._invoker("sendMsg",window.sendMsg,[t,JSON.stringify(e.message),e.recvID,e.groupID,JSON.stringify(i),null!==(s=e.isOnlineOnly)&&void 0!==s&&s])},this.getHistoryMsgListReverse=(e,t=N())=>this._invoker("getHistoryMsgListReverse",window.getHistoryMsgListReverse,[t,JSON.stringify(e)]),this.revokeMsg=(e,t=N())=>this._invoker("revokeMsg",window.revokeMsg,[t,e.conversationID,e.clientMsgID]),this.setConversation=(e,t=N())=>this._invoker("setConversation",window.setConversation,[t,e.conversationID,JSON.stringify(e)]),this.getLoginStatus=(e=N())=>this._invoker("getLoginStatus",window.getLoginStatus,[e],(e=>e[0])),this.setAppBackgroundStatus=(e,t=N())=>this._invoker("setAppBackgroundStatus",window.setAppBackgroundStatus,[t,e]),this.networkStatusChanged=(e=N())=>this._invoker("networkStatusChanged ",window.networkStatusChanged,[e]),this.getLoginUserID=(e=N())=>this._invoker("getLoginUserID",window.getLoginUserID,[e]),this.getSelfUserInfo=(e=N())=>this._invoker("getSelfUserInfo",window.getSelfUserInfo,[e]),this.getUsersInfo=(e,t=N())=>this._invoker("getUsersInfo",window.getUsersInfo,[t,JSON.stringify(e)]),this.setSelfInfo=(e,t=N())=>this._invoker("setSelfInfo",window.setSelfInfo,[t,JSON.stringify(e)]),this.createTextAtMsg=(e,t=N())=>{var n;return this._invoker("createTextAtMsg",window.createTextAtMsg,[t,e.text,JSON.stringify(e.atUserIDList),JSON.stringify(e.atUsersInfo),null!==(n=JSON.stringify(e.message))&&void 0!==n?n:""],(e=>e[0]))},this.createSoundMsgByURL=(e,t=N())=>this._invoker("createSoundMsgByURL",window.createSoundMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createSoundMsgByFile=(e,t=N())=>(e.uuid=`${e.uuid}/${e.file.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("createSoundMsgByFile",window.createSoundMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createVideoMsgByURL=(e,t=N())=>this._invoker("createVideoMsgByURL",window.createVideoMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createVideoMsgByFile=(e,t=N())=>(e.videoUUID=`${e.videoUUID}/${e.videoFile.name}`,e.snapshotUUID=`${e.snapshotUUID}/${e.snapshotFile.name}`,window.fileMapSet(e.videoUUID,e.videoFile),window.fileMapSet(e.snapshotUUID,e.snapshotFile),this._invoker("createVideoMsgByFile",window.createVideoMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createFileMsgByURL=(e,t=N())=>this._invoker("createFileMsgByURL",window.createFileMsgByURL,[t,JSON.stringify(e)],(e=>e[0])),this.createFileMsgByFile=(e,t=N())=>(e.uuid=`${e.uuid}/${e.file.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("createFileMsgByFile",window.createFileMsgByURL,[t,JSON.stringify(e)],(e=>e[0]))),this.createMergerMsg=(e,t=N())=>this._invoker("createMergerMsg ",window.createMergerMsg,[t,JSON.stringify(e.messageList),e.title,JSON.stringify(e.summaryList)],(e=>e[0])),this.createForwardMsg=(e,t=N())=>this._invoker("createForwardMsg ",window.createForwardMsg,[t,JSON.stringify(e)],(e=>e[0])),this.createFaceMsg=(e,t=N())=>this._invoker("createFaceMsg ",window.createFaceMsg,[t,e.index,e.data],(e=>e[0])),this.createLocationMsg=(e,t=N())=>this._invoker("createLocationMsg ",window.createLocationMsg,[t,e.description,e.longitude,e.latitude],(e=>e[0])),this.createCardMsg=(e,t=N())=>this._invoker("createCardMsg ",window.createCardMsg,[t,JSON.stringify(e)],(e=>e[0])),this.deleteMsgFromLocalStorage=(e,t=N())=>this._invoker("deleteMsgFromLocalStorage ",window.deleteMsgFromLocalStorage,[t,e.conversationID,e.clientMsgID]),this.deleteMsg=(e,t=N())=>this._invoker("deleteMsg ",window.deleteMsg,[t,e.conversationID,e.clientMsgID]),this.deleteAllConversationFromLocal=(e=N())=>this._invoker("deleteAllConversationFromLocal ",window.deleteAllConversationFromLocal,[e]),this.deleteAllMsgFromLocal=(e=N())=>this._invoker("deleteAllMsgFromLocal ",window.deleteAllMsgFromLocal,[e]),this.deleteAllMsgFromLocalAndSvr=(e=N())=>this._invoker("deleteAllMsgFromLocalAndSvr ",window.deleteAllMsgFromLocalAndSvr,[e]),this.insertSingleMsgToLocalStorage=(e,t=N())=>this._invoker("insertSingleMsgToLocalStorage ",window.insertSingleMsgToLocalStorage,[t,JSON.stringify(e.message),e.recvID,e.sendID]),this.insertGrpMsgToLocalStorage=(e,t=N())=>this._invoker("insertGrpMsgToLocalStorage ",window.insertGrpMsgToLocalStorage,[t,JSON.stringify(e.message),e.groupID,e.sendID]),this.changeInputStates=(e,t=N())=>this._invoker("changeInputStates ",window.changeInputStates,[t,e.conversationID,e.focus]),this.getInputstates=(e,t=N())=>this._invoker("getInputstates ",window.getInputstates,[t,e.conversationID,e.userID]),this.clearConversationAndDeleteAllMsg=(e,t=N())=>this._invoker("clearConversationAndDeleteAllMsg ",window.clearConversationAndDeleteAllMsg,[t,e]),this.hideConversation=(e,t=N())=>this._invoker("hideConversation ",window.hideConversation,[t,e]),this.getConversationListSplit=(e,t=N())=>this._invoker("getConversationListSplit ",window.getConversationListSplit,[t,e.offset,e.count]),this.getConversationIDBySessionType=(e,t=N())=>this._invoker("getConversationIDBySessionType ",window.getConversationIDBySessionType,[t,e.sourceID,e.sessionType]),this.getMultipleConversation=(e,t=N())=>this._invoker("getMultipleConversation ",window.getMultipleConversation,[t,JSON.stringify(e)]),this.deleteConversation=(e,t=N())=>this._invoker("deleteConversation ",window.deleteConversation,[t,e]),this.setConversationDraft=(e,t=N())=>this._invoker("setConversationDraft ",window.setConversationDraft,[t,e.conversationID,e.draftText]),this.getTotalUnreadMsgCount=(e=N())=>this._invoker("getTotalUnreadMsgCount ",window.getTotalUnreadMsgCount,[e]),this.searchLocalMsgs=(e,t=N())=>this._invoker("searchLocalMsgs ",window.searchLocalMsgs,[t,JSON.stringify(e)]),this.addFriend=(e,t=N())=>this._invoker("addFriend ",window.addFriend,[t,JSON.stringify(e)]),this.searchFriends=(e,t=N())=>this._invoker("searchFriends ",window.searchFriends,[t,JSON.stringify(e)]),this.getSpecifiedFriendsInfo=(e,t=N())=>this._invoker("getSpecifiedFriendsInfo",window.getSpecifiedFriendsInfo,[t,JSON.stringify(e.friendUserIDList),e.filterBlack]),this.getFriendReqListAsRecipient=(e={handleResults:[],offset:0,count:0},t=N())=>this._invoker("getFriendReqListAsRecipient ",window.getFriendReqListAsRecipient,[t,JSON.stringify(e)]),this.getFriendReqListAsApplicant=(e={offset:0,count:0},t=N())=>this._invoker("getFriendReqListAsApplicant ",window.getFriendReqListAsApplicant,[t,JSON.stringify(e)]),this.getFriendReqUnhandledCount=(e,t=N())=>this._invoker("getFriendReqUnhandledCount ",window.getFriendReqUnhandledCount,[t,JSON.stringify(e)]),this.deleteFriendRequests=(e,t=N())=>this._invoker("deleteFriendRequests ",window.deleteFriendRequests,[t,JSON.stringify({friendRequests:e})]),this.getFriendList=(e=!1,t=N())=>this._invoker("getFriendList ",window.getFriendList,[t,e]),this.getFriendListPage=(e,t=N())=>{var n;return this._invoker("getFriendListPage ",window.getFriendListPage,[t,e.offset,e.count,null!==(n=e.filterBlack)&&void 0!==n&&n])},this.updateFriends=(e,t=N())=>this._invoker("updateFriends ",window.updateFriends,[t,JSON.stringify(e)]),this.checkFriend=(e,t=N())=>this._invoker("checkFriend",window.checkFriend,[t,JSON.stringify(e)]),this.acceptFriendReq=(e,t=N())=>this._invoker("acceptFriendReq",window.acceptFriendReq,[t,JSON.stringify(e)]),this.refuseFriendReq=(e,t=N())=>this._invoker("refuseFriendReq ",window.refuseFriendReq,[t,JSON.stringify(e)]),this.deleteFriend=(e,t=N())=>this._invoker("deleteFriend ",window.deleteFriend,[t,e]),this.addBlack=(e,t=N())=>{var n;return this._invoker("addBlack ",window.addBlack,[t,e.toUserID,null!==(n=e.ex)&&void 0!==n?n:""])},this.removeBlack=(e,t=N())=>this._invoker("removeBlack ",window.removeBlack,[t,e]),this.getBlackList=(e=N())=>this._invoker("getBlackList ",window.getBlackList,[e]),this.inviteUserToGrp=(e,t=N())=>this._invoker("inviteUserToGrp ",window.inviteUserToGrp,[t,e.groupID,e.reason,JSON.stringify(e.userIDList)]),this.kickGrpMember=(e,t=N())=>this._invoker("kickGrpMember ",window.kickGrpMember,[t,e.groupID,e.reason,JSON.stringify(e.userIDList)]),this.isJoinGrp=(e,t=N())=>this._invoker("isJoinGrp ",window.isJoinGrp,[t,e]),this.getSpecifiedGrpMembersInfo=(e,t=N())=>this._invoker("getSpecifiedGrpMembersInfo ",window.getSpecifiedGrpMembersInfo,[t,e.groupID,JSON.stringify(e.userIDList)]),this.getUsersInGrp=(e,t=N())=>this._invoker("getUsersInGrp ",window.getUsersInGrp,[t,e.groupID,JSON.stringify(e.userIDList)]),this.getGrpMemberListByJoinTimeFilter=(e,t=N())=>this._invoker("getGrpMemberListByJoinTimeFilter ",window.getGrpMemberListByJoinTimeFilter,[t,e.groupID,e.offset,e.count,e.joinTimeBegin,e.joinTimeEnd,JSON.stringify(e.filterUserIDList)]),this.searchGrpMembers=(e,t=N())=>this._invoker("searchGrpMembers ",window.searchGrpMembers,[t,JSON.stringify(e)]),this.getJoinedGrpList=(e=N())=>this._invoker("getJoinedGrpList ",window.getJoinedGrpList,[e]),this.getJoinedGrpListPage=(e,t=N())=>this._invoker("getJoinedGrpListPage ",window.getJoinedGrpListPage,[t,e.offset,e.count]),this.createGrp=(e,t=N())=>this._invoker("createGrp ",window.createGrp,[t,JSON.stringify(e)]),this.setGrpInfo=(e,t=N())=>this._invoker("setGrpInfo ",window.setGrpInfo,[t,JSON.stringify(e)]),this.setGrpMemberInfo=(e,t=N())=>this._invoker("setGrpMemberInfo ",window.setGrpMemberInfo,[t,JSON.stringify(e)]),this.joinGrp=(e,t=N())=>{var n;return this._invoker("joinGrp ",window.joinGrp,[t,e.groupID,e.reqMsg,e.joinSource,null!==(n=e.ex)&&void 0!==n?n:""])},this.searchGrps=(e,t=N())=>this._invoker("searchGrps ",window.searchGrps,[t,JSON.stringify(e)]),this.quitGrp=(e,t=N())=>this._invoker("quitGrp ",window.quitGrp,[t,e]),this.dismissGrp=(e,t=N())=>this._invoker("dismissGrp ",window.dismissGrp,[t,e]),this.changeGrpMute=(e,t=N())=>this._invoker("changeGrpMute ",window.changeGrpMute,[t,e.groupID,e.isMute]),this.changeGrpMemberMute=(e,t=N())=>this._invoker("changeGrpMemberMute ",window.changeGrpMemberMute,[t,e.groupID,e.userID,e.mutedSeconds]),this.transferGrpOwner=(e,t=N())=>this._invoker("transferGrpOwner ",window.transferGrpOwner,[t,e.groupID,e.newOwnerUserID]),this.getGrpReqListAsApplicant=(e={groupID:[],handleResults:[],offset:0,count:0},t=N())=>this._invoker("getGrpReqListAsApplicant ",window.getGrpReqListAsApplicant,[t,JSON.stringify(e)]),this.getGrpReqListAsRecipient=(e={groupID:[],handleResults:[],offset:0,count:0},t=N())=>this._invoker("getGrpReqListAsRecipient ",window.getGrpReqListAsRecipient,[t,JSON.stringify(e)]),this.getGrpReqUnhandledCount=(e,t=N())=>this._invoker("getGrpReqUnhandledCount ",window.getGrpReqUnhandledCount,[t,JSON.stringify(e)]),this.deleteGroupRequests=(e,t=N())=>this._invoker("deleteGroupRequests ",window.deleteGroupRequests,[t,JSON.stringify({groupRequests:e})]),this.acceptGrpReq=(e,t=N())=>this._invoker("acceptGrpReq ",window.acceptGrpReq,[t,e.groupID,e.fromUserID,e.handleMsg]),this.refuseGrpReq=(e,t=N())=>this._invoker("refuseGrpReq ",window.refuseGrpReq,[t,e.groupID,e.fromUserID,e.handleMsg]),this.getGrpMemberOwnerAndAdmin=(e,t=N())=>this._invoker("getGrpMemberOwnerAndAdmin ",window.getGrpMemberOwnerAndAdmin,[t,e]),this.findMsgList=(e,t=N())=>this._invoker("findMsgList ",window.findMsgList,[t,JSON.stringify(e)]),this.uploadFile=(e,t=N())=>{var n;return e.uuid=`${e.uuid}/${null===(n=e.file)||void 0===n?void 0:n.name}`,window.fileMapSet(e.uuid,e.file),this._invoker("uploadFile ",window.uploadFile,[t,JSON.stringify({...e,filepath:"",cause:""})])},this.subscribeUsersStatus=(e,t=N())=>this._invoker("subscribeUsersStatus ",window.subscribeUsersStatus,[t,JSON.stringify(e)]),this.unsubscribeUsersStatus=(e,t=N())=>this._invoker("unsubscribeUsersStatus ",window.unsubscribeUsersStatus,[t,JSON.stringify(e)]),this.getUserStatus=(e=N())=>this._invoker("getUserStatus ",window.getUserStatus,[e]),this.getSubscribeUsersStatus=(e=N())=>this._invoker("getSubscribeUsersStatus ",window.getSubscribeUsersStatus,[e]),this.signalingInvite=(e,t=N())=>this._invoker("signalingInvite ",window.signalingInvite,[t,JSON.stringify(e)]),this.signalingInviteInGroup=(e,t=N())=>this._invoker("signalingInviteInGroup ",window.signalingInviteInGroup,[t,JSON.stringify(e)]),this.signalingAccept=(e,t=N())=>this._invoker("signalingAccept ",window.signalingAccept,[t,JSON.stringify(e)]),this.signalingReject=(e,t=N())=>this._invoker("signalingReject ",window.signalingReject,[t,JSON.stringify(e)]),this.signalingCancel=(e,t=N())=>this._invoker("signalingCancel ",window.signalingCancel,[t,JSON.stringify(e)]),this.signalingHungUp=(e,t=N())=>this._invoker("signalingHungUp ",window.signalingHungUp,[t,JSON.stringify(e)]),this.signalingGetRoomByGroupID=(e,t=N())=>this._invoker("signalingGetRoomByGroupID ",window.signalingGetRoomByGroupID,[t,e]),this.signalingGetTokenByRoomID=(e,t=N())=>this._invoker("signalingGetTokenByRoomID ",window.signalingGetTokenByRoomID,[t,e]),this.getSignalingInvitationInfoStartApp=(e=N())=>this._invoker("getSignalingInvitationInfoStartApp ",window.getSignalingInvitationInfoStartApp,[e]),this.signalingSendCustomSignal=(e,t=N())=>this._invoker("signalingSendCustomSignal ",window.signalingSendCustomSignal,[t,e.customInfo,e.roomID]),this.setConversationIsMsgDestruct=(e,t=N())=>this._invoker("setConversationIsMsgDestruct ",window.setConversation,[t,e.conversationID,JSON.stringify({isMsgDestruct:e.isMsgDestruct})]),this.setConversationMsgDestructTime=(e,t=N())=>this._invoker("setConversationMsgDestructTime ",window.setConversation,[t,e.conversationID,JSON.stringify({msgDestructTime:e.msgDestructTime})]),this.createTargetedGroupMessage=(e,t=N())=>this._invoker("createTargetedGroupMessage",window.createTargetedGroupMessage,[t,JSON.stringify(e.message),JSON.stringify(e.dstUserIDs)],(e=>e[0])),this.setConversationPinnedMsg=(e,t=N())=>this._invoker("setConversationPinnedMsg ",window.setConversationPinnedMsg,[t,e.conversationID,e.clientMsgID,e.pinned]),this.getConversationPinnedMsg=(e,t=N())=>this._invoker("getConversationPinnedMsg ",window.getConversationPinnedMsg,[t,e]),this.fileMapSet=(e,t)=>window.fileMapSet(e,t),function(e=!0){v&&(b=e,window.wasmOpen=R("wasmOpen"),window.wasmClose=R("wasmClose"),window.wasmRead=R("wasmRead","wasmRead",!1),window.getUpload=R("getUpload"),window.insertUpload=R("insertUpload"),window.updateUpload=R("updateUpload"),window.deleteUpload=R("deleteUpload"),window.fileMapSet=R("fileMapSet"),window.fileMapClear=R("fileMapClear"),window.setSqlWasmPath=R("setSqlWasmPath"),window.initDB=R("initDB"),window.close=R("close"),window.getMessage=R("getMessage"),window.getMultipleMessage=R("getMultipleMessage"),window.getSendingMessageList=R("getSendingMessageList"),window.getNormalMsgSeq=R("getNormalMsgSeq"),window.updateMessageTimeAndStatus=R("updateMessageTimeAndStatus"),window.updateMessage=R("updateMessage"),window.updateMessageBySeq=R("updateMessageBySeq"),window.updateColumnsMessage=R("updateColumnsMessage"),window.insertMessage=R("insertMessage"),window.batchInsertMessageList=R("batchInsertMessageList"),window.getMessageList=R("getMessageList"),window.getMessageListNoTime=R("getMessageListNoTime"),window.messageIfExists=R("messageIfExists"),window.messageIfExistsBySeq=R("messageIfExistsBySeq"),window.getAbnormalMsgSeq=R("getAbnormalMsgSeq"),window.getAbnormalMsgSeqList=R("getAbnormalMsgSeqList"),window.batchInsertExceptionMsg=R("batchInsertExceptionMsg"),window.searchMessageByKeyword=R("searchMessageByKeyword"),window.searchMessageByContentType=R("searchMessageByContentType"),window.searchMessageByContentTypeAndKeyword=R("searchMessageByContentTypeAndKeyword"),window.updateMsgSenderNickname=R("updateMsgSenderNickname"),window.updateMsgSenderFaceURL=R("updateMsgSenderFaceURL"),window.updateMsgSenderFaceURLAndSenderNickname=R("updateMsgSenderFaceURLAndSenderNickname"),window.getMsgSeqByClientMsgID=R("getMsgSeqByClientMsgID"),window.getMsgSeqListByGroupID=R("getMsgSeqListByGroupID"),window.getMsgSeqListByPeerUserID=R("getMsgSeqListByPeerUserID"),window.getMsgSeqListBySelfUserID=R("getMsgSeqListBySelfUserID"),window.deleteAllMessage=R("deleteAllMessage"),window.getAllUnDeleteMessageSeqList=R("getAllUnDeleteMessageSeqList"),window.updateSingleMessageHasRead=R("updateSingleMessageHasRead"),window.updateGroupMessageHasRead=R("updateGroupMessageHasRead"),window.updateMessageStatusBySourceID=R("updateMessageStatusBySourceID"),window.getAlreadyExistSeqList=R("getAlreadyExistSeqList"),window.getLatestValidServerMessage=R("getLatestValidServerMessage"),window.getMessageByUserID=R("getMessageByUserID"),window.getMessageBySeq=R("getMessageBySeq"),window.getMessagesByClientMsgIDs=R("getMessagesByClientMsgIDs"),window.getMessagesBySeqs=R("getMessagesBySeqs"),window.getConversationNormalMsgSeq=R("getConversationNormalMsgSeq"),window.checkConversationNormalMsgSeq=R("getConversationNormalMsgSeq"),window.getConversationPeerNormalMsgSeq=R("getConversationPeerNormalMsgSeq"),window.deleteConversationAllMessages=R("deleteConversationAllMessages"),window.markDeleteConversationAllMessages=R("markDeleteConversationAllMessages"),window.getUnreadMessage=R("getUnreadMessage"),window.markConversationMessageAsReadBySeqs=R("markConversationMessageAsReadBySeqs"),window.markConversationMessageAsReadDB=R("markConversationMessageAsRead"),window.deleteMessagesByClientMsgIDs=R("deleteMessagesByClientMsgIDs"),window.deleteConversationMsgs=R("deleteConversationMsgs"),window.markConversationAllMessageAsRead=R("markConversationAllMessageAsRead"),window.searchAllMessageByContentType=R("searchAllMessageByContentType"),window.insertSendingMessage=R("insertSendingMessage"),window.deleteSendingMessage=R("deleteSendingMessage"),window.getAllSendingMessages=R("getAllSendingMessages"),window.getAllConversationListDB=R("getAllConversationList"),window.getAllConversationListToSync=R("getAllConversationListToSync"),window.getHiddenConversationList=R("getHiddenConversationList"),window.getConversation=R("getConversation"),window.getMultipleConversationDB=R("getMultipleConversation"),window.updateColumnsConversation=R("updateColumnsConversation"),window.updateConversation=R("updateColumnsConversation","updateConversation"),window.updateConversationForSync=R("updateColumnsConversation","updateConversationForSync"),window.decrConversationUnreadCount=R("decrConversationUnreadCount"),window.batchInsertConversationList=R("batchInsertConversationList"),window.insertConversation=R("insertConversation"),window.getTotalUnreadMsgCountDB=R("getTotalUnreadMsgCount"),window.getConversationByUserID=R("getConversationByUserID"),window.getConversationListSplitDB=R("getConversationListSplit"),window.deleteConversation=R("deleteConversation"),window.deleteAllConversation=R("deleteAllConversation"),window.batchUpdateConversationList=R("batchUpdateConversationList"),window.conversationIfExists=R("conversationIfExists"),window.resetConversation=R("resetConversation"),window.resetAllConversation=R("resetAllConversation"),window.clearConversation=R("clearConversation"),window.clearAllConversation=R("clearAllConversation"),window.setConversationDraftDB=R("setConversationDraft"),window.removeConversationDraft=R("removeConversationDraft"),window.unPinConversation=R("unPinConversation"),window.incrConversationUnreadCount=R("incrConversationUnreadCount"),window.setMultipleConversationRecvMsgOpt=R("setMultipleConversationRecvMsgOpt"),window.getAllSingleConversationIDList=R("getAllSingleConversationIDList"),window.findAllUnreadConversationConversationID=R("findAllUnreadConversationConversationID"),window.getAllConversationIDList=R("getAllConversationIDList"),window.getAllConversations=R("getAllConversations"),window.searchConversations=R("searchConversations"),window.getLatestActiveMessage=R("getLatestActiveMessage"),window.getLoginUser=R("getLoginUser"),window.insertLoginUser=R("insertLoginUser"),window.updateLoginUser=R("updateLoginUser"),window.getStrangerInfo=R("getStrangerInfo"),window.setStrangerInfo=R("setStrangerInfo"),window.getAppSDKVersion=R("getAppSDKVersion"),window.setAppSDKVersion=R("setAppSDKVersion"),window.getVersionSync=R("getVersionSync"),window.setVersionSync=R("setVersionSync"),window.deleteVersionSync=R("deleteVersionSync"),window.getJoinedSuperGroupList=R("getJoinedSuperGroupList"),window.getJoinedSuperGroupIDList=R("getJoinedSuperGroupIDList"),window.getSuperGroupInfoByGroupID=R("getSuperGroupInfoByGroupID"),window.deleteSuperGroup=R("deleteSuperGroup"),window.insertSuperGroup=R("insertSuperGroup"),window.updateSuperGroup=R("updateSuperGroup"),window.deleteConversationUnreadMessageList=R("deleteConversationUnreadMessageList"),window.batchInsertConversationUnreadMessageList=R("batchInsertConversationUnreadMessageList"),window.superGroupGetMessage=R("superGroupGetMessage"),window.superGroupGetMultipleMessage=R("superGroupGetMultipleMessage"),window.superGroupGetNormalMinSeq=R("superGroupGetNormalMinSeq"),window.getSuperGroupNormalMsgSeq=R("getSuperGroupNormalMsgSeq"),window.superGroupUpdateMessageTimeAndStatus=R("superGroupUpdateMessageTimeAndStatus"),window.superGroupUpdateMessage=R("superGroupUpdateMessage"),window.superGroupInsertMessage=R("superGroupInsertMessage"),window.superGroupBatchInsertMessageList=R("superGroupBatchInsertMessageList"),window.superGroupGetMessageListNoTime=R("superGroupGetMessageListNoTime"),window.superGroupGetMessageList=R("superGroupGetMessageList"),window.superGroupUpdateColumnsMessage=R("superGroupUpdateColumnsMessage"),window.superGroupDeleteAllMessage=R("superGroupDeleteAllMessage"),window.superGroupSearchMessageByKeyword=R("superGroupSearchMessageByKeyword"),window.superGroupSearchMessageByContentType=R("superGroupSearchMessageByContentType"),window.superGroupSearchMessageByContentTypeAndKeyword=R("superGroupSearchMessageByContentTypeAndKeyword"),window.superGroupUpdateMessageStatusBySourceID=R("superGroupUpdateMessageStatusBySourceID"),window.superGroupGetSendingMessageList=R("superGroupGetSendingMessageList"),window.superGroupUpdateGroupMessageHasRead=R("superGroupUpdateGroupMessageHasRead"),window.superGroupGetMsgSeqByClientMsgID=R("superGroupGetMsgSeqByClientMsgID"),window.superGroupUpdateMsgSenderFaceURLAndSenderNickname=R("superGroupUpdateMsgSenderFaceURLAndSenderNickname"),window.superGroupSearchAllMessageByContentType=R("superGroupSearchAllMessageByContentType"),window.exec=R("exec"),window.getRowsModified=R("getRowsModified"),window.exportDB=async()=>{if(v&&M||S(),v)try{I("=> (invoked by go wasm) run exportDB method ");const e=await v.invoke("exportDB",void 0,{timeout:5e3});return I("=> (invoked by go wasm) run exportDB method with response ",JSON.stringify(e)),e}catch(e){f(e)}},window.getBlackListDB=R("getBlackList"),window.getBlackListUserID=R("getBlackListUserID"),window.getBlackInfoByBlockUserID=R("getBlackInfoByBlockUserID"),window.getBlackInfoList=R("getBlackInfoList"),window.insertBlack=R("insertBlack"),window.deleteBlack=R("deleteBlack"),window.updateBlack=R("updateBlack"),window.insertFriendRequest=R("insertFriendRequest"),window.deleteFriendRequestBothUserID=R("deleteFriendRequestBothUserID"),window.deleteSelfFriendRequests=R("deleteSelfFriendRequests"),window.updateFriendRequest=R("updateFriendRequest"),window.getRecvFriendApplication=R("getRecvFriendApplication"),window.getSendFriendApplication=R("getSendFriendApplication"),window.getFriendApplicationByBothID=R("getFriendApplicationByBothID"),window.getBothFriendReq=R("getBothFriendReq"),window.insertFriend=R("insertFriend"),window.deleteFriendDB=R("deleteFriend"),window.updateFriend=R("updateFriend"),window.getAllFriendList=R("getAllFriendList"),window.searchFriendList=R("searchFriendList"),window.getFriendInfoByFriendUserID=R("getFriendInfoByFriendUserID"),window.getFriendInfoList=R("getFriendInfoList"),window.getPageFriendList=R("getPageFriendList"),window.updateColumnsFriend=R("updateColumnsFriend"),window.getFriendListCount=R("getFriendListCount"),window.batchInsertFriend=R("batchInsertFriend"),window.deleteAllFriend=R("deleteAllFriend"),window.insertGroup=R("insertGroup"),window.deleteGroup=R("deleteGroup"),window.updateGroup=R("updateGroup"),window.getJoinedGroupListDB=R("getJoinedGroupList"),window.getGroupInfoByGroupID=R("getGroupInfoByGroupID"),window.getAllGroupInfoByGroupIDOrGroupName=R("getAllGroupInfoByGroupIDOrGroupName"),window.subtractMemberCount=R("subtractMemberCount"),window.addMemberCount=R("addMemberCount"),window.getJoinedWorkingGroupIDList=R("getJoinedWorkingGroupIDList"),window.getJoinedWorkingGroupList=R("getJoinedWorkingGroupList"),window.getGroupMemberAllGroupIDs=R("getGroupMemberAllGroupIDs"),window.getUserJoinedGroupIDs=R("getUserJoinedGroupIDs"),window.getGroups=R("getGroups"),window.getGroupMemberListByUserIDs=R("getGroupMemberListByUserIDs"),window.batchInsertGroup=R("batchInsertGroup"),window.deleteAllGroup=R("deleteAllGroup"),window.insertGroupRequest=R("insertGroupRequest"),window.deleteGroupRequest=R("deleteGroupRequest"),window.deleteGroupRequestsFromUserID=R("deleteGroupRequestsFromUserID"),window.updateGroupRequest=R("updateGroupRequest"),window.getSendGroupApplication=R("getSendGroupApplication"),window.insertAdminGroupRequest=R("insertAdminGroupRequest"),window.deleteAdminGroupRequest=R("deleteAdminGroupRequest"),window.updateAdminGroupRequest=R("updateAdminGroupRequest"),window.getAdminGroupApplication=R("getAdminGroupApplication"),window.getGroupMemberInfoByGroupIDUserID=R("getGroupMemberInfoByGroupIDUserID"),window.getAllGroupMemberList=R("getAllGroupMemberList"),window.getAllGroupMemberUserIDList=R("getAllGroupMemberUserIDList"),window.getGroupMemberCount=R("getGroupMemberCount"),window.getGroupSomeMemberInfo=R("getGroupSomeMemberInfo"),window.getGroupAdminID=R("getGroupAdminID"),window.getGroupMemberListByGroupID=R("getGroupMemberListByGroupID"),window.getGroupMemberListSplit=R("getGroupMemberListSplit"),window.getGroupMemberOwnerAndAdminDB=R("getGroupMemberOwnerAndAdmin"),window.getGroupMemberOwner=R("getGroupMemberOwner"),window.getGroupMemberListSplitByJoinTimeFilter=R("getGroupMemberListSplitByJoinTimeFilter"),window.getGroupOwnerAndAdminByGroupID=R("getGroupOwnerAndAdminByGroupID"),window.getGroupMemberUIDListByGroupID=R("getGroupMemberUIDListByGroupID"),window.insertGroupMember=R("insertGroupMember"),window.batchInsertGroupMember=R("batchInsertGroupMember"),window.deleteGroupMember=R("deleteGroupMember"),window.deleteGroupAllMembers=R("deleteGroupAllMembers"),window.updateGroupMember=R("updateGroupMember"),window.updateGroupMemberField=R("updateGroupMemberField"),window.searchGroupMembersDB=R("searchGroupMembers","searchGroupMembersDB"),window.batchInsertTempCacheMessageList=R("batchInsertTempCacheMessageList"),window.InsertTempCacheMessage=R("InsertTempCacheMessage"),window.getNotificationAllSeqs=R("getNotificationAllSeqs"),window.setNotificationSeq=R("setNotificationSeq"),window.batchInsertNotificationSeq=R("batchInsertNotificationSeq"),window.getExistedTables=R("getExistedTables"))}(t.debug),this.isLogStandardOutput=t.debug,this.wasmInitializedPromise=V(t.assetsUrl.sdkWasm),this.goExitPromise=void 0,this.goExitPromise&&this.goExitPromise.then((()=>{this._logWrap("SDK => wasm exist")})).catch((e=>{this._logWrap("SDK => wasm with error ",e)})).finally((()=>{this.goExisted=!0}))}_logWrap(...e){this.isLogStandardOutput&&console.info(...e)}_invoker(e,t,n,s){return new Promise((async(i,o)=>{this._logWrap(`%cSDK =>%c [OperationID:${n[0]}] (invoked by js) run ${e} with args ${JSON.stringify(n)}`,"font-size:14px; background:#7CAEFF; border-radius:4px; padding-inline:4px;","");let r={operationID:n[0],event:e.slice(0,1).toUpperCase()+e.slice(1).toLowerCase()};try{if(!x()||x().exited||this.goExisted)throw"wasm exist already, fail to run";let o=await t(...n);if(s&&(this._logWrap(`%cSDK =>%c [OperationID:${n[0]}] (invoked by js) run ${e} with response before processor ${JSON.stringify(o)}`,A("#FFDC19"),""),o=s(o)),this.tryParse)try{o=JSON.parse(o)}catch(e){}r.data=o,i(r)}catch(t){this._logWrap(`%cSDK =>%c [OperationID:${n[0]}] (invoked by js) run ${e} with error ${JSON.stringify(t)}`,A("#EE4245"),""),r={...r,...t},o(r)}}))}exportDB(e=N()){return this._invoker("exportDB",window.exportDB,[e])}}let le;function ce(e,t,n){var s=void 0===t?null:t,i=function(e,t){var n=atob(e);if(t){for(var s=new Uint8Array(n.length),i=0,o=n.length;i<o;++i)s[i]=n.charCodeAt(i);return String.fromCharCode.apply(null,new Uint16Array(s.buffer))}return n}(e,void 0!==n&&n),o=i.indexOf("\n",10)+1,r=i.substring(o)+(s?"//# sourceMappingURL="+s:""),a=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(a)}var ge,ue,pe,he,me=(ge="Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7bGV0IHQ9MzczNTkyODU1OTtjbGFzcyBle2NvbnN0cnVjdG9yKHQse2luaXRpYWxPZmZzZXQ6ZT00LHVzZUF0b21pY3M6aT0hMCxzdHJlYW06cz0hMCxkZWJ1ZzpyLG5hbWU6bn09e30pe3RoaXMuYnVmZmVyPXQsdGhpcy5hdG9taWNWaWV3PW5ldyBJbnQzMkFycmF5KHQpLHRoaXMub2Zmc2V0PWUsdGhpcy51c2VBdG9taWNzPWksdGhpcy5zdHJlYW09cyx0aGlzLmRlYnVnPXIsdGhpcy5uYW1lPW59bG9nKC4uLnQpe3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKGBbcmVhZGVyOiAke3RoaXMubmFtZX1dYCwuLi50KX13YWl0V3JpdGUodCxlPW51bGwpe2lmKHRoaXMudXNlQXRvbWljcyl7Zm9yKHRoaXMubG9nKGB3YWl0aW5nIGZvciAke3R9YCk7MD09PUF0b21pY3MubG9hZCh0aGlzLmF0b21pY1ZpZXcsMCk7KXtpZihudWxsIT1lJiYidGltZWQtb3V0Ij09PUF0b21pY3Mud2FpdCh0aGlzLmF0b21pY1ZpZXcsMCwwLGUpKXRocm93IG5ldyBFcnJvcigidGltZW91dCIpO0F0b21pY3Mud2FpdCh0aGlzLmF0b21pY1ZpZXcsMCwwLDUwMCl9dGhpcy5sb2coYHJlc3VtZWQgZm9yICR7dH1gKX1lbHNlIGlmKDEhPT10aGlzLmF0b21pY1ZpZXdbMF0pdGhyb3cgbmV3IEVycm9yKCJgd2FpdFdyaXRlYCBleHBlY3RlZCBhcnJheSB0byBiZSByZWFkYWJsZSIpfWZsaXAoKXtpZih0aGlzLmxvZygiZmxpcCIpLHRoaXMudXNlQXRvbWljcyl7aWYoMSE9PUF0b21pY3MuY29tcGFyZUV4Y2hhbmdlKHRoaXMuYXRvbWljVmlldywwLDEsMCkpdGhyb3cgbmV3IEVycm9yKCJSZWFkIGRhdGEgb3V0IG9mIHN5bmMhIFRoaXMgaXMgZGlzYXN0cm91cyIpO0F0b21pY3Mubm90aWZ5KHRoaXMuYXRvbWljVmlldywwKX1lbHNlIHRoaXMuYXRvbWljVmlld1swXT0wO3RoaXMub2Zmc2V0PTR9ZG9uZSgpe3RoaXMud2FpdFdyaXRlKCJkb25lIik7bGV0IGU9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5nZXRVaW50MzIoMCk9PT10O3JldHVybiBlJiYodGhpcy5sb2coImRvbmUiKSx0aGlzLmZsaXAoKSksZX1wZWVrKHQpe3RoaXMucGVla09mZnNldD10aGlzLm9mZnNldDtsZXQgZT10KCk7cmV0dXJuIHRoaXMub2Zmc2V0PXRoaXMucGVla09mZnNldCx0aGlzLnBlZWtPZmZzZXQ9bnVsbCxlfXN0cmluZyh0KXt0aGlzLndhaXRXcml0ZSgic3RyaW5nIix0KTtsZXQgZT10aGlzLl9pbnQzMigpLGk9ZS8yLHM9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0LGUpLHI9W107Zm9yKGxldCB0PTA7dDxpO3QrKylyLnB1c2gocy5nZXRVaW50MTYoMip0KSk7bGV0IG49U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHIpO3JldHVybiB0aGlzLmxvZygic3RyaW5nIixuKSx0aGlzLm9mZnNldCs9ZSxudWxsPT10aGlzLnBlZWtPZmZzZXQmJnRoaXMuZmxpcCgpLG59X2ludDMyKCl7bGV0IHQ9bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5nZXRJbnQzMigpO3JldHVybiB0aGlzLmxvZygiX2ludDMyIix0KSx0aGlzLm9mZnNldCs9NCx0fWludDMyKCl7dGhpcy53YWl0V3JpdGUoImludDMyIik7bGV0IHQ9dGhpcy5faW50MzIoKTtyZXR1cm4gdGhpcy5sb2coImludDMyIix0KSxudWxsPT10aGlzLnBlZWtPZmZzZXQmJnRoaXMuZmxpcCgpLHR9Ynl0ZXMoKXt0aGlzLndhaXRXcml0ZSgiYnl0ZXMiKTtsZXQgdD10aGlzLl9pbnQzMigpLGU9bmV3IEFycmF5QnVmZmVyKHQpO3JldHVybiBuZXcgVWludDhBcnJheShlKS5zZXQobmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsdGhpcy5vZmZzZXQsdCkpLHRoaXMubG9nKCJieXRlcyIsZSksdGhpcy5vZmZzZXQrPXQsbnVsbD09dGhpcy5wZWVrT2Zmc2V0JiZ0aGlzLmZsaXAoKSxlfX1jbGFzcyBpe2NvbnN0cnVjdG9yKHQse2luaXRpYWxPZmZzZXQ6ZT00LHVzZUF0b21pY3M6aT0hMCxzdHJlYW06cz0hMCxkZWJ1ZzpyLG5hbWU6bn09e30pe3RoaXMuYnVmZmVyPXQsdGhpcy5hdG9taWNWaWV3PW5ldyBJbnQzMkFycmF5KHQpLHRoaXMub2Zmc2V0PWUsdGhpcy51c2VBdG9taWNzPWksdGhpcy5zdHJlYW09cyx0aGlzLmRlYnVnPXIsdGhpcy5uYW1lPW4sdGhpcy51c2VBdG9taWNzP0F0b21pY3Muc3RvcmUodGhpcy5hdG9taWNWaWV3LDAsMCk6dGhpcy5hdG9taWNWaWV3WzBdPTB9bG9nKC4uLnQpe3RoaXMuZGVidWcmJmNvbnNvbGUubG9nKGBbd3JpdGVyOiAke3RoaXMubmFtZX1dYCwuLi50KX13YWl0UmVhZCh0KXtpZih0aGlzLnVzZUF0b21pY3Mpe2lmKHRoaXMubG9nKGB3YWl0aW5nIGZvciAke3R9YCksMCE9PUF0b21pY3MuY29tcGFyZUV4Y2hhbmdlKHRoaXMuYXRvbWljVmlldywwLDAsMSkpdGhyb3cgbmV3IEVycm9yKCJXcm90ZSBzb21ldGhpbmcgaW50byB1bndyaXRhYmxlIGJ1ZmZlciEgVGhpcyBpcyBkaXNhc3Ryb3VzIik7Zm9yKEF0b21pY3Mubm90aWZ5KHRoaXMuYXRvbWljVmlldywwKTsxPT09QXRvbWljcy5sb2FkKHRoaXMuYXRvbWljVmlldywwKTspQXRvbWljcy53YWl0KHRoaXMuYXRvbWljVmlldywwLDEsNTAwKTt0aGlzLmxvZyhgcmVzdW1lZCBmb3IgJHt0fWApfWVsc2UgdGhpcy5hdG9taWNWaWV3WzBdPTE7dGhpcy5vZmZzZXQ9NH1maW5hbGl6ZSgpe3RoaXMubG9nKCJmaW5hbGl6aW5nIiksbmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5zZXRVaW50MzIoMCx0KSx0aGlzLndhaXRSZWFkKCJmaW5hbGl6ZSIpfXN0cmluZyh0KXt0aGlzLmxvZygic3RyaW5nIix0KTtsZXQgZT0yKnQubGVuZ3RoO3RoaXMuX2ludDMyKGUpO2xldCBpPW5ldyBEYXRhVmlldyh0aGlzLmJ1ZmZlcix0aGlzLm9mZnNldCxlKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylpLnNldFVpbnQxNigyKmUsdC5jaGFyQ29kZUF0KGUpKTt0aGlzLm9mZnNldCs9ZSx0aGlzLndhaXRSZWFkKCJzdHJpbmciKX1faW50MzIodCl7bmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLHRoaXMub2Zmc2V0KS5zZXRJbnQzMigwLHQpLHRoaXMub2Zmc2V0Kz00fWludDMyKHQpe3RoaXMubG9nKCJpbnQzMiIsdCksdGhpcy5faW50MzIodCksdGhpcy53YWl0UmVhZCgiaW50MzIiKX1ieXRlcyh0KXt0aGlzLmxvZygiYnl0ZXMiLHQpO2xldCBlPXQuYnl0ZUxlbmd0aDt0aGlzLl9pbnQzMihlKSxuZXcgVWludDhBcnJheSh0aGlzLmJ1ZmZlcix0aGlzLm9mZnNldCkuc2V0KG5ldyBVaW50OEFycmF5KHQpKSx0aGlzLm9mZnNldCs9ZSx0aGlzLndhaXRSZWFkKCJieXRlcyIpfX1sZXQgcz0wLHI9MSxuPTIsbz00O2xldCBhPS9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbD1uZXcgTWFwLGM9bmV3IE1hcDtmdW5jdGlvbiBoKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGUpfWNsYXNzIGZ7Y29uc3RydWN0b3IodCxlPSJyZWFkb25seSIpe3RoaXMuZGI9dCx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sZSksdGhpcy5zdG9yZT10aGlzLnRyYW5zLm9iamVjdFN0b3JlKCJkYXRhIiksdGhpcy5sb2NrVHlwZT0icmVhZG9ubHkiPT09ZT9yOm8sdGhpcy5jYWNoZWRGaXJzdEJsb2NrPW51bGwsdGhpcy5jdXJzb3I9bnVsbCx0aGlzLnByZXZSZWFkcz1udWxsfWFzeW5jIHByZWZldGNoRmlyc3RCbG9jayh0KXtsZXQgZT1hd2FpdCB0aGlzLmdldCgwKTtyZXR1cm4gdGhpcy5jYWNoZWRGaXJzdEJsb2NrPWUsZX1hc3luYyB3YWl0Q29tcGxldGUoKXtyZXR1cm4gbmV3IFByb21pc2UoKCh0LGUpPT57dGhpcy5jb21taXQoKSx0aGlzLmxvY2tUeXBlPT09bz8odGhpcy50cmFucy5vbmNvbXBsZXRlPWU9PnQoKSx0aGlzLnRyYW5zLm9uZXJyb3I9dD0+ZSh0KSk6YT90aGlzLnRyYW5zLm9uY29tcGxldGU9ZT0+dCgpOnQoKX0pKX1jb21taXQoKXt0aGlzLnRyYW5zLmNvbW1pdCYmdGhpcy50cmFucy5jb21taXQoKX1hc3luYyB1cGdyYWRlRXhjbHVzaXZlKCl7dGhpcy5jb21taXQoKSx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sInJlYWR3cml0ZSIpLHRoaXMuc3RvcmU9dGhpcy50cmFucy5vYmplY3RTdG9yZSgiZGF0YSIpLHRoaXMubG9ja1R5cGU9bztsZXQgdD10aGlzLmNhY2hlZEZpcnN0QmxvY2s7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYobnVsbCE9dCYmbnVsbCE9ZSl7bGV0IGk9bmV3IFVpbnQ4QXJyYXkodCkscz1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IHQ9MjQ7dDw0MDt0KyspaWYoaVt0XSE9PXNbdF0pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIG51bGw9PXQmJm51bGw9PWV9KGF3YWl0IHRoaXMucHJlZmV0Y2hGaXJzdEJsb2NrKDUwMCksdCl9ZG93bmdyYWRlU2hhcmVkKCl7dGhpcy5jb21taXQoKSx0aGlzLnRyYW5zPXRoaXMuZGIudHJhbnNhY3Rpb24oWyJkYXRhIl0sInJlYWRvbmx5IiksdGhpcy5zdG9yZT10aGlzLnRyYW5zLm9iamVjdFN0b3JlKCJkYXRhIiksdGhpcy5sb2NrVHlwZT1yfWFzeW5jIGdldCh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLGkpPT57bGV0IHM9dGhpcy5zdG9yZS5nZXQodCk7cy5vbnN1Y2Nlc3M9dD0+e2Uocy5yZXN1bHQpfSxzLm9uZXJyb3I9dD0+aSh0KX0pKX1nZXRSZWFkRGlyZWN0aW9uKCl7bGV0IHQ9dGhpcy5wcmV2UmVhZHM7aWYodCl7aWYodFswXTx0WzFdJiZ0WzFdPHRbMl0mJnRbMl0tdFswXTwxMClyZXR1cm4ibmV4dCI7aWYodFswXT50WzFdJiZ0WzFdPnRbMl0mJnRbMF0tdFsyXTwxMClyZXR1cm4icHJldiJ9cmV0dXJuIG51bGx9cmVhZCh0KXtsZXQgZT0oKT0+bmV3IFByb21pc2UoKCh0LGUpPT57aWYobnVsbCE9dGhpcy5jdXJzb3JQcm9taXNlKXRocm93IG5ldyBFcnJvcigid2FpdEN1cnNvcigpIGNhbGxlZCBidXQgc29tZXRoaW5nIGVsc2UgaXMgYWxyZWFkeSB3YWl0aW5nIik7dGhpcy5jdXJzb3JQcm9taXNlPXtyZXNvbHZlOnQscmVqZWN0OmV9fSkpO2lmKHRoaXMuY3Vyc29yKXtsZXQgaT10aGlzLmN1cnNvcjtyZXR1cm4ibmV4dCI9PT1pLmRpcmVjdGlvbiYmdD5pLmtleSYmdDxpLmtleSsxMDA/KGkuYWR2YW5jZSh0LWkua2V5KSxlKCkpOiJwcmV2Ij09PWkuZGlyZWN0aW9uJiZ0PGkua2V5JiZ0Pmkua2V5LTEwMD8oaS5hZHZhbmNlKGkua2V5LXQpLGUoKSk6KHRoaXMuY3Vyc29yPW51bGwsdGhpcy5yZWFkKHQpKX17bGV0IGk9dGhpcy5nZXRSZWFkRGlyZWN0aW9uKCk7aWYoaSl7bGV0IHM7dGhpcy5wcmV2UmVhZHM9bnVsbCxzPSJwcmV2Ij09PWk/SURCS2V5UmFuZ2UudXBwZXJCb3VuZCh0KTpJREJLZXlSYW5nZS5sb3dlckJvdW5kKHQpO2xldCByPXRoaXMuc3RvcmUub3BlbkN1cnNvcihzLGkpO3JldHVybiByLm9uc3VjY2Vzcz10PT57bGV0IGU9dC50YXJnZXQucmVzdWx0O2lmKHRoaXMuY3Vyc29yPWUsbnVsbD09dGhpcy5jdXJzb3JQcm9taXNlKXRocm93IG5ldyBFcnJvcigiR290IGRhdGEgZnJvbSBjdXJzb3IgYnV0IG5vdGhpbmcgaXMgd2FpdGluZyBpdCIpO3RoaXMuY3Vyc29yUHJvbWlzZS5yZXNvbHZlKGU/ZS52YWx1ZTpudWxsKSx0aGlzLmN1cnNvclByb21pc2U9bnVsbH0sci5vbmVycm9yPXQ9PntpZihjb25zb2xlLmxvZygiQ3Vyc29yIGZhaWx1cmU6Iix0KSxudWxsPT10aGlzLmN1cnNvclByb21pc2UpdGhyb3cgbmV3IEVycm9yKCJHb3QgZGF0YSBmcm9tIGN1cnNvciBidXQgbm90aGluZyBpcyB3YWl0aW5nIGl0Iik7dGhpcy5jdXJzb3JQcm9taXNlLnJlamVjdCh0KSx0aGlzLmN1cnNvclByb21pc2U9bnVsbH0sZSgpfXJldHVybiBudWxsPT10aGlzLnByZXZSZWFkcyYmKHRoaXMucHJldlJlYWRzPVswLDAsMF0pLHRoaXMucHJldlJlYWRzLnB1c2godCksdGhpcy5wcmV2UmVhZHMuc2hpZnQoKSx0aGlzLmdldCh0KX19YXN5bmMgc2V0KHQpe3JldHVybiB0aGlzLnByZXZSZWFkcz1udWxsLG5ldyBQcm9taXNlKCgoZSxpKT0+e2xldCBzPXRoaXMuc3RvcmUucHV0KHQudmFsdWUsdC5rZXkpO3Mub25zdWNjZXNzPXQ9PmUocy5yZXN1bHQpLHMub25lcnJvcj10PT5pKHQpfSkpfWFzeW5jIGJ1bGtTZXQodCl7dGhpcy5wcmV2UmVhZHM9bnVsbDtmb3IobGV0IGUgb2YgdCl0aGlzLnN0b3JlLnB1dChlLnZhbHVlLGUua2V5KX19YXN5bmMgZnVuY3Rpb24gdSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKChlLGkpPT57aWYobC5nZXQodCkpcmV0dXJuIHZvaWQgZShsLmdldCh0KSk7bGV0IHM9Z2xvYmFsVGhpcy5pbmRleGVkREIub3Blbih0LDIpO3Mub25zdWNjZXNzPWk9PntsZXQgcz1pLnRhcmdldC5yZXN1bHQ7cy5vbnZlcnNpb25jaGFuZ2U9KCk9Pntjb25zb2xlLmxvZygiY2xvc2luZyBiZWNhdXNlIHZlcnNpb24gY2hhbmdlZCIpLHMuY2xvc2UoKSxsLmRlbGV0ZSh0KX0scy5vbmNsb3NlPSgpPT57bC5kZWxldGUodCl9LGwuc2V0KHQscyksZShzKX0scy5vbnVwZ3JhZGVuZWVkZWQ9dD0+e2xldCBlPXQudGFyZ2V0LnJlc3VsdDtlLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoImRhdGEiKXx8ZS5jcmVhdGVPYmplY3RTdG9yZSgiZGF0YSIpfSxzLm9uYmxvY2tlZD10PT5jb25zb2xlLmxvZygiYmxvY2tlZCIsdCkscy5vbmVycm9yPXMub25hYm9ydD10PT5pKHQudGFyZ2V0LmVycm9yKX0pKX1hc3luYyBmdW5jdGlvbiB3KHQsZSxpKXtsZXQgcz1jLmdldCh0KTtpZihzKXtpZigicmVhZHdyaXRlIj09PWUmJnMubG9ja1R5cGU9PT1yKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHdyaXRlIGJ1dCBvbmx5IGhhcyBTSEFSRUQgbG9jayIpO3JldHVybiBpKHMpfXM9bmV3IGYoYXdhaXQgdSh0KSxlKSxhd2FpdCBpKHMpLGF3YWl0IHMud2FpdENvbXBsZXRlKCl9YXN5bmMgZnVuY3Rpb24gZCh0LGUsaSl7bGV0IG49ZnVuY3Rpb24odCl7cmV0dXJuIGMuZ2V0KHQpfShlKTtpZihpPT09cil7aWYobnVsbD09bil0aHJvdyBuZXcgRXJyb3IoIlVubG9jayBlcnJvciAoU0hBUkVEKTogbm8gdHJhbnNhY3Rpb24gcnVubmluZyIpO24ubG9ja1R5cGU9PT1vJiZuLmRvd25ncmFkZVNoYXJlZCgpfWVsc2UgaT09PXMmJm4mJihhd2FpdCBuLndhaXRDb21wbGV0ZSgpLGMuZGVsZXRlKGUpKTt0LmludDMyKDApLHQuZmluYWxpemUoKX1hc3luYyBmdW5jdGlvbiBnKHQsZSl7bGV0IGk9dC5zdHJpbmcoKTtzd2l0Y2goaSl7Y2FzZSJwcm9maWxlLXN0YXJ0Ijp0LmRvbmUoKSxlLmludDMyKDApLGUuZmluYWxpemUoKSxnKHQsZSk7YnJlYWs7Y2FzZSJwcm9maWxlLXN0b3AiOnQuZG9uZSgpLGF3YWl0IG5ldyBQcm9taXNlKCh0PT5zZXRUaW1lb3V0KHQsMWUzKSkpLGUuaW50MzIoMCksZS5maW5hbGl6ZSgpLGcodCxlKTticmVhaztjYXNlIndyaXRlQmxvY2tzIjp7bGV0IGk9dC5zdHJpbmcoKSxzPVtdO2Zvcig7IXQuZG9uZSgpOyl7bGV0IGU9dC5pbnQzMigpLGk9dC5ieXRlcygpO3MucHVzaCh7cG9zOmUsZGF0YTppfSl9YXdhaXQgYXN5bmMgZnVuY3Rpb24odCxlLGkpe3JldHVybiB3KGUsInJlYWR3cml0ZSIsKGFzeW5jIGU9Pnthd2FpdCBlLmJ1bGtTZXQoaS5tYXAoKHQ9Pih7a2V5OnQucG9zLHZhbHVlOnQuZGF0YX0pKSkpLHQuaW50MzIoMCksdC5maW5hbGl6ZSgpfSkpfShlLGkscyksZyh0LGUpO2JyZWFrfWNhc2UicmVhZEJsb2NrIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHcoZSwicmVhZG9ubHkiLChhc3luYyBlPT57bGV0IHM9YXdhaXQgZS5yZWFkKGkpO251bGw9PXM/dC5ieXRlcyhuZXcgQXJyYXlCdWZmZXIoMCkpOnQuYnl0ZXMocyksdC5maW5hbGl6ZSgpfSkpfShlLGkscyksZyh0LGUpO2JyZWFrfWNhc2UicmVhZE1ldGEiOntsZXQgaT10LnN0cmluZygpO3QuZG9uZSgpLGF3YWl0IGFzeW5jIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHcoZSwicmVhZG9ubHkiLChhc3luYyBpPT57dHJ5e2NvbnNvbGUubG9nKCJSZWFkaW5nIG1ldGEuLi4iKTtsZXQgcz1hd2FpdCBpLmdldCgtMSk7aWYoY29uc29sZS5sb2coYEdvdCBtZXRhIGZvciAke2V9OmAscyksbnVsbD09cyl0LmludDMyKC0xKSx0LmludDMyKDQwOTYpLHQuZmluYWxpemUoKTtlbHNle2xldCBlPWF3YWl0IGkuZ2V0KDApLHI9NDA5NjtlJiYocj0yNTYqbmV3IFVpbnQxNkFycmF5KGUpWzhdKSx0LmludDMyKHMuc2l6ZSksdC5pbnQzMihyKSx0LmZpbmFsaXplKCl9fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUpLHQuaW50MzIoLTEpLHQuaW50MzIoLTEpLHQuZmluYWxpemUoKX19KSl9KGUsaSksZyh0LGUpO2JyZWFrfWNhc2Uid3JpdGVNZXRhIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHcoZSwicmVhZHdyaXRlIiwoYXN5bmMgZT0+e3RyeXthd2FpdCBlLnNldCh7a2V5Oi0xLHZhbHVlOml9KSx0LmludDMyKDApLHQuZmluYWxpemUoKX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKSx0LmludDMyKC0xKSx0LmZpbmFsaXplKCl9fSkpfShlLGkse3NpemU6c30pLGcodCxlKTticmVha31jYXNlImNsb3NlRmlsZSI6e2xldCBpPXQuc3RyaW5nKCk7dC5kb25lKCksZS5pbnQzMigwKSxlLmZpbmFsaXplKCksZnVuY3Rpb24odCl7bGV0IGU9bC5nZXQodCk7ZSYmKGUuY2xvc2UoKSxsLmRlbGV0ZSh0KSl9KGkpLHNlbGYuY2xvc2UoKTticmVha31jYXNlImxvY2tGaWxlIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBhc3luYyBmdW5jdGlvbih0LGUsaSl7bGV0IHM9Yy5nZXQoZSk7aWYocylpZihpPnMubG9ja1R5cGUpe2gocy5sb2NrVHlwZT09PXIsYFVwcmFkaW5nIGxvY2sgdHlwZSBmcm9tICR7cy5sb2NrVHlwZX0gaXMgaW52YWxpZGApLGgoaT09PW58fGk9PT1vLGBVcGdyYWRpbmcgbG9jayB0eXBlIHRvICR7aX0gaXMgaW52YWxpZGApO2xldCBlPWF3YWl0IHMudXBncmFkZUV4Y2x1c2l2ZSgpO3QuaW50MzIoZT8wOi0xKSx0LmZpbmFsaXplKCl9ZWxzZSBoKHMubG9ja1R5cGU9PT1pLGBEb3duZ3JhZGluZyBsb2NrIHRvICR7aX0gaXMgaW52YWxpZGApLHQuaW50MzIoMCksdC5maW5hbGl6ZSgpO2Vsc2V7aChpPT09cixgTmV3IGxvY2tzIG11c3Qgc3RhcnQgYXMgU0hBUkVEIGluc3RlYWQgb2YgJHtpfWApO2xldCBzPW5ldyBmKGF3YWl0IHUoZSkpO2F3YWl0IHMucHJlZmV0Y2hGaXJzdEJsb2NrKDUwMCksYy5zZXQoZSxzKSx0LmludDMyKDApLHQuZmluYWxpemUoKX19KGUsaSxzKSxnKHQsZSk7YnJlYWt9Y2FzZSJ1bmxvY2tGaWxlIjp7bGV0IGk9dC5zdHJpbmcoKSxzPXQuaW50MzIoKTt0LmRvbmUoKSxhd2FpdCBkKGUsaSxzKSxnKHQsZSk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWV0aG9kOiAiK2kpfX1zZWxmLm9ubWVzc2FnZT10PT57c3dpdGNoKHQuZGF0YS50eXBlKXtjYXNlImluaXQiOntsZXRbcyxyXT10LmRhdGEuYnVmZmVycztnKG5ldyBlKHMse25hbWU6ImFyZ3MiLGRlYnVnOiExfSksbmV3IGkocix7bmFtZToicmVzdWx0cyIsZGVidWc6ITF9KSk7YnJlYWt9fX19KCk7Cgo=",ue=null,pe=!1,function(e){return he=he||ce(ge,ue,pe),new Worker(he,e)}),we=Object.freeze({__proto__:null,default:me});e.getSDK=function(e){var t;return"string"==typeof e.assetsUrl&&(e.assetsUrl={sdkWasm:`${e.assetsUrl}/CRIM.wasm`,sqlWasm:`${e.assetsUrl}/sql-wasm.wasm`}),e.debug=null===(t=e.debug)||void 0===t||t,"undefined"==typeof window?{}:le||(le=new de(e),window.setSqlWasmPath(e.assetsUrl.sqlWasm),le)},Object.defineProperty(e,"__esModule",{value:!0})}));