k2-im 0.1.14 → 0.1.16

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
+ import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';function zs(e){return e===1?"gif":"sticker"}function br(e){if(typeof e!="string"||e.trim()==="")return false;try{let n=new URL(e.trim());return (n.protocol==="https:"||n.protocol==="http:")&&n.username===""&&n.password===""}catch{return false}}function xn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function qs(e){if(e.exprType===2){if(!br(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!xn(e.width)||!xn(e.height))throw new Error("sticker body: LINK \u5C3A\u5BF8\u975E\u6CD5")}let n={url:e.content,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType};return e.fileLength>0n&&(n.size=Number(e.fileLength)),e.describe!==""&&(n.describe=e.describe),e.contentId!==""&&(n.contentId=e.contentId),e.exprePackageName!==""&&(n.packageName=e.exprePackageName),e.thumbData.length>0&&(n.thumbData=e.thumbData),n}function js(e){if(e.exprType===2){if(!br(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!xn(e.width)||e.width===0||!xn(e.height)||e.height===0)throw new Error("sticker body: \u51FA\u7AD9 LINK \u5C3A\u5BF8\u5FC5\u987B\u4E3A\u6B63 uint32")}return {contentType:7,content:e.url,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType,...e.size!==void 0&&e.size>0?{fileLength:BigInt(e.size)}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.contentId!==void 0&&e.contentId!==""?{contentId:e.contentId}:{},...e.packageName!==void 0&&e.packageName!==""?{exprePackageName:e.packageName}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{}}}var Ad,Rd,Lm={text:e=>e.text??"",file:e=>[e.file?.fileName,e.file?.extension].filter(n=>n!==void 0&&n!=="").join(" "),contact:e=>[e.contact?.displayName,e.contact?.username,e.contact?.targetId].filter(n=>n!==void 0&&n!=="").join(" "),image:()=>"",video:()=>"",voice:()=>"",sticker:()=>"",miniProgram:e=>[e.miniProgram?.name,e.miniProgram?.description].filter(n=>n!==void 0&&n!=="").join(" "),game:()=>"",transfer:e=>[e.transfer?.fromUserName,e.transfer?.toUserName,e.transfer?.remark,e.transfer?.coinName].filter(n=>n!==void 0&&n!=="").join(" "),call:()=>"",redPacket:e=>e.redPacket?.coinName?.trim()??"",system:()=>"",unknown:()=>""};function Dr(e){return Lm[e.contentType](e.body)}function Zm(e,n){let t=[],r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let o of e.matchAll(new RegExp(r,"giu"))){let s=o.index;t.push(Object.freeze({start:s,end:s+o[0].length}));}return Object.freeze(t)}function Qm(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(i=>Number.isSafeInteger(i)&&i>=0&&i<e.length).sort((i,a)=>i-a);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],s=o;for(let i of t.slice(1)){if(i===s+1){s=i;continue}r.push(Object.freeze({start:o,end:s+1})),o=i,s=i;}return r.push(Object.freeze({start:o,end:s+1})),Object.freeze(r)}function Jm(){return Ad??=import('pinyin-pro').then(e=>e.match),Ad}function Wm(){return Rd??=import('pinyin-pro').then(e=>e.pinyin),Rd}async function Hm(e){let t=e.trim().charAt(0);if(/^[A-Z]$/i.test(t))return t.toLocaleUpperCase();if(!/\p{Script=Han}/u.test(t))return "#";let s=(await Wm())(t,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(s??"")?s:"#"}async function $s(e){let n=e.trim().toLocaleLowerCase();if(n==="")throw new Error("IM \u6587\u672C\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A");let t=n.replace(/[\s'-]+/g,""),o=/^[a-z]+$/.test(t)?await Jm():void 0;return Object.freeze({keyword:n,match(s,i={}){let a=Zm(s,n);if(a.length>0)return Object.freeze({method:"direct",ranges:a});if(i.pinyin===false||o===void 0||!/\p{Script=Han}/u.test(s))return null;let c=o(s,t);if(c===null)return null;let g=Qm(s,c);return g.length===0?null:Object.freeze({method:"pinyin",ranges:g})}})}var Ym=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function Xm(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...jm(e,n)];if(n.matchers!==void 0)for(let r of n.matchers)t.push(...r(e));return t.length===0?[{kind:"text",text:e}]:(t.sort((r,o)=>r.start-o.start||o.end-r.end),zm(e,t))}function zm(e,n){let t=[],r=0;for(let o of n)o.start<r||o.start<0||o.end<o.start||o.end+1>e.length||(o.start>r&&t.push({kind:"text",text:e.slice(r,o.start)}),t.push(o.segment),r=o.end+1);return r<e.length&&t.push({kind:"text",text:e.slice(r)}),t.length>0?t:[{kind:"text",text:e}]}function qm(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function jm(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?$m(n.atAllTexts??Ym):/\[(\d+)\]/g,o=[],s=r.exec(e);for(;s!==null;){let i=s[1];if(i!==void 0&&!t.atUserIds.includes(i)){s=r.exec(e);continue}let a=i===void 0?{kind:"mention",text:n.atAllDisplay??s[0],atAll:true,isMe:true}:qm(i,n);o.push({start:s.index,end:s.index+s[0].length-1,segment:a}),s=r.exec(e);}return o}function $m(e){let n=e.filter(r=>r!=="");if(n.length===0)return /\[(\d+)\]/g;let t=[...n].sort((r,o)=>o.length-r.length).map(r=>`${ep(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function ep(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var np=new Set(["audio","video"]),tp=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function an(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function ei(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function ni(e,n){return n===void 0?e:{...e,outgoing:n}}function ti(e,n){let t=an(e);if(t===void 0)return 0;if(!Number.isFinite(t)||t<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);let r=Math.round(n==="s"?t*1e3:t);if(!Number.isSafeInteger(r)||r<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);return r}function rp(e){let n=e.trim();if(n==="")throw new Error("call record: content \u4E3A\u7A7A");let t;try{t=JSON.parse(n);}catch{throw new Error("call record: content \u4E0D\u662F JSON")}if(t===null||typeof t!="object"||Array.isArray(t))throw new Error("call record: content \u4E0D\u662F\u5BF9\u8C61");return t}function op(e){if(e===0)return "video";if(e===1)return "audio";throw new Error(`call record: Android \u672C\u5730 callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Ed(e,n){if(e===0)return "audio";if(e===1)return "video";throw new Error(`call record: ${n} \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function sp(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function ip(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function ap(e,n){switch(e){case 0:case 5:return "missed";case 1:return n>0?"completed":"cancelled";case 2:return n>0?"completed":"missed";case 3:case 4:return "rejected";case 6:return "busy";case 7:return "no-permission";case 8:return "interrupted";default:return "unknown"}}function dp(e){let n=an(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=an(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return ni({callKind:Ed(n,"Android \u540C\u6B65 callType"),outcome:ip(t),durationMs:ti(e.callDuration,"ms")},ei(e.isCaller))}function cp(e){let n=an(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=an(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return ni({callKind:op(n),outcome:sp(t),durationMs:ti(e.duration,"ms")},ei(e.isCaller))}function lp(e){let n=an(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=an(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=ti(e.content,"s");return ni({callKind:Ed(n,"iOS type"),outcome:ap(t,r),durationMs:r},ei(e.isCaller))}function Md(e){if(e===null||typeof e!="object")return false;let n=e;return !(!np.has(n.callKind)||!tp.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function hd(e){let n=rp(e.content);if("callDuration"in n)return dp(n);if(an(n.callType)!==void 0&&an(n.callStatus)!==void 0)return cp(n);if(an(n.type)!==void 0&&an(n.status)!==void 0)return lp(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function Td(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function gp(e){switch(e){case 0:return {kind:"individual"};case 1:return {kind:"group"};case 2:return {kind:"channel"};case 3:return {kind:"robot"};default:return {kind:"unknown",rawKind:e}}}function up(e,n){switch(e){case "individual":return 0;case "group":return 1;case "channel":return 2;case "robot":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("contact body: unknown \u540D\u7247\u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawKind/visitCardKey");return n}}function vd(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...gp(e.visitCardKey)}}function bd(e){return {contentType:8,content:"",id:e.targetId,...e.avatar===void 0||e.avatar===""?{}:{icon:e.avatar},name:e.displayName,...e.username===void 0||e.username===""?{}:{username:e.username},gender:e.gender,visitCardKey:up(e.kind,e.rawKind)}}function Dd(e){let n={url:e.content,fileName:e.fielName};return e.extension!==""&&(n.extension=e.extension),e.fileType!==0&&(n.fileType=e.fileType),e.fileLength>0n&&(n.size=Number(e.fileLength)),e.MD5!==""&&(n.md5=e.MD5),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Nd(e){return {contentType:11,content:e.url,...e.fileName!==""?{fielName:e.fileName}:{},...e.extension!==void 0&&e.extension!==""?{extension:e.extension}:{},...e.fileType!==void 0&&e.fileType!==0?{fileType:e.fileType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size))}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function dt(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.value!="number"||!Number.isInteger(n.value)?false:n.gameType==="rock-paper-scissors"?n.value>=1&&n.value<=3:n.gameType==="dice"&&n.value>=1&&n.value<=6}function _d(e){let n=Number(e.gameType),t=Number(e.gameValue);if(n===0){if(t!==1&&t!==2&&t!==3)throw new Error(`game body: \u77F3\u5934\u526A\u5200\u5E03\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"rock-paper-scissors",value:t}}if(n===1){if(t!==1&&t!==2&&t!==3&&t!==4&&t!==5&&t!==6)throw new Error(`game body: \u9AB0\u5B50\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"dice",value:t}}throw new Error(`game body: gameType \u975E\u6CD5\uFF08${String(e.gameType)}\uFF09`)}function Gd(e){let n=e;if(!dt(e))throw new Error(`game body: \u51FA\u7AD9\u7ED3\u679C\u975E\u6CD5\uFF08${String(n.gameType)}/${String(n.value)}\uFF09`);return {contentType:27,content:"",gameType:e.gameType==="dice"?1n:0n,gameValue:BigInt(e.value)}}function Ud(e){let n={url:e.content,width:e.width,height:e.height};return e.thumbData.length>0&&(n.thumbData=e.thumbData),e.MD5!==""&&(n.md5=e.MD5),e.imageType!==0&&(n.imageType=e.imageType),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function kd(e){return {contentType:2,content:e.url,width:e.width,height:e.height,...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.imageType!==void 0&&e.imageType!==0?{imageType:e.imageType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function dn(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function mp(e){switch(e){case 0:return {showType:"default"};case 1:return {showType:"board-game"};case 2:return {showType:"board-game-link"};default:return {showType:"unknown",rawShowType:e}}}function pp(e,n){switch(e){case "default":return 0;case "board-game":return 1;case "board-game-link":return 2;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=2)throw new Error("miniProgram body: unknown showType \u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawShowType");return n}}function On(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.appId!="string"||n.appId.trim()===""||typeof n.isDynamicHost!="boolean"?false:n.showType==="unknown"?typeof n.rawShowType=="number"&&Number.isInteger(n.rawShowType)&&n.rawShowType>2&&n.rawShowType<=4294967295:n.showType==="default"||n.showType==="board-game"||n.showType==="board-game-link"}function ri(e){return {appId:e.miniProgramAppId,...dn(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...dn(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...dn(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...dn(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...dn(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...dn(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...mp(e.miniProgramShowType),...dn(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...dn(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...dn(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...dn(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...dn(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()}}}function oi(e){let n=e;if(!On(e))throw new Error(`miniProgram body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.appId)}/${String(n.showType)}\uFF09`);return {contentType:22,content:"",miniProgramAppId:e.appId,...e.host===void 0?{}:{miniProgramHost:e.host},...e.developerId===void 0?{}:{miniProgramDeveloperId:e.developerId},...e.name===void 0?{}:{miniProgramName:e.name},...e.icon===void 0?{}:{miniProgramIcon:e.icon},...e.productId===void 0?{}:{miniProgramProductId:e.productId},miniProgramIsDynamicHost:e.isDynamicHost?1:0,...e.suffixAddress===void 0?{}:{miniProgramSuffixAddress:e.suffixAddress},miniProgramShowType:pp(e.showType,e.rawShowType),...e.description===void 0?{}:{miniProgramDescription:e.description},...e.currencySource===void 0?{}:{currencySource:e.currencySource},...e.currencyType===void 0?{}:{miniProgramCurrencyType:e.currencyType},...e.gamePath===void 0?{}:{miniProgramGamePath:e.gamePath},...e.subGameName===void 0?{}:{miniProgramSubGameName:e.subGameName}}}function ct(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function _r(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function Nr(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`red packet body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function xd(e){return e===1||e===2||e===3||e===4}function fp(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!xd(n.packetType)||n.amount!==void 0&&(typeof n.amount!="string"||n.amount.trim()==="")||n.count!==void 0&&(typeof n.count!="string"||!/^\d+$/.test(n.count.trim()))||n.thunderRate!==void 0&&typeof n.thunderRate!="string"||n.thunderNumber!==void 0&&(typeof n.thunderNumber!="string"||!/^\d+$/.test(n.thunderNumber.trim()))||n.fromUid!==void 0&&(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim()))||n.toUid!==void 0&&(typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim()))||n.currencyType!==void 0&&(typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0)||n.coinName!==void 0&&typeof n.coinName!="string"||n.showAmount!==void 0&&typeof n.showAmount!="boolean"||n.isThunder!==void 0&&typeof n.isThunder!="boolean")}function Bd(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!xd(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:_r(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:_r(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...ct(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...ct(e.redPacketThunderRate)===void 0?{}:{thunderRate:e.redPacketThunderRate.trim()},...e.redPacketIsThunder?{isThunder:true}:{},...e.redPacketThunderNumber===0n?{}:{thunderNumber:e.redPacketThunderNumber.toString()},...t===void 0?{}:{fromUid:t},...r===void 0?{}:{toUid:r},...e.currencyType===0?{}:{currencyType:e.currencyType},...ct(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function Fd(e){let n=e;if(!fp(e))throw new Error(`red packet body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.packetId)}/${String(n.packetType)}\uFF09`);return {contentType:25,content:"",radPacketId:e.packetId.trim(),radPacketType:e.packetType,...e.amount===void 0?{}:{radPacketAmount:e.amount.trim()},...e.count===void 0?{}:{redPacketCount:Nr(e.count,"count")},...e.showAmount===true?{redPacketIsShowAmount:true}:{},...e.thunderRate===void 0?{}:{redPacketThunderRate:e.thunderRate},...e.isThunder===true?{redPacketIsThunder:true}:{},...e.thunderNumber===void 0?{}:{redPacketThunderNumber:Nr(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:Nr(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:Nr(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function Vd(e){let n=_r(e.fromUid,"fromUid"),t=_r(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=ct(e.radPacketId),s=ct(e.radPacketAmount);return {eventType:r?"red_packet_claimed_thunder":"red_packet_claimed",operatorId:t,targetUserIds:[n],payload:{...o===void 0?{}:{packetId:o},...s===void 0?{}:{amount:s},isThunder:r}}}function si(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function Pd(e,n){if(!si(e.eventType))return e;let t=e.operatorId??"",r=e.targetUserIds?.[0]??"";if(n!==void 0&&n!==""&&(n===t||n===r)){if(e.timelineVisibility!=="hidden")return e;let{timelineVisibility:s,...i}=e;return i}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}function Kn(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Gr(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function Ur(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`transfer body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function wd(e){return e===0||e===1||e===2||e===3}function Od(e){return e===1||e===2}function kr(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim())||typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim())||typeof n.amount!="string"||!/^\d+$/.test(n.amount.trim())||typeof n.serialNumber!="string"||!/^\d+$/.test(n.serialNumber.trim())||typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0||typeof n.transferTime!="number"||!Number.isSafeInteger(n.transferTime)||n.transferTime<0||!wd(n.status)||!Od(n.sessionType))}function ii(e){let n=e.status;if(!wd(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!Od(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:Gr(e.fromUid,"fromUid"),toUid:Gr(e.toUid,"toUid"),amount:Gr(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:Gr(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...Kn(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Kn(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Kn(e.remark)===void 0?{}:{remark:e.remark.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...Kn(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...Kn(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...Kn(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function ai(e){let n=e;if(!kr(e))throw new Error(`transfer body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.status)}\uFF09`);return {contentType:16,content:"",fromUid:Ur(e.fromUid,"fromUid"),toUid:Ur(e.toUid,"toUid"),amount:Ur(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:Ur(e.serialNumber,"serialNumber"),sessionType:e.sessionType,transferTime:BigInt(e.transferTime),...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.remark===void 0?{}:{remark:e.remark},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.transferMsgId===void 0?{}:{msgId:e.transferMsgId},...e.coinName===void 0?{}:{coinName:e.coinName},...e.coinIcon===void 0?{}:{coinIcon:e.coinIcon}}}function Kd(e){let n={url:e.content,width:e.width,height:e.height},t=Ip(e);return t!==void 0&&(n.duration=t),e.thumbData.length>0&&(n.thumbData=e.thumbData),e.describe!==""&&(n.describe=e.describe),e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Ip(e){let n=e.duration;return n<=0?void 0:e.width===0&&e.height===0&&n%1e3===0&&n/1e3<=300?n/1e3:n}function Ld(e){return {contentType:3,content:e.url,width:e.width,height:e.height,...e.duration!==void 0&&e.duration>0?{duration:Math.max(1,Math.round(e.duration))}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Zd(e){let n={url:e.content,durationMs:e.duration};return e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Qd(e){return {contentType:4,content:e.url,duration:Math.max(0,Math.round(e.durationMs)),...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}var Yd=1,Xd=[{wireContentType:2,domainContentType:"image",parse:e=>({image:Ud(e)}),build:e=>e.image!==void 0?kd(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Kd(e)}),build:e=>e.video!==void 0?Ld(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:Zd(e)}),build:e=>e.voice!==void 0?Qd(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:Dd(e)}),build:e=>e.file!==void 0?Nd(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:qs(e)}),build:e=>e.sticker!==void 0?js(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:vd(e)}),build:e=>e.contact!==void 0?bd(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:ri(e)}),build:e=>e.miniProgram!==void 0?oi(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:_d(e)}),build:e=>e.game!==void 0?Gd(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:ii(e)}),build:e=>e.transfer!==void 0?ai(e.transfer):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:hd(e)}),build:e=>e.call!==void 0?Td(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:Bd(e)}),build:e=>e.redPacket!==void 0?Fd(e.redPacket):void 0}],vp=[{contentType:"text",read:e=>e.text},{contentType:"system",read:e=>e.system},{contentType:"image",read:e=>e.image},{contentType:"video",read:e=>e.video},{contentType:"voice",read:e=>e.voice},{contentType:"file",read:e=>e.file},{contentType:"sticker",read:e=>e.sticker},{contentType:"contact",read:e=>e.contact},{contentType:"miniProgram",read:e=>e.miniProgram},{contentType:"game",read:e=>e.game},{contentType:"transfer",read:e=>e.transfer},{contentType:"call",read:e=>e.call},{contentType:"redPacket",read:e=>e.redPacket},{contentType:"unknown",read:e=>e.unknown}];function hn(e,n){if(e.contentType===Yd)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:Pd(Vd(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=Xd.find(r=>r.wireContentType===e.contentType);if(t===void 0)return {contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}}};try{return {contentType:t.domainContentType,body:t.parse(e)}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}}function di(e,n,t="outgoing message"){let r=vp.filter(o=>o.read(n)!==void 0).map(o=>o.contentType);if(r.length!==1||r[0]!==e){let o=r.length===0?"empty":r.join(",");throw new Error(`${t}: contentType/body \u4E0D\u4E00\u81F4\uFF08contentType=${e}, body=${o}\uFF09`)}cn(n);}function cn(e){if(e.unknown!==void 0)throw new Error("unknown message body \u4E0D\u53EF\u7F16\u7801\u4E3A\u51FA\u7AD9\u6D88\u606F");for(let n of Xd){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:Yd,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var ci=/^[0-9a-f]{32}$/;function gn(e){return ci.test(e.replace(/-/g,"").toLowerCase())}function en(){return globalThis.crypto.randomUUID()}function fe(e){let n=e.replace(/-/g,"").toLowerCase();if(!gn(e))throw new Error(`toWireMsgId: \u975E\u6CD5\u6D88\u606F id\u300C${e}\u300D\uFF08\u53BB\u6A2A\u7EBF\u540E\u975E 32 \u4F4D hex\uFF09\uFF0C\u62D2\u7EDD\u4F5C\u4E3A\u51FA\u7AD9 sMsgId`);return n}function Ye(e){let n=e.replace(/-/g,"").toLowerCase();return ci.test(n)?n:e}function se(e){let n=e.toLowerCase();return ci.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function ye(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function Ke(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var li=9,bp=20;function lt(e,n){let t=BigInt(e.conversationId),r=BigInt(n.selfId);if(t<=0n)throw new Error("channel outgoing: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(r<=0n)throw new Error("channel outgoing: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Number.isFinite(n.createdAt)||n.createdAt<0)throw new Error("channel outgoing: createdAt \u975E\u6CD5");let o={sRadioId:t,sFromId:r,sMsgId:fe(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:li,encrypt:2,bMessage:cn(e.body)};return e.mention!==void 0&&Object.assign(o,Dp(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=Ye(e.refMessageId)),o}function Dp(e){let n={nNotifyCount:e.atAll?-1:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(BigInt));let t=e.ranges!==void 0&&e.ranges.length>0,r=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;return (t||r)&&(n.extend=JSON.stringify({sendType:0,...r?{atUsersName:e.atUsersName}:{},...t?{atRange:e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))}:{}})),n}function un(e,n,t){return ui({senderId:e.sFromId,channelId:e.sRadioId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sId,sequence:e.nIncrId,notifyCount:e.nNotifyCount,notifyUsers:e.sNotifyUsers.map(String),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==""&&e.isEdit!=="0",oldMessageId:e.oldMsgId},n,t)}function gi(e,n,t){return ui(qd(e),n,t)}function zd(e,n,t){return ui(qd(e),void 0,t,n)}function qd(e){return {senderId:e.sFromId,channelId:e.sChnnId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sIndex,sequence:e.sIncrId,notifyCount:e.nNotifyCount,notifyUsers:_p(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function ui(e,n,t,r){Np(e,t.edited===true&&e.oldMessageId.trim()!=="");let o=se(e.messageId),s=e.senderId.toString(),i=e.channelId.toString(),a=Number(e.msgTime),c=a>0?a:t.receivedAt??Date.now(),g=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:hn(n,t.selfId),p=Gp(e,g.body.text??""),y=e.sequence.toString(),h={channelMessageType:li,channelSequence:y,historyCursor:e.historyCursor};e.oldMessageId!==""&&(h.previousMessageId=se(e.oldMessageId));let f={id:o,conversationId:i,conversationType:"channel",senderId:s,contentType:g.contentType,body:g.body,createdAt:c,sortKey:ye(c,`${y.padStart(bp,"0")}:${o}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:h};return t.decryptFailed===true&&(f.encryption.decryptFailed=true),a>0&&(f.serverTime=a),e.parentMessageId!==""&&(f.refMessageId=se(e.parentMessageId)),(e.edited||t.edited===true)&&(f.edited=true),p!==void 0&&(f.mention=p),t.keepRaw&&(f.raw=Vp(e,n,t.cmdId,r)),f}function Np(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.senderId<=0n)throw new Error("channel message: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel message: message id \u7F3A\u5931");if(e.historyCursor.trim()===""&&!n)throw new Error("channel message: history cursor \u7F3A\u5931")}function _p(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(xr)}catch{}return n.split(/[\s,;]+/).filter(xr)}function Gp(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=kp(e.notifyUsers.filter(xr),Up(n)),{ranges:o,atUsersName:s}=xp(e.extend);if(!(!t&&r.length===0&&o===void 0&&s===void 0))return {atAll:t,atUserIds:r,...o===void 0?{}:{ranges:o},...s===void 0?{}:{atUsersName:s}}}function Up(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function kp(e,n){return [...new Set([...e,...n])]}function xr(e){return /^[1-9]\d*$/.test(e)}function xp(e){if(e==="")return {};try{let n=JSON.parse(e),t=Bp(n.atRange),r=Fp(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function Bp(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t;(typeof r.user_id=="string"||typeof r.user_id=="number")&&typeof r.start=="number"&&Number.isInteger(r.start)&&r.start>=0&&typeof r.end=="number"&&Number.isInteger(r.end)&&r.end>=r.start&&n.push({userId:String(r.user_id),start:r.start,end:r.end});}return n.length===0?void 0:n}function Fp(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))xr(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function Vp(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId.toString(),sToId:e.channelId.toString(),msgType:li,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,parentMsgId:e.parentMessageId||void 0},...n===void 0?{}:{content:{contentType:n.contentType,text:n.content||void 0}},...r===void 0?{}:{contentDecodeFailure:{codec:"BMessage",byteLength:r}}}}var mn=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var ze=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),jd=messageDesc(ze,0);var $d=messageDesc(ze,2);var ec=messageDesc(ze,5);var nc=messageDesc(ze,7),tc=messageDesc(ze,8);var rc=messageDesc(ze,10);messageDesc(ze,11);messageDesc(ze,12);messageDesc(ze,13);messageDesc(ze,15);var dc=messageDesc(ze,16),cc=messageDesc(ze,17);messageDesc(ze,18);messageDesc(ze,20);var rn=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(rn,0);messageDesc(rn,1);var pc=messageDesc(rn,2),fc=messageDesc(rn,3),Ic=messageDesc(rn,4),yc=messageDesc(rn,5);var Cc=messageDesc(rn,11),Sc=messageDesc(rn,12);var Ac=messageDesc(rn,17),Rc=messageDesc(rn,18),Ec=messageDesc(rn,19),Mc=messageDesc(rn,20);var Tc=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi9A8KCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCWIGcHJvdG8z");var vc=messageDesc(Tc,1),bc=messageDesc(Tc,2);var vn=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[mn]),Bn=messageDesc(vn,0),Ln=messageDesc(vn,1),gt=messageDesc(vn,2),ut=messageDesc(vn,3),mi=messageDesc(vn,4),pi=messageDesc(vn,5),fi=messageDesc(vn,6),Dc=messageDesc(vn,7);var je=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[mn]),mt=messageDesc(je,0),Br=messageDesc(je,1),Nc=messageDesc(je,2);var _c=messageDesc(je,5),Gc=messageDesc(je,6),Uc=messageDesc(je,7),kc=messageDesc(je,8),xc=messageDesc(je,9),Bc=messageDesc(je,10),Fc=messageDesc(je,11);var Vc=messageDesc(je,14),Ii=messageDesc(je,15),yi=messageDesc(je,16),Pc=messageDesc(je,17);var Oc=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[mn]),Kc=messageDesc(Oc,0),Lc=messageDesc(Oc,1);var _e=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[mn]),Zn=messageDesc(_e,0),Ci=messageDesc(_e,1),Zc=messageDesc(_e,2),Si=messageDesc(_e,3),Qc=messageDesc(_e,4);var Ai=messageDesc(_e,7);var Jc=messageDesc(_e,9),Wc=messageDesc(_e,10),Ri=messageDesc(_e,11),Ei=messageDesc(_e,12),Hc=messageDesc(_e,13);var Yc=messageDesc(_e,15),Xc=messageDesc(_e,16),zc=messageDesc(_e,17);var qc=messageDesc(_e,26);var jc=messageDesc(_e,29);var $c=messageDesc(_e,33);var Mi=messageDesc(_e,48),Fr=messageDesc(_e,49);var el=messageDesc(_e,51),nl=messageDesc(_e,52);var tl=messageDesc(_e,59),rl=messageDesc(_e,60);var Ue=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[mn]),hi=messageDesc(Ue,0),ol=messageDesc(Ue,1),sl=messageDesc(Ue,2),Ti=messageDesc(Ue,3),il=messageDesc(Ue,4),al=messageDesc(Ue,5),vi=messageDesc(Ue,6);var dl=messageDesc(Ue,8),bi=messageDesc(Ue,9),cl=messageDesc(Ue,10),ll=messageDesc(Ue,11),Di=messageDesc(Ue,12),gl=messageDesc(Ue,13),ul=messageDesc(Ue,14),Ni=messageDesc(Ue,15),In=messageDesc(Ue,16),yn=messageDesc(Ue,17),_i=messageDesc(Ue,18),Gi=messageDesc(Ue,19),pt=messageDesc(Ue,20),Ui=messageDesc(Ue,21),ki=messageDesc(Ue,22),xi=messageDesc(Ue,23);var Pr=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var ml=messageDesc(Pr,1),pl=messageDesc(Pr,2);var fl=messageDesc(Pr,4),Il=messageDesc(Pr,5);function B(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function Ae(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function Al(e=[]){let n=new Map,t=r=>{n.set(r.command,r);};for(let r of e)t(r);return {register:t,get:r=>n.get(r),has:r=>n.has(r)}}var ft=B(257,Kc),wr=B(258,Lc),bn=B(4097,Zn),Or=B(4098,Ci),Kr=B(4100,Zn),It=B(4099,Si),Lr=B(4650,Zn),Zr=B(4651,Zn),Qr=B(4652,Ci),Jr=B(4653,Zn),Wr=B(4631,el),yt=B(4632,nl),Hr=B(4627,qc),Ct=B(4628,jc),Bi=Ae($c),Yr=B(4356,Hc),St=B(4355,Yc),Xr=B(4360,Xc),At=B(4359,zc),Rt=B(4107,Ri),zr=B(4108,Ei),qr=B(4110,Ri),Et=B(4109,Ei),Mt=B(8197,kc),jr=B(8198,xc),$r=B(4644,tl),eo=B(4646,rl),no=B(8976,Pc),to=B(8977,Br),ro=B(4102,Si),ht=B(4101,Qc),Tt=B(4103,Ai),oo=B(4104,Jc),so=B(4106,Ai),vt=B(4105,Wc),Fn=B(4117,Mi),io=B(4118,Fr),ao=B(4119,Mi),pn=B(8193,mt),co=B(8194,Br),lo=B(8196,mt),bt=B(8195,Nc),Dt=B(8978,mt),go=B(8979,Br),uo=B(8980,mt),Nt=B(8967,yi),mo=B(8968,Fr),po=B(8969,yi),Qn=B(8708,Fc),_t=B(8707,Gc),fo=B(8452,Bc),Gt=B(8451,_c),Io=B(8964,Vc),Ut=B(8963,Ii),yo=B(8966,Ii),kt=B(8965,Uc),Cn=B(12289,Bn),Co=B(12290,Ln),xt=B(12291,gt),So=B(12292,Bn),Rl=B(12816,Bn),Bt=B(12817,Bn),Ao=B(12818,Ln),Ro=B(12819,Bn),Ft=B(12293,ut),Eo=B(12294,Ln),Mo=B(12295,gt),ho=B(12296,ut),Vt=B(12297,ut),To=B(12298,Ln),vo=B(12299,gt),bo=B(12300,ut),Pt=B(12547,pi),Do=B(12548,mi),El=B(12551,pi),Ml=B(12552,mi),wt=B(12803,gt),No=B(12804,Bn),Ot=B(12805,fi),_o=B(12806,Fr),Go=B(12807,fi),Uo=B(12808,Dc),ko=B(12809,Ln),Kt=B(16385,hi),xo=B(16386,ol),Lt=B(16387,sl),Bo=B(16388,hi),Zt=B(16389,Ti),Fo=B(16390,il),Qt=B(16391,al),Vo=B(16392,Ti),Jt=B(16395,dl),Po=B(16396,vi),Jn=B(16397,bi),wo=B(16398,cl),Wt=B(16399,ll),hl=B(16400,bi),Ht=B(16401,Di),Oo=B(16402,gl),Yt=B(16403,ul),Ko=B(16404,Di),Xt=B(16641,Ni),Lo=B(16642,In),zt=B(16643,yn),Zo=B(16644,Ni),qt=B(16645,_i),Qo=B(16646,In),Tl=B(16647,yn),Jo=B(16648,_i),jt=B(16649,Gi),Wo=B(16650,In),vl=B(16651,yn),Ho=B(16652,Gi),$t=B(16653,pt),Yo=B(16654,In),bl=B(16655,yn),Xo=B(16656,pt),er=B(16657,pt),zo=B(16658,In),Dl=B(16659,yn),qo=B(16660,pt),nr=B(16661,Ui),jo=B(16662,In),Nl=B(16663,yn),$o=B(16664,Ui),_l=B(16665,ki),Gl=B(16666,In),Ul=B(16667,yn),es=B(16668,ki),tr=B(16669,xi),ns=B(16670,In),kl=B(16671,yn),ts=B(16672,xi),ae=Ae(bc),he=Ae(vc),Wn=Ae(Zc),rs=Ae(ml),Fi=Ae(pl),os=Ae(fl),Vi=Ae(Il),ss=Ae(Ic),Pi=Ae(yc),is=Ae(Cc),wi=Ae(Sc),as=Ae(Ac),Oi=Ae(Rc),ds=Ae(Ec),Ki=Ae(Mc),cs=Ae(pc),Li=Ae(fc),ls=Ae(jd),Zi=Ae($d),gs=Ae(ec),us=Ae(nc),qp=Ae(tc),jp=Ae(rc),ms=Ae(dc),Qi=Ae(cc);Al([ft,wr,bn,Or,Kr,It,Lr,Zr,Qr,Jr,Wr,yt,Hr,Ct,Yr,St,Xr,At,Rt,zr,qr,Et,eo,ro,ht,Tt,oo,so,vt,Fn,io,ao,pn,co,Mt,jr,to,lo,bt,Dt,go,uo,Nt,mo,po,Qn,_t,fo,Gt,Io,Ut,yo,kt,Cn,Co,xt,So,Rl,Bt,Ao,Ro,Ft,Eo,Mo,ho,Vt,To,vo,bo,Pt,Do,El,Ml,wt,No,Ot,_o,Go,ko,Kt,xo,Lt,Bo,Zt,Fo,Qt,Vo,Jt,Po,Jn,wo,Wt,hl,Ht,Oo,Yt,Ko,Xt,Lo,zt,Zo,qt,Qo,Tl,Jo,jt,Wo,vl,Ho,$t,Yo,bl,Xo,er,zo,Dl,qo,nr,jo,Nl,$o,_l,Gl,Ul,es,tr,ns,kl,ts]);var $e=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function Fl(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new $e(n,"board pinned message Base64 \u975E\u6CD5");try{let t=globalThis.atob(e);if(globalThis.btoa(t)!==e)throw new Error("Base64 \u975E\u89C4\u8303\u7F16\u7801");return Uint8Array.from(t,r=>r.charCodeAt(0))}catch(t){throw new $e(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function xl(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function af(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function df(e){return e===void 0||Number.isInteger(e)}function rr(e){return e===void 0||e===0||e===1}function Bl(e){return e===void 0||typeof e=="string"}function Vl(e){if(!af(e)||e.convType!==2&&e.convType!==3||typeof e.msgContent!="string"||e.msgContent===""||typeof e.msgId!="string"||e.msgId===""||typeof e.msgTime!="string"||!/^\d+$/.test(e.msgTime)||!Number.isInteger(e.msgType)||Number(e.msgType)<=0||typeof e.receiverId!="string"||e.receiverId===""||typeof e.senderId!="string"||e.senderId===""||!rr(e.isBrowse)||!rr(e.isCancel)||!rr(e.isEdit)||!rr(e.isNotifyAll)||!Bl(e.notifyUsersName)||!Bl(e.parentMsgId)||!rr(e.readStatus)||!df(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new $e("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function cf(e){let n;try{if(n=Fl(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=ae.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof $e?t:new $e("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function or(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(Fl(e,"INVALID_BASE64"));}catch(r){throw r instanceof $e?r:new $e("INVALID_BASE64","board pinned message \u5916\u5C42 UTF-8/Base64 \u975E\u6CD5",{cause:r})}let t;try{t=JSON.parse(n);}catch(r){throw new $e("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return Vl(t),{envelope:t,message:cf(t.msgContent)}}function sr(e){let n=ae.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new $e("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:xl(n)};return Vl(t),xl(new TextEncoder().encode(JSON.stringify(t)))}var lf=new Uint8Array(0);function ps(e,n,t){let r=2**n-1;if(!Number.isInteger(e)||e<0||e>r)throw new Error(`\u5E27\u5B57\u6BB5 ${t} \u8D8A\u754C\uFF1A${e}\uFF0C\u5E94\u4E3A [0, ${r}] \u5185\u6574\u6570`)}function Y(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;ps(e.command,16,"command"),ps(n,8,"flags"),ps(t,8,"appId"),ps(r,32,"msgSeq");let o=e.body??lf,s=o.length;if(12+s>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${s}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let i=new Uint8Array(16+s),a=new DataView(i.buffer);return a.setUint32(0,12+s,false),a.setUint8(4,n),a.setUint8(5,t),a.setUint16(6,e.command,false),a.setUint32(8,s,false),a.setUint32(12,r,false),i.set(o,16),i}function Ji(e){let n=[],t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0;for(;e.length-r>=16;){let o=t.getUint32(r,false);if(o<12||o>1048576)throw new Error(`\u5E27\u957F\u5EA6\u975E\u6CD5\uFF1AMsgLength=${o}\uFF0C\u5E94\u6EE1\u8DB3 12 \u2264 MsgLength \u2264 1048576`);let s=4+o;if(e.length-r<s)break;let i=t.getUint32(r+8,false);if(o!==12+i)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${i} \u4E0D\u6EE1\u8DB3 MsgLength=12+BodyLen`);let a={msgLength:o,flags:t.getUint8(r+4),appId:t.getUint8(r+5),command:t.getUint16(r+6,false),bodyLen:i,msgSeq:t.getUint32(r+12,false)},c=e.subarray(r+16,r+s);n.push({header:a,body:c}),r+=s;}return {frames:n,remainder:e.subarray(r)}}var gf=5;function Dn(e,n,t){let r=e.sFromId.toString(),o=Number(e.msgTime),s=se(e.sMsgId),i=hn(n,t.selfId),a=i.contentType==="text",c=o>0?o:t.receivedAt??Date.now(),g={id:s,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:i.contentType,body:i.body,createdAt:c,sortKey:ye(c,s),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(g.encryption.decryptFailed=true),o>0&&(g.serverTime=o),e.parentMsgId&&(g.refMessageId=se(e.parentMsgId)),t.edited===true&&(g.edited=true);let p=uf(e,a?n.content:"");return p!==void 0&&(g.mention=p),t.keepRaw&&(g.raw=If(e,n,t.cmdId)),g}function Hn(e,n){let t=Pl(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=wl(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function uf(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=wl(e.sNotifyUsers.map(a=>a.toString()),Pl(n)),{ranges:o,atUsersName:s}=mf(e.extend);if(!t&&r.length===0&&o===void 0&&s===void 0)return;let i={atAll:t,atUserIds:r};return o!==void 0&&(i.ranges=o),s!==void 0&&(i.atUsersName=s),i}function Pl(e){if(e==="")return [];let n=[];for(let t of e.matchAll(/\[(\d{17,20})\]/g))t[1]!==void 0&&n.push(t[1]);return n}function wl(e,n){if(n.length===0)return e;let t=new Set(e),r=[...e];for(let o of n)t.has(o)||(t.add(o),r.push(o));return r}function mf(e){if(e==="")return {};try{let n=JSON.parse(e),t=pf(n.atRange),r=ff(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function pf(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t,{user_id:o,start:s,end:i}=r;(typeof o=="string"||typeof o=="number")&&typeof s=="number"&&Number.isInteger(s)&&s>=0&&typeof i=="number"&&Number.isInteger(i)&&i>=s&&n.push({userId:String(o),start:s,end:i});}return n.length>0?n:void 0}function ff(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length>0?n:void 0}function If(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sGrpId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function ir(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:fe(e.id),msgType:gf,encrypt:e.encryption.encrypted?1:0,bMessage:cn(e.body)};return e.mention!==void 0&&Object.assign(t,yf(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=Ye(e.refMessageId)),t}function yf(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=Cf(e);return t!==void 0&&(n.extend=t),n}function Cf(e){let n=e.ranges!==void 0&&e.ranges.length>0,t=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;if(!n&&!t)return;let r={sendType:0};return t&&(r.atUsersName=e.atUsersName),n&&(r.atRange=e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))),JSON.stringify(r)}var Le=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function ar(e){return e instanceof $e||e instanceof Le?e.code:"INVALID_SNAPSHOT"}function fs(e,n){let t=or(e),{envelope:r}=t;if(r.convType!==2)throw new Le("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new Le("CONVERSATION_MISMATCH","board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new Le("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let s;try{let a=pn.create({sGrpId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgType:r.msgType,msgTime:BigInt(r.msgTime),parentMsgId:r.parentMsgId??"",encrypt:0});s=Dn(a,t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new Le("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:a})}let i=s.contentType!=="unknown"?{state:"ready",message:s}:{state:"partial",senderId:s.senderId,createdAt:s.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"group",messageId:s.id,preview:i,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function Sf(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new Le("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684\u666E\u901A\u7FA4\u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new Le("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=ae.create(cn(e.body)),r=sr({envelope:{convType:2,msgContent:"",msgId:fe(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:"0",notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":Ye(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:fs(r,{conversationId:e.conversationId})}}function Is(e,n){let t=or(e),{envelope:r}=t;if(r.convType!==3)throw new Le("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new Le("CONVERSATION_MISMATCH","channel board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new Le("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let s;try{let a=r.nIncrId??"0";s=un(Cn.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,sId:a,nIncrId:BigInt(a),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new Le("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:a})}let i=s.contentType!=="unknown"?{state:"ready",message:s}:{state:"partial",senderId:s.senderId,createdAt:s.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"channel",messageId:s.id,preview:i,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function Af(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new Le("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684 CHANNEL \u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new Le("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=ae.create(cn(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",s=sr({envelope:{convType:3,msgContent:"",msgId:fe(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:o,notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":Ye(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:s,pinnedMessage:Is(s,{conversationId:e.conversationId})}}var Rf=new Set(["group_info_changed","group_member_renamed","channel_name_changed","channel_avatar_changed","channel_all_muted","channel_all_unmuted","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function Ef(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Nn(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||si(n.eventType)||!Ef(e,n.eventType))return e;let t=Rf.has(n.eventType);if(t===(n.timelineVisibility==="hidden"))return e;let r={...n};return t?r.timelineVisibility="hidden":delete r.timelineVisibility,{...e,body:{...e.body,system:r}}}var Mf={1:"channel_name_changed",2:"channel_avatar_changed",3:"channel_announcement_changed",4:"channel_member_left",5:"channel_member_removed",6:"channel_member_joined",7:"channel_member_invited",8:"channel_owner_transferred",9:"channel_admin_added",10:"channel_admin_removed",11:"channel_dismissed",12:"channel_all_muted",13:"channel_all_unmuted",14:"channel_created",15:"channel_private_chat_disabled",16:"channel_private_chat_enabled",19:"channel_member_renamed",20:"channel_member_muted",21:"channel_member_unmuted",23:"channel_message_pinned",24:"channel_message_unpinned"},Ol=new Set([17,18,22,23,24]),hf=20;function ys(e){let n=e.body.system;if(e.conversationType!=="channel"||e.contentType!=="system"||n===void 0)return e;let t=n.eventType==="channel_unknown"&&n.rawNotifyType!==void 0?Hi(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&Ol.has(n.rawNotifyType)&&n.fallbackText!==void 0,s=n.operatorId,i=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&s!==void 0&&s!=="";if(!r&&!o&&!i)return Nn(e);let a={...n,eventType:t};return o&&delete a.fallbackText,i&&s!==void 0&&(a.targetUserIds=[s]),Nn({...e,body:{...e.body,system:a}})}function Kl(e){return e.conversationType==="channel"&&e.extensions?.unsupportedContentType===101&&(e.contentType==="text"||e.contentType==="system"&&e.body.system?.eventType==="channel_unknown"&&e.body.system.rawNotifyType===void 0)}function Wi(e){if(!Kl(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return ys({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function Hi(e){return Mf[e]??"channel_unknown"}function dr(e,n={}){if(e.channelId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.historyCursor!==void 0&&e.historyCursor.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931");if(!Number.isInteger(e.notifyType)||e.notifyType<=0)throw new Error("channel notify: notify type \u7F3A\u5931\u6216\u975E\u6CD5");let t=se(e.messageId),r=Number(e.occurredAt),o=r>0?r:n.receivedAt??Date.now(),s=e.sequence!==void 0&&e.sequence>0n?e.sequence.toString():void 0,i={eventType:Hi(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(i.operatorId=e.operatorId.toString());let a=e.targetUserIds?.filter(c=>c>0n).map(c=>c.toString())??[];if(a.length>0&&(i.targetUserIds=a),e.content!==void 0&&e.content!==""&&!Ol.has(e.notifyType)&&(i.fallbackText=e.content),e.notifyType===23)try{i.pinnedMessageAction={type:"pin",pinnedMessage:Is(e.content??"",{conversationId:e.channelId.toString(),...i.operatorId===void 0?{}:{operatorId:i.operatorId}})};}catch(c){i.pinnedMessageAction={type:"invalid",code:ar(c)};}else e.notifyType===24&&(i.pinnedMessageAction={type:"unpin"});return ys({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:i},createdAt:o,...r>0?{serverTime:r}:{},sortKey:ye(o,s===void 0?t:`${s.padStart(hf,"0")}:${t}`),status:"sent",receipt:"read",encryption:{encrypted:e.encrypted??false},extensions:{...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...s===void 0?{}:{channelSequence:s}},...n.keepRaw?{raw:{...n.cmdId===void 0?{}:{cmdId:n.cmdId},channelNotify:{notifyType:e.notifyType,...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...e.sequence===void 0?{}:{sequence:e.sequence.toString()},...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}}:{}})}function cr(e){return /^\[[^[\]\s]+\]$/.test(e)}function lr(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function Tf(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function vf(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function Yi(e,n,t){let r=new Map;for(let a of e){let c=r.get(a.senderId);(c===void 0||Tf(c,a)<0)&&r.set(a.senderId,a);}let o=new Map,s;for(let a of r.values()){if(a.action===1)continue;let c=o.get(a.emoji)??{participants:[],latestAt:0};c.participants.push(a.senderId),c.latestAt=Math.max(c.latestAt,a.createdAt),o.set(a.emoji,c),a.senderId===n&&(s=a.emoji);}let i=[...o.entries()].map(([a,c])=>Object.freeze({emoji:a,count:c.participants.length,mine:c.participants.includes(n),latestAt:c.latestAt,participantIds:Object.freeze([...c.participants].sort())})).sort((a,c)=>Number(c.mine)-Number(a.mine)||c.latestAt-a.latestAt||a.emoji.localeCompare(c.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((a,c)=>a+c.participants.length,0),...s===void 0?{}:{currentUserEmoji:s},events:Object.freeze(e.map(vf)),aggregates:Object.freeze(i)})}function Xi(e,n,t){if(!cr(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(lr(n.emoji))throw new Error(`\u6E38\u620F\u8D34\u56FE\u4E0D\u80FD\u4F5C\u4E3A Reaction\uFF1A${n.emoji}`);if(n.id.trim()===""||n.parentMessageId.trim()===""||n.senderId.trim()==="")throw new Error("Reaction \u4E8B\u4EF6\u7F3A\u5C11 id\u3001parentMessageId \u6216 senderId");if(n.action!==0&&n.action!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${n.action}`);if(!Number.isSafeInteger(n.createdAt)||n.createdAt<0)throw new Error(`Reaction createdAt \u975E\u6CD5\uFF1A${n.createdAt}`);return e?.events.some(r=>r.id===n.id)?e:Yi([...e?.events??[],n],t,(e?.version??0)+1)}function zi(e,n,t){if(e===void 0)return;let r=e.events.filter(o=>o.id!==n);if(r.length===e.events.length)return e;if(r.length!==0)return Yi(r,t,e.version+1)}function qi(e,n,t){if(e===void 0)return n;if(n===void 0)return e;let r=new Map(e.events.map(o=>[o.id,o]));for(let o of n.events)r.set(o.id,o);return Yi([...r.values()],t,Math.max(e.version,n.version))}var Ll={unread:0,delivered:1,read:2};function Cs(e,n){return Ll[n]>Ll[e]?n:e}function Zl(e,n){return e==="sent"||n==="sent"?"sent":n}function Ss(e,n,t=""){let r=e.serverTime??0,o=n.serverTime??0,i=o>=r?{...e,...n}:{...n,...e},a=Math.max(r,o),c=Math.min(e.createdAt,n.createdAt),p=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":Zl(e.status,n.status),y=p==="failed"?n.failure??e.failure:void 0,h=qi(e.reactions,n.reactions,t),f=e.encryption.decryptFailed===true,m=n.encryption.decryptFailed===true,T=i.contentType,M=i.body,R=i.encryption,k=i.mention;f&&!m?(T=n.contentType,M=n.body,R=n.encryption,k=n.mention):!f&&m&&(T=e.contentType,M=e.body,R=e.encryption,k=e.mention),n.edited===true&&!m&&(T=n.contentType,M=n.body,R=n.encryption,k=n.mention);let E=e.body.voice?.waveform??n.body.voice?.waveform;M.voice!==void 0&&M.voice.waveform===void 0&&E!==void 0&&(M={...M,voice:{...M.voice,waveform:E}});let N=e.edited===true||n.edited===true,D=e.deletedForEveryone??n.deletedForEveryone;if(D!==void 0){let z={...i,id:e.id,createdAt:c,serverTime:a>0?a:void 0,status:p,failure:y,receipt:Cs(e.receipt,n.receipt),sortKey:ye(c,e.id),recalled:void 0,deletedForEveryone:D,body:{},encryption:i.encryption};return delete z.reactions,z}let w=e.recalled??n.recalled;if(w!==void 0){let z={...i,id:e.id,createdAt:c,serverTime:a>0?a:void 0,status:p,failure:y,receipt:Cs(e.receipt,n.receipt),sortKey:ye(c,e.id),recalled:w,body:{},encryption:i.encryption};return delete z.reactions,z}let x={...i,id:e.id,createdAt:c,serverTime:a>0?a:void 0,status:p,failure:y,receipt:Cs(e.receipt,n.receipt),sortKey:ye(c,e.id),contentType:T,body:M,encryption:R,...h===void 0?{}:{reactions:h},...N?{edited:true}:{}};return k!==void 0?x.mention=k:delete x.mention,x}function bf(e,n){return e===void 0||n===void 0?e===n:e.version===n.version&&e.total===n.total&&e.currentUserEmoji===n.currentUserEmoji&&e.events.length===n.events.length&&e.events.every((t,r)=>{let o=n.events[r];return o!==void 0&&t.id===o.id&&t.senderId===o.senderId&&t.emoji===o.emoji&&t.action===o.action&&t.createdAt===o.createdAt})}function Pn(e,n=""){let t=new Map;for(let r of e){let o=t.get(r.id);t.set(r.id,o===void 0?r:Ss(o,r,n));}return [...t.values()]}function Df(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function Nf(e,n){if(e===void 0||n===void 0)return e===n;let t=Object.keys(e);return t.length!==Object.keys(n).length?false:t.every(r=>e[r]===n[r])}function _f(e,n){return e===void 0||n===void 0?e===n:e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&Of(e.targetUserIds,n.targetUserIds)&&ji(e.payload,n.payload)&&ji(e.action,n.action)&&ji(e.pinnedMessageAction,n.pinnedMessageAction)}function Gf(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.fileName===n.fileName&&e.size===n.size&&e.extension===n.extension&&e.fileType===n.fileType&&e.mimeType===n.mimeType&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&Vn(e.teaKey,n.teaKey)}function Uf(e,n){return e===void 0||n===void 0?e===n:e.targetId===n.targetId&&e.avatar===n.avatar&&e.displayName===n.displayName&&e.username===n.username&&e.gender===n.gender&&e.kind===n.kind&&e.rawKind===n.rawKind}function kf(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.exprType===n.exprType&&e.imageType===n.imageType&&e.size===n.size&&e.describe===n.describe&&e.contentId===n.contentId&&e.packageName===n.packageName&&Vn(e.thumbData,n.thumbData)}function xf(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function Bf(e,n){return e===void 0||n===void 0?e===n:e.appId===n.appId&&e.host===n.host&&e.developerId===n.developerId&&e.name===n.name&&e.icon===n.icon&&e.productId===n.productId&&e.isDynamicHost===n.isDynamicHost&&e.suffixAddress===n.suffixAddress&&e.showType===n.showType&&e.rawShowType===n.rawShowType&&e.description===n.description&&e.currencySource===n.currencySource&&e.currencyType===n.currencyType&&e.gamePath===n.gamePath&&e.subGameName===n.subGameName}function Ff(e,n){return e===void 0||n===void 0?e===n:e.callKind===n.callKind&&e.outcome===n.outcome&&e.durationMs===n.durationMs&&e.outgoing===n.outgoing}function Vf(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.amount===n.amount&&e.currencyType===n.currencyType&&e.status===n.status&&e.serialNumber===n.serialNumber&&e.remark===n.remark&&e.sessionType===n.sessionType&&e.transferTime===n.transferTime&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.transferMsgId===n.transferMsgId&&e.coinName===n.coinName&&e.coinIcon===n.coinIcon}function Pf(e,n){return e===void 0||n===void 0?e===n:e.packetId===n.packetId&&e.packetType===n.packetType&&e.amount===n.amount&&e.count===n.count&&e.showAmount===n.showAmount&&e.thunderRate===n.thunderRate&&e.isThunder===n.isThunder&&e.thunderNumber===n.thunderNumber&&e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.currencyType===n.currencyType&&e.coinName===n.coinName}function wf(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function Of(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function ji(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function Kf(e,n){return e===void 0||n===void 0?e===n:e.atAll!==n.atAll||e.atUserIds.length!==n.atUserIds.length||e.atUserIds.some((t,r)=>t!==n.atUserIds[r])?false:Nf(e.atUsersName,n.atUsersName)}function Vn(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Lf(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&Vn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&Vn(e.teaKey,n.teaKey)}function Zf(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.duration===n.duration&&Vn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&Vn(e.teaKey,n.teaKey)}function Qf(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.durationMs===n.durationMs&&e.size===n.size&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&Vn(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function Yn(e,n){return e.id===n.id&&e.conversationId===n.conversationId&&e.conversationType===n.conversationType&&e.senderId===n.senderId&&e.contentType===n.contentType&&e.body.text===n.body.text&&_f(e.body.system,n.body.system)&&e.createdAt===n.createdAt&&e.sortKey===n.sortKey&&e.status===n.status&&e.serverTime===n.serverTime&&e.receipt===n.receipt&&e.refMessageId===n.refMessageId&&e.edited===n.edited&&(e.recalled?.by??"")===(n.recalled?.by??"")&&(e.recalled?.at??0)===(n.recalled?.at??0)&&(e.deletedForEveryone?.by??"")===(n.deletedForEveryone?.by??"")&&(e.deletedForEveryone?.at??0)===(n.deletedForEveryone?.at??0)&&(e.deletedForEveryone?.reason??"")===(n.deletedForEveryone?.reason??"")&&bf(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&Kf(e.mention,n.mention)&&Lf(e.body.image,n.body.image)&&Zf(e.body.video,n.body.video)&&Qf(e.body.voice,n.body.voice)&&Gf(e.body.file,n.body.file)&&kf(e.body.sticker,n.body.sticker)&&Uf(e.body.contact,n.body.contact)&&Bf(e.body.miniProgram,n.body.miniProgram)&&xf(e.body.game,n.body.game)&&Vf(e.body.transfer,n.body.transfer)&&Ff(e.body.call,n.body.call)&&Pf(e.body.redPacket,n.body.redPacket)&&wf(e.body.unknown,n.body.unknown)&&Df(e.failure,n.failure)}var Jf=20;function Xn(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(Ye(r));}return [...n]}function zn(e){let n=new Set;for(let t of e)t!==""&&n.add(se(t));return [...n]}var Ql=2;function Wf(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function gr(e){let n=Wn.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:Wf(n.action)}}function ur(e,n){let t=gr(e.sContent),r=e.sFromId.toString();return {id:se(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:se(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function mr(e){let n=gr(e.sContent);return {id:se(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:se(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function $i(e){let n=gr(e.sContent);return {id:se(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:se(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function ea(e){if(e.eventType===Ql)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=gr(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function na(e){let n=gr(e.sContent);return {id:se(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:se(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function As(e,n,t){return n===e?t:n}var Hf=102,Jl=1,Yf=2;function ta(e,n){let t=se(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),s=e.nCancelType===1,i=s?String(e.sGroupId):As(n,r,String(e.sToId)),a=Number(e.msgTime)||o;return {id:t,conversationId:i,conversationType:s?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:a,sortKey:ye(a,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function ra(e){let n=se(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:ye(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function oa(e){let n=se(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:ye(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function sa(e){let n=se(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime),o={id:n,conversationId:e.sChnnId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,serverTime:r,sortKey:ye(r,n),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0},extensions:{...e.sIndex===""?{}:{historyCursor:e.sIndex},...e.sIncrId===0n?{}:{channelSequence:e.sIncrId.toString()}}};if(e.uOperationType===1)return {...o,deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}};if(e.uOperationType===2)return {...o,recalled:{by:t,at:r}};throw new Error(`CHANNEL \u5386\u53F2\u5220\u9664\u7C7B\u578B\u975E\u6CD5\uFF1A${e.uOperationType}`)}function pr(e,n){if(n.contentType!==Hf||n.type!==Jl&&n.type!==Yf||!gn(n.content))return null;let t=se(n.content),r=n.oprUserId>0n?n.oprUserId.toString():e.senderId.toString(),o=Number(e.msgTime),s={id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:r,contentType:"text",body:{},createdAt:o,sortKey:ye(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===Jl?{...s,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...s,recalled:{by:r,at:o}}}var Xf=ae.create({contentType:1,content:""}),zf=101;function Wl(e){if(e.sChnnId<=0n)throw new Error("channel session: channel id \u7F3A\u5931\u6216\u975E\u6CD5");let n=e.uStatus===0||e.uStatus===1,t=e.uExistAt===1||e.uExistAt===2,r=e.uStatus===0&&t?"active":"unknown_restricted",o=e.uExistAt===1?false:e.uExistAt===2?true:void 0,s={channelId:e.sChnnId.toString(),readCursor:e.sReadIndex,unreadCount:e.uUnread,channelState:r,hasUnreadMention:o};return r!=="active"&&(s.sendDisabledReason=n&&t?"channel_membership_unknown":"channel_state_requires_calibration"),(!n||!t)&&(s.raw={status:e.uStatus,mentionStatus:e.uExistAt}),s}function qf(e){return ls.encode(ls.create({sUserId:fr(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:fr(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function Hl(e){return gs.encode(gs.create({sUserId:fr(e.userId,"user"),clientType:e.clientType,lsPull:e.pulls.map(n=>{if(!Number.isInteger(n.count)||n.count<=0)throw new Error("channel offline request: count \u7F3A\u5931\u6216\u975E\u6CD5");return {sChnnId:fr(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function jf(e){return Hl({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function $f(e,n,t){let r=Zi.decode(e);zl(r.errcode,"sessions");let o=aa(n.expectedChannelIds);return {sessions:r.lsSession.map(s=>{let i=s.sChnnId.toString();da(i,o,"sessions");let a=Wl(s);if(s.last!==void 0){if(s.last.sChnnId!==s.sChnnId)throw new Error(`channel sessions: last \u9891\u9053\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08session=${s.sChnnId}, last=${s.last.sChnnId}\uFF09`);let c=ia(s.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);c!==null&&(a.last=c);}return a})}}function Yl(e,n,t){let r=us.decode(e);zl(r.errcode,"offlineMessages");let o=aa(n.expectedChannelIds),s={},i={},a=[];for(let c of r.lsMessage){let g=c.sChnnId.toString();da(g,o,"offlineMessages"),s[g]=c.sIndex,i[g]=(i[g]??0)+1;let p=ia(c,n,t);p!==null&&a.push(p);}return {messages:Pn(a,n.selfId).sort(Ke),batchSize:r.lsMessage.length,messageCounts:i,nextBaseIndexes:s}}function Xl(e,n,t,r="specificMsgs"){let o=aa(n.expectedChannelIds),s=[];for(let i of e){let a=i.sChnnId.toString();da(a,o,r);let c=ia(i,n,t);c!==null&&s.push(c);}return Pn(s,n.selfId).sort(Ke)}function eI(e){return ms.encode(ms.create({sUserId:BigInt(e.userId),sChnnId:fr(e.channelId,"channel"),lsMsgId:Xn(e.messageIds),clientType:e.clientType??0}))}function nI(e,n,t){let r=Qi.decode(e);return {messages:Xl(r.lsMessage,n,t,"msg/by_id"),missingMessageIds:zn(r.lsMissingMsgId),code:r.errcode}}function tI(e,n,t){if(!Number.isInteger(n.requestedCount)||n.requestedCount<=0)throw new Error("channel history: requestedCount \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=us.decode(e),o=Yl(e,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,expectedChannelIds:[n.channelId],...n.diagnostic===void 0?{}:{diagnostic:n.diagnostic},onContentDecodeError:n.onContentDecodeError,onReaction:n.onReaction},t),s=r.lsMessage[0]?.sIndex;if(s!==void 0&&s===n.requestedBaseIndex)throw new Error(`channel history cursor \u5FAA\u73AF\uFF08channelId=${n.channelId}, baseIndex=${s}\uFF09`);return {messages:o.messages,...s===void 0?{}:{nextBaseIndex:s},batchSize:o.batchSize,exhausted:o.batchSize<n.requestedCount}}function ia(e,n,t){if(ea(e)){try{n.onReaction?.(na(e));}catch(i){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:i});}return null}if(e.uOperationType===1||e.uOperationType===2)return sa(e);let r=Xf,o=false;if(e.encrypt===0)try{r=ae.decode(e.sContent);}catch(i){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:i}),zd(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let i=t.resolveUserPrivateKey?.()??null;if(i===null)o=true,t.onDecryptError?.(Sn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let a;try{if(a=he.decode(e.sContent),a.secretKey.length===0||a.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(c){o=true,t.onDecryptError?.(Sn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:c})),a=he.create();}if(!o){let c;try{c=t.crypto.decryptEndToEnd({secretKey:a.secretKey,cipherData:a.cipherData,privateKey:i});}catch(g){o=true,t.onDecryptError?.(Sn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,cause:g})),c=new Uint8Array;}if(!o)try{r=ae.decode(c);}catch(g){o=true,t.onDecryptError?.(Sn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,decryptedByteLength:c.length,cause:g}));}}}}else if(e.encrypt===2&&t!==void 0){let i=e.sChnnId.toString(),a=t.resolveChannelKey(i);if(a===null||a.length!==16)o=true,t.onDecryptError?.(Sn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:a?.length??0,keySource:a===null?"miss":"cache"}));else {let c;try{let g=he.decode(e.sContent);if(g.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");c=g.cipherData;}catch(g){o=true,t.onDecryptError?.(Sn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:a.length,keySource:"cache",cause:g})),c=new Uint8Array;}if(!o){let g;try{g=t.crypto.decryptSymmetric({teaKey:a,cipherData:c});}catch(p){o=true,t.onDecryptError?.(Sn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:c.length,cause:p})),g=new Uint8Array;}if(!o)try{r=ae.decode(g);}catch(p){o=true,t.onDecryptError?.(Sn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:c.length,decryptedByteLength:g.length,cause:p}));}}}}else o=true,t?.onDecryptError?.(Sn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let i=pr({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(i!==null)return i}if(!o&&r.contentType===zf)return dr({channelId:e.sChnnId,messageId:e.sMsgId,occurredAt:e.msgTime,notifyType:r.type,operatorId:r.oprUserId,targetUserIds:r.mnpledUserId,content:r.content,extend:e.extend,historyCursor:e.sIndex,sequence:e.sIncrId,encrypted:e.encrypt!==0},{keepRaw:n.keepRaw});let s=gi(e,r,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw===true||o,decryptFailed:o});return o&&(e.encrypt===1||e.encrypt===2)&&t?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:s.conversationId},messageId:s.id,wireEncrypt:e.encrypt,sContent:e.sContent.slice(),source:n.diagnostic?.endpoint==="history"?"history":"offline",createdAt:Date.now()}),s}function Sn(e,n,t){return {...n.diagnostic??{endpoint:"unknown",surface:"unknown"},messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,payloadByteLength:e.sContent.length,...t}}function zl(e,n){if(e!==0)throw new Error(`channel ${n}: errcode=${e}`)}function aa(e){return e===void 0?void 0:new Set(e)}function da(e,n,t){if(n!==void 0&&!n.has(e))throw new Error(`channel ${t}: \u54CD\u5E94\u9891\u9053\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\u6279\u6B21\uFF08channelId=${e}\uFF09`)}function fr(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function rI(e,n,t){let r=hn(n,t),{decryptFailed:o,...s}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:s}}var ql="system",oI=32768;function jl(e){switch(e){case 7:return "group_activated";case 1:return "group_info_changed";case 2:return "group_member_left";case 3:return "group_member_removed";case 4:return "group_member_joined";case 5:return "group_member_invited";case 6:return "group_master_changed";case 10:return "group_member_renamed";case 11:return "group_dismissed";case 12:return "group_message_pinned";case 13:return "group_message_unpinned";default:return "unknown"}}function ca(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Nn(e):Nn({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function sI(e){let n=e.trim();if(!(n===""||!n.startsWith("{")&&!n.startsWith("[")))try{let t=JSON.parse(n);return typeof t=="object"&&t!==null?t:void 0}catch{return}}function Ir(e,n){let t=se(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),s=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),i=e.sMnpledUserId.map(f=>f.toString()),a={eventType:jl(e.notifyType),rawNotifyType:e.notifyType},c=Number(e.errcode);c!==0&&(a.errcode=c),s!==void 0&&(a.operatorId=s),i.length>0&&(a.targetUserIds=i);let g=e.notifyType===12,p=e.notifyType===13;!g&&!p&&e.sContent!==""&&(a.fallbackText=e.sContent);let y=g||p?void 0:sI(e.sContent);if(y!==void 0&&(a.payload=y),g)try{a.pinnedMessageAction={type:"pin",pinnedMessage:fs(e.sContent,{conversationId:e.sGrpId.toString(),...s===void 0?{}:{operatorId:s}})};}catch(f){a.pinnedMessageAction={type:"invalid",code:ar(f)};}else p&&(a.pinnedMessageAction={type:"unpin"});let h={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:ql,contentType:"system",body:{system:a},createdAt:o,sortKey:ye(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(h.serverTime=r),n.keepRaw&&(h.raw={cmdId:n.cmdId}),ca(h)}function la(e,n){let t=e.targetUserIds?.includes(n)??false;switch(e.eventType){case "group_member_left":return t?{state:"left",reason:"you_left_group"}:null;case "group_member_removed":return t?{state:"removed",reason:"you_were_removed"}:null;case "group_dismissed":return {state:"dismissed",reason:"group_dismissed"};case "group_member_joined":case "group_member_invited":{if(!t)return null;let r=e.errcode;return r!==void 0&&r!==oI?null:{state:"active",reason:""}}default:return null}}function ga(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var iI=new Set([8196,8976]),$l=ae.create({contentType:1,content:""});function aI(e){return is.encode(is.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function dI(e){return ss.encode(ss.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function cI(e,n,t){let r=t.resolvePrivateKey({groupId:n,msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(r===null)return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let o=he.decode(e.sContent);if(o.secretKey.length===0||o.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${o.secretKey.length}B cipherData=${o.cipherData.length}B`);let s=t.crypto.decryptEndToEnd({secretKey:o.secretKey,cipherData:o.cipherData,privateKey:r});return ae.decode(s)}catch(o){return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:o}),null}}function Rs(e,n,t){if(e.cmdId===8980){let c=pn.decode(e.sMsgData),g={...c,sMsgId:c.sMsgId||e.sMsgId,sFromId:c.sFromId===0n?e.sFromId:c.sFromId,sGrpId:c.sGrpId===0n?e.sGroupId:c.sGrpId,sToId:c.sToId===0n?e.sGroupId:c.sToId,msgTime:c.msgTime===0n?e.msgTime:c.msgTime,parentMsgId:c.parentMsgId||e.parentMsgId};return n.onReaction?.(mr(g)),null}if(e.cmdId===8708)return Ir(Qn.decode(e.sMsgData),{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw});if(!iI.has(e.cmdId))return null;let r=pn.decode(e.sMsgData),o=$l,s=false,i=false;if(r.encrypt===0)try{o=ae.decode(r.sContent);}catch{i=true;}else if(r.encrypt===1&&t!==void 0){let c=cI(r,r.sGrpId.toString(),t);o=c??$l,s=c===null;}else s=true;let a=Dn(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:s});return i&&(a.contentType="unknown",a.body={unknown:{reason:"malformed-content"}},a.raw={...a.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),s&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:a.conversationId},messageId:a.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),a.refMessageId===void 0&&e.parentMsgId&&(a.refMessageId=se(e.parentMsgId)),e.isEdit===1&&(a.edited=true),a}function lI(e,n,t){let r=wi.decode(e),o=[],s=[];for(let i of r.msgList){s.push({msgId:i.sMsgId,msgTime:i.msgTime,cmdId:i.cmdId});let a=Rs(i,n,t);a!==null&&o.push(a);}return {messages:o,deliveredMsgInfos:s,batchSize:r.msgList.length}}function gI(e,n,t){let r=Pi.decode(e),o=[],s=[];for(let i of r.sessionList){o.push({groupId:i.groupId.toString(),unreadCount:Number(i.unreadCount)});for(let a of i.msgList){let c=Rs(a,n,t);c!==null&&s.push(c);}}return {unreads:o,messages:s}}function uI(e){return as.encode(as.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),baseTime:BigInt(e.baseTime),direct:e.direct??1,limit:e.limit??50,clientType:e.clientType??0}))}function mI(e,n,t){let r=Oi.decode(e),o=[];for(let i of r.msgList){let a=Rs(i,n,t);a!==null&&o.push(a);}let s=r.msgList.map(i=>Number(i.msgTime));return {messages:o,batchSize:r.msgList.length,...s.length===0?{}:{oldestEntryTime:Math.min(...s),newestEntryTime:Math.max(...s)}}}function pI(e){return ds.encode(ds.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:Xn(e.messageIds),clientType:e.clientType??0}))}function fI(e,n,t){let r=Ki.decode(e),o=[];for(let s of r.msgList){let i=Rs(s,n,t);i!==null&&(s.isCancel===1&&(i.recalled={by:i.senderId,at:i.serverTime??i.createdAt},i.body={}),o.push(i));}return {messages:o,missingMessageIds:zn(r.missingMsgIds),code:r.code}}function II(e){return cs.encode(cs.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function yI(e){return {code:Li.decode(e).code}}var CI=1;function qn(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),s=Number(e.msgTime),i=se(e.sMsgId),a=hn(n,t.selfId),c=s>0?s:t.receivedAt??Date.now(),g={id:i,conversationId:As(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:a.contentType,body:a.body,createdAt:c,sortKey:ye(c,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(g.encryption.decryptFailed=true),s>0&&(g.serverTime=s),e.parentMsgId&&(g.refMessageId=se(e.parentMsgId)),t.edited===true&&(g.edited=true),t.keepRaw&&(g.raw=SI(e,n,t.cmdId)),g}function SI(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sToId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function yr(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:fe(e.id),msgType:CI,encrypt:e.encryption.encrypted?1:0,bMessage:cn(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:Ye(e.refMessageId)}:{}}}function ua(e){return {id:se(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function Es(e){switch(e){case 33281:return {code:e,reason:"rejected",displayCode:"forbiddenOrLeft",retryable:false};case 33282:return {code:e,reason:"rejected",displayCode:"contentRejected",retryable:false};case 33557:return {code:e,reason:"rejected",displayCode:"groupDismissed",retryable:false};case 33540:return {code:e,reason:"network",displayCode:"groupUnavailable",retryable:true};default:return {code:e,reason:"rejected",retryable:true}}}function AI(e){return rs.encode(rs.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var RI=new Set([4100,4113,4644,4645]),eg=ae.create({contentType:1,content:""});function EI(e,n){let t=n.resolvePrivateKey({msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(t===null)return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let r=he.decode(e.sContent);if(r.secretKey.length===0||r.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${r.secretKey.length}B cipherData=${r.cipherData.length}B`);let o=n.crypto.decryptEndToEnd({secretKey:r.secretKey,cipherData:r.cipherData,privateKey:t});return ae.decode(o)}catch(r){return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:r}),null}}function MI(e,n,t){let r=Fi.decode(e),o=[],s=[];for(let i of r.msgList){s.push({msgId:i.sMsgId,msgTime:i.msgTime,cmdId:i.cmdId});let a=ng(i,n,t);a!==null&&o.push(a);}return {messages:o,deliveredMsgInfos:s,batchSize:r.msgList.length}}function ng(e,n,t){if(e.cmdId===4653){let c=bn.decode(e.sMsgData),g={...c,sMsgId:c.sMsgId||e.sMsgId,sFromId:c.sFromId===0n?e.sFromId:c.sFromId,sToId:c.sToId===0n?e.sToId:c.sToId,msgTime:c.msgTime===0n?e.msgTime:c.msgTime,parentMsgId:c.parentMsgId||e.parentMsgId};return n.onReaction?.(ur(g,n.selfId)),null}if(!RI.has(e.cmdId))return null;let r=bn.decode(e.sMsgData),o=eg,s=false,i=false;if(r.encrypt===0)try{o=ae.decode(r.sContent);}catch{i=true;}else if(r.encrypt===1&&t!==void 0){let c=EI(r,t);o=c??eg,s=c===null;}else s=true;let a=qn(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:s});return i&&(a.contentType="unknown",a.body={unknown:{reason:"malformed-content"}},a.raw={...a.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),s&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:a.conversationId},messageId:a.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),a.refMessageId===void 0&&e.parentMsgId&&(a.refMessageId=se(e.parentMsgId)),e.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),e.isEdit===1&&(a.edited=true),a}function hI(e){return os.encode(os.create({userId:BigInt(e.userId),msgIds:Xn(e.messageIds),clientType:e.clientType??0}))}function TI(e,n,t){let r=Vi.decode(e),o=[];for(let s of r.msgList){let i=ng(s,n,t);i!==null&&o.push(i);}return {messages:o,missingMessageIds:zn(r.missingMsgIds),code:r.code}}function nn(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r.length>0)return r;if(typeof r=="number"&&Number.isFinite(r))return String(r)}}function jn(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""&&Number.isFinite(Number(r)))return Number(r)}}function vI(e){let n=/^(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?/.exec(e.trim()),t=n?Number(n[1]):Number.NaN;if(!Number.isFinite(t)||t<1900)return;let r=new Date,o=r.getFullYear()-t,s=n?.[2]===void 0?void 0:Number(n[2]),i=n?.[3]===void 0?void 0:Number(n[3]);if(s!==void 0){let a=r.getMonth()+1;(a<s||a===s&&i!==void 0&&r.getDate()<i)&&(o-=1);}return o>=0&&o<200?o:void 0}function bI(e){let n=t=>t.map(r=>typeof r=="string"?r.trim():r!==null&&typeof r=="object"&&typeof r.email=="string"?r.email.trim():"").filter(r=>r!=="");for(let t of ["extend_email","extendEmail"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim()!==""){let o=r.trim();if(o.startsWith("["))try{let s=JSON.parse(o);if(Array.isArray(s))return n(s)}catch{}return [o]}}return []}function DI(e){let n=t=>t.flatMap(r=>{if(r===null||typeof r!="object")return [];let o=r,s=o.country_code??o.countryCode;if(typeof s!="string"||typeof o.mobile!="string")return [];let i=s.trim(),a=o.mobile.trim();return i===""||a===""?[]:[{countryCode:i,mobile:a}]});for(let t of ["extend_mobile","extendMobile"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim().startsWith("["))try{let o=JSON.parse(r);if(Array.isArray(o))return n(o)}catch{}}return []}var NI=["user_id","userId","id","uid"],_I=["nick_name","nickName","nickname","name"],GI=["remark_name","remarkName"],UI=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],kI=["per_signature","signature","sign"],xI=["mid"],BI=["birthday"],FI=["public_key","publicKey"],tg=["is_undisturb","isUndisturb"];function VI(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=nn(t,NI);if(r===void 0)throw new Error("toUserProfile: \u7F3A\u5C11\u7528\u6237 id \u5B57\u6BB5\uFF08user_info.user_id / user_id\uFF09");let o={id:r,nickname:nn(t,_I)??""},s=nn(e,GI);s!==void 0&&(o.remark=s);let i=nn(t,UI);i!==void 0&&(o.avatar=i);let a=nn(t,kI);a!==void 0&&(o.signature=a);let c=nn(t,xI);c!==void 0&&(o.miCallId=c);let g=nn(t,BI);if(g!==void 0){o.birthday=g;let m=vI(g);m!==void 0&&(o.age=m);}let p=bI(e);p.length>0&&(o.remarkEmail=p);let y=DI(e);y.length>0&&(o.remarkPhones=y);let h=nn(t,FI);h!==void 0&&(o.publicKey=h);let f=jn(e,tg);return f!==void 0&&(o.muted=f===1),o}var PI=["group_id","groupId","id","gid"],wI=["group_name","groupName","name"],OI=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],KI=["total_users","member_count","memberCount","member_num","memberNum"],LI=["status"],ZI=["is_ingroup","isInGroup","isIngroup"],QI=["user_id","userId","owner_id","ownerId","master_id","masterId"],JI=["verify_way","verifyWay"],WI=["invite_code","inviteCode"];function HI(e){let n=nn(e,PI);if(n===void 0)throw new Error("toGroupProfile: \u7F3A\u5C11\u7FA4 id \u5B57\u6BB5\uFF0809b \u5F85\u6838\u5BF9\u771F\u5B9E\u63A5\u53E3\u5B57\u6BB5\uFF09");let t={id:n,name:nn(e,wI)??""},r=nn(e,OI);r!==void 0&&(t.avatar=r);let o=jn(e,KI);o!==void 0&&(t.memberCount=o);let s=jn(e,LI);s!==void 0&&(t.status=s);let i=jn(e,ZI);i!==void 0&&(t.isInGroup=i===1);let a=nn(e,QI);a!==void 0&&(t.ownerId=a);let c=jn(e,JI);c!==void 0&&(t.verifyWay=c);let g=nn(e,WI);g!==void 0&&(t.inviteCode=g);let p=e.to_user;if(p!==null&&typeof p=="object"){let y=jn(p,tg);y!==void 0&&(t.muted=y===1);}return t}function YI(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function XI(e){if(wn(e)){if(e.deletedForEveryone!==void 0)return {kind:"channel-moderation-deleted",by:e.deletedForEveryone.by};if(e.recalled!==void 0)return {kind:"recalled",by:e.recalled.by};if(e.body.text)return {kind:"text",text:e.body.text};if(e.contentType==="image")return {kind:"image"};if(e.contentType==="video")return {kind:"video"};if(e.contentType==="voice")return e.body.voice?.durationMs!==void 0?{kind:"voice",durationMs:e.body.voice.durationMs}:{kind:"voice"};if(e.contentType==="file")return {kind:"file"};if(e.contentType==="sticker")return {kind:zs(e.body.sticker?.imageType??0)};if(e.contentType==="contact")return {kind:"contact"};if(e.contentType==="miniProgram")return {kind:"miniProgram"};if(e.contentType==="transfer")return {kind:"transfer"};if(e.contentType==="call"&&e.body.call!==void 0)return {kind:"call",callKind:e.body.call.callKind};if(e.contentType==="redPacket")return {kind:"redPacket"};if(e.contentType==="game"&&e.body.game!==void 0)return {kind:"game",gameType:e.body.game.gameType};if(e.contentType==="unknown")return {kind:"unknown"};if(e.contentType==="system"&&e.body.system!==void 0){let{pinnedMessageAction:n,...t}=e.body.system;return {kind:"system",system:t}}if(e.encryption.encrypted)return {kind:"encrypted"}}}function zI(e,n){return e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&JSON.stringify(e.action)===JSON.stringify(n.action)&&qI(e.targetUserIds,n.targetUserIds)&&jI(e.payload,n.payload)}function wn(e){return e.body.system?.timelineVisibility!=="hidden"}function qI(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function jI(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function ma(e,n){if(e===void 0||n===void 0)return e===n;if(e.kind!==n.kind)return false;switch(e.kind){case "text":return e.text===n.text;case "voice":return e.durationMs===n.durationMs;case "recalled":return e.by===n.by;case "channel-moderation-deleted":return e.by===n.by;case "system":return zI(e.system,n.system);case "game":return e.gameType===n.gameType;case "call":return e.callKind===n.callKind;case "image":case "gif":case "video":case "file":case "sticker":case "contact":case "miniProgram":case "transfer":case "redPacket":case "encrypted":case "unknown":return true}}function $I(e,n){if(n!==void 0&&n!==""?e.senderId===n:e.senderId!==e.conversationId){if(e.status==="failed")return "failed";if(e.status==="pending"||e.status==="uploading"||e.status==="sending")return "sending"}}function pa(e,n={}){let t=e.contentType==="system"&&wn(e)?e.body.system:void 0,r=e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:YI(e),lastMessageSummary:XI(e),lastMessageSenderId:e.senderId,lastMessageSystemEvent:t?.eventType,lastMessageSystemTargetsSelf:t!==void 0&&n.selfId!==void 0&&n.selfId!==""?t.targetUserIds?.includes(n.selfId)??false:void 0,...r!==void 0?{lastMessageMention:r}:{},...e.recalled!==void 0?{lastMessageRecalled:{by:e.recalled.by}}:{},...e.deletedForEveryone!==void 0?{lastMessageDeletedForEveryone:{by:e.deletedForEveryone.by}}:{},timestamp:e.createdAt,unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:$I(e,n.selfId)}}function og(e){if(e<0n)throw new Error("signal offline: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7Fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function fa(e,n){let t=Uint8Array.of(e<<3),r=og(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function rg(e,n){let t=e<<3|2,r=og(BigInt(n.length)),o=new Uint8Array(1+r.length+n.length);return o[0]=t,o.set(r,1),o.set(n,1+r.length),o}function ey(e){let n=e.reduce((o,s)=>o+s.length,0),t=new Uint8Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}function $n(e,n){let t=0n,r=0n,o=n;for(;o<e.length;){let s=BigInt(e[o]);if(o+=1,t|=(s&0x7Fn)<<r,(s&0x80n)===0n)return {value:t,offset:o};if(r+=7n,r>63n)throw new Error("signal offline: varint \u8FC7\u957F")}throw new Error("signal offline: varint \u4E0D\u5B8C\u6574")}function sg(e,n,t){if(t===0)return $n(e,n).offset;if(t===1){if(n+8>e.length)throw new Error("signal offline: 64 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+8}if(t===2){let r=$n(e,n),o=Number(r.value)+r.offset;if(o>e.length)throw new Error("signal offline: \u957F\u5EA6\u5B57\u6BB5\u8D8A\u754C");return o}if(t===5){if(n+4>e.length)throw new Error("signal offline: 32 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+4}throw new Error(`signal offline: wire type ${String(t)}`)}function ny(e){let n=new TextEncoder,t=[fa(1,BigInt(e.userId)),rg(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(rg(3,n.encode(r)));return t.push(fa(4,BigInt(e.limit??100))),t.push(fa(5,BigInt(e.clientType??0))),ey(t)}function ty(e){let n=0,t=0,r=new Uint8Array(0),o="",s=new TextDecoder;for(;n<e.length;){let i=e[n];n+=1;let a=i>>>3,c=i&7;if(a===1&&c===0){let g=$n(e,n);t=Number(g.value),n=g.offset;continue}if(a===2&&c===2){let g=$n(e,n),p=g.offset+Number(g.value);if(p>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(g.offset,p)),n=p;continue}if(a===3&&c===2){let g=$n(e,n),p=g.offset+Number(g.value);if(p>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=s.decode(e.subarray(g.offset,p)),n=p;continue}n=sg(e,n,c);}return {cmdId:t,body:r,msgId:o}}function ry(e){let n=[],t=0;for(;t<e.length;){let r=e[t];t+=1;let o=r>>>3,s=r&7;if(o===3&&s===2){let i=$n(e,t),a=i.offset+Number(i.value);if(a>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(ty(e.subarray(i.offset,a))),t=a;continue}t=sg(e,t,s);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var ig=-5,Cr=-4,oy=new Set(["image","video","voice","file","sticker"]);function sy(e){let n=[];return e.text!==void 0&&n.push("text"),e.system!==void 0&&n.push("system"),e.image!==void 0&&n.push("image"),e.video!==void 0&&n.push("video"),e.voice!==void 0&&n.push("voice"),e.file!==void 0&&n.push("file"),e.sticker!==void 0&&n.push("sticker"),e.contact!==void 0&&n.push("contact"),e.miniProgram!==void 0&&n.push("miniProgram"),e.game!==void 0&&n.push("game"),e.transfer!==void 0&&n.push("transfer"),e.call!==void 0&&n.push("call"),e.redPacket!==void 0&&n.push("redPacket"),e.unknown!==void 0&&n.push("unknown"),n.length===1?n[0]:void 0}function _n(e){let n=ca(ys(Wi(e)));n.body.game!==void 0&&!dt(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!Md(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=sy(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Nn(n),n.contentType!=="text"||n.extensions?.unsupportedContentType===void 0)return n;let{unsupportedContentType:r,...o}=n.extensions;return {...n,contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}},...Object.keys(o).length===0?{extensions:void 0}:{extensions:o}}}function Ia(e){if(e.status==="uploading"){let n=oy.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:ig,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===Cr){let n=e.contentType==="video"||e.contentType==="file"?e.contentType:void 0,t=n===void 0?e.failure.displayCode:"media.uploadInterrupted";return e.failure.retryable===false&&e.failure.displayCode===t&&(n===void 0||e.failure.mediaKind===n)?e:{...e,failure:{...e.failure,...t===void 0?{}:{displayCode:t},...n===void 0?{}:{mediaKind:n},retryable:false}}}return e}function iy(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function Ms(e,n){return {...e,status:n.status,...n.receiveTime===void 0?{}:{receiveTime:n.receiveTime},...n.returnTime===void 0?{}:{returnTime:n.returnTime},...n.isRead===void 0?{}:{isRead:n.isRead}}}function ag(e){let n=e.body.transfer,r=(n?.status===1?n.receiveTime:n?.status===2||n?.status===3?n.returnTime:void 0)??e.serverTime??e.createdAt;return !Number.isFinite(r)||r<=0?0:r<1e12?r*1e3:r}function cg(e,n){let t=e.body.transfer,r=n.body.transfer;if(t===void 0)return n;if(r===void 0)return e;if(t.status===0&&r.status!==0)return n;if(r.status===0&&t.status!==0)return e;let o=ag(e),s=ag(n);return o!==s?s>o?n:e:t.status!==r.status?r.status>t.status?n:e:n.serverTime!==void 0&&e.serverTime===void 0?n:e}function dg(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function lg(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function ya(e,n){let t=new Map,r=new Set(n.map(i=>i.id)),o=new Map(n.map(i=>[i.id,i]));for(let i of n){let a=dg(i);a!==null&&t.set(a,[...t.get(a)??[],i]);}if(t.size===0)return [...n];for(let i of e){let a=dg(i);a===null||!t.has(a)||r.has(i.id)||t.get(a)?.push(i);}let s=[];for(let i of t.values()){let c=i.reduce(cg).body.transfer;if(c!==void 0)for(let g of i){let p=g.body.transfer;if(p===void 0||lg(p,c))continue;let y={...g,body:{transfer:Ms(p,c)}};r.has(g.id)?o.set(g.id,y):s.push(y);}}return [...n.map(i=>o.get(i.id)??i),...s]}function hs(e,n,t,r){let o=[];for(let s of e){if(!iy(s,n))continue;let i=s.body.transfer;if(i===void 0)continue;let a={...i,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??i.returnTime}:{}},c={...s,body:{transfer:a}};cg(s,c)!==c||lg(i,a)||o.push({...s,body:{transfer:a}});}return o}function Ca(e,n){return e.contentType==="system"?e.conversationType==="direct"?e.body.system?.eventType==="direct_contact_established"||e.body.system?.eventType==="direct_contact_required":e.conversationType==="group"||e.conversationType==="channel":n!==""?e.senderId!==n:e.conversationType==="direct"&&e.senderId===e.conversationId}function gg(e,n,t=e.encrypt){return Cn.encode(Cn.create({sRadioId:e.sRadioId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgTime:e.msgTime,encrypt:t,sContent:n,...e.nNotifyCount===void 0?{}:{nNotifyCount:e.nNotifyCount},...e.sNotifyUsers===void 0?{}:{sNotifyUsers:e.sNotifyUsers},...e.extend===void 0||e.extend===""?{}:{extend:e.extend},...e.parentMsgId===void 0||e.parentMsgId===""?{}:{parentMsgId:e.parentMsgId}}))}function dy(e,n,t){return Y({command:12289,body:gg(e,n,t)})}function ug(e){return ae.encode(ae.create(e.bMessage))}function Aa(e,n,t){if(t.length!==16)throw new Error(`channel encrypt=2 key \u5FC5\u987B\u4E3A 16 bytes\uFF0C\u5B9E\u9645 ${t.length}`);let r=n.encryptSymmetric({teaKey:t,plain:ug(e)}),o=he.encode(he.create({cipherData:r}));return gg(e,o,2)}function mg(e){return dy(e,ug(e),0)}function pg(e,n,t){return Y({command:12289,body:Aa(e,n,t)})}function Ra(e,n){let t=bn.create({sToId:e.sToId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{}});return bn.encode(t)}function fg(e,n){return Y({command:4097,body:Ra(e,n)})}function Ig(e,n){let t=Ra(e,n);return [Y({command:4097,body:t}),Y({command:4113,body:t})]}function Ea(e){return ae.encode(ae.create(e.bMessage))}function Ma(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Ea(e),publicKey:t});return he.encode(he.create({secretKey:r,cipherData:o}))}function yg(e){return fg(e,Ea(e))}function Cg(e){return Ig(e,Ea(e))}function Sg(e,n,t){return fg(e,Ma(e,n,t))}function Ag(e,n,t){return Ig(e,Ma(e,n,t))}function Rg(e,n,t){return Ra(e,Ma(e,n,t))}function Eg(e,n,t){let r=pn.create({sGrpId:e.sGrpId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.nNotifyCount!==void 0?{nNotifyCount:e.nNotifyCount}:{},...e.sNotifyUsers!==void 0?{sNotifyUsers:e.sNotifyUsers}:{},...e.extend!==void 0&&e.extend!==""?{extend:e.extend}:{},...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{},...t!==void 0&&t!==""?{encryptVersion:t}:{}});return pn.encode(r)}function Mg(e,n,t){return Y({command:8193,body:Eg(e,n,t)})}function hg(e){return ae.encode(ae.create(e.bMessage))}function Tg(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:hg(e),publicKey:t});return he.encode(he.create({secretKey:r,cipherData:o}))}function vg(e){return Mg(e,hg(e))}function bg(e,n,t,r){return Mg(e,Tg(e,n,t),r)}function Dg(e,n,t,r){return Eg(e,Tg(e,n,t),r)}function Ng(e){let n=$r.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:fe(e.messageId),content:e.content});return Y({command:4644,body:$r.encode(n)})}function _g(e){let n=no.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:fe(e.messageId),content:e.content});return Y({command:8976,body:no.encode(n)})}function Gg(e){let n=Uo.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:fe(e.messageId),content:e.content,IncrId:e.incrementId});return Y({command:12808,body:Uo.encode(n)})}function Ug(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u7F16\u8F91\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function kg(){return {conversationType:"direct",async prepare(e,n,t){if(t.crypto===void 0||t.resolvePublicKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolvePublicKey(n.conversationId);if(r===null||r==="")return {ok:false,reason:"no-key"};let o=yr({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),s=Rg(o,t.crypto,r);return {ok:true,frame:Ng({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:s})}}}}function xg(){return {conversationType:"group",async prepare(e,n,t){if(t.crypto===void 0||t.resolveGroupKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolveGroupKey(n.conversationId);if(r===null||r.publicKey==="")return {ok:false,reason:"no-key"};let o=ir({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),s=Dg(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:_g({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:s})}}}}function cy(e){return {conversationType:"channel",async prepare(n,t,r){if(t.contentType!=="text")return {ok:false,reason:"unsupported-content"};let o;try{o=await e.resolveProfile(t.conversationId);}catch{return {ok:false,reason:"failed"}}if(o===null||o.channelState!=="active"||!o.permissions.sendMessages)return {ok:false,reason:"restricted"};if(r.crypto===void 0)return {ok:false,reason:"no-key"};let s=await e.resolveChannelKey(t.conversationId);if(s===null||s.length!==16)return {ok:false,reason:"no-key"};let i=t.serverTime??t.createdAt,a=lt({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:i}),c=Aa(a,r.crypto,s),g=t.extensions?.channelSequence,p=typeof g=="string"&&/^\d+$/.test(g)?BigInt(g):0n;return {ok:true,frame:Gg({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:c,incrementId:p})}}}}function ha(){return Ug([kg(),xg()])}var Bg=120*1e3,ly=15e3;function Ta(e){let n=e.now??(()=>Date.now()),t=e.strategies??ha(),r=new Map;function o(s,i){let a=r.get(s);a!==void 0&&(clearTimeout(a.timer),r.delete(s),a.resolve(i));}return {edit(s){let i=e.domainState.getConversationMessage(s,s.messageId);if(i===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(s.conversationId!==i.conversationId||s.conversationType!==i.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let a=e.getSelfId();if(i.senderId!==a)return Promise.resolve({ok:false,reason:"not-own"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(i.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:false,reason:"deleted"});if(s.text==="")return Promise.resolve({ok:false,reason:"empty"});let c=t.resolve(s.conversationType);if(c===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(i.serverTime??i.createdAt)>Bg)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let g=fe(s.messageId),p=r.get(g);if(p!==void 0)return p.promise;let y,h=new Promise(m=>{y=m;}),f={messageId:s.messageId,conversationId:s.conversationId,conversationType:s.conversationType,text:s.text,mention:s.mention,resolve:y,timer:setTimeout(()=>{},0),promise:h};return clearTimeout(f.timer),r.set(g,f),(async()=>{let m;try{m=await c.prepare(s,i,{selfId:a,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{o(g,{ok:false,reason:"encrypt-failed"});return}if(!m.ok){o(g,m);return}r.has(g)&&(f.timer=setTimeout(()=>o(g,{ok:false,reason:"timeout"}),ly),e.sendFrame(m.frame));})(),h},onEditAck({sMsgId:s,errcode:i}){let a=r.get(s);if(a!==void 0){if(i===32768||i===0){e.domainState.editMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{text:a.text},a.mention),o(s,{ok:true});return}o(s,a.conversationType==="channel"?{ok:false,reason:"failed",errcode:i}:{ok:false,reason:"failed"});}},reset(){for(let s of [...r.keys()])o(s,{ok:false,reason:"disconnected"});}}}function Ts(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function et(e){if(e!==void 0)return new Uint8Array(e)}function gy(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function nt(e){let{id:n,createdAt:t}=e.outbox.allocateMessageIdentity(e.target);return e.outbox.enqueueMedia({id:n,conversationId:e.target.conversationId,conversationType:e.target.conversationType,contentType:e.source.contentType,body:e.body,encryption:e.encryption,createdAt:t}).id}var uy={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:gy},my={contentType:"image",isContentReady:e=>Ts(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=et(n.thumbData),r=et(n.teaKey);return {image:{url:n.url,width:n.width,height:n.height,...n.md5!==void 0?{md5:n.md5}:{},...n.imageType!==void 0?{imageType:n.imageType}:{},...n.size!==void 0?{size:n.size}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:nt},py={contentType:"video",isContentReady:e=>Ts(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=et(n.thumbData),r=et(n.teaKey);return {video:{url:n.url,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.size!==void 0?{size:n.size}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:nt},fy={contentType:"file",isContentReady:e=>Ts(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=et(n.teaKey);return {file:{url:n.url,fileName:n.fileName,...n.size!==void 0?{size:n.size}:{},...n.extension!==void 0?{extension:n.extension}:{},...n.fileType!==void 0?{fileType:n.fileType}:{},...n.mimeType!==void 0?{mimeType:n.mimeType}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{teaKey:t}:{}}}},enqueue:nt},Iy={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?Ts(n.url):br(n.url)&&xn(n.width)&&n.width>0&&xn(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=et(n.thumbData);return {sticker:{url:n.url,width:n.width,height:n.height,exprType:n.exprType,imageType:n.imageType,...n.size!==void 0?{size:n.size}:{},...n.describe!==void 0?{describe:n.describe}:{},...n.contentId!==void 0?{contentId:n.contentId}:{},...n.packageName!==void 0?{packageName:n.packageName}:{},...t!==void 0?{thumbData:t}:{}}}},enqueue:e=>nt({...e,encryption:{encrypted:false}})},yy={contentType:"game",isContentReady:e=>e.body.game!==void 0&&dt(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:nt},Cy={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&On(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:nt},Sy=[uy,my,py,fy,Iy,yy,Cy],Ay=new Map(Sy.map(e=>[e.contentType,e]));function Sr(e){return Ay.get(e)}function Ry(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function Fg(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:Sr(e.contentType)!==void 0}function Vg(e){let n=Sr(e.contentType);return n===void 0?false:n.isContentReady(e)}function va(e){return Fg(e)&&Vg(e)}var Pg=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","transfer","call","redPacket"]);function ba(e){return Pg.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function vs(e,n){let t=e==="admin"||e==="owner",r=e==="owner";return {sendMessages:(e==="member"||t)&&n==="active",mentionAll:t,editProfile:t,manageMembers:t,manageAdmins:r,moderateMessages:t,manageMute:t,dismissChannel:r,transferOwnership:r}}function Ey(e,n){let t=/^(\d{1,2}):(\d{2})_(\d{1,2}):(\d{2})$/.exec(e);if(t===null)return false;let r=Number(t[1]),o=Number(t[2]),s=Number(t[3]),i=Number(t[4]);if(r>23||s>23||o>59||i>59)return false;let a=new Date(n),c=a.getHours()*60+a.getMinutes(),g=r*60+o,p=s*60+i;return g<=p&&g<=c&&c<=p}function My(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??vs("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:vs(t.role,n)};let r=t.baseState,o,s=t.role==="owner"||t.role==="admin";return t.baseState==="active"&&!s&&(t.currentUserMuted?(r="muted",o="current-user"):t.allMembersMuted&&(t.mutePeriod===void 0||Ey(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:vs(t.role,r),...o===void 0?{}:{muteReason:o}}}function wg(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function Da(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):wg(t)-wg(n))}var hy=new Set(["direct","group","channel","supergroup"]);function ke(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function fn(e){return {conversationType:e.type,conversationId:e.id}}function Gn(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function te(e){if(!hy.has(e.conversationType)||e.conversationId.length===0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u8EAB\u4EFD\uFF08type=${e.conversationType}, id=${e.conversationId}\uFF09`);return `v1:${e.conversationType}:${encodeURIComponent(e.conversationId)}`}function An(e){let n=/^v1:(direct|group|channel|supergroup):(.+)$/.exec(e);if(n===null)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);let[,t,r]=n;if(t===void 0||r===void 0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);try{let o=decodeURIComponent(r);if(o.length===0||encodeURIComponent(o)!==r)throw new Error("\u4F1A\u8BDD id \u4E0D\u662F canonical \u7F16\u7801");return {conversationType:t,conversationId:o}}catch(o){throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`,{cause:o})}}function Og(){let e=new Map;return {get:n=>e.get(te(n))??null,getAll:()=>[...e.values()],set:n=>e.set(te(n.ref),n),delete:n=>e.delete(te(n)),clear:()=>e.clear()}}function Kg(e){let n=new Map,t=new Map;function r(s){if(typeof s!="string")return te(s);let i=[...t.keys()].filter(a=>An(a).conversationId===s);if(i.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${s}`);return i[0]}function o(s){let i=te(ke(s)),a=t.get(i);a===void 0&&(a=new Set,t.set(i,a)),a.add(s.id);}return {get:s=>n.get(s),getAll:()=>[...n.values()],getByConversation(s){let i=r(s),a=i===void 0?void 0:t.get(i);if(a===void 0)return [];let c=[];for(let g of a){let p=n.get(g);p!==void 0&&c.push(p);}return c.sort(Ke)},has:s=>n.has(s),get size(){return n.size},upsert(s,i){let a=n.get(s.id);if(a===void 0)return n.set(s.id,s),o(s),{message:s,isNew:true,changed:true};let c=Ss(a,s,e?.getSelfId?.()??""),g=i?.authoritativeFailure===true&&s.status==="failed"?{...c,status:"failed",failure:s.failure}:c;return n.set(g.id,g),o(g),{message:g,isNew:false,changed:!Yn(a,g)}},delete(s,i){let a=n.get(i);if(a===void 0||a.conversationType!==s.conversationType||a.conversationId!==s.conversationId)return false;n.delete(i);let c=te(s),g=t.get(c);return g?.delete(i),g?.size===0&&t.delete(c),true},deleteByConversation(s){let i=r(s);if(i===void 0)return;let a=t.get(i);if(a!==void 0){for(let c of a)n.delete(c);t.delete(i);}},clear(){n.clear(),t.clear();}}}function Un(e){let n=_n(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=Hn(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function Ar(...e){let n=new Set,t=[];for(let r of e)for(let o of r)n.has(o.id)||(n.add(o.id),t.push(o));return t}function Lg(e){let n=e.retention?.maxMessages;if(n!==void 0&&(!Number.isSafeInteger(n)||n<=0))throw new Error("\u6D88\u606F\u7A97\u53E3 maxMessages \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u5B89\u5168\u6574\u6570");let t=0,r=null,o=null,s=[],i,a=false,c=false,g=false,p,y=false,h=true,f,m=null;function T(D){if(!(n===void 0||s.length<=n)){if(D==="start"){s=s.slice(-n),i=s[0]?.sortKey,a=true,p=void 0;return}s=s.slice(0,n),c=true,h=false,f=void 0;}}function M(D){if(n===void 0||s.length<=n)return;let w=s.findIndex(de=>de.sortKey===D);if(w<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let x=s.length-n,z=w-Math.floor((n-1)/2),K=Math.min(x,Math.max(0,z)),j=K+n;K>0&&(a=true,p=void 0),j<s.length&&(c=true,h=false,f=void 0),s=s.slice(K,j),i=s[0]?.sortKey;}function R(D,w,x){return D.conversationId===w&&(x===null||D.conversationType===x)}function k(D,w,x){let z=D.filter(K=>R(K,w,x));if(x===null&&new Set(z.map(K=>K.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${w}`);return z}function E(D,w){return w===null?D:{conversationType:w,conversationId:D}}function N(D,w=true){if(r!==null){for(let x of D){if(!R(x,r,o))continue;if(m!==null){m.push(x);continue}let z=s.findIndex(j=>j.id===x.id);if(z>=0){s[z]=x;continue}let K=s[s.length-1];K===void 0||x.sortKey>K.sortKey?c||s.push(x):i!==void 0&&x.sortKey>=i&&(s.push(x),s.sort(Ke));}w&&T(c?"end":"start");}}return {async open(D,{limit:w}){let x=typeof D=="string"?D:D.conversationId,z=typeof D=="string"?null:D.conversationType,K=++t;r=x,o=z,s=[],i=void 0,a=false,c=false,g=false,p=void 0,y=false,h=true,f=void 0,m=[];try{let j=e.storage===void 0?[]:await e.storage.getMessages(E(x,z),{limit:w}),re=k(j,x,z).map(Un).filter(Ce=>e.shouldIncludeMessage?.(Ce)??!0);if(K!==t)return {conversationId:x,messages:re,stale:!0};let ce=m??[];return s=[...re].sort(Ke),i=s[0]?.sortKey,a=re.length===w||e.loadOlderFromRemote!==void 0,y=e.loadOlderFromRemote!==void 0&&(re.length<w||z!==null&&e.shouldEstablishRemoteLatest?.({conversationType:z,conversationId:x},re)===!0),c=!1,h=!0,f=void 0,m=null,N(ce,!1),T("start"),{conversationId:x,messages:s,stale:!1}}finally{K===t&&(m=null);}},async openAt(D,{anchorSortKey:w,limit:x,seedMessages:z,seedHasNewer:K}){let j=typeof D=="string"?D:D.conversationId,de=typeof D=="string"?null:D.conversationType,re=++t;r=j,o=de,s=[],i=void 0,a=false,c=false,g=false,p=void 0,y=false,h=true,f=void 0,m=[];try{if(z!==void 0&&z.length>0){if(z.some(L=>!R(L,j,de)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${j}\uFF09`);let V=Ar(z).map(Un).filter(L=>e.shouldIncludeMessage?.(L)??!0).sort(Ke);if(!V.some(L=>L.sortKey===w))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${j}\uFF09`);let W=m??[];return s=V,i=s[0]?.sortKey,a=e.loadOlderFromRemote!==void 0,c=K??V.length===x,h=!c,f=void 0,m=null,N(W,!1),M(w),{conversationId:j,messages:s,stale:re!==t}}if(e.storage===void 0)return {conversationId:j,messages:[],stale:re!==t};let[ce,Ce]=await Promise.all([e.storage.getMessages(E(j,de),{beforeSortKey:w,limit:x}),e.storage.getMessages(E(j,de),{afterSortKey:w,limit:x})]),ge=k(ce,j,de).map(Un).filter(V=>e.shouldIncludeMessage?.(V)??!0),De=k(Ce,j,de).map(Un).filter(V=>e.shouldIncludeMessage?.(V)??!0);if(re!==t)return {conversationId:j,messages:Ar(ge,De).map(Un),stale:!0};let F=m??[];return s=Ar(ge,De).sort(Ke),i=s[0]?.sortKey,a=ge.length===x||e.loadOlderFromRemote!==void 0,c=De.length===x,h=!c,f=void 0,m=null,N(F,!1),M(w),{conversationId:j,messages:s,stale:!1}}finally{re===t&&(m=null);}},async loadOlder({limit:D}){let w=r,x=o;if(w===null||!a)return {conversationId:w??"",messages:[],stale:false};let z=t,K=e.storage===void 0||p!==void 0||y?[]:await e.storage.getMessages(E(w,x),{beforeSortKey:i,limit:D}),j=k(K,w,x).map(Un).filter(F=>e.shouldIncludeMessage?.(F)??true);if(z!==t||r!==w||o!==x)return {conversationId:w,messages:j,stale:true};let de=j.length===D,re=[...j],ce=false;if(j.length>0&&(p=void 0),!de&&e.loadOlderFromRemote!==void 0&&!g){if(x===null)throw new Error("\u8FDC\u7AEF\u5386\u53F2\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let F=await e.loadOlderFromRemote({conversation:{conversationType:x,conversationId:w},oldestLoaded:j[0]??s[0],...p===void 0?{}:{cursor:p},intent:y?"establish-latest":"older",limit:D});if(z!==t||r!==w||o!==x)return {conversationId:w,messages:[],stale:true};y=false,g=F.exhausted,p=F.nextCursor;let V=k(F.messages,w,x),W=V.map(Un).filter(L=>e.shouldIncludeMessage?.(L)??true);if(F.replaceWindow){if(!F.exhausted&&(F.nextCursor===void 0||F.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${x}, conversationId=${w}\uFF09`);let L=new Set(s.map(C=>C.id)),q=Ar(W).sort(Ke),I=q.at(-1)?.sortKey,v=I===void 0?s:s.filter(C=>C.sortKey>I);s=Ar(q,v).sort(Ke),i=s[0]?.sortKey,a=!g;let S=q.filter(C=>!L.has(C.id));return T("start"),{conversationId:w,messages:S,stale:false}}ce=V.length>0&&W.length===0,ce&&(g=true,p=void 0),re.push(...W);}let Ce=new Set(s.map(F=>F.id)),ge=new Set,De=re.filter(F=>Ce.has(F.id)||ge.has(F.id)?false:(ge.add(F.id),true)).sort(Ke);return De.length>0&&(s=[...De,...s].sort(Ke)),i=s[0]?.sortKey??i,a=de||e.loadOlderFromRemote!==void 0&&!g&&!ce,T("end"),{conversationId:w,messages:De,stale:false}},async loadNewer({limit:D}){let w=r,x=o;if(w===null||!c)return {conversationId:w??"",messages:[],stale:false};let z=t,K=s.at(-1),j=K?.sortKey,de=e.storage===void 0||j===void 0?[]:await e.storage.getMessages(E(w,x),{afterSortKey:j,limit:D+1}),re=k(de,w,x).map(Un).filter(L=>e.shouldIncludeMessage?.(L)??true);if(z!==t||r!==w||o!==x)return {conversationId:w,messages:[],stale:true};let ce=re.filter(L=>j===void 0||L.sortKey>j).slice(0,D),Ce=ce.length===D,ge=[...ce];if(ce.length>0&&(f=void 0),!Ce&&e.loadNewerFromRemote!==void 0&&!h){if(x===null)throw new Error("\u8FDC\u7AEF\u5411\u65B0\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let L=await e.loadNewerFromRemote({conversation:{conversationType:x,conversationId:w},newestLoaded:ce.at(-1)??K,...f===void 0?{}:{cursor:f},limit:D});if(z!==t||r!==w||o!==x)return {conversationId:w,messages:[],stale:true};h=L.exhausted,f=L.nextCursor,ge.push(...k(L.messages,w,x).filter(q=>e.shouldIncludeMessage?.(q)??true));}let De=new Set(s.map(L=>L.id)),F=s.at(-1)?.sortKey,V=new Set,W=ge.filter(L=>F!==void 0&&L.sortKey<=F||De.has(L.id)||V.has(L.id)?false:(V.add(L.id),true)).sort(Ke);return W.length>0&&(s=[...s,...W].sort(Ke)),c=Ce||e.loadNewerFromRemote!==void 0&&!h,T("start"),{conversationId:w,messages:W,stale:false}},applyIncoming:N,removeMessage(D,w){if(r!==D.conversationId||o!==D.conversationType)return false;let x=s.findIndex(z=>z.id===w);return x<0?false:(t+=1,s.splice(x,1),i=s[0]?.sortKey,p=void 0,f=void 0,m=null,true)},clearConversation(D){return r!==D.conversationId||o!==D.conversationType?false:(t+=1,s=[],i=void 0,a=false,c=false,g=false,p=void 0,y=false,h=true,f=void 0,m=null,true)},list(){return [...s]},info(){return {conversationId:r,...r===null||o===null?{}:{conversation:{conversationType:o,conversationId:r}},hasMore:a,hasNewer:c}},getRevision(){return t},reset(){t+=1,r=null,o=null,s=[],i=void 0,a=false,c=false,g=false,p=void 0,y=false,h=true,f=void 0,m=null;}}}function Na(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((i,a)=>i===n[a]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((i,a)=>Na(i,n[a]));if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;let t=e,r=n,o=Object.keys(t),s=Object.keys(r);return o.length===s.length&&o.every(i=>Object.prototype.hasOwnProperty.call(r,i)&&Na(t[i],r[i]))}function Zg(){let e=new Map;function n(t){if(typeof t!="string")return te(t);let r=[...e.keys()].filter(o=>An(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set(t){let r=te(Gn(t)),o=e.get(r);return o!==void 0&&Na(o,t)?false:(e.set(r,t),true)},clear(t){let r=n(t);return r===void 0?false:e.delete(r)},isPinnedMessage(t,r){let o=n(t);return o!==void 0&&e.get(o)?.messageId===r},clearAll(){e.clear();}}}function Qg(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:te(r)}function t(r){if(typeof r!="string"){let s=te(r);if(e.has(s))return s;let i=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(i)?i:s}let o=[...e.entries()].filter(([s,i])=>i.conversationId===r||!s.startsWith("legacy:")&&An(s).conversationId===r).map(([s])=>s);if(o.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r}`);return o[0]}return {get:r=>{let o=t(r);return o===void 0?void 0:e.get(o)},getAll:()=>[...e.values()],set:r=>{if(r.conversationType!==void 0){e.delete(`legacy:${encodeURIComponent(r.conversationId)}`),e.set(n(r),r);return}let o=[...e.entries()].filter(([i,a])=>!i.startsWith("legacy:")&&a.conversationId===r.conversationId);if(o.length>1)throw new Error(`\u65E0\u7C7B\u578B ReadState \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r.conversationId}`);let s=o[0];if(s!==void 0){let[i,a]=s;e.set(i,{...r,conversationType:a.conversationType});return}e.set(n(r),r);},delete:r=>{let o=t(r);o!==void 0&&e.delete(o);},clear:()=>{e.clear();}}}function Jg(){let e=new Map;function n(t){if(typeof t!="string")return te(t);let r=[...e.keys()].filter(o=>An(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set:t=>{e.set(te(fn(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function qg(e){return e==="direct"?"local":"server"}function jg(e,n){let t=n?.includeMuted??false,r=0;for(let o of e)!t&&o.muted||(r+=o.unreadCount>0?o.unreadCount:o.manuallyUnread===true?1:0);return r}var Ty=50,Wg="im:deleted-conversations",Hg="im:terminated-conversations",Yg="im:membership-reset-sort-keys",Xg="im:pending-message-reactions",zg="im:transfer-status-records",vy=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function $g(e,n){return e===n?true:e===void 0||n===void 0?false:vy.every(t=>e[t]===n[t])}function eu(e,n){return e===n?true:e!==void 0&&n!==void 0&&e.role===n.role&&e.baseState===n.baseState&&e.resolvedState===n.resolvedState&&e.allMembersMuted===n.allMembersMuted&&e.currentUserMuted===n.currentUserMuted&&e.mutePeriod===n.mutePeriod}function bs(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&ma(e.lastMessageSummary,n.lastMessageSummary)&&e.timestamp===n.timestamp&&e.unreadCount===n.unreadCount&&(e.manuallyUnread??false)===(n.manuallyUnread??false)&&(e.mentionUnreadCount??0)===(n.mentionUnreadCount??0)&&e.pinned===n.pinned&&e.muted===n.muted&&e.topTime===n.topTime&&e.lastMessageSendState===n.lastMessageSendState&&e.readCursor===n.readCursor&&e.groupState===n.groupState&&e.channelState===n.channelState&&$g(e.channelPermissions,n.channelPermissions)&&eu(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function by(e){let n=Kg({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=Jg(),s=Qg(),i=Og(),a=Zg(),c=new Map,g=1,p=new Set,y=new Set,h=new Map,{storage:f}=e,m=Promise.resolve(),T=new Map,M=new Map,R=new Map,k=0,E=e.unreadMode??qg,N=new Set;function D(d={}){let l=Lg({storage:f,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:Pe,...d});return N.add(l),l}let w=D();function x(d={}){let l=D(d),u=false;return {window:l,dispose(){u||(u=true,l.reset(),N.delete(l));}}}function z(d){for(let l of N){let u=l.list().find(A=>A.id===d);if(u!==void 0)return u}}function K(d,l){let u=n.get(l);if(u?.conversationId===d.conversationId&&u.conversationType===d.conversationType)return u;for(let A of N){let _=A.list().find(U=>U.id===l&&U.conversationId===d.conversationId&&U.conversationType===d.conversationType);if(_!==void 0)return _}}function j(d){let l=new Map(n.getByConversation(d).map(u=>[u.id,u]));for(let u of N)if(de(u,d))for(let A of u.list())A.conversationType===d.conversationType&&A.conversationId===d.conversationId&&!l.has(A.id)&&l.set(A.id,A);return [...l.values()].sort((u,A)=>u.sortKey.localeCompare(A.sortKey))}function de(d,l){let u=d.info();return u.conversation===void 0?u.conversationId===l.conversationId:te(u.conversation)===te(l)}let re=false;function ce(d){return `${te(d.conversation)}\0${d.parentMessageId}`}function Ce(){if(f===void 0||re)return;let d=[...t.values()].flat();f.setMeta(Xg,d).catch(l=>ve("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",l));}async function ge(){if(f===void 0)return;let d=[...r.values()],l=m.then(()=>f.setMeta(zg,d));m=l.catch(()=>{});try{await l;}catch(u){throw ve("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",u),u}}function De(d,l){if(d===void 0||d.status===0&&l.status!==0)return l;if(l.status===0&&d.status!==0)return d;let u=d.occurredTime??0,A=l.occurredTime??0;return u!==A?A>u?l:d:l.status>d.status?l:d}function F(d){let l=d.body.transfer;if(d.contentType!=="transfer"||l===void 0)return d;let u=r.get(l.serialNumber);if(u===void 0||l.status!==0&&u.status===0)return d;let A={...l,status:u.status,...u.status===1&&u.occurredTime!==void 0?{receiveTime:u.occurredTime}:{},...u.status===2||u.status===3?{returnTime:u.occurredTime??l.returnTime}:{}};return l.status===A.status&&l.receiveTime===A.receiveTime&&l.returnTime===A.returnTime&&l.isRead===A.isRead?d:{...d,body:{transfer:Ms(l,A)}}}function V(d,l){let u=`${te(d)}\0${l}`;return t.delete(u)?(Ce(),true):false}function W(d){let l=`${te(d)}\0`,u=false;for(let A of t.keys())A.startsWith(l)&&(t.delete(A),u=true);return u&&Ce(),u}function L(d,l){let u=K(d.conversation,d.parentMessageId);if(u===void 0){let _=ce(d),U=t.get(_)??[];return U.some(J=>J.id===d.id)?"duplicate":(t.set(_,[...U,d]),Ce(),"pending")}if(u.recalled!==void 0||u.deletedForEveryone!==void 0)return "duplicate";let A=Xi(u.reactions,d,e.getSelfId?.()??"");return A===u.reactions?"duplicate":(on([{...u,reactions:A}],l),"applied")}function q(d,l,u){let A=K(d,l);if(A===void 0){let J=`${te(d)}\0${l}`,H=t.get(J);if(H===void 0)return false;let X=H.filter(oe=>oe.id!==u);return X.length===H.length?false:(X.length===0?t.delete(J):t.set(J,X),Ce(),true)}let _=zi(A.reactions,u,e.getSelfId?.()??"");if(_===A.reactions)return false;let U={...A};return _===void 0?delete U.reactions:U.reactions=_,on([U],"live"),true}function I(d,l){let u=ke(d),A=`${te(u)}\0${d.id}`,_=t.get(A);if(_!==void 0){t.delete(A),Ce();for(let U of _)L(U,l);}}function v(d){for(let l of [...t.values()]){let u=l[0];if(u===void 0)continue;let A=K(u.conversation,u.parentMessageId);A!==void 0&&(A.recalled!==void 0||A.deletedForEveryone!==void 0?V(u.conversation,u.parentMessageId):I(A,d));}}let S=0,C=new Map,P=new Map;function G(d){return te(d)}function O(d){return Q(d)||p.has(G(d))||p.has(d.conversationId)}function Q(d){return y.has(G(d))||y.has(d.conversationId)}function ie(d){let l=p.delete(G(d)),u=p.delete(d.conversationId);return l||u}function me(d){let l=ie(d),u=y.delete(G(d)),A=y.delete(d.conversationId);return {deleted:l,terminal:u||A}}function Be(d,l){if(l===""||d.contentType!=="system")return false;let u=d.body.system;return u?.targetUserIds?.includes(l)!==true?false:d.conversationType==="group"?u.eventType==="group_member_joined"||u.eventType==="group_member_invited":d.conversationType==="channel"&&(u.eventType==="channel_member_joined"||u.eventType==="channel_member_invited"||u.eventType==="channel_created")}function Pe(d){let l=ke(d);if(O(l))return false;if(l.conversationType!=="group")return true;let u=h.get(te(l));return u===void 0||d.sortKey>=u}function Ve(d){let l=te(d),u=(C.get(l)??0)+1;return C.set(l,u),u}function ve(d,l){e.emitter.emit({type:"error",error:{scope:"storage",message:d,cause:l}});}function b(d){e.emitter.emit({type:"session:updated",session:d,conversation:fn(d)});}let ee=new Set,le=Promise.resolve(),Re=0;function Fe(d){let l=Re===0?d():le.then(d),u=l.then(()=>{},()=>{});return ee.add(u),u.finally(()=>ee.delete(u)),l}function sd(d){Re+=1;let l=Promise.all([...ee]),u=le.then(()=>l).then(d);return le=u.then(()=>{},()=>{}),le.finally(()=>{Re-=1;}),u}function zu(d){let l=d.body.system;if(l?.pinnedMessageAction===void 0)return d;let{pinnedMessageAction:u,...A}=l;return {...d,body:{...d.body,system:A}}}function qu(d){f===void 0||re||d.length===0||Fe(()=>f.saveMessages(d.map(zu))).catch(l=>ve("\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function Bs(d){let{lastMessageSendState:l,manuallyUnread:u,...A}=d;return A}function ln(d){f===void 0||re||Fe(()=>f.saveSessions([Bs(d)])).catch(l=>ve("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",l));}function Fs(){f===void 0||re||f.setMeta(Wg,[...p]).catch(d=>ve("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function Vs(){f===void 0||re||f.setMeta(Hg,[...y]).catch(d=>ve("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function id(){f===void 0||re||f.setMeta(Yg,[...h.entries()]).catch(d=>ve("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",d));}function ad(d){f===void 0||re||Fe(()=>f.saveReadState(d)).catch(l=>ve("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",l));}function ju(d){f===void 0||re||f.savePinnedMessage(d).catch(l=>ve("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function $u(d){f===void 0||re||f.removePinnedMessage(d).catch(l=>ve("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",l));}function Ps(d){if(te(d),d.conversationType==="supergroup")throw new Error("supergroup \u8349\u7A3F\u672A\u5B9E\u73B0\uFF0C\u4E0D\u5F97 fallback \u5230\u5176\u4ED6\u4F1A\u8BDD\u7C7B\u578B")}function Tr(d){return Ps(d),Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId})}function em(d){return i.get(Tr(d))}function nm(){let d=[],l=new Set;for(let u of o.getAll()){let A=fn(u);l.add(te(A)),d.push({...u,draft:i.get(A)});}for(let u of i.getAll())l.has(te(u.ref))||d.push({id:u.ref.conversationId,type:u.ref.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,draft:u});return Da(d)}function ws(d,l,u){if(Ps(d),typeof l.text!="string")throw new TypeError("\u8349\u7A3F text \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(l.attachments!==void 0&&l.attachments.length>0)throw new Error("\u8349\u7A3F\u9644\u4EF6\u5C1A\u672A\u652F\u6301\uFF1Aattachments \u53EA\u63A5\u53D7\u7A7A\u96C6\u5408");if(l.mentions!==void 0&&!Array.isArray(l.mentions))throw new TypeError("\u8349\u7A3F mentions \u5FC5\u987B\u662F\u6570\u7EC4");let A=(l.mentions??[]).map(U=>{if(typeof U.userId!="string"||U.userId.trim()===""||typeof U.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:U.userId,displayName:U.displayName})}),_=Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId});return Object.freeze({ref:_,text:l.text,mentions:Object.freeze(A),...l.replyToMessageId===void 0?{}:{replyToMessageId:l.replyToMessageId},attachments:Object.freeze([]),updatedAt:u})}function dd(d,l){return d.text===l.text&&d.replyToMessageId===l.replyToMessageId&&d.mentions.length===l.mentions.length&&d.mentions.every((u,A)=>{let _=l.mentions[A];return _!==void 0&&u.userId===_.userId&&u.displayName===_.displayName})}function Os(d,l){Ps(d);let u=te(d),_=(T.get(u)??Promise.resolve()).catch(()=>{}).then(l),U=_.then(()=>{},()=>{});return T.set(u,U),U.finally(()=>{T.get(u)===U&&T.delete(u);}),_}async function tm(d,l){let u=Tr(d),A=te(u),_=ws(u,l,0),U=k,J=R.get(A)??0;return await Os(u,async()=>{let H=i.get(u),X=Math.max(Date.now(),(M.get(A)??H?.updatedAt??0)+1),oe=ws(u,_,X);if(H!==null&&dd(H,oe))return H;if(f!==void 0&&await f.saveDraft(oe),U!==k||J!==(R.get(A)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u5199\u5165\u56DE\u704C\u5185\u5B58");return i.set(oe),M.set(A,X),e.emitter.emit({type:"draft:updated",conversation:oe.ref,draft:oe}),oe})}async function cd(d,l){let u=Tr(d),A=te(u);if(l!==void 0&&(!Number.isFinite(l)||l<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${l}`);let _=k,U=R.get(A)??0;return await Os(u,async()=>{let J=i.get(u);if(J===null||l!==void 0&&J.updatedAt!==l)return false;if(f!==void 0&&await f.deleteDraft(u),_!==k||U!==(R.get(A)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u6E05\u7406\u56DE\u704C\u5185\u5B58");return i.delete(u),e.emitter.emit({type:"draft:cleared",conversation:u}),true})}async function rm(d){await cd(d);}async function om(d,l){return await cd(d,l)}function sm(d){let l=Tr(d),u=te(l);R.set(u,(R.get(u)??0)+1),i.get(l)!==null&&(i.delete(l),e.emitter.emit({type:"draft:cleared",conversation:l})),Os(l,async()=>{f!==void 0&&await f.deleteDraft(l);}).catch(A=>ve("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",A));}async function im(){for(k+=1;T.size>0;)await Promise.all([...T.values()]);}function am(d){let l=K(Gn(d),d.messageId);return l===void 0?d:{...d,preview:{state:"ready",message:l}}}function dm(d,l){let u=am(d);a.set(u)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:u.conversationId,conversation:{conversationType:u.conversationType,conversationId:u.conversationId},pinnedMessage:u,reason:l}),ju(u));}function cm(d,l){let u=typeof d=="string"?d:d.conversationId,A=a.get(d);if(!a.clear(d))return;let _=typeof d=="string"?A===void 0?void 0:Gn(A):d;if(_===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${u}`);e.emitter.emit({type:"pinned-message:updated",conversationId:u,conversation:_,pinnedMessage:null,reason:l}),$u(d);}function Ks(d,l,u,A){let _=o.get(d);if(_===void 0)return;let U={..._,title:l,avatar:u??_.avatar,...A!==void 0?{muted:A}:{}};bs(_,U)||(o.set(U),b(U),ln(U));}async function Ls(d,l){let{conversationId:u,conversationType:A}=d,_=te(d),U=l?.force===true;if(!U&&P.has(_))return false;let J=S,H=Ve(d);U&&P.set(_,H);let{profile:X,channelProfile:oe}=e,Z=3,$=U?{forceRefresh:true}:void 0;try{if(A==="direct"){if(X===void 0)return !1;let ne=await X.getUserProfile(u,$);if(J!==S||H!==C.get(_))return !1;ne!==null&&Ks(d,ne.remark??ne.nickname,ne.avatar,ne.muted);}else if(A==="group"){if(X===void 0)return !1;let ne=await X.getGroupProfile(u,$);if(J!==S||H!==C.get(_))return !1;ne!==null&&(Ks(d,ne.name,ne.avatar,ne.muted),ne.status===Z&&Xs({conversationType:"group",conversationId:u},"group_dismissed"),U&&e.emitter.emit({type:"profile:updated",profileType:"group",id:u}));}else if(A==="channel"){if(oe===void 0)return !1;let ne=await oe.getProfile(u,$);if(J!==S||H!==C.get(_))return !1;if(ne!==null){Ks(d,ne.name,ne.avatar,ne.muted);let Me=o.get(d)?.channelState,Ie=Me==="left"||Me==="removed"||Me==="dismissed",be=ne.channelState==="left"||ne.channelState==="removed"||ne.channelState==="dismissed";if(l?.allowChannelRecovery===!0&&Ie&&Me!=="dismissed"&&ne.channelState==="active")return Ys(u,"active",void 0,{permissions:ne.permissions,...ne.accessSnapshot===void 0?{}:{snapshot:ne.accessSnapshot}}),U&&e.emitter.emit({type:"channel-profile:updated",channelId:u,conversation:{conversationType:"channel",conversationId:u}}),!0;let Te=Ie&&(!be||Me==="dismissed"||ne.channelState!=="dismissed");if(be&&!Te)return Xs({conversationType:"channel",conversationId:u},`channel_${ne.channelState}`),U&&e.emitter.emit({type:"channel-profile:updated",channelId:u,conversation:{conversationType:"channel",conversationId:u}}),!1;if(!Te){let Qe=ne.permissions.sendMessages?void 0:`channel_${ne.channelState}`;Ys(u,ne.channelState,Qe,{permissions:ne.permissions,...ne.accessSnapshot===void 0?{}:{snapshot:ne.accessSnapshot}});}U&&e.emitter.emit({type:"channel-profile:updated",channelId:u,conversation:{conversationType:"channel",conversationId:u}});}}return !1}catch(ne){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:ne}}),false}finally{U&&P.get(_)===H&&P.delete(_);}}function lm(d,l){Ls({conversationType:l,conversationId:d},{force:true});}function gm(d){return Ls({conversationType:"channel",conversationId:d},{force:true,allowChannelRecovery:true})}function um(d,l){let u=o.get(d);if(u===void 0)return;let A={...u,...l.title!==void 0?{title:l.title}:{},...l.avatar!==void 0?{avatar:l.avatar}:{}};bs(u,A)||(o.set(A),b(A),ln(A));}function Zs(d){return Ca(d,e.getSelfId?.()??"")}function Qs(d){let l=s.get(d);return l===void 0||l.readCursor===""?void 0:(typeof d=="string"?n.get(l.readCursor):K(d,l.readCursor))?.sortKey??l.readCursorSortKey}function ld(d,l){let u=0;for(let A of n.getByConversation(d))wn(A)&&Zs(A)&&(l===void 0||A.sortKey>l)&&(u+=1);return u}function gd(d){let l=e.getSelfId?.();if(l===void 0||l===""||d.senderId===l)return false;let{mention:u}=d;return u===void 0?false:u.atAll||u.atUserIds.includes(l)}function mm(d,l){let u=0;for(let A of n.getByConversation(d))gd(A)&&(l===void 0||A.sortKey>l)&&(u+=1);return u}function En(d,l=true){let u=d.conversationType===void 0?o.get(d.conversationId):void 0,A=d.conversationType===void 0&&u!==void 0?{...d,conversationType:u.type}:d,_=A.conversationType===void 0?A.conversationId:{conversationType:A.conversationType,conversationId:A.conversationId},U=s.get(_);if(s.set(A),l&&ad(A),U===void 0||U.readCursor!==A.readCursor||U.unreadCount!==A.unreadCount||(U.manuallyUnread??false)!==(A.manuallyUnread??false)){if(A.conversationType===void 0){e.emitter.emit({type:"error",error:{scope:"storage",message:`\u5DF2\u8BFB\u72B6\u6001\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF0C\u62D2\u7EDD\u53D1\u5E03 read:updated\uFF08conversationId=${A.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:A.conversationId,conversation:{conversationType:A.conversationType,conversationId:A.conversationId},readCursor:A.readCursor,unreadCount:A.unreadCount,...A.manuallyUnread===true?{manuallyUnread:true}:{}});}}function vr(d,l,u,A){let _=o.get(d),U=A??s.get(d);if(l===void 0){if(_===void 0)return;let Z={..._,...u==="clear"?{lastMessagePreview:"",timestamp:0}:{},...U===void 0?{}:{unreadCount:U.unreadCount,manuallyUnread:U.manuallyUnread,mentionUnreadCount:U.mentionUnreadCount,readCursor:U.readCursor||_.readCursor}};return u==="clear"&&(delete Z.lastMessageSummary,delete Z.lastMessageSenderId,delete Z.lastMessageSystemEvent,delete Z.lastMessageSystemTargetsSelf,delete Z.lastMessageMention,delete Z.lastMessageRecalled,delete Z.lastMessageDeletedForEveryone,delete Z.lastMessageSendState),Z}let J=U?.unreadCount??_?.unreadCount??0,H=U===void 0?_?.manuallyUnread:U.manuallyUnread,X=U?.mentionUnreadCount??_?.mentionUnreadCount??0,oe=pa(l,{unreadCount:J,mentionUnreadCount:X,selfId:e.getSelfId?.()});return _===void 0?{...oe,...H===void 0?{}:{manuallyUnread:H},readCursor:(U?.readCursor??"")||oe.readCursor}:{...oe,title:_.title||oe.title,avatar:_.avatar??oe.avatar,pinned:_.pinned,muted:_.muted,topTime:_.topTime,...H===void 0?{}:{manuallyUnread:H},readCursor:(U?.readCursor??"")||_.readCursor,groupState:_.groupState,channelState:_.channelState,channelPermissions:_.channelPermissions,channelAccessSnapshot:_.channelAccessSnapshot,sendDisabledReason:_.sendDisabledReason}}function Js(d,l){if(d===void 0)return;let u=o.get({conversationType:d.type,conversationId:d.id});u!==void 0&&bs(u,d)||(o.set(d),b(d),l&&ln(d),d.title===""&&Ls({conversationType:d.type,conversationId:d.id}));}function Mn(d){let l=n.getByConversation(d).findLast(wn);Js(vr(d,l,"preserve"),true);}function ud(d){let l=[],u=Pn(d,e.getSelfId?.()??"").map(H=>{let X={...H,sortKey:ye(H.createdAt,H.id)};if(X=_n(X),X.conversationType==="group"&&X.contentType==="text"){let oe=Hn(X.body.text??"",X.mention);oe!==void 0&&(X.mention=oe);}return F(X)}),A=new Map;for(let H of u){if(H.contentType!=="transfer"||H.body.transfer===void 0)continue;let X=ke(H);A.set(te(X),X);}let _=[...A.values()].flatMap(H=>j(H)),U=ya(_,u),J=new Set(u.map(H=>H.id));for(let H of U){let{message:X,isNew:oe,changed:Z}=n.upsert(H);oe?e.emitter.emit({type:"message:received",message:X,conversation:ke(X),source:"offline",channelLifecycleEffects:false}):Z&&e.emitter.emit({type:"message:updated",message:X,conversation:ke(X),source:"offline",channelLifecycleEffects:false}),J.has(X.id)&&l.push(X);}return l}function pm(d){let l={...d,sortKey:ye(d.createdAt,d.id)};if(l=_n(l),l.conversationType==="group"&&l.contentType==="text"){let u=Hn(l.body.text??"",l.mention);u!==void 0&&(l.mention=u);}return F(l)}async function fm(d,l){let u=K(d,l);if(u!==void 0||f===void 0)return u;try{let A=await f.getMessage(d,l);return A===null||te(ke(A))!==te(d)?void 0:pm(A)}catch(A){ve("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",A);return}}function on(d,l,u={}){let A=e.getSelfId?.()??"";if(l==="live"){let pe=false,Se=false;for(let Je of d){let Oe=ke(Je);if(Be(Je,A)){let He=me(Oe);He.deleted&&(pe=true),He.terminal&&(Oe.conversationType==="group"?(h.set(te(Oe),Je.sortKey),id()):Oe.conversationType==="channel"&&h.delete(te(Oe)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:Oe,data:{source:l,eventType:Je.body.system?.eventType,groupHistoryLowerBoundApplied:Oe.conversationType==="group"}})),Se=true);}else (A===""||Je.senderId!==A)&&!Q(Oe)&&ie(Oe)&&(pe=true);}pe&&Fs(),Se&&Vs();}let U=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,J=(pe,Se)=>{if(U===void 0)return;let Je=ke(pe),Oe=te(Je),He=U.get(Oe)??{ref:Je,tombstone:0,groupLowerBound:0};Se==="tombstone"?He.tombstone+=1:He.groupLowerBound+=1,U.set(Oe,He);},H=p.size>0||y.size>0?d.filter(pe=>{let Se=!O(ke(pe));return Se||J(pe,"tombstone"),Se}):d,X=h.size>0?H.filter(pe=>{let Se=Pe(pe);return Se||J(pe,"groupLowerBound"),Se}):H;for(let pe of U?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:pe.ref,data:{source:l,tombstoneDroppedCount:pe.tombstone,groupHistoryLowerBoundDroppedCount:pe.groupLowerBound}}));let oe=new Map,Z=new Map,$=new Map,ne=new Set,Me=Pn(X,A).map(F),Ie=new Map;for(let pe of Me){if(pe.contentType!=="transfer"||pe.body.transfer===void 0)continue;let Se=ke(pe);Ie.set(te(Se),Se);}let be=[...Ie.values()].flatMap(pe=>j(pe)),Te=ya(be,Me),Qe=[];for(let pe of Te){let{message:Se,isNew:Je,changed:Oe}=n.upsert(pe,{authoritativeFailure:u.authoritativeOutboxFailure===true});if(!Je&&!Oe)continue;for(let sn of N)sn.applyIncoming([Se]);Je?e.emitter.emit({type:"message:received",message:Se,conversation:ke(Se),source:l,channelLifecycleEffects:u.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:Se,conversation:ke(Se),source:l,channelLifecycleEffects:u.applyChannelLifecycleEffects===true}),Qe.push(Se);let He=ke(Se);if(oe.set(te(He),He),Je&&u.backfillOnly!==true){let sn=te(He);Zs(Se)&&ne.add(sn);let at=Qs(He),Cd=at===void 0||Se.sortKey>at;if(wn(Se)&&Cd&&Zs(Se)&&Se.recalled===void 0&&Se.deletedForEveryone===void 0){let Sd=E(Se.conversationType);(Sd==="local"||Sd==="server"&&l==="live")&&Z.set(sn,(Z.get(sn)??0)+1);}Cd&&gd(Se)&&Se.recalled===void 0&&Se.deletedForEveryone===void 0&&$.set(sn,($.get(sn)??0)+1);}}for(let pe of oe.values()){if(u.backfillOnly===true)continue;let Se=te(pe),Je=Z.get(Se)??0,Oe=$.get(Se)??0,He=ne.has(Se);if(Je>0||Oe>0||He){let sn=s.get(pe)??{...pe,readCursor:"",unreadCount:0},at={...sn,unreadCount:sn.unreadCount+Je,mentionUnreadCount:(sn.mentionUnreadCount??0)+Oe};He&&delete at.manuallyUnread,En(at);}Mn(pe);}qu(Qe);for(let pe of Qe)pe.recalled===void 0&&pe.deletedForEveryone===void 0?I(pe,l):V(ke(pe),pe.id);}function md(d,l,u=Date.now()){let A={conversationType:"direct",conversationId:d},_=K(A,l),U=n.getByConversation(A).findLast(X=>X.body.system?.eventType==="direct_contact_established");if(_!==void 0&&U!==void 0&&U.createdAt>=_.createdAt)return;let J=`${l}:contact-required`;if(n.get(J)!==void 0)return;let H={id:J,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[d],action:{type:"request-contact",userId:d}}},createdAt:u,sortKey:ye(u,J),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};on([H],"live");}function Im(d,l,u=Date.now()){let A=`${l}:message-refused`;if(n.get(A)!==void 0)return;let _=n.get(l),U=_?.conversationType==="direct"&&_.conversationId===d?_.createdAt:u,J={id:A,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[d]}},createdAt:U,sortKey:ye(U,A),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};on([J],"live");}function ym(d,l=Date.now()){let u=en(),A={id:u,conversationId:d.conversationId,conversationType:"direct",senderId:d.senderId,contentType:"text",body:{text:d.text},createdAt:l,sortKey:ye(l,u),status:"failed",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},failure:{code:33281,reason:"rejected",displayCode:"contactRequired",retryable:false},...d.refMessageId===void 0?{}:{refMessageId:d.refMessageId}};return on([A],"live"),md(d.conversationId,u,l+1),A}function Cm(d,l){return `${d.trim()===""?`contact-established:${l}`:d}:contact-established`}function Sm(d,l,u=Date.now(),A=u){let _=Cm(l,A);if(n.get(_)!==void 0)return;let U={id:_,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[d]}},createdAt:u,sortKey:ye(u,_),status:"sent",receipt:"unread",encryption:{encrypted:false}};on([U],"live");}let it=new Map,Ws=0;function Am(d,l,u=Date.now()){let A=it.get(d);if(A!==void 0)return A;let _={conversationType:"direct",conversationId:d},U=Ws,J=(async()=>{let H=n.getByConversation(_).filter(Te=>{let Qe=Te.body.system?.eventType;return Qe==="direct_contact_required"||Qe==="direct_contact_established"}),X=H.filter(Te=>Te.body.system?.eventType==="direct_contact_required"),oe=X.at(-1)?.createdAt??0,Z=H.findLast(Te=>Te.body.system?.eventType==="direct_contact_established")?.createdAt??0,$=Z>=oe&&Z>0;if(X.length===0&&$)return;let ne=Qs(_);for(let Te of X)try{let Qe=await Id(_,Te.id),pe=K(_,Te.id);!Qe&&pe?.body.system?.eventType==="direct_contact_required"&&e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u672A\u80FD\u5220\u9664",cause:{conversation:_,messageId:Te.id}}});}catch(Qe){e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u5220\u9664\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u5931\u8D25",cause:{conversation:_,messageId:Te.id,error:Qe}}});}if(U!==Ws)return;let Me=s.get(_);if(Me!==void 0&&(En({...Me,...Me.readCursorSortKey===void 0&&ne!==void 0?{readCursorSortKey:ne}:{},unreadCount:ld(_,ne)}),Mn(_)),$)return;let Ie=Number.isFinite(u)&&u>0?u:Date.now(),be=Math.max(Ie,oe+1);Sm(d,l,be,Ie);})().finally(()=>{it.get(d)===J&&it.delete(d);});return it.set(d,J),J}function Rm(d,l){let u=typeof d=="string"?n.get(l)??z(l):K(d,l);if(u===void 0)return;let A=typeof d=="string"?ke(u):d,_=typeof d=="string"?d:d.conversationId;if(u.conversationId!==_||u.conversationType!==A.conversationType)return;let U=Qs(A);if(U!==void 0&&U>=u.sortKey){typeof d!="string"&&pd(d);return}let J={...A,readCursor:l,readCursorSortKey:u.sortKey,unreadCount:ld(A,u.sortKey),mentionUnreadCount:mm(A,u.sortKey)};return En(J),Mn(A),J}function Em(d){let l=o.get(d);if(l===void 0)return false;let u=s.get(d)??{...d,readCursor:l.readCursor??"",unreadCount:l.unreadCount,mentionUnreadCount:l.mentionUnreadCount};return u.unreadCount>0||u.manuallyUnread===true?false:(En({...u,manuallyUnread:true}),Mn(d),true)}function pd(d){let l=s.get(d);if(l?.manuallyUnread!==true)return false;let u={...l};return delete u.manuallyUnread,En(u),Mn(d),true}function fd(d,l,u,A,_=false){let U=typeof d=="string"?d:d.conversationId,J=o.get(d),H=typeof d=="string"?J===void 0?void 0:fn(J):d;if(J!==void 0&&E(J.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${U}, type=${J.type}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}if(!Number.isFinite(l)){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u6536\u5230\u975E\u6CD5\u672A\u8BFB\u6570\uFF08conversationId=${U}, count=${l}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}_||c.delete(U);let X=s.get(d),oe=X?.readCursor??"",Z=X?.readCursorSortKey,$=u===void 0||u===""?void 0:H===void 0?n.get(u)??z(u):K(H,u);$!==void 0&&$.conversationId===U&&(Z===void 0||$.sortKey>Z)&&(oe=$.id,Z=$.sortKey),A!==void 0&&(oe=A),En({...H===void 0?{conversationId:U}:H,readCursor:oe,readCursorSortKey:Z,unreadCount:Math.max(0,Math.floor(l)),...l>0?{}:{manuallyUnread:X?.manuallyUnread},mentionUnreadCount:l===0?0:X?.mentionUnreadCount}),Mn(d);}function Hs(d){let l=c.get(d.conversation.conversationId);return l?.handle.transactionId===d.transactionId?l:void 0}function Mm(d){let l=d.conversationId,u=o.get(d);if(u===void 0||u.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${l}, type=${u?.type??"missing"}\uFF09`);if(c.has(l))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${l}\uFF09`);let A={conversation:d,transactionId:g++},U=s.get(d)??{conversationId:l,readCursor:u.readCursor??"",unreadCount:u.unreadCount,...u.mentionUnreadCount===void 0?{}:{mentionUnreadCount:u.mentionUnreadCount}};return c.set(l,{handle:A,baseReadState:{...U},steps:[],committedThrough:-1}),A}function hm(d,l,u){let A=d.conversation,_=A.conversationId,U=Hs(d);if(U===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${_}\uFF09`);let J=K(A,l);if(J===void 0||J.conversationId!==_||J.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${_}, messageId=${l}\uFF09`);if(J.extensions?.historyCursor!==u)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${_}, messageId=${l}\uFF09`);if(U.steps.at(-1)?.readCursor===u)return;let X=s.get(A)??(U.steps.length===0?U.baseReadState:void 0);U.steps.push({readCursor:u,messageId:l,sortKey:J.sortKey,clearedUnreadCount:X?.unreadCount??0,clearedMentionUnreadCount:X?.mentionUnreadCount??0}),fd(A,0,l,u,true);}function Tm(d,l){let u=Hs(d);if(u===void 0)return false;let A=u.steps.findLastIndex(_=>_.readCursor===l);if(A<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${d.conversation.conversationId}, cursor=${l}\uFF09`);return u.committedThrough=Math.max(u.committedThrough,A),u.committedThrough===u.steps.length-1&&c.delete(d.conversation.conversationId),true}function vm(d){let l=Hs(d);if(l===void 0)return false;let u=d.conversation,A=u.conversationId,_=s.get(u),U=l.committedThrough>=0?l.steps[l.committedThrough]:void 0,J=U===void 0?l.baseReadState:void 0,H=_?.unreadCount??0,X=_?.mentionUnreadCount??0;for(let $=l.committedThrough+1;$<l.steps.length;$+=1)H+=l.steps[$].clearedUnreadCount,X+=l.steps[$].clearedMentionUnreadCount;let oe=J?.mentionUnreadCount!==void 0||(_?.mentionUnreadCount??0)>0||l.steps.some($=>$.clearedMentionUnreadCount>0),Z={conversationId:A,conversationType:"channel",readCursor:U?.readCursor??J?.readCursor??"",readCursorSortKey:U?.sortKey??J?.readCursorSortKey,unreadCount:H,...oe?{mentionUnreadCount:X}:{}};return c.delete(A),En(Z),Mn(u),true}function bm(d,l,u){let A={conversationType:"group",conversationId:d},_=o.get(A);if(_===void 0){let J={id:d,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:l,sendDisabledReason:u};o.set(J),b(J),ln(J);return}if(_.groupState===l&&_.sendDisabledReason===u)return;let U={..._,groupState:l,sendDisabledReason:u};o.set(U),b(U),ln(U);}function Ys(d,l,u,A){let _={conversationType:"channel",conversationId:d},U=te(_);if(O(_))return;let J=o.get(_);if(J===void 0){Ve(_),P.delete(U);let Z={id:d,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:l,channelPermissions:A?.permissions,channelAccessSnapshot:A?.snapshot,sendDisabledReason:u};o.set(Z),b(Z),ln(Z);return}if(J.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${d} \u7C7B\u578B\u4E3A ${J.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);Ve(_),P.delete(U);let H=A?.permissions,X=A?.snapshot;if(J.channelState===l&&J.sendDisabledReason===u&&$g(J.channelPermissions,H)&&eu(J.channelAccessSnapshot,X))return;let oe={...J,channelState:l,channelPermissions:H,channelAccessSnapshot:X,sendDisabledReason:u};o.set(oe),b(oe),ln(oe);}function Dm(d,l){let u=o.get(d);if(u===void 0||u.pinned===l)return;let A={...u,pinned:l,topTime:l?Date.now():void 0};o.set(A),b(A),ln(A);}function Nm(d,l){let u=o.get(d);if(u===void 0||u.muted===l)return;let A={...u,muted:l};o.set(A),b(A),ln(A);}async function Id(d,l){if(l.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let u=n.get(l),A=u!==void 0&&u.conversationType===d.conversationType&&u.conversationId===d.conversationId,_=n.getByConversation(d).filter($=>$.id!==l),U=vr(d,_.at(-1),"clear"),J=U===void 0?void 0:Bs(U);function H($){return $!==void 0&&(u===void 0||!Yn(u,$))}let X=f===void 0?{deleted:false,superseded:false}:await sd(async()=>H(n.get(l))?{deleted:false,superseded:true}:{deleted:await f.deleteMessage(d,l,J),superseded:false});if(X.superseded||H(n.get(l)))return false;let oe=A&&n.delete(d,l),Z=false;for(let $ of N)Z=$.removeMessage(d,l)||Z;return !X.deleted&&!oe&&!Z?false:(Js(U,false),V(d,l),e.emitter.emit({type:"message:removed",conversation:{...d},messageId:l,scope:"local-only"}),true)}async function _m(d){let l={...d},u=new Map(n.getByConversation(l).map(Z=>[Z.id,Z])),A=o.get(l),_=s.get(l),U=_===void 0&&A===void 0?void 0:{...l,readCursor:_?.readCursor??A?.readCursor??"",..._?.readCursorSortKey===void 0?{}:{readCursorSortKey:_.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},J=vr(l,void 0,"clear",U);if(f!==void 0){if(f.clearConversationHistory===void 0)throw new Error("\u5F53\u524D storage \u672A\u5B9E\u73B0 clearConversationHistory\uFF0C\u62D2\u7EDD\u975E\u539F\u5B50\u6E05\u7A7A\u672C\u673A\u4F1A\u8BDD\u5386\u53F2");await sd(()=>f.clearConversationHistory(l,J===void 0?void 0:Bs(J),U));}let H=s.get(l),X=H?.conversationType===_?.conversationType&&H?.conversationId===_?.conversationId&&H?.readCursor===_?.readCursor&&H?.readCursorSortKey===_?.readCursorSortKey&&H?.unreadCount===_?.unreadCount&&H?.mentionUnreadCount===_?.mentionUnreadCount;U!==void 0&&X&&En(U,false);for(let[Z,$]of u){let ne=n.get(Z);ne!==void 0&&Yn($,ne)&&n.delete(l,Z);}let oe=n.getByConversation(l);for(let Z of N)Z.clearConversation(l)&&Z.applyIncoming(oe);W(l),Js(vr(l,oe.at(-1),"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:l,scope:"local-only"});}function yd(d,l={}){let u=typeof d=="string"?d:d.conversationId,A=o.get(d),_=a.get(d),U=typeof d=="string"?A!==void 0?{conversationType:A.type,conversationId:u}:_===void 0?void 0:Gn(_):d;if(U===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${u}`);let J=n.getByConversation(U).length;sm(U),W(U),o.delete(d),s.delete(d),n.deleteByConversation(d),a.clear(d);let H=G(U);if(l.terminal===true){y.add(H);let X=h.delete(H);p.delete(H),p.delete(u),X&&id(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:U,data:{reason:l.terminalReason??"membership-terminated",removedMessageCount:J}}));}else p.add(H);for(let X of N)de(X,U)&&X.reset();e.emitter.emit({type:"session:removed",conversationId:u,conversation:U}),Fs(),l.terminal===true&&Vs(),f!==void 0&&(f.deleteConversationMessages(U).catch(X=>ve("\u5220\u4F1A\u8BDD\u6D88\u606F\u5931\u8D25",X)),f.deleteSession(U).catch(X=>ve("\u5220\u4F1A\u8BDD\u5931\u8D25",X)),f.deleteReadState(U).catch(X=>ve("\u5220\u5DF2\u8BFB\u6001\u5931\u8D25",X)),f.removePinnedMessage(U).catch(X=>ve("\u5220\u4F1A\u8BDD\u7F6E\u9876\u6D88\u606F\u5931\u8D25",X)));}function Gm(d){yd(d);}function Xs(d,l){yd(d,{terminal:true,terminalReason:l});}function Um(d){let l=fn(d);if(te(l),l.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let u=o.get(l);if(u!==void 0)return u;let A={...d,id:l.conversationId,type:l.conversationType,...d.channelPermissions===void 0?{}:{channelPermissions:{...d.channelPermissions}},...d.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...d.channelAccessSnapshot}},...d.extensions===void 0?{}:{extensions:{...d.extensions}}},_=me(l);return _.deleted&&Fs(),_.terminal&&Vs(),o.set(A),b(A),ln(A),A}function km(d){return jg(o.getAll(),d)}async function xm(){if(f!==void 0){re=true;try{let d=await f.getMeta(Wg);if(d!==null)for(let Z of d)p.add(Z);let l=await f.getMeta(Hg);if(l!==null)for(let Z of l)y.add(Z);let u=await f.getMeta(Yg);if(u!==null)for(let[Z,$]of u)typeof Z=="string"&&typeof $=="string"&&h.set(Z,$);let A=await f.getMeta(Xg);if(A!==null)for(let Z of A){let $=ce(Z);t.set($,[...t.get($)??[],Z]);}let _=await f.getMeta(zg);if(Array.isArray(_))for(let Z of _){if(typeof Z!="object"||Z===null)continue;let $=Reflect.get(Z,"serialNumber"),ne=Reflect.get(Z,"status"),Me=Reflect.get(Z,"occurredTime");typeof $!="string"||$.trim()===""||ne!==0&&ne!==1&&ne!==2&&ne!==3||Me!==void 0&&(typeof Me!="number"||!Number.isFinite(Me)||Me<=0)||r.set($,{serialNumber:$,status:ne,...Me===void 0?{}:{occurredTime:Me}});}let U=await f.getPinnedMessages();for(let Z of U)O({conversationType:Z.conversationType,conversationId:Z.conversationId})||a.set(Z)&&e.emitter.emit({type:"pinned-message:updated",conversationId:Z.conversationId,conversation:Gn(Z),pinnedMessage:Z,reason:"hydrate"});let J=(await f.getSessions()).filter(Z=>!O({conversationType:Z.type,conversationId:Z.id}));for(let Z of J){let $=fn(Z),ne=o.get($);o.set(Z),(ne===void 0||!bs(ne,Z))&&b(Z);}let H=await f.getReadStates();for(let Z of H)s.set(Z);let X=k,oe=await f.getDrafts();if(X!==k)return;for(let Z of oe){if(!Number.isFinite(Z.updatedAt)||Z.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${Z.updatedAt}`);let $=ws(Z.ref,Z,Z.updatedAt);if(O($.ref)){try{await f.deleteDraft($.ref);}catch(Ie){ve("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",Ie);}continue}let ne=te($.ref);M.set(ne,Math.max(M.get(ne)??0,$.updatedAt));let Me=i.get($.ref);Me!==null&&Me.updatedAt===$.updatedAt&&dd(Me,$)||(i.set($),e.emitter.emit({type:"draft:updated",conversation:$.ref,draft:$}));}for(let Z of J){let $=fn(Z),ne=(await f.getMessages($,{limit:Ty})).filter(be=>te(ke(be))===te($)).filter(Pe),Me=[],Ie=ne.map(be=>{let Te=Ia(_n(be));return Te!==be&&Me.push(Te),Te});if(ud(Ie),Me.length>0)try{await f.saveMessages(Me);}catch(be){ve("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",be);}Mn($);}}catch(d){ve("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",d);}finally{re=false,v("offline");}}}async function Bm(d,l){if(f===void 0)return [];try{let u=await f.getMessages(d,l),A=typeof d=="string"?u.filter(Pe):u.filter(J=>te(ke(J))===te(d)).filter(Pe),_=re;re=!0;let U;try{U=ud(A);}finally{re=_;}return re||v("offline"),U.map(J=>K(ke(J),J.id)??J)}catch(u){return ve("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",u),[]}}function Fm(d,l){let u=l?.match(Dr(d));return {message:d,ranges:u?.ranges.map(({start:A,end:_})=>[A,_])??[]}}async function Vm(d,l){let u=l.keyword?.trim()??"",A=l.contentTypes;if(u===""&&(A===void 0||A.length===0))return {results:[],exhausted:true};let _=u===""?void 0:await $s(u),U=Ie=>{let be=A===void 0||A.includes(Ie.contentType),Te=_===void 0||_.match(Dr(Ie))!==null;return be&&Te},J=(Ie,be)=>Ie.sortKey<be.sortKey?1:Ie.sortKey>be.sortKey?-1:0,H=Ie=>Fm(Ie,_),X=()=>{let Ie=n.getByConversation(d).filter(U).sort(J),Te=(l.beforeSortKey===void 0?Ie:Ie.filter(pe=>pe.sortKey<l.beforeSortKey)).slice(0,l.limit),Qe=Te.length<l.limit;return {results:Te.map(H),exhausted:Qe,...Qe?{}:{nextBeforeSortKey:Te.at(-1)?.sortKey}}};if(f===void 0)return X();let oe;try{oe=await f.searchMessages(d,{...l.keyword!==void 0?{keyword:l.keyword}:{},...A!==void 0?{contentTypes:A}:{},limit:l.limit,...l.beforeSortKey!==void 0?{beforeSortKey:l.beforeSortKey}:{}});}catch(Ie){throw ve("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",Ie),Ie}let Z=oe.exhausted?void 0:oe.nextBeforeSortKey,$=new Map(n.getByConversation(d).map(Ie=>[Ie.id,Ie])),ne=new Map;for(let Ie of oe.items){let be=_n(Ie);te(ke(be))===te(d)&&ne.set(be.id,$.get(be.id)??be);}for(let Ie of $.values()){let be=l.beforeSortKey===void 0||Ie.sortKey<l.beforeSortKey,Te=Z===void 0||Ie.sortKey>=Z;be&&Te&&U(Ie)&&ne.set(Ie.id,Ie);}return {results:[...ne.values()].filter(U).sort(J).map(H),exhausted:oe.exhausted,...oe.exhausted?{}:{nextBeforeSortKey:oe.nextBeforeSortKey}}}function Pm(d,l,u){let A=K(d,l);A!==void 0&&on([{...A,recalled:u,body:{}}],"live");}function wm(d,l,u){let A=K(d,l);A===void 0||A.conversationType!=="channel"||on([{...A,recalled:void 0,deletedForEveryone:u,body:{}}],"live");}function Om(d,l,u,A){let _=K(d,l);if(_===void 0)return;let U={..._,body:u,edited:true};A!==void 0?U.mention=A:delete U.mention,on([U],"live");}async function Km(d,l,u){let A=r.get(d),_={serialNumber:d,status:l,...u===void 0?{}:{occurredTime:u}},U=De(A,_);r.set(U.serialNumber,U),await ge();let J=new Map;for(let H of hs(n.getAll(),d,U.status,U.occurredTime))J.set(H.id,H);for(let H of o.getAll()){let X=j({conversationType:H.type,conversationId:H.id});for(let oe of hs(X,d,U.status,U.occurredTime))J.set(oe.id,oe);}J.size!==0&&on([...J.values()],"live");}return {upsertMessages:on,applyReaction:L,rollbackReaction:q,appendDirectContactRequiredNotice:md,appendDirectMessageRefusedNotice:Im,appendDirectContactRequiredTextFailure:ym,reconcileDirectContactEstablishedNotice:Am,recallMessage:Pm,deleteChannelMessageForEveryone:wm,editMessage:Om,applyTransferStatusBySerialNumber:Km,getMessage:d=>n.get(d),getConversationMessage:K,getLoadedMessagesByConversation:j,resolveConversationMessage:fm,getMessages:()=>n.getAll(),getMessagesByConversation:d=>n.getByConversation(d),deleteLocalMessage:Id,clearLocalConversationHistory:_m,getSession:d=>o.get(d),ensureConversation:Um,getSessions:()=>o.getAll(),getConversationList:nm,getReadState:d=>s.get(d),getPinnedMessage:d=>a.get(d),setPinnedMessage:dm,clearPinnedMessage:cm,isPinnedMessage:(d,l)=>a.isPinnedMessage(d,l),setReadState:d=>{let l=d.conversationType===void 0?o.get(d.conversationId):void 0,u=d.conversationType===void 0&&l!==void 0?{...d,conversationType:l.type}:d;s.set(u),ad(u);},markConversationUnread:Em,clearConversationManualUnread:pd,advanceRead:Rm,applyServerUnread:fd,beginChannelReadTransaction:Mm,applyChannelReadOptimistically:hm,commitChannelReadTransaction:Tm,rollbackChannelReadTransaction:vm,setGroupRestriction:bm,setChannelRestriction:Ys,setPinned:Dm,setMuted:Nm,removeConversation:Gm,removeConversationForMembershipTermination:Xs,refreshConversationProfile:lm,recoverChannelFromProfile:gm,updateConversationProfile:um,getTotalUnread:km,getDraft:em,saveDraft:tm,clearDraft:rm,clearDraftIfUnchanged:om,invalidateAndDrainDraftOperations:im,clearSession(){S+=1,k+=1,Ws+=1,it.clear(),C.clear(),P.clear(),n.clear(),o.clear(),s.clear(),i.clear(),T.clear(),M.clear(),R.clear(),c.clear(),a.clearAll(),p.clear(),y.clear(),h.clear(),t.clear();for(let d of N)d.reset();},hydrate:xm,loadOlderMessages:Bm,searchMessages:Vm,messageWindow:w,createMessageWindow:x}}var Dy=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function Ny(e){let n=new Set,t=new Map,r=new Map,o=true;function s(g){let p=g.extensions?.channelSequence,y=typeof p=="string"?p:g.raw?.channelNotify?.sequence;if(y===void 0||!/^\d+$/.test(y))return;let h=BigInt(y);return h>0n?h:void 0}function i(g){return n.has(g)?false:(n.add(g),n.size>2048&&n.delete(n.values().next().value),true)}function a(g,p,y,h){h!==void 0&&r.set(g,h),e.clearChannelKey(g),e.stopChannelHistory(g),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:g},y);}function c(g){let p=e.domainState.getSession(g);e.domainState.setChannelRestriction(g,p?.channelState??"unknown_restricted",p?.channelState===void 0?"channel_access_requires_refresh":p.sendDisabledReason);}return {handleMessage(g,p={source:"live"}){if(!o||g.conversationType!=="channel"||g.contentType!=="system"||g.body.system===void 0||p.source!=="live"&&p.applyLifecycleEffects!==true||!i(g.id))return;let y=g.conversationId,h=g.body.system,f=h.targetUserIds?.includes(e.getSelfId())??false,m=h.targetUserIds===void 0||h.targetUserIds.length===0,T=s(g),M=t.get(y);if(T!==void 0){if(M!==void 0&&T<=M)return;t.set(y,T);}switch(h.eventType){case "channel_member_left":f?a(y,"left","channel_left",T):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_member_removed":f?a(y,"removed","channel_removed",T):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_dismissed":a(y,"dismissed","channel_dismissed",T);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!f){e.domainState.refreshConversationProfile(y,"channel");return}let R=e.domainState.getSession(y)?.channelState;if(R==="dismissed")return;if(R==="left"||R==="removed"){let k=r.get(y);if(!(T!==void 0&&k!==void 0&&T>k)){e.domainState.recoverChannelFromProfile(y).then(N=>{!o||!N||(r.delete(y),e.clearConversationTermination?.({conversationType:"channel",conversationId:y}),e.prepareChannelKey(y));});return}r.delete(y);}if(!o)return;e.domainState.setChannelRestriction(y,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:y}),e.prepareChannelKey(y),e.domainState.refreshConversationProfile(y,"channel");return}case "channel_all_muted":case "channel_all_unmuted":c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(f||m)&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_admin_added":case "channel_admin_removed":(f||m)&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_owner_transferred":(f||m||h.operatorId===e.getSelfId())&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;default:Dy.has(h.eventType)&&e.domainState.refreshConversationProfile(y,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function _y(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(s){let i=s.body.system;if(s.contentType==="system"&&i!==void 0){if(i.eventType==="group_info_changed"||i.eventType==="group_master_changed"){n.refreshConversationProfile(s.conversationId,"group");return}let a=la(i,t());if(a===null)return;a.state==="active"?(n.setGroupRestriction(s.conversationId,a.state,a.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:s.conversationId}),r(s.conversationId)):(o(s.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:s.conversationId},a.reason));return}if(s.conversationType==="group"&&s.senderId===t()&&s.status==="failed"){let a=ga(s.failure?.code);a!==null?(o(s.conversationId),a.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:s.conversationId},a.reason):n.setGroupRestriction(s.conversationId,a.state,a.reason)):s.failure?.code===33540&&n.refreshConversationProfile(s.conversationId,"group");return}s.conversationType==="group"&&s.contentType!=="system"&&s.senderId!==t()&&s.encryption.decryptFailed!==true&&(n.getSession(s.conversationId)?.groupState==="removed"&&n.setGroupRestriction(s.conversationId,"active",""),n.getSession(s.conversationId)?.groupState==="active"&&e.clearConversationTermination?.({conversationType:"group",conversationId:s.conversationId}));}}}function Gy(e){return {handleMessage(n){let t={conversationType:n.conversationType,conversationId:n.conversationId},r=n.body.system?.pinnedMessageAction;if(r!==void 0){if(r.type==="pin"){e.domainState.setPinnedMessage(r.pinnedMessage,"notify:pin");return}if(r.type==="unpin"){e.domainState.clearPinnedMessage(t,"notify:unpin");return}e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u7F6E\u9876\u6D88\u606F\u901A\u77E5 payload \u89E3\u6790\u5931\u8D25",cause:{conversationId:n.conversationId,notifyMessageId:n.id,code:r.code}}}),e.requestReconcile(n.conversationId);return}if(n.contentType!=="system"&&e.domainState.isPinnedMessage(t,n.id)){let o=e.domainState.getPinnedMessage(t);o!==void 0&&e.domainState.setPinnedMessage({...o,preview:{state:"ready",message:n}},"message:updated");}}}}function Uy(e){let n={callKind:e.callKind,outcome:e.outcome,durationMs:e.durationMs,outgoing:e.outgoing};return {id:e.callId,conversationId:e.peerId,conversationType:"direct",senderId:e.outgoing?e.selfId:e.peerId,contentType:"call",body:{call:n},createdAt:e.createdAt,sortKey:ye(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function Rr(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([Uy(n)],"live");}var tt=3e4,nu=0,tu=1,ru=0;function ou(e=0,n=0){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||n<0)throw new Error(`call signaling: invite screen \u5C3A\u5BF8\u975E\u6CD5\uFF08${String(e)}\xD7${String(n)}\uFF09`);return JSON.stringify({screenW:e,screenH:n})}var ky=5,xy=6,su=1,iu=2;function _a(e){return e==="video"?xy:ky}function au(e){return e==="audio"?tu:nu}function du(e){if(e===tu)return "audio";if(e===nu)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Ds(e,n,t=tt){if(!Number.isFinite(e)||e<=0)throw new Error(`call signaling: msgTime \u975E\u6CD5\uFF08${String(e)}\uFF09`);if(!Number.isFinite(n)||n<=0)throw new Error(`call signaling: now \u975E\u6CD5\uFF08${String(n)}\uFF09`);return n-e>t}function cu(e){if(e===32768)return "accept";if(e===33792||e===0)return "reject";if(e===33793)return "busy";if(e===33796)return "token-failed";if(e===33797)return "connect-failed";throw new Error(`call signaling: \u5E94\u7B54 errcode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function lu(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function Ga(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function Ua(e,n,t){if(t)return e===33799||e===33798?"interrupted":"completed";if(e===33792)return "rejected";if(e===33793)return "busy";if(e===33800||e===33795||e===32768||e===0)return n==="outgoing"?"cancelled":"missed";if(e===33799||e===33798)return "interrupted";throw new Error(`call signaling: hangupReasonCode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function ue(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function Ze(e,n){let t=e.trim(),r=n.trim();return t===r?true:t===""||r===""||!/^\d+$/.test(t)||!/^\d+$/.test(r)?false:BigInt(t)===BigInt(r)}function xe(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var By=new Set([33281,33299]);function rt(e){return {conversationType:"direct",conversationId:e}}function Fy(e){let n;function t(){return e.now?.()??Date.now()}function r(){let F=e.getSelfId();if(F.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return F}function o(F){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${F}`);return r()}function s(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function i(F,V){return F.connectedAt===void 0?0:Math.max(0,V-F.connectedAt)}function a(F,V,W,L){Rr(e.domainState,{callId:F.callId,peerId:F.peerId,selfId:r(),callKind:F.callKind,outcome:V,durationMs:i(F,W),outgoing:F.direction==="outgoing",createdAt:W,...L});}function c(F,V){n!==void 0&&a(n,F,V);}function g(F,V=t(),W=true){if(n===void 0)return;let L=n;return s(),c(F,V),n=void 0,W&&e.emitter.emit({type:"call:hangup",conversation:rt(L.peerId),callId:L.callId,peerId:L.peerId,outcome:F}),L}function p(F,V,W){let L=F===16387?Lt.encode(Lt.create({sUserId:V,sMsgId:W})):F===16391?Qt.encode(Qt.create({sUserId:V,sMsgId:W})):F===16399?Wt.encode(Wt.create({sUserId:V,sMsgId:W})):F===16403?Yt.encode(Yt.create({sUserId:V,sMsgId:W})):Jt.encode(Jt.create({sUserId:V,sMsgId:W}));e.sendFrame(Y({command:F,body:L}));}function y(F){return setTimeout(F,tt)}function h(){return fe(en())}function f(F,V,W,L){let q=Kt.encode(Kt.create({sInviteId:ue(V,"peerId"),sFromId:ue(F,"selfId"),sMsgId:h(),msgTime:BigInt(t()),encrypt:ru,sContent:ou(),callType:au(L),scallId:W}));e.sendFrame(Y({command:16385,body:q}));}function m(F,V,W,L){let q=Zt.encode(Zt.create({sToId:ue(V,"peerId"),sFromId:ue(F,"selfId"),sMsgId:h(),msgTime:BigInt(t()),errcode:lu(L),scallId:W}));e.sendFrame(Y({command:16389,body:q}));}function T(F,V,W,L){let q=Jn.encode(Jn.create({sToId:ue(V,"peerId"),sFromId:ue(F,"selfId"),sMsgId:h(),msgTime:BigInt(t()),scallId:W,hangupReasonCode:Ga(L)}));e.sendFrame(Y({command:16397,body:q}));}function M(F,V){let W=xe(F.callId);if(ue(F.peerId,"peerId"),n===void 0||n.callId!==W||n.peerId!==F.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${V}`);return n}function R(F){let V=o("\u53D1\u8D77\u901A\u8BDD"),W=F.callKind??"audio",L=String(ue(F.peerId,"peerId"));if(L===V)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let q=xe(F.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let I=t();return n={callId:q,peerId:L,callKind:W,direction:"outgoing",phase:"outgoing-ringing",startedAt:I},f(V,L,q,W),n.ringTimer=y(()=>{n?.callId!==q||n.phase!=="outgoing-ringing"||(T(V,L,q,"no-answer"),g("cancelled"));}),{callId:q,conversation:rt(L)}}function k(F){let V=o("\u63A5\u542C"),W=M(F,"\u63A5\u542C");if(W.direction!=="incoming"||W.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");s(),m(V,W.peerId,W.callId,"accept"),W.phase="accepted";}function E(F){let V=o("\u62D2\u7EDD"),W=M(F,"\u62D2\u7EDD");if(W.direction!=="incoming"||W.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");m(V,W.peerId,W.callId,"reject"),g("rejected");}function N(F){let V=o("\u56DE\u5FD9"),W=xe(F.callId),L=String(ue(F.peerId,"peerId"));m(V,L,W,"busy"),n?.callId===W?g("busy"):Rr(e.domainState,{callId:W,peerId:L,selfId:V,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:t()});}function D(F){let V=o("\u6302\u65AD"),W=M(F,"\u6302\u65AD");T(V,W.peerId,W.callId,F.reason);let L=W.phase==="connected",q=Ua(Ga(F.reason),W.direction,L);g(q);}function w(F,V){let W=V==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",L=o(W),q=M(F,W);if(q.callKind!==V)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${V==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(q.phase!=="accepted"&&q.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let I=Ht.encode(Ht.create({sToId:ue(q.peerId,"peerId"),sFromId:ue(L,"selfId"),sMsgId:h(),msgTime:BigInt(t()),notifyType:_a(V),notifyValue:F.role==="caller"?su:iu,scallId:q.callId}));e.sendFrame(Y({command:16401,body:I}));}function x(F){w(F,"audio");}function z(F){w(F,"video");}function K(F){let V=Bo.decode(F);if(V.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let W=r();p(16387,ue(W,"selfId"),V.sMsgId);let L=xe(V.scallId),q=V.sFromId.toString();if(V.sFromId<=0n||V.sInviteId.toString()!==W)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(q===W)return;let I=Number(V.msgTime),v=du(V.callType),S=Ds(I,t()),C=rt(q);if(S){Rr(e.domainState,{callId:L,peerId:q,selfId:W,callKind:v,outcome:"missed",durationMs:0,outgoing:false,createdAt:I}),e.emitter.emit({type:"call:incoming",conversation:C,callId:L,peerId:q,callKind:v,createdAt:I,expired:true});return}if(n!==void 0){m(W,q,L,"busy"),Rr(e.domainState,{callId:L,peerId:q,selfId:W,callKind:v,outcome:"busy",durationMs:0,outgoing:false,createdAt:I});return}n={callId:L,peerId:q,callKind:v,direction:"incoming",phase:"incoming-ringing",startedAt:I},n.ringTimer=y(()=>{n?.callId!==L||n.phase!=="incoming-ringing"||g("missed",I);}),e.emitter.emit({type:"call:incoming",conversation:C,callId:L,peerId:q,callKind:v,createdAt:I,expired:false});}function j(F){let V=xo.decode(F);if(n===void 0||n.direction!=="outgoing"||V.errcode===32768)return;let W=V.errcode===33794?"peer-offline":"ack-error",L=n,q=t();s(),n=void 0,By.has(V.errcode)?(a(L,"cancelled",q,{status:"failed",failure:{code:V.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(L.peerId,L.callId,q+1)):a(L,"cancelled",q),e.emitter.emit({type:"call:failed",conversation:rt(L.peerId),callId:L.callId,peerId:L.peerId,reason:W});}function de(F,V){V!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${F} ACK \u5931\u8D25`,cause:{errcode:V}}});}function re(F){let V=Vo.decode(F);if(V.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let W=r();p(16391,ue(W,"selfId"),V.sMsgId);let L=xe(V.scallId);if(n===void 0||n.callId!==L||n.direction!=="outgoing")return;let q=cu(V.errcode);if(e.emitter.emit({type:"call:answered",conversation:rt(n.peerId),callId:L,peerId:n.peerId,result:q}),q==="accept"){s(),n.phase="accepted";return}g(q==="reject"?"rejected":q==="busy"?"busy":"cancelled");}function ce(F){let V=Jn.decode(F);if(V.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let W=r();p(16399,ue(W,"selfId"),V.sMsgId);let L=xe(V.scallId);if(n===void 0||n.callId!==L)return;let q=Ua(V.hangupReasonCode,n.direction,n.phase==="connected");g(q);}function Ce(F){let V=Ko.decode(F);if(V.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let W=r();if(p(16403,ue(W,"selfId"),V.sMsgId),n===void 0||V.notifyType!==_a(n.callKind))return;let L=xe(V.scallId);n.callId===L&&(n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=t()),n.phase="connected",e.emitter.emit({type:n.callKind==="video"?"call:peer-video-begin":"call:peer-audio-begin",conversation:rt(n.peerId),callId:L,peerId:n.peerId})));}function ge(F){let V=Po.decode(F);if(V.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");p(16395,ue(r(),"selfId"),V.sMsgId);}return {handlers:[{command:16388,handler:(F,V)=>K(V)},{command:16386,handler:(F,V)=>j(V)},{command:16392,handler:(F,V)=>re(V)},{command:16390,handler:(F,V)=>de("answer",Fo.decode(V).errcode)},{command:16400,handler:(F,V)=>ce(V)},{command:16398,handler:(F,V)=>de("hangup",wo.decode(V).errcode)},{command:16404,handler:(F,V)=>Ce(V)},{command:16402,handler:(F,V)=>de("state-notify",Oo.decode(V).errcode)},{command:16396,handler:(F,V)=>ge(V)}],invite:R,accept:k,reject:E,busy:N,hangup:D,notifyPeerAudioBegin:x,notifyPeerVideoBegin:z,dispose(){s(),n=void 0;}}}var ka=9;function Vy(e){if(e<0n)throw new Error("group call: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function gu(e,n,t){if(t.length===0)return e;if(n<=0||n>=16)throw new Error(`group call: \u975E\u6CD5 protobuf field ${n}`);let r=n<<3,o=[e],s=0;for(let c of t){let g=Vy(c),p=new Uint8Array(1+g.length);p[0]=r,p.set(g,1),o.push(p),s+=p.length;}let i=new Uint8Array(e.length+s),a=0;for(let c of o)i.set(c,a),a+=c.length;return i}function We(e){return {conversationType:"group",conversationId:e}}function Py(e){return {groupId:e.groupId,callId:e.callId,inviterId:e.inviterId,createdAt:e.createdAt,members:e.members.map(n=>({userId:n.userId,status:n.status}))}}function wy(e){return e.members.filter(n=>n.status==="in-call").length}function Ns(e){return e.filter(n=>n.status==="in-call").length<=1}function Oy(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function s(){let S=e.getSelfId();if(S.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return S}function i(S){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${S}`);return s()}function a(){return fe(en())}function c(S){if(S.trim()===""||t.has(S))return false;if(t.add(S),r.push(S),r.length>256){let C=r.shift();C!==void 0&&t.delete(C);}return true}function g(S){let C=n.get(S);return C===void 0?null:Py(C)}function p(S){S.incomingRingTimer!==void 0&&clearTimeout(S.incomingRingTimer),S.incomingRingTimer=void 0;}function y(S,C,P){let G=S.members.find(O=>O.userId===C);if(G!==void 0){G.status=P;return}S.members.push({userId:C,status:P});}function h(S,C){S.members=S.members.filter(P=>P.userId!==C);}function f(S){let C=n.get(S.groupId);C!==void 0&&p(C);let P=[];for(let O of S.inCallIds)P.some(Q=>Q.userId===O)||P.push({userId:O,status:"in-call"});for(let O of S.ringingIds)P.some(Q=>Q.userId===O)||P.push({userId:O,status:"ringing"});let G={groupId:S.groupId,callId:S.callId,inviterId:S.inviterId,createdAt:S.createdAt,members:P};return n.set(S.groupId,G),G}function m(S,C){let P=n.get(S);if(P!==void 0&&!(C!==void 0&&P.callId!==C))return p(P),n.delete(S),P}function T(S,C){for(let P of n.values())if(P.groupId!==C&&P.members.some(G=>Ze(G.userId,S)))return true;return false}function M(S,C,P){let G=zt.encode(zt.create({userId:C,msgId:P}));e.sendFrame(Y({command:S,body:G}));}function R(S,C,P,G){let O=G.map(ie=>ue(ie,"inviteId")),Q=gu(Xt.encode(Xt.create({groupId:ue(C,"groupId"),userId:ue(S,"selfId"),msgId:a(),msgTime:BigInt(o()),callId:P,inviteIds:O})),6,O);e.sendFrame(Y({command:16641,body:Q}));}function k(S,C,P,G,O){let Q=G.map(me=>ue(me,"inviteId")),ie=gu(jt.encode(jt.create({groupId:ue(C,"groupId"),userId:ue(S,"selfId"),msgId:a(),msgTime:BigInt(o()),callId:P,joinType:O?1:0,inviteIds:Q})),5,Q);e.sendFrame(Y({command:16649,body:ie}));}function E(S,C,P,G){let O=qt.encode(qt.create({groupId:ue(C,"groupId"),userId:ue(S,"selfId"),msgId:a(),msgTime:BigInt(o()),callId:P,ansType:G?1:0}));e.sendFrame(Y({command:16645,body:O}));}function N(S,C,P){let G=$t.encode($t.create({groupId:ue(C,"groupId"),userId:ue(S,"selfId"),msgId:a(),msgTime:BigInt(o()),callId:P}));e.sendFrame(Y({command:16653,body:G}));}function D(S,C,P){let G=er.encode(er.create({groupId:ue(C,"groupId"),userId:ue(S,"selfId"),msgId:a(),msgTime:BigInt(o()),callId:P}));e.sendFrame(Y({command:16657,body:G}));}function w(S,C,P){let G=i("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),O=xe(C),Q=[...new Set(P.map(me=>me.trim()).filter(me=>me!==""&&!Ze(me,G)))];if(Q.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(Q.length+1>ka)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${ka}`);let ie=n.get(S);if(ie!==void 0&&wy(ie)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");R(G,S,O,Q),f({groupId:S,callId:O,inviterId:G,createdAt:o(),inCallIds:[G],ringingIds:Q});}function x(S,C,P,G){let O=i("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),Q=xe(C),ie=[...new Set(P.map(Be=>Be.trim()).filter(Be=>Be!==""&&!Ze(Be,O)))];k(O,S,Q,ie,G);let me=n.get(S);if(me!==void 0&&me.callId===Q&&(y(me,O,"in-call"),G))for(let Be of ie)y(me,Be,"ringing");}function z(S,C,P){let G=i("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),O=xe(C),Q=n.get(S);if(Q!==void 0&&Q.callId===O&&p(Q),E(G,S,O,P),!(Q===void 0||Q.callId!==O)){if(P){y(Q,G,"in-call");return}h(Q,G),e.emitter.emit({type:"group-call:answered",conversation:We(S),callId:O,groupId:S,userId:G,agreed:false});}}function K(S,C){let P=i("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),G=xe(C),O=n.get(S);if(O!==void 0&&O.callId===G&&Ns(O.members)){D(P,S,G),m(S,G),e.emitter.emit({type:"group-call:finished",conversation:We(S),callId:G,groupId:S,userId:P});return}N(P,S,G),O!==void 0&&O.callId===G&&(p(O),h(O,P)),e.emitter.emit({type:"group-call:left",conversation:We(S),callId:G,groupId:S,userId:P});}function j(S,C){let P=i("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),G=xe(C);D(P,S,G),m(S,G),e.emitter.emit({type:"group-call:finished",conversation:We(S),callId:G,groupId:S,userId:P});}function de(S,C,P,G){let O=i("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),Q=nr.encode(nr.create({groupId:ue(S,"groupId"),userId:ue(O,"selfId"),msgId:a(),msgTime:BigInt(o()),callId:xe(C),statusType:P?1:0,status:G?1:0}));e.sendFrame(Y({command:16661,body:Q}));}function re(S,C,P){let G=i("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),O=tr.encode(tr.create({groupId:ue(S,"groupId"),userId:ue(G,"selfId"),msgId:a(),msgTime:BigInt(o()),callId:xe(C),hintUser:ue(P,"hintUserId")}));e.sendFrame(Y({command:16669,body:O}));let Q=n.get(S);Q!==void 0&&Q.callId===C&&h(Q,G);}function ce(S){let C=Zo.decode(S);if(C.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let P=s();if(M(16643,ue(P,"selfId"),C.msgId),!c(C.msgId))return;let G=C.groupId.toString(),O=C.userId.toString(),Q=xe(C.callId),ie=C.inviteIds.map(le=>le.toString()).filter(le=>le!=="0"),me=Number(C.msgTime),Be=Ds(me,o(),tt),Pe=We(G),Ve=Ze(O,P),ve=ie.some(le=>Ze(le,P))||ie.length===0&&!Ve;if(Ve){f({groupId:G,callId:Q,inviterId:O,createdAt:me,inCallIds:[P],ringingIds:ie.filter(le=>!Ze(le,P))});return}let b=n.get(G);if(b!==void 0&&b.callId!==Q&&b.members.some(le=>Ze(le.userId,P)&&le.status==="in-call")){D(P,G,Q);return}if(f({groupId:G,callId:Q,inviterId:O,createdAt:me,inCallIds:[O],ringingIds:ve?[...new Set([P,...ie.filter(le=>!Ze(le,O))])]:ie.filter(le=>!Ze(le,O))}),!ve)return;if(Be){e.emitter.emit({type:"group-call:incoming",conversation:Pe,callId:Q,groupId:G,inviterId:O,inviteIds:ie,createdAt:me,expired:true});return}if(T(P,G)){re(G,Q,O);return}let ee=n.get(G);ee!==void 0&&(ee.incomingRingTimer=setTimeout(()=>{let le=n.get(G);if(le===void 0||le.callId!==Q)return;let Re=le.members.find(Fe=>Ze(Fe.userId,P));if(!(Re===void 0||Re.status!=="ringing"))try{z(G,Q,!1);}catch{h(le,P);}},tt)),e.emitter.emit({type:"group-call:incoming",conversation:Pe,callId:Q,groupId:G,inviterId:O,inviteIds:ie,createdAt:me,expired:false});}function Ce(S){let C=Jo.decode(S);if(C.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let P=s();if(M(16647,ue(P,"selfId"),C.msgId),!c(C.msgId))return;let G=C.groupId.toString(),O=C.userId.toString(),Q=xe(C.callId),ie=C.ansType===1,me=n.get(G);me===void 0||me.callId!==Q||(ie?y(me,O,"in-call"):h(me,O),e.emitter.emit({type:"group-call:answered",conversation:We(G),callId:Q,groupId:G,userId:O,agreed:ie}));}function ge(S){let C=Ho.decode(S);if(C.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let P=s();if(M(16651,ue(P,"selfId"),C.msgId),!c(C.msgId))return;let G=C.groupId.toString(),O=C.userId.toString(),Q=xe(C.callId),ie=C.inviteIds.map(Ve=>Ve.toString()).filter(Ve=>Ve!=="0"&&Ve!==O),me=n.get(G);if(me===void 0||me.callId!==Q)me=f({groupId:G,callId:Q,inviterId:O,createdAt:Number(C.msgTime),inCallIds:[O],ringingIds:ie});else if(y(me,O,"in-call"),C.joinType===1)for(let Ve of ie)y(me,Ve,"ringing");e.emitter.emit({type:"group-call:joined",conversation:We(G),callId:Q,groupId:G,userId:O,inviteIds:ie,isInvite:C.joinType===1});let Be=ie.some(Ve=>Ze(Ve,P))||ie.length===0&&C.joinType===1&&!Ze(O,P),Pe=me.members.find(Ve=>Ze(Ve.userId,P));Be&&C.joinType===1&&!Ze(O,P)&&Pe?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:We(G),callId:Q,groupId:G,inviterId:O,inviteIds:ie,createdAt:Number(C.msgTime),expired:false});}function De(S){let C=Xo.decode(S);if(C.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let P=s();if(M(16655,ue(P,"selfId"),C.msgId),!c(C.msgId))return;let G=C.groupId.toString(),O=C.userId.toString(),Q=xe(C.callId),ie=n.get(G);ie===void 0||ie.callId!==Q||(h(ie,O),e.emitter.emit({type:"group-call:left",conversation:We(G),callId:Q,groupId:G,userId:O}),Ns(ie.members)&&(m(G,Q),e.emitter.emit({type:"group-call:finished",conversation:We(G),callId:Q,groupId:G,userId:O})));}function F(S){let C=qo.decode(S);if(C.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let P=s();if(M(16659,ue(P,"selfId"),C.msgId),!c(C.msgId))return;let G=C.groupId.toString(),O=C.userId.toString(),Q=xe(C.callId);m(G,Q),e.emitter.emit({type:"group-call:finished",conversation:We(G),callId:Q,groupId:G,userId:O});}function V(S){let C=ts.decode(S);if(C.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let P=s();if(M(16671,ue(P,"selfId"),C.msgId),!c(C.msgId))return;let G=C.groupId.toString(),O=C.userId.toString(),Q=xe(C.callId),ie=n.get(G);ie!==void 0&&ie.callId===Q&&h(ie,O),e.emitter.emit({type:"group-call:busy",conversation:We(G),callId:Q,groupId:G,userId:O,hintUserId:C.hintUser.toString()});}function W(S){let C=es.decode(S);if(C.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let P=s();if(M(16667,ue(P,"selfId"),C.msgId),!c(C.msgId))return;let G=C.groupId.toString(),O=xe(C.callId),Q=n.get(G);if(!(Q===void 0||Q.callId!==O)){for(let ie of C.users){let me=ie.toString();h(Q,me),e.emitter.emit({type:"group-call:left",conversation:We(G),callId:O,groupId:G,userId:me});}Ns(Q.members)&&(m(G,O),e.emitter.emit({type:"group-call:finished",conversation:We(G),callId:O,groupId:G,userId:C.userId.toString()}));}}function L(S){let C=$o.decode(S);if(C.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");M(16663,ue(s(),"selfId"),C.msgId);}function q(S){let C=Lo.decode(S);if(C.errCode===32768)return;let P=s();for(let G of n.values()){if(!Ze(G.inviterId,P))continue;let O=m(G.groupId,G.callId);if(O!==void 0){e.emitter.emit({type:"group-call:failed",conversation:We(O.groupId),callId:O.callId,groupId:O.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:C.errCode}}});}function I(S,C){C!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${S} ACK \u5931\u8D25`,cause:{errCode:C}}});}return {commandHandlers:[{command:16644,handler:(S,C)=>ce(C)},{command:16642,handler:(S,C)=>q(C)},{command:16648,handler:(S,C)=>Ce(C)},{command:16646,handler:(S,C)=>I("answer",Qo.decode(C).errCode)},{command:16652,handler:(S,C)=>ge(C)},{command:16650,handler:(S,C)=>I("join",Wo.decode(C).errCode)},{command:16656,handler:(S,C)=>De(C)},{command:16654,handler:(S,C)=>I("hangup",Yo.decode(C).errCode)},{command:16660,handler:(S,C)=>F(C)},{command:16658,handler:(S,C)=>I("finish",zo.decode(C).errCode)},{command:16672,handler:(S,C)=>V(C)},{command:16670,handler:(S,C)=>I("busy",ns.decode(C).errCode)},{command:16668,handler:(S,C)=>W(C)},{command:16664,handler:(S,C)=>L(C)},{command:16662,handler:(S,C)=>I("status",jo.decode(C).errCode)}],createRoom:w,joinRoom:x,answer:z,hangup:K,finish:j,setStatus:de,busy:re,inspectMeeting:g,dispose(){for(let S of n.values())p(S);n.clear();}}}function ot(e,n){return `[${n}] \u4F1A\u8BDD\u7C7B\u578B '${e}' \u5C1A\u672A\u63A5\u5165\u6D88\u606F\u94FE\u8DEF\uFF1B\u8BF7\u65B0\u589E\u5BF9\u5E94\u7684\u53D1\u9001\u7B56\u7565 / \u6536\u5305\u5904\u7406\u5668 / \u79BB\u7EBF\u540C\u6B65 / \u5BC6\u94A5\u89E3\u6790\uFF0C\u7981\u6B62\u590D\u7528 direct \u5355\u804A\u94FE\u8DEF\u3002`}function xa(e){return [{command:4646,handler:(n,t)=>{let r=eo.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=to.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=ko.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var uu=9;function Ky(){return {encrypted:true}}function Ly(e,n){if(e.length===0)return "empty-input";if(e.length>uu)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function Zy(e){return "body"in e&&"contentType"in e&&"sortKey"in e}function Ba(e,n){let t=e.now??(()=>Date.now()),r=[],o=[];if(n.messages.length===0)return {results:[{ok:false,sourceMessageId:"",targetConversationId:"",targetConversationType:"direct",reason:"empty-input"}],skippedSourceIds:[]};let s=Ly(n.targets,e.sendStrategies);if(s!==void 0){for(let a of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let c of n.messages)r.push({ok:false,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:s});return {results:r,skippedSourceIds:[]}}let i=[];for(let a of n.messages){let c=e.resolveCurrentMessage===void 0?Zy(a)?a:void 0:e.resolveCurrentMessage(a);if(c===void 0||c.id!==a.id||c.conversationId!==a.conversationId||c.conversationType!==a.conversationType||!va(c)){o.push(a.id);continue}i.push(c);}for(let a of n.targets)for(let c of i)try{let g=Sr(c.contentType);if(g===void 0){r.push({ok:!1,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"type-not-allowed"});continue}let p=g.cloneBody(c),y=Ky(),h=g.enqueue({outbox:e.outbox,target:a,source:c,body:p,encryption:y,now:t});r.push({ok:!0,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,newMessageId:h});}catch{r.push({ok:false,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}var _s=class extends Error{status;path;constructor(n){super(`CmHttp.postProtobuf \u5931\u8D25\uFF1Apath=${n.path} status=${n.status} ${n.statusText}`),this.name="ImHttpRequestError",this.status=n.status,this.path=n.path;}};function mu(e){let n=new Map;for(let t of e){if(n.has(t.kind))throw new Error(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${t.kind}`);if(!Number.isSafeInteger(t.softMaxBytes)||t.softMaxBytes<=0||!Number.isSafeInteger(t.maxEntries)||t.maxEntries<=0||!Number.isSafeInteger(t.maxEntryBytes)||t.maxEntryBytes<=0)throw new RangeError(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u53C2\u6570\u975E\u6CD5\uFF1A${t.kind}`);n.set(t.kind,Object.freeze({...t}));}return Object.freeze({resolve:t=>n.get(t),list:()=>Object.freeze([...n.values()])})}function Gs(e){let n=2166136261,t=2654435761;for(let r=0;r<e.length;r+=1){let o=e.charCodeAt(r);n=Math.imul(n^o,16777619),t=Math.imul(t^o,2246822507);}return `${(n>>>0).toString(16).padStart(8,"0")}${(t>>>0).toString(16).padStart(8,"0")}`}var Qy=1,Jy=2,Wy=3,Hy=3,Yy=3,pu=6,Xy=1e3;function Fa(e){return Number.isFinite(e)&&e>0}var zy=320,qy=12*1024,fu=20*1024,jy=.9,$y=.72,eC=320,nC=10*1024,Va=16*1024,tC=.84,rC=.68,oC=Va;function sC(e,n){let t=e.localPreviewMetadata;if(!(n.contentType!=="video"&&n.contentType!=="image"||t===void 0)&&!(!Fa(t.width)||!Fa(t.height)||n.contentType==="video"&&t.duration!==void 0&&!Fa(t.duration)||n.contentType==="video"&&t.posterData!==void 0&&(!(t.posterData instanceof Uint8Array)||t.posterData.length===0||t.posterData.length>oC)))return {width:t.width,height:t.height,...n.contentType==="video"&&t.duration!==void 0?{duration:t.duration}:{},...n.contentType==="video"&&t.posterData!==void 0?{thumbData:new Uint8Array(t.posterData)}:{}}}function Iu(e,n){return n===void 0?e:{...e,width:n.width,height:n.height,...n.thumbData===void 0?{}:{thumbData:n.thumbData},...e.duration===void 0&&n.duration!==void 0?{duration:n.duration}:{}}}var iC={contentType:"image",uploadKind:"image",encryptMode:"integral",async buildPreview(e,n,t){let r=await t.imageDimensions(e,n),o=await t.imageThumbnail(e,{mimeType:n,maxSize:zy,targetBytes:qy,maxBytes:fu,quality:jy,minQuality:$y});return {width:r.width,height:r.height,...o.data.byteLength<=fu?{thumbData:o.data}:{}}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o}){return {image:{url:e,width:n.width,height:n.height,...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},yu={contentType:"video",uploadKind:"video",encryptMode:"integral",async buildPreview(e,n,t){let r=await t.videoPoster(e,{mimeType:n,maxSize:eC,targetBytes:nC,maxBytes:Va,quality:tC,minQuality:rC});return {width:r.width,height:r.height,...r.data.byteLength<=Va?{thumbData:r.data}:{},duration:r.duration}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o},s){return {video:{url:e,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...s.caption!==void 0&&s.caption!==""?{describe:s.caption}:{},...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},aC={contentType:"voice",uploadKind:"voice",encryptMode:"integral",buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){return {voice:{url:e,durationMs:o.durationMs??0,...o.waveform!==void 0&&o.waveform.length>0?{waveform:o.waveform}:{},...n!==void 0?{size:n}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},dC={contentType:"sticker",uploadKind:"sticker",encryptMode:"none",async buildPreview(e,n,t){let r=await t.imageDimensions(e,n);return {width:r.width,height:r.height}},buildBody({url:e,meta:n,size:t}){return {sticker:{url:e,width:n.width,height:n.height,exprType:2,imageType:1,...t===void 0?{}:{size:t}}}}};function cC(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function lC(e,n){let t=n??"";return t.startsWith("image/")||["jpg","jpeg","png","gif","webp","bmp","heic","svg"].includes(e)?1:t.startsWith("video/")||["mp4","mov","m4v","3gp","avi","mkv","webm","flv"].includes(e)?2:t.startsWith("audio/")||["mp3","m4a","wav","aac","flac","ogg"].includes(e)?3:["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","zip","rar","7z","apk","json"].includes(e)?4:0}var Cu={contentType:"file",uploadKind:"file",encryptMode:"simple",buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){let s=o.filename??"",i=cC(s),a=lC(i,o.mimeType);return {file:{url:e,fileName:s,...n!==void 0?{size:n}:{},...i!==""?{extension:i}:{},...a!==0?{fileType:a}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}};function Su(e){switch(e){case "empty":return "media.empty";case "no-crypto":return "media.noCrypto";case "preview-failed":return "media.previewFailed";case "encrypt-failed":return "media.encryptFailed";case "upload-failed":case "offline":return "media.uploadFailed";case "cancelled":return "media.cancelled";case "invalid-duration":return "media.invalidDuration"}}function gC(e){return typeof e=="function"}function uC(e){let n=0,t=[];function r(){for(;n<e&&t.length>0;){let o=t.shift();if(o.signal.aborted){o.reject(new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError"));continue}n+=1,o.signal.removeEventListener("abort",o.onAbort);let s=false;o.resolve(()=>{s||(s=true,n-=1,r());});}}return {acquire(o){if(o.aborted)return Promise.reject(new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError"));if(n<e){n+=1;let s=false;return Promise.resolve(()=>{s||(s=true,n-=1,r());})}return new Promise((s,i)=>{let a={signal:o,resolve:s,reject:i,onAbort:()=>{let c=t.indexOf(a);c>=0&&t.splice(c,1),i(new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError"));}};t.push(a),o.addEventListener("abort",a.onAbort,{once:true});})}}}function mC(e){let n=e??Yy;if(!Number.isInteger(n)||n<1||n>pu)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${pu} \u7684\u6574\u6570`);return n}function Pa(e){let n=uC(mC(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,s=new Map,i=new Map,a=true,c=0;function g(f){return {conversationType:f.conversationType,conversationId:f.conversationId}}function p(f,m,T,M,R,k){if(!a)return;let E=g(m);e.emitter.emit({type:"media-task:updated",conversation:E,task:{id:`upload:${f}`,messageId:f,ref:E,direction:"upload",state:T,percent:Math.max(0,Math.min(100,Math.round(M))),...k===void 0?{}:{phase:k},...R===void 0?{}:{failure:R}}});}function y(f,m,T,M,R,k){for(i.delete(f),i.set(f,{spec:m,input:T,createdAt:M,message:R,failureReason:k});i.size>Hy;){let E=i.keys().next().value;if(E===void 0)break;let N=i.get(E);if(i.delete(E),N===void 0||!a)continue;let D=N.spec.contentType==="video"||N.spec.contentType==="file",w={code:Cr,reason:"unknown",displayCode:D?"media.uploadInterrupted":Su(N.failureReason),mediaKind:N.spec.uploadKind,retryable:false};e.domainState.upsertMessages([{...N.message,status:"failed",failure:w}],"live"),p(E,N.input,"failed",s.get(E)??0,w);}}async function h(f,m,T,M){if(!a)return {ok:false,reason:"cancelled"};let R=c,k=gC(m.data),E=k?void 0:m.data;if(E?.length===0)return {ok:false,reason:"empty"};let N=m.encrypted??true;if(N&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let D=sC(m,f);if((f.contentType==="video"||f.contentType==="image")&&m.localPreviewMetadata!==void 0&&D===void 0)return {ok:false,reason:"preview-failed"};let w=T===void 0||M===void 0?e.outbox.allocateMessageIdentity({conversationId:m.conversationId,conversationType:m.conversationType}):{id:T,createdAt:M},{id:x,createdAt:z}=w,K=e.getSelfId(),j=D??{width:0,height:0};if(!k)try{j=Iu(await f.buildPreview(E,m.mimeType,e.mediaPreview),D);}catch{}if(!a)return {ok:false,reason:"cancelled"};let de={id:x,conversationId:m.conversationId,conversationType:m.conversationType,senderId:K,contentType:f.contentType,body:f.buildBody({url:m.localPreviewUrl??"",meta:j},m),createdAt:z,sortKey:ye(z,x),status:"uploading",receipt:"unread",encryption:{encrypted:N},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}};e.domainState.upsertMessages([de],"live"),s.set(x,0),p(x,m,"queued",0,void 0,"waiting-upload-slot");let re=(Ce,ge=false)=>{let De={code:Cr,reason:"unknown",displayCode:Su(Ce),mediaKind:f.uploadKind,retryable:ge};return a?(e.domainState.upsertMessages([{...de,status:"failed",failure:De}],"live"),p(x,m,Ce==="cancelled"?"canceled":"failed",s.get(x)??0,De),{ok:false,reason:Ce}):{ok:false,reason:Ce}},ce=new AbortController;t.set(x,ce),r.set(x,g(m));try{let Ce=await n.acquire(ce.signal);try{p(x,m,"running",s.get(x)??0);let ge;try{ge=k?await m.data():E;}catch{return re("upload-failed",!0)}if(ge.length===0)return re("empty");if(k&&!(f.contentType==="video"&&D?.thumbData!==void 0)){try{j=Iu(await f.buildPreview(ge,m.mimeType,e.mediaPreview),D);}catch{}if(!a)return {ok:!1,reason:"cancelled"};de={...de,body:f.buildBody({url:m.localPreviewUrl??"",meta:j},m)},e.domainState.upsertMessages([de],"live");}let De=ge,F,V=Qy;if(N&&e.crypto!==void 0&&f.encryptMode!=="none")try{F=e.crypto.randomTeaKey(),f.encryptMode==="simple"?(De=e.crypto.encryptFileSimple({teaKey:F,plain:ge}),V=Jy):(De=e.crypto.encryptSymmetric({teaKey:F,plain:ge}),V=Wy);}catch{return re("encrypt-failed")}let W;try{W=(await e.mediaTransfer.upload({data:De,kind:f.uploadKind,signal:ce.signal,...m.filename!==void 0?{filename:m.filename}:{},...m.mimeType!==void 0?{mimeType:m.mimeType}:{},onProgress:q=>{if(!a||ce.signal.aborted||t.get(x)!==ce)return;let I=Number.isFinite(q.percent)?Math.max(0,Math.min(100,Math.round(q.percent))):0,v=Math.max(s.get(x)??0,I);s.set(x,v),e.emitter.emit({type:"media:progress",conversation:g(m),messageId:x,percent:v}),p(x,m,"running",v,void 0,q.phase);}})).url;}catch(L){if(!a)return {ok:!1,reason:"cancelled"};let q=ce.signal.aborted?o.get(x)??"cancelled":"upload-failed";return ce.signal.aborted||e.onMediaTransferError?.({stage:"upload",kind:f.uploadKind,messageId:x,conversation:g(m),cause:L}),y(x,f,m,z,de,q),re(q,!0)}if(!a)return {ok:!1,reason:"cancelled"};if(ce.signal.aborted){let L=o.get(x)??"cancelled";return y(x,f,m,z,de,L),re(L,!0)}if(R===c&&(f.contentType==="image"||f.contentType==="video")&&e.mediaAssetCache!==void 0){let L=f.contentType,q=ge.byteLength;e.mediaAssetCache.put({kind:L,messageId:x,resourceVersion:Gs(W),bytes:ge,...m.mimeType===void 0?{}:{mimeType:m.mimeType}}).catch(I=>{e.onMediaAssetCacheError?.({operation:"put",kind:L,messageId:x,byteLength:q,cause:I});});}return e.outbox.enqueueMedia({id:x,conversationId:m.conversationId,conversationType:m.conversationType,contentType:f.contentType,body:f.buildBody({url:W,meta:j,size:ge.length,...f.encryptMode==="none"?{}:{teaKey:F,fileEncryptType:V}},m),encryption:{encrypted:N},createdAt:z,...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}}),p(x,m,"completed",100),{ok:!0,messageId:x}}finally{Ce();}}catch{if(!a)return {ok:false,reason:"cancelled"};let Ce=ce.signal.aborted?o.get(x)??"cancelled":"upload-failed";return y(x,f,m,z,de,Ce),re(Ce,true)}finally{t.get(x)===ce&&(t.delete(x),r.delete(x),s.delete(x),o.delete(x));}}return {sendImage:f=>h(iC,f),sendVideo:f=>h(yu,f),replaceVideo:(f,m,T)=>h(yu,T,f,m),sendVoice:f=>{let m=f.durationMs;return m===void 0||!Number.isFinite(m)||m<Xy?Promise.resolve({ok:false,reason:"invalid-duration"}):h(aC,f)},sendFile:f=>h(Cu,f),sendGif:f=>h(dC,{...f,encrypted:false}),replaceFile:(f,m,T)=>h(Cu,T,f,m),cancel(f){if(!a)return false;let m=t.get(f);return m===void 0?false:(o.set(f,"cancelled"),m.abort(),true)},cancelConversation(f,m="offline"){if(a)for(let[T,M]of r){if(M.conversationType!==f.conversationType||M.conversationId!==f.conversationId)continue;let R=t.get(T);R!==void 0&&(o.set(T,m),R.abort());}},cancelAll(f="offline"){if(a)for(let[m,T]of t)o.set(m,f),T.abort();},retry(f){if(!a)return false;let m=i.get(f);return m===void 0?false:(i.delete(f),p(f,m.input,"queued",0),h(m.spec,m.input,f,m.createdAt),true)},invalidateAssetCacheWrites(){c+=1;},dispose(){if(a){a=false,c+=1;for(let f of t.values())f.abort();t.clear(),s.clear(),o.clear(),i.clear();}}}}function Au(e,n){if(!On(n.miniProgram))throw new Error("sendMiniProgram: \u5C0F\u7A0B\u5E8F\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"miniProgram",body:{miniProgram:n.miniProgram},encryption:{encrypted:n.encrypted??false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function pC(e){return e.id.trim()!==""&&e.conversation.conversationId.trim()!==""&&e.parentMessageId.trim()!==""&&e.senderId.trim()!==""&&(e.action===0||e.action===1)&&Number.isSafeInteger(e.createdAt)&&e.createdAt>=0}function fC(e,n){return Wn.encode(Wn.create({emoji:e,action:n}))}function IC(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function s(p,y){let h=BigInt(e.getSelfId()),f=BigInt(p.conversation.conversationId),m=fC(p.emoji,p.action),T=fe(p.id),M=Ye(p.parentMessageId);switch(p.conversation.conversationType){case "direct":{let R=y===4651?Zr:Lr,k=R.create({sToId:f,sFromId:h,sMsgId:T,msgType:1,msgTime:BigInt(p.createdAt),encrypt:0,sContent:m,parentMsgId:M});return Y({command:y??4650,body:R.encode(k)})}case "group":{let R=Dt.create({sGrpId:f,sToId:f,sFromId:h,sMsgId:T,msgType:5,msgTime:BigInt(p.createdAt),encrypt:0,sContent:m,parentMsgId:M});return Y({command:8978,body:Dt.encode(R)})}case "channel":{let R=Bt.create({sRadioId:f,sFromId:h,sMsgId:T,msgTime:BigInt(p.createdAt),encrypt:0,sContent:m,parentMsgId:M});return Y({command:12817,body:Bt.encode(R)})}}}function i(p,y,h){clearTimeout(p.timer),n.delete(p.event.id),e.domainState.rollbackReaction(p.event.conversation,p.event.parentMessageId,p.event.id),p.resolve({ok:false,reason:y,...h===void 0?{}:{errcode:h}});}function a(p){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let y=e.domainState.getConversationMessage(p.conversation,p.parentMessageId);if(y===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!ba(y))return Promise.resolve({ok:false,reason:"unsupported-message"});if(!cr(p.emoji)||lr(p.emoji)||e.isEmojiSupported?.(p.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let h=Object.freeze({id:en(),conversation:Object.freeze({...p.conversation}),parentMessageId:p.parentMessageId,senderId:e.getSelfId(),emoji:p.emoji,action:p.action,createdAt:t()});return e.domainState.applyReaction(h,"live"),new Promise(f=>{let m=setTimeout(()=>{let T=n.get(h.id);T!==void 0&&i(T,"timeout");},r);n.set(h.id,{event:h,resolve:f,timer:m});try{e.sendFrame(s(h));}catch(T){e.logger?.("reaction-send-frame-failed",{eventId:h.id,cause:T});let M=n.get(h.id);M!==void 0&&i(M,"failed");}})}function c(p){let h=e.domainState.getConversationMessage(p.conversation,p.parentMessageId)?.reactions?.currentUserEmoji===p.emoji?1:0;return a({...p,action:h})}function g(p){let y=n.get(p.eventId);if(y!==void 0){if(p.errcode!==32768&&p.errcode!==0){i(y,"failed",p.errcode);return}if(clearTimeout(y.timer),n.delete(y.event.id),y.event.conversation.conversationType==="direct")try{e.sendFrame(s(y.event,4651));}catch(h){e.logger?.("reaction-opposite-end-send-failed",{eventId:y.event.id,cause:h});}y.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(y.event.emoji).catch(h=>e.logger?.("reaction-report-failed",{emoji:y.event.emoji,cause:h})),y.resolve({ok:true,event:y.event});}}return {set:a,toggle:c,onAck:g,ingest:(p,y="live")=>!pC(p)||!cr(p.emoji)||lr(p.emoji)||e.isEmojiSupported?.(p.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:p.id,parentMessageId:p.parentMessageId,emoji:p.emoji}),"ignored"):e.domainState.applyReaction(p,y),dispose(){o=true;for(let p of [...n.values()])i(p,"disconnected");}}}function yC(e){return [{command:4652,handler:(n,t)=>{let r=Qr.decode(t);e.manager.onAck({eventId:se(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=ur(Jr.decode(t),e.getSelfId());e.manager.ingest(r,"live"),e.logger?.("direct-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:8979,handler:(n,t)=>{let r=go.decode(t);e.manager.onAck({eventId:se(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=mr(uo.decode(t));e.manager.ingest(r,"live"),e.logger?.("group-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:12818,handler:(n,t)=>{let r=Ao.decode(t);e.manager.onAck({eventId:se(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=$i(Ro.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function CC(e){return [{command:12806,handler:(n,t)=>{let r=_o.decode(t);try{e.logger?.("channel-sync-read-ack",{errcode:r.errcode});}catch{}r.errcode!==32768&&e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08cmdId=${n}, errcode=${r.errcode}\uFF09`}});}},{command:12807,handler:(n,t)=>{let r=Go.decode(t),o=r.sUserId.toString();if(r.sUserId<=0n||o!==e.getSelfId())throw new Error(`CHANNEL 0x3207 \u7528\u6237\u4E0D\u5339\u914D\uFF08received=${o}\uFF09`);if(r.radioId<=0n)throw new Error("CHANNEL 0x3207 \u9891\u9053 id \u7F3A\u5931\u6216\u975E\u6CD5");let s=r.lastReadIndex.trim();if(s==="")throw new Error(`CHANNEL 0x3207 cursor \u7F3A\u5931\uFF08channelId=${r.radioId}\uFF09`);e.applyRemoteRead({conversationId:r.radioId.toString(),readCursor:s});}}]}function SC(e){let n=new Map,t=new Map,r=new Map,o=0;function s(R,k){let E={conversationType:"channel",conversationId:R},N=e.domainState.getSession(E);if(N===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${R}\uFF09`);if(N.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${N.type}\uFF08channelId=${R}\uFF09`);if(k.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${R}\uFF09`);let D=e.domainState.getConversationMessage(E,k),w=e.domainState.getLoadedMessagesByConversation(E).find(K=>K.extensions?.historyCursor===k),z=(D===void 0?void 0:Er(D))??(w===void 0?void 0:Er(w));if(z===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${R}, cursor=${k}\uFF09`);return z}function i(R){let k={conversationType:"channel",conversationId:R},E=e.domainState.getReadState(k);if(E?.readCursor!==void 0&&E.readCursor!==""){let N=e.domainState.getLoadedMessagesByConversation(k).find(D=>D.extensions?.historyCursor===E.readCursor);if(N!==void 0){let D=Er(N);if(D!==void 0)return D}}return E?.readCursorSortKey===void 0?void 0:{sortKey:E.readCursorSortKey}}function a(R,k){return Ru(R,k)}function c(R,k){let E=r.get(R),N=E===void 0?i(R):E.committed;return N!==void 0&&a(N,k)>=0}function g(R,k){let E=r.get(R);if(E!==void 0){if(a(E.optimistic,k)>=0)return;e.domainState.applyChannelReadOptimistically(E.transaction,k.messageId,k.cursor),E.optimistic=k;return}let N=i(R),D=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:R});e.domainState.applyChannelReadOptimistically(D,k.messageId,k.cursor),r.set(R,{transaction:D,committed:N,optimistic:k});}function p(R,k){let E=n.get(R);(E===void 0||a(k,E)>0)&&n.set(R,k);}function y(R,k){if(e.syncRead!==void 0)try{let E=Ot.encode(Ot.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(R),lastReadIndex:k}));e.syncRead.sendFrame(Y({command:12805,body:E}));}catch(E){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${R}\uFF09`,cause:E}});}}async function h(R,k){for(;;){if(k!==o)return;let E=n.get(R);if(E===void 0)return;if(n.delete(R),c(R,E))continue;try{await e.updateReadIndex({channelId:R,readCursor:E.cursor});}catch(w){if(k!==o)return;let x=r.get(R);throw x!==void 0&&(e.domainState.rollbackChannelReadTransaction(x.transaction),r.delete(R)),p(R,E),w}if(k!==o)return;if(c(R,E))continue;let N=r.get(R);N!==void 0&&e.domainState.commitChannelReadTransaction(N.transaction,E.cursor)||e.domainState.applyServerUnread({conversationType:"channel",conversationId:R},0,E.messageId,E.cursor),N!==void 0&&(N.committed=E,a(N.optimistic,E)===0&&r.delete(R)),e.logger?.("channel-read-index",{channelId:R,cursor:E.cursor}),y(R,E.cursor);}}function f(R,k){let E=Promise.resolve().then(()=>h(R,k)).then(()=>{if(t.get(R)===E&&(t.delete(R),k===o&&n.has(R)))return f(R,k)},N=>{throw t.get(R)===E&&t.delete(R),N});return t.set(R,E),E}function m(R){let k;try{k=s(R.conversationId,R.readCursor);}catch(N){return Promise.reject(N)}if(c(R.conversationId,k))return Promise.resolve();g(R.conversationId,k),p(R.conversationId,k);let E=t.get(R.conversationId);return E!==void 0?E:f(R.conversationId,o)}function T(R){let k=s(R.conversationId,R.readCursor);c(R.conversationId,k)||(e.domainState.applyServerUnread({conversationType:"channel",conversationId:R.conversationId},0,k.messageId,k.cursor),r.delete(R.conversationId));}function M(){o+=1;for(let R of r.values())e.domainState.rollbackChannelReadTransaction(R.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:m,applyRemoteRead:T,reset:M}}function AC(e){return e===void 0?void 0:Er(e)?.cursor}function Er(e){let n=e.extensions?.historyCursor;if(typeof n!="string"||n.trim()==="")return;let t=e.extensions?.channelSequence,r=typeof t=="string"&&/^\d+$/.test(t)?BigInt(t):void 0;return {cursor:n,messageId:e.id,sortKey:e.sortKey,...r===void 0?{}:{sequence:r}}}function RC(e){let n;for(let t of e){let r=Er(t);r!==void 0&&(n===void 0||Ru(r,n)>0)&&(n=r);}return n?.cursor}function Ru(e,n){return e.sequence!==void 0&&n.sequence!==void 0?e.sequence<n.sequence?-1:e.sequence>n.sequence?1:0:e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var Us=50;function Eu(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function EC(e){if(e.contentType==="voice"||e.contentType==="video")return false;let n=e.body.system?.eventType;return e.conversationType==="direct"&&(n==="direct_contact_established"||n==="direct_contact_required"||n==="direct_message_refused")?false:gn(e.id)}function MC(e,n,t,r){let o=Eu(e,n,r);if(o===void 0)return;let s=Eu(e,n,t),i=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(a=>EC(a)&&a.senderId!==i&&a.sortKey<=o&&(s===void 0||a.sortKey>s)).map(a=>a.id)}function wa(e){let n=new Set,t=new Map,r=new Map;function o(i){let a=r.get(i);if(a===void 0||a.size===0||!e.isAuthenticated())return;for(let g of a)gn(g)||a.delete(g);if(a.size===0){r.delete(i);return}let c=[...a];for(let g=0;g<c.length;g+=Us){let p=c.slice(g,g+Us);try{let y=Fn.encode(Fn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(i),msgIdList:p.map(fe)}));e.sendFrame(Y({command:4117,body:y}));for(let h of p)a.delete(h);}catch(y){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u5A92\u4F53\u6D88\u8D39\u591A\u7AEF\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${i}\uFF09`,cause:y}});break}}a.size===0&&r.delete(i);}function s(i){let a=e.domainState.getReadState({conversationType:"direct",conversationId:i})?.readCursor??"";if(a===""||!e.isAuthenticated())return;let c=MC(e,i,t.get(i),a);if(c===void 0)return;if(c.length===0){t.set(i,a);return}let g,p=true;for(let y=0;y<c.length;y+=Us){let h=c.slice(y,y+Us),f=h.map(fe);try{let m=Fn.encode(Fn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(i),msgIdList:f}));e.sendFrame(Y({command:4117,body:m})),g=h.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:i,count:f.length,offset:y});}catch(m){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${i}\uFF09`,cause:m}}),p=false;break}}p?t.set(i,a):g!==void 0&&t.set(i,g);}return {report(i){n.add(i),s(i);},reportConsumedMedia(i,a){let c=e.domainState.getConversationMessage({conversationType:"direct",conversationId:i},a);if(c===void 0||c.senderId===e.getSelfId()||c.contentType!=="voice"&&c.contentType!=="video")return;n.add(i);let g=r.get(i);g===void 0&&(g=new Set,r.set(i,g)),g.add(a),o(i);},onAck({errcode:i}){e.logger?.("direct-sync-read-ack",{errcode:i}),i!==32768&&i!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${i}\uFF09`,code:4118}});},onDeliver({userId:i,peerId:a,msgIdList:c}){if(i!==e.getSelfId())return;let p=c.map(y=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},se(y))).filter(y=>y!==void 0).sort((y,h)=>y.sortKey<h.sortKey?-1:y.sortKey>h.sortKey?1:0).at(-1);p!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:a},p.id);},onAuthenticated(){for(let i of n)s(i),o(i);},reset(){}}}var Oa=50;function hC(e){let n=new Map,t=new Set,r=new Map,o=new Map;function s(){return e.isAuthenticated?.()??true}function i(c,g){let{syncRead:p}=e;if(p===void 0||!s())return;let y=p.getSelfId(),h=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:c}),f=h.find(N=>N.id===g);if(f===void 0)return;let m=o.get(c),T=m===void 0?void 0:h.find(N=>N.id===m)?.sortKey,M=h.filter(N=>N.senderId!==y&&N.sortKey<=f.sortKey&&(T===void 0||N.sortKey>T));if(M.length===0){o.set(c,g);return}let R=M.map(N=>fe(N.id)),k,E=true;for(let N=0;N<R.length;N+=Oa){let D=R.slice(N,N+Oa);try{let w=Nt.encode(Nt.create({sUserId:BigInt(y),msgIdList:D,groupId:BigInt(c)}));p.sendFrame(Y({command:8967,body:w})),k=M[Math.min(N+Oa,M.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:c,count:D.length,offset:N});}catch(w){e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x2307)\u53D1\u9001\u5931\u8D25\uFF08groupId=${c}\uFF09`,cause:w}}),E=false;break}}E?o.set(c,g):k!==void 0&&o.set(c,k);}async function a(c){if(!(t.has(c)||!s())){t.add(c);try{for(;s();){let g=n.get(c);if(g===void 0)return;if(n.delete(c),r.get(c)!==g){i(c,g);try{await e.markGroupReadAll(c),r.set(c,g);}catch(p){if(!s()){n.has(c)||n.set(c,g);return}n.get(c)===g&&n.delete(c),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${c}\uFF09`,cause:p}});return}}}}finally{t.delete(c),s()&&n.has(c)&&a(c);}}}return {conversationType:"group",markRead({conversationId:c,readCursor:g}){e.domainState.applyServerUnread({conversationType:"group",conversationId:c},0,g),e.logger?.("grp-read-all",{groupId:c}),n.set(c,g),a(c);},onAuthenticated(){for(let c of n.keys())a(c);}}}function TC(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u5DF2\u8BFB\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r),onAuthenticated:()=>{for(let r of n.values())r.onAuthenticated?.();}}}function Mu(e){let n=Rt.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:fe(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return Y({command:4107,body:Rt.encode(n)})}function hu(e){let n=Mt.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:fe(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return Y({command:8197,body:Mt.encode(n)})}function Tu(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:fe(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function vu(e){let n=Vt.create(Tu(e));return Y({command:12297,body:Vt.encode(n)})}function bu(e){let n=Ft.create(Tu(e));return Y({command:12293,body:Ft.encode(n)})}var vC=15e3;function Ka(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,s){let i=t.get(o);i!==void 0&&(i.timer!==void 0&&clearTimeout(i.timer),t.delete(o),i.resolve(s));}return {deleteForEveryone(o){let s=e.domainState.getConversationMessage(o,o.messageId);if(s===void 0||s.conversationId!==o.conversationId||s.id!==o.messageId)return Promise.resolve({ok:false,reason:"not-found"});if(s.conversationType!=="channel")return Promise.resolve({ok:false,reason:"unsupported"});if(s.deletedForEveryone!==void 0)return Promise.resolve({ok:true});if(s.recalled!==void 0)return Promise.resolve({ok:false,reason:"unavailable"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let i;try{i=fe(s.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let a=t.get(i);if(a!==void 0)return a.promise;let c,g=new Promise(y=>{c=y;}),p={messageId:s.id,channelId:s.conversationId,deletedAt:n(),resolve:c,promise:g};return t.set(i,p),e.resolveProfile(s.conversationId).then(y=>{if(t.get(i)===p){if(y===null||y.role!=="admin"&&y.role!=="owner"){r(i,{ok:false,reason:"forbidden"});return}p.timer=setTimeout(()=>r(i,{ok:false,reason:"timeout"}),vC),e.sendFrame(bu({selfId:e.getSelfId(),channelId:s.conversationId,messageId:s.id,msgTime:s.serverTime??s.createdAt}));}}).catch(()=>r(i,{ok:false,reason:"failed"})),g},onDeleteAck({sMsgId:o,errcode:s}){let i=t.get(o);if(i!==void 0){if(s===32768||s===0){e.domainState.deleteChannelMessageForEveryone({conversationId:i.channelId,conversationType:"channel"},i.messageId,{by:e.getSelfId(),at:i.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(s===34052){e.onPermissionDenied?.(i.channelId),r(o,{ok:false,reason:"forbidden",errcode:s});return}r(o,{ok:false,reason:"failed",errcode:s});}},reset(){for(let o of [...t.keys()])r(o,{ok:false,reason:"disconnected"});}}}var st=300*1e3;function Du(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u64A4\u56DE\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Nu(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>st)return "expired"}function _u(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:st,prepare(e,n,t){let r=Nu(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Mu({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function Gu(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:st,prepare(e,n,t){let r=Nu(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:hu({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function bC(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:st,async prepare(n,t,r){if(n.conversationId!==t.conversationId||t.conversationType!=="channel")return {ok:false,reason:"not-found"};if(t.senderId!==r.selfId)return {ok:false,reason:"not-own"};let o=t.serverTime??t.createdAt;if(r.now-o>st)return {ok:false,reason:"expired"};let s=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:vu({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...s===void 0||s===""?{}:{extend:s}})}}}}function La(){return Du([_u(),Gu()])}var Uu=15e3;function Za(e){let n=e.now??(()=>Date.now()),t=e.strategies??La(),r=new Map;function o(s,i){let a=r.get(s);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),r.delete(s),a.resolve(i));}return {recall(s){let i=e.domainState.getConversationMessage(s,s.messageId);if(i===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.recalled!==void 0)return Promise.resolve({ok:true});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let a=t.resolve(s.conversationType);if(a===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let c=e.getSelfId();if(a.ownMessageOnly===true&&i.senderId!==c)return Promise.resolve({ok:false,reason:"not-own"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let g=n();if(a.recallWindowMs!==void 0&&g-(i.serverTime??i.createdAt)>a.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let p=fe(s.messageId),y=r.get(p);if(y!==void 0)return y.promise;let h=a.prepare(s,i,{selfId:c,now:g});function f(R){if(!R.ok)return Promise.resolve(R);let k,E=new Promise(D=>{k=D;}),N=setTimeout(()=>o(p,{ok:false,reason:"timeout"}),Uu);return r.set(p,{messageId:s.messageId,conversationId:s.conversationId,conversationType:s.conversationType,cancelTime:R.recalledAt,resolve:k,timer:N,promise:E}),e.sendFrame(R.frame),E}if(!(h instanceof Promise))return f(h);let m,T=new Promise(R=>{m=R;}),M={messageId:s.messageId,conversationId:s.conversationId,conversationType:s.conversationType,cancelTime:g,resolve:m,promise:T};return r.set(p,M),h.then(R=>{if(r.has(p)){if(!R.ok){o(p,R);return}M.cancelTime=R.recalledAt,M.timer=setTimeout(()=>o(p,{ok:false,reason:"timeout"}),Uu),e.sendFrame(R.frame);}}).catch(()=>o(p,{ok:false,reason:"failed"})),T},onRecallAck({sMsgId:s,errcode:i}){let a=r.get(s);if(a===void 0)return;if(i===32768||i===0){e.domainState.recallMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{by:e.getSelfId(),at:a.cancelTime}),o(s,{ok:true});return}let c=i===33284?"server-expired":"failed";o(s,a.conversationType==="channel"?{ok:false,reason:c,errcode:i}:{ok:false,reason:c});},reset(){for(let s of [...r.keys()])o(s,{ok:false,reason:"disconnected"});}}}function Qa(e){function n(r){let o=qr.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([ta(o,e.getSelfId())],"live");let s=Et.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(Y({command:4109,body:Et.encode(s)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let i=(o?ho:bo).decode(r);if(i.sFromId<=0n||i.sRadioId<=0n||i.sMsgId.trim()==="")return;let a=o?Mo:vo,c=o?12295:12299,g=a.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sIndex});e.sendFrame(Y({command:c,body:a.encode(g)})),e.domainState.upsertMessages([o?oa(i):ra(i)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:i.sMsgId,sFromId:i.sFromId.toString(),sRadioId:i.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let s=zr.decode(o);e.onRecallAck({sMsgId:s.sMsgId,errcode:s.errcode});}},{command:8198,handler:(r,o)=>{let s=jr.decode(o);e.onRecallAck({sMsgId:s.sMsgId,errcode:s.errcode});}},{command:12298,handler:(r,o)=>{let s=To.decode(o);e.onRecallAck({sMsgId:s.sMsgId,errcode:s.errcode});}},{command:12294,handler:(r,o)=>{let s=Eo.decode(o);e.onChannelMessageDeletionAck({sMsgId:s.sMsgId,errcode:s.errcode});}},{command:12300,handler:(r,o)=>t(o,false)},{command:12296,handler:(r,o)=>t(o,true)}]}function Ja(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function DC(e){let n=e.getSelfId().trim();if(!/^[1-9]\d*$/.test(n))throw new Error("channel application: \u5F53\u524D\u8D26\u53F7 id \u7F3A\u5931\u6216\u975E\u6CD5");return BigInt(n).toString()}function NC(e){let n=Ja(e.sFromId,"applicant"),t=Ja(e.sToId,"recipient"),r=Ja(e.sRadioId,"channel"),o=e.sMsgId.trim();if(o==="")throw new Error("channel application: message id \u7F3A\u5931");return {messageId:o,applicantId:n,recipientId:t,channelId:r,messageTime:e.msgTime.toString(),extend:e.extend,selfIntroduction:e.sSelfIntroduce,description:e.sDesc}}function _C(e){function n(t){let r=Do.decode(t),o=DC(e),s=NC(r),i=Pt.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:s.messageId});try{e.sendFrame(Y({command:12547,body:Pt.encode(i)}));}catch(a){e.emitter.emit({type:"error",error:{scope:"transport",message:`CHANNEL \u5165\u7FA4\u7533\u8BF7 ACK \u53D1\u9001\u5931\u8D25\uFF08channelId=${s.channelId}, messageId=${s.messageId}\uFF09`,cause:a}});}s.recipientId===o&&e.emitter.emit({type:"channel-join-application:received",conversation:{conversationType:"channel",conversationId:s.channelId},notification:s});}return [{command:12548,handler:(t,r)=>n(r)}]}function GC(e){if(e.sFromId<0n)throw new Error("channel notify: sender id \u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.sId.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931")}function UC(e){function n(s){let i=wt.create({sFromId:s.sFromId,sRadioId:s.sRadioId,sMsgId:s.sMsgId,sIndex:s.sId});e.sendFrame(Y({command:12803,body:wt.encode(i)}));}function t(s,i,a,c="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:s,message:`${c}\uFF08channelId=${i.sRadioId.toString()}, messageId=${i.sMsgId}\uFF09`,cause:a}});}function r(s){if(s.encrypt===0)return ae.decode(s.sContent);if(s.encrypt===1){if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 Web \u79C1\u94A5\u89E3\u5BC6\u4F9D\u8D56");let c=e.decrypt.resolveUserPrivateKey?.()??null;if(c===null)throw new Error("CHANNEL \u901A\u77E5 Web \u79C1\u94A5\u7F3A\u5931");let g=he.decode(s.sContent);if(g.secretKey.length===0||g.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return ae.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:g.secretKey,cipherData:g.cipherData,privateKey:c}))}if(s.encrypt!==2)throw new Error(`CHANNEL \u901A\u77E5 encrypt=${s.encrypt} \u4E0D\u652F\u6301`);if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 ChannelKeyService \u89E3\u5BC6\u4F9D\u8D56");let i=e.decrypt.resolveChannelKey(s.sRadioId.toString());if(i===null||i.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let a=he.decode(s.sContent);if(a.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return ae.decode(e.decrypt.crypto.decryptSymmetric({teaKey:i,cipherData:a.cipherData}))}function o(s,i){let a=No.decode(i);GC(a);try{n(a);}catch(g){t("transport",a,g,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let c;try{c=r(a);}catch(g){t(a.encrypt===0?"protocol":"crypto",a,g);let p=un(a,ae.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:s,keepRaw:e.keepRaw,decryptFailed:a.encrypt!==0});e.domainState.upsertMessages([p],"live"),(a.encrypt===1||a.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:p.conversationId},messageId:p.id,wireEncrypt:a.encrypt,sContent:a.sContent.slice(),cmdId:s,source:"live",createdAt:Date.now()});return}try{let g=dr({channelId:a.sRadioId,messageId:a.sMsgId,occurredAt:a.msgTime,notifyType:c.type,operatorId:c.oprUserId,targetUserIds:c.mnpledUserId,content:c.content,historyCursor:a.sId,sequence:a.nIncrId,encrypted:a.encrypt!==0,extend:a.extend},{cmdId:s,keepRaw:e.keepRaw});e.domainState.upsertMessages([g],"live"),e.logger?.("channel-notify-deliver",{channelId:a.sRadioId.toString(),messageId:a.sMsgId,notifyType:c.type});}catch(g){t("protocol",a,g);}}return [{command:12804,handler:(s,i)=>o(s,i)}]}function kC(e){let t=new Map([[34049,"channelDismissed"],[34050,"channelMuted"],[34051,"channelNotMember"],[34052,"channelAdminRequired"]]).get(e);return t===void 0?void 0:{code:e,reason:"rejected",displayCode:t,retryable:false}}function xC(e){switch(e){case 34049:return {state:"dismissed",reason:"channel_dismissed"};case 34050:return {state:"muted",reason:"channel_muted"};case 34051:return {state:"unknown_restricted",reason:"channel_not_member"};default:return}}function ku(e,n=true){if(e.sFromId<=0n)throw new Error("channel deliver: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel deliver: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel deliver: message id \u7F3A\u5931");if(n&&e.sId.trim()==="")throw new Error("channel deliver: history cursor \u7F3A\u5931")}function BC(e){function n(c){let g=Co.decode(c),p={...g.sIndex===""?{}:{historyCursor:g.sIndex},...g.nIncrId===0n?{}:{channelSequence:g.nIncrId.toString()}},y=kC(g.errcode);e.outbox.onChatAck({id:se(g.sMsgId),serverTime:Number(g.msgTime),errcode:g.errcode,...Object.keys(p).length===0?{}:{extensions:p},...y===void 0?{}:{failure:y}});let h=xC(g.errcode);h!==void 0&&g.sRadioId>0n&&e.domainState.setChannelRestriction(g.sRadioId.toString(),h.state,h.reason),e.logger?.("channel-chat-ack",{messageId:g.sMsgId,channelId:g.sRadioId.toString(),errcode:g.errcode});}function t(c){let g=xt.create({sFromId:c.sFromId,sRadioId:c.sRadioId,sMsgId:c.sMsgId,sIndex:c.sId});e.sendFrame(Y({command:12291,body:xt.encode(g)}));}function r(c,g,p){let y=c.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:g,messageId:c.sMsgId,channelId:y,encrypt:c.encrypt,payloadByteLength:c.sContent.length,...p}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${p.reason}, channelId=${y}\uFF09`,...p.cause===void 0?{}:{cause:p.cause}}});}function o(c,g){let p;if(c.encrypt===0)p=ae.decode(c.sContent);else if(c.encrypt===1&&e.decrypt!==void 0){let y=e.decrypt.resolveUserPrivateKey?.()??null;if(y===null){r(c,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let h;try{if(h=he.decode(c.sContent),h.secretKey.length===0||h.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(m){r(c,g,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:m});return}let f;try{f=e.decrypt.crypto.decryptEndToEnd({secretKey:h.secretKey,cipherData:h.cipherData,privateKey:y});}catch(m){r(c,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:h.cipherData.length,cause:m});return}try{p=ae.decode(f);}catch(m){r(c,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:h.cipherData.length,decryptedByteLength:f.length,cause:m});return}}else if(c.encrypt===2&&e.decrypt!==void 0){let y=e.decrypt.resolveChannelKey(c.sRadioId.toString());if(y===null||y.length!==16){r(c,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:y?.length??0,keySource:y===null?"miss":"cache"});return}let h;try{let m=he.decode(c.sContent);if(m.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");h=m.cipherData;}catch(m){r(c,g,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:y.length,keySource:"cache",cause:m});return}let f;try{f=e.decrypt.crypto.decryptSymmetric({teaKey:y,cipherData:h});}catch(m){r(c,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:h.length,cause:m});return}try{p=ae.decode(f);}catch(m){r(c,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:h.length,decryptedByteLength:f.length,cause:m});return}}else {r(c,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return p}function s(c,g){let p=un(c,ae.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:g,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([p],"live"),(c.encrypt===1||c.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:p.conversationId},messageId:p.id,wireEncrypt:c.encrypt,sContent:c.sContent.slice(),cmdId:g,source:"live",createdAt:Date.now()});}function i(c,g){let p=So.decode(g);ku(p),t(p);let y=o(p,"live-deliver");if(y===void 0){s(p,c);return}let h=pr({channelId:p.sRadioId,senderId:p.sFromId,msgTime:p.msgTime,encrypt:p.encrypt},y);if(h!==null){e.domainState.upsertMessages([h],"live"),e.logger?.("channel-operation-notify-deliver",{messageId:p.sMsgId,targetMessageId:h.id,channelId:p.sRadioId.toString(),operation:h.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:c});return}let f=un(p,y,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw});e.domainState.upsertMessages([f],"live"),e.logger?.("channel-chat-deliver",{messageId:p.sMsgId,channelId:p.sRadioId.toString(),encrypt:p.encrypt,command:c});}function a(c,g){let p=Cn.decode(g);if(ku(p,false),p.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(p.isEdit===""||p.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(p.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let y=se(p.oldMsgId),h=o(p,"live-edit");if(h===void 0){let m={conversationType:"channel",conversationId:p.sRadioId.toString()};if(e.domainState.getConversationMessage(m,y)===void 0){let T=un(p,ae.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...T,id:y}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:m,messageId:y,wireEncrypt:2,sContent:p.sContent.slice(),cmdId:c,source:"live",createdAt:Date.now()});return}let f=un(p,h,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,edited:true});if(f.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:f.conversationId},y,f.body,f.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:f.conversationId},y)===void 0&&e.domainState.upsertMessages([{...f,id:y,edited:true,extensions:{...f.extensions,editOperationMessageId:f.id,previousMessageId:y}}],"live");}return [{command:12290,handler:(c,g)=>n(g)},{command:12292,handler:(c,g)=>i(c,g)},{command:12816,handler:(c,g)=>i(c,g)},{command:12808,handler:(c,g)=>a(c,g)}]}function Wa(){let e=new Map;return {register(n,t){if(e.has(n))throw new Error(`\u6536\u5305\u547D\u4EE4\u5904\u7406\u5668\u91CD\u590D\u6CE8\u518C\uFF1AcmdId=${n}`);e.set(n,t);},resolve:n=>e.get(n)}}function FC(e){if(e.extend.trim()==="")return false;try{let n=JSON.parse(e.extend);if(n===null||typeof n!="object")return !1;let t=n.friend_info;if(t===null||typeof t!="object")return !1;let r=t.user_id;return (typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&String(r).trim()===e.sFromId.toString()}catch{return false}}function VC(e){return [{command:4360,handler:(n,t)=>{let r=Xr.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application answer: \u5904\u7406\u4EBA\u3001\u7533\u8BF7\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(Y({command:4359,body:At.encode(At.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let s=r.sFromId.toString(),i=r.errcode===32768||r.errcode===33300||FC(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";i==="accepted"&&(e.onRelationshipChanged?.(s,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(s,r.sMsgId,Number(r.msgTime)).catch(a=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u597D\u53CB\u7533\u8BF7\u5DF2\u901A\u8FC7\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:a}});}),e.domainState.refreshConversationProfile(s,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:i}});}}]}function PC(e){return [{command:4356,handler:(n,t)=>{let r=Yr.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application: \u7533\u8BF7\u4EBA\u3001\u63A5\u6536\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(Y({command:4355,body:St.encode(St.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let s=Number(r.msgTime);if(!Number.isSafeInteger(s)||s<=0)throw new Error("contact application: \u6D88\u606F\u65F6\u95F4\u975E\u6CD5");e.emitter.emit({type:"contact-application:received",notification:{applicantId:r.sFromId.toString(),recipientId:o,messageId:r.sMsgId,createdAt:s}});}}]}function Ha(e){function n(f){let m=It.create({sFromId:f.sFromId,sToId:f.sToId,sMsgId:f.sMsgId,msgTime:f.msgTime});e.sendFrame(Y({command:4099,body:It.encode(m)}));}function t(f){let m=ua(Or.decode(f));e.logger?.("chat-ack",{id:m.id,errcode:m.errcode,serverTime:m.serverTime}),e.outbox.onChatAck(m);}function r(f,m,T){let M=qn(f,ae.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:m,keepRaw:e.keepRaw,decryptFailed:true,edited:T});e.domainState.upsertMessages([M],"live"),f.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:M.conversationId},messageId:M.id,wireEncrypt:1,sContent:f.sContent.slice(),...f.encryptVersion===""?{}:{encryptVersion:f.encryptVersion},cmdId:m,source:"live",createdAt:Date.now()});}function o(f,m,T=false){let M=Kr.decode(m),R;if(M.encrypt===0)R=ae.decode(M.sContent);else if(M.encrypt===1&&e.decrypt!==void 0){let E=e.decrypt.resolvePrivateKey({msgType:M.msgType,encrypt:M.encrypt,encryptVersion:M.encryptVersion});if(E===null){e.decrypt.onDecryptError?.({msgId:M.sMsgId,fromId:String(M.sFromId),toId:String(M.sToId),msgType:M.msgType,cmdId:f,encrypt:M.encrypt,encryptVersion:M.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${M.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(M,f,T);return}try{let N=he.decode(M.sContent);if(N.secretKey.length===0||N.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${N.secretKey.length}B cipherData=${N.cipherData.length}B`);let D=e.decrypt.crypto.decryptEndToEnd({secretKey:N.secretKey,cipherData:N.cipherData,privateKey:E});R=ae.decode(D);}catch(N){e.decrypt.onDecryptError?.({msgId:M.sMsgId,fromId:String(M.sFromId),toId:String(M.sToId),msgType:M.msgType,cmdId:f,encrypt:M.encrypt,encryptVersion:M.encryptVersion,reason:"decrypt-failed",cause:N}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${M.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:N}}),r(M,f,T);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${M.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(M,f,T);return}let k=qn(M,R,{selfId:e.getSelfId(),cmdId:f,keepRaw:e.keepRaw,edited:T});e.domainState.upsertMessages([k],"live"),n(M),e.logger?.("chat-deliver",{sMsgId:M.sMsgId,sFromId:String(M.sFromId),sToId:String(M.sToId),encrypt:M.encrypt});}function s(f){let m=ht.create({sUserId:f.sToId,sMsgId:f.sMsgId});e.sendFrame(Y({command:4101,body:ht.encode(m)})),e.logger?.("delivered-notif-ack",{sUserId:String(m.sUserId),sMsgId:m.sMsgId});}function i(f,m){let T=ro.decode(m);if(e.logger?.("delivered-notif",{sMsgId:T.sMsgId,sFromId:String(T.sFromId),sToId:String(T.sToId)}),T.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_DELIVERED_NOTIFICATION(4102) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}s(T),e.emitter.emit({type:"notification",cmdId:f,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function a(f){let m=vt.create({sUserId:f.sToId,sMsgId:f.sMsgId});e.sendFrame(Y({command:4105,body:vt.encode(m)})),e.logger?.("read-deliver-ack",{sUserId:String(m.sUserId),sMsgId:m.sMsgId});}function c(f,m){let T=e.getSelfId(),M=[];for(let R of m){let k=e.domainState.getConversationMessage({conversationType:"direct",conversationId:f},se(R.sMsgId));k!==void 0&&k.senderId===T&&k.receipt!=="read"&&M.push({...k,receipt:"read"});}M.length>0&&e.domainState.upsertMessages(M,"live");}function g(f,m){let T=so.decode(m);if(e.logger?.("read-deliver",{sMsgId:T.sMsgId,sFromId:String(T.sFromId),sToId:String(T.sToId),readResults:T.readResults.length,readReceiptOff:T.readReceiptOff}),T.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_READ_DELIVER(4106) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}if(a(T),T.readReceiptOff!==1){let M=e.getSelfId(),R=T.sFromId.toString(),k=T.sToId.toString();c(R===M?k:R,T.readResults);}e.emitter.emit({type:"notification",cmdId:f,name:"MES_CHAT_READ_DELIVER"});}function p(f){let m=oo.decode(f);e.logger?.("read-report-ack",{notifyId:m.sMsgId,sUserId:String(m.sUserId),errcode:m.errcode}),e.onReadAck?.({notifyId:m.sMsgId,errcode:m.errcode});}function y(f){let m=io.decode(f);e.logger?.("direct-sync-read-ack",{errcode:m.errcode}),e.onSyncReadAck?.({errcode:m.errcode});}function h(f,m){let T=ao.decode(m),M=T.sUserId.toString(),R=T.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:M,peerId:R,msgIds:T.msgIdList.length}),e.onSyncReadDeliver?.({userId:M,peerId:R,msgIdList:T.msgIdList}),e.emitter.emit({type:"notification",cmdId:f,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(f,m)=>t(m)},{command:4100,handler:(f,m)=>o(f,m)},{command:4644,handler:(f,m)=>o(f,m,true)},{command:4102,handler:(f,m)=>i(f,m)},{command:4106,handler:(f,m)=>g(f,m)},{command:4104,handler:(f,m)=>p(m)},{command:4118,handler:(f,m)=>y(m)},{command:4119,handler:(f,m)=>h(f,m)}]}function wC(e){function n(t){let r=Wr.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=yt.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(Y({command:4632,body:yt.encode(o)})),r.friendNotifyType===2&&e.getSelfId()===r.uerId.toString()){let s=r.friendId.toString();e.onRelationshipChanged?.(s,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(s,r.sMsgId,Number(r.msgTime)).catch(i=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:i}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let s=r.friendId.toString(),i=r.friendNotifyType===0,a=r.friendNotifyType===1&&r.blackStatus===2;(i||a)&&(e.onRelationshipChanged?.(s,i?"none":"blocked"),e.domainState.removeConversation({conversationType:"direct",conversationId:s}),Promise.resolve(e.resetDirectReadReceiptPreference?.(s)).catch(c=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:s,error:c}}});}),e.emitter.emit({type:"profile:updated",profileType:"user",id:s}));}e.emitter.emit({type:"notification",cmdId:4631,name:"MES_FRIEND_NOTIFY"});}return [{command:4631,handler:(t,r)=>n(r)}]}function OC(e){function n(s,i){let a=Qn.decode(i),c=e.getSelfId(),g=Ir(a,{cmdId:s,keepRaw:e.keepRaw});e.domainState.upsertMessages([g],"live");let p=_t.create({sUserId:BigInt(c),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(Y({command:8707,body:_t.encode(p)})),e.emitter.emit({type:"notification",cmdId:s,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:a.sGrpId.toString(),sMsgId:a.sMsgId,notifyType:a.notifyType});}function t(s,i){let a=fo.decode(i),c=Gt.create({sUserId:BigInt(e.getSelfId()),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(Y({command:8451,body:Gt.encode(c)})),e.emitter.emit({type:"notification",cmdId:s,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:a.sGrpId.toString(),sMsgId:a.sMsgId});}function r(s){let i=Io.decode(s),a=Ut.create({sFromId:BigInt(e.getSelfId()),sToId:i.sFromId,sGrpId:i.sGrpId,sMsgId:i.sMsgId});e.sendFrame(Y({command:8963,body:Ut.encode(a)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:i.sMsgId});}function o(s){let i=yo.decode(s),a=kt.create({sUserId:BigInt(e.getSelfId()),sMsgId:i.sMsgId});e.sendFrame(Y({command:8965,body:kt.encode(a)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:i.sMsgId});}return [{command:8708,handler:(s,i)=>n(s,i)},{command:8452,handler:(s,i)=>t(s,i)},{command:8964,handler:(s,i)=>r(i)},{command:8966,handler:(s,i)=>o(i)}]}function KC(e){let n=new Map;function t(m){let T=co.decode(m),M={id:se(T.sMsgId),serverTime:Number(T.sendtime),errcode:T.errcode};e.logger?.("grp-chat-ack",{id:M.id,errcode:M.errcode,serverTime:M.serverTime}),e.outbox.onChatAck(M);}function r(m){let T=bt.create({sFromId:BigInt(e.getSelfId()),sGrpId:m.sGrpId,sMsgId:m.sMsgId});e.sendFrame(Y({command:8195,body:bt.encode(T)}));}function o(){return e.isActive?.()??true}function s(m,T,M,R,k=false){let E=m.sGrpId.toString(),N=Dn(m,ae.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:T,keepRaw:e.keepRaw,decryptFailed:true,edited:k});e.domainState.upsertMessages([N],"live"),m.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:E},messageId:N.id,wireEncrypt:1,sContent:m.sContent.slice(),...m.encryptVersion===""?{}:{encryptVersion:m.encryptVersion},cmdId:T,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:m.sMsgId,groupId:E,fromId:String(m.sFromId),msgType:m.msgType,cmdId:T,encrypt:m.encrypt,encryptVersion:m.encryptVersion,reason:M,...R===void 0?{}:{cause:R}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:M==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${m.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u7FA4\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`:`\u5B9E\u65F6\u7FA4\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${m.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...R===void 0?{}:{cause:R}}});}function i(m,T,M,R){let k=Dn(m,M,{selfId:e.getSelfId(),cmdId:T,keepRaw:e.keepRaw,edited:R});e.domainState.upsertMessages([k],"live"),r(m),e.logger?.("grp-chat-deliver",{sMsgId:m.sMsgId,sGrpId:String(m.sGrpId),sFromId:String(m.sFromId),encrypt:m.encrypt});}function a(m,T){let M=he.decode(m.sContent);if(M.secretKey.length===0||M.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${M.secretKey.length}B cipherData=${M.cipherData.length}B`);let R=e.decrypt.crypto.decryptEndToEnd({secretKey:M.secretKey,cipherData:M.cipherData,privateKey:T});return ae.decode(R)}async function c(m,T,M){if(!o())return;if(m.encrypt===0){try{i(m,T,ae.decode(m.sContent),M);}catch(D){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u660E\u6587\u6295\u9012\u89E3\u6790\u6216\u63D0\u4EA4\u5931\u8D25",cause:D}});}return}if(m.encrypt!==1||e.decrypt===void 0){s(m,T,"no-key",void 0,M);return}let k={groupId:m.sGrpId.toString(),msgType:m.msgType,encrypt:m.encrypt,encryptVersion:m.encryptVersion},E;try{E=e.decrypt.resolvePrivateKey(k),E===null&&e.decrypt.preparePrivateKey!==void 0&&(E=await e.decrypt.preparePrivateKey(k));}catch(D){o()&&s(m,T,"no-key",D,M);return}if(!o())return;if(E===null){s(m,T,"no-key",void 0,M);return}let N;try{N=a(m,E);}catch(D){s(m,T,"decrypt-failed",D,M);return}if(o())try{i(m,T,N,M);}catch(D){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:D}});}}function g(m,T,M){let R=m.sGrpId.toString(),E=(n.get(R)??Promise.resolve()).then(()=>c(m,T,M));n.set(R,E),E.finally(()=>{n.get(R)===E&&n.delete(R);});}function p(m,T,M=false){let R=lo.decode(T),k=R.sGrpId.toString();if(n.has(k)){g(R,m,M);return}if(R.encrypt===0){i(R,m,ae.decode(R.sContent),M);return}if(R.encrypt!==1||e.decrypt===void 0){s(R,m,"no-key",void 0,M);return}let E={groupId:k,msgType:R.msgType,encrypt:R.encrypt,encryptVersion:R.encryptVersion},N=e.decrypt.resolvePrivateKey(E);if(N===null){if(e.decrypt.preparePrivateKey!==void 0){g(R,m,M);return}s(R,m,"no-key",void 0,M);return}let D;try{D=a(R,N);}catch(w){s(R,m,"decrypt-failed",w,M);return}i(R,m,D,M);}function y(m){let T=mo.decode(m);e.logger?.("grp-sync-read-ack",{errcode:T.errcode});}function h(m,T){for(let M=T.length-1;M>=0;M-=1){let R=T[M];if(R===void 0||R==="")continue;let k=se(R),E=e.domainState.getConversationMessage({conversationType:"group",conversationId:m},k);if(E!==void 0&&E.conversationId===m)return k}}function f(m,T){let M=po.decode(T),R=M.groupId.toString();if(M.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:R,sUserId:String(M.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:R,sUserId:String(M.sUserId),msgIds:M.msgIdList.length});let k=h(R,M.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:R},0,k),e.emitter.emit({type:"notification",cmdId:m,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(m,T)=>t(T)},{command:8196,handler:(m,T)=>p(m,T)},{command:8976,handler:(m,T)=>p(m,T,true)},{command:8968,handler:(m,T)=>y(T)},{command:8969,handler:(m,T)=>f(m,T)}]}function LC(e){function n(t){let r=Hr.decode(t),o=()=>e.sendFrame(Y({command:4628,body:Ct.encode(Ct.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let s=Bi.decode(r.sContent),i=s.serialNumber.trim();if(i==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let a=Number(s.occurredTime);e.domainState.applyTransferStatusBySerialNumber(i,3,Number.isFinite(a)&&a>0?a:void 0).then(()=>{o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}).catch(c=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u6301\u4E45\u5316\u94B1\u5305\u8F6C\u8D26\u72B6\u6001\u5931\u8D25\uFF0C\u672A\u53D1\u9001 ACK",cause:c}});});return}o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}return [{command:4627,handler:(t,r)=>n(r)}]}function ZC(e){return e.sticker!==void 0&&e.text===void 0&&e.system===void 0&&e.image===void 0&&e.video===void 0&&e.voice===void 0&&e.file===void 0&&e.contact===void 0&&e.miniProgram===void 0&&e.game===void 0&&e.transfer===void 0&&e.unknown===void 0}function QC(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&ZC(n.body)&&n.encryption.encrypted===false,o=lt({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return mg(o);let{crypto:s}=t,{resolveChannelKey:i}=e;return (async()=>{if(s===void 0||i===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let a=await i(n.conversationId);if(a===null||a.length!==16)throw new Error(`channel encrypt=2 \u53D6\u9891\u9053 key \u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return pg(o,s,a)})()}}}function xu(e,n){return yr({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Ya(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=xu(t,r);if(o.encrypt!==1)return yg(o);let{crypto:s,resolveEncryptionKey:i}=r;if(s===void 0||i===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let a=await i(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return Sg(o,s,a)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=xu(t,r);if(o.encrypt!==1)return Cg(o);let{crypto:s,resolveEncryptionKey:i}=r;if(s===void 0||i===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let a=await i(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return Ag(o,s,a)})()}}}function JC(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=ir({id:n.id,conversationId:n.conversationId,body:n.body,encryption:n.encryption,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId});if(r.encrypt!==1)return vg(r);let{crypto:o}=t,{resolveGroupKey:s}=e;if(o===void 0||s===void 0)throw new Error("group encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / \u7FA4\u5BC6\u94A5\u670D\u52A1 resolveGroupKey\uFF09");return (async()=>{let i=await s(n.conversationId);if(i===null||i.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return bg(r,o,i.publicKey,i.version)})()}}}function Bu(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u53D1\u9001\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Mr(){return Bu([Ya()])}function Fu(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!kr(n.transfer))throw new Error("sendTransfer: \u8F6C\u8D26\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"transfer",body:{transfer:n.transfer},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var WC=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,HC=/^[a-z0-9][a-z0-9._-]{0,63}$/,YC=new Set(["durable","rebuildable","ephemeral"]);function Pu(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!WC.test(e))throw new Error("cache.prefix \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 3-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26\uFF0C\u4E14\u9996\u5C3E\u4E3A\u5B57\u6BCD\u6216\u6570\u5B57");return e}function Vu(e,n){if(!HC.test(e))throw new Error(`cache namespace ${n} \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 1-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26`)}function XC(e){let n=Pu(e);return {hostPrefix:n,forAccount(t){if(typeof t!="string"||t===""||t!==t.trim())throw new Error("cache namespace accountId \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684\u5B57\u7B26\u4E32");let r=encodeURIComponent(t);return {hostPrefix:n,accountScope:r,name(o,s,i){if(!YC.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return Vu(s,"domain"),Vu(i,"resource"),o==="durable"&&s==="storage"&&i==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${s}:${i}`}}}}}var wu={error:0,warn:1,info:2,debug:3,trace:4},zC=8,Xa=50,za=100,qC="[REDACTED]",jC="[REDACTED_PRIVATE_KEY]",$C="[SIGNED_URL_REDACTED]",eS=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,nS=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,tS=/(["'])(authorization|cookie|set[_-]?cookie|password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)\1(\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}]+)/gi,rS=/\b(password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)(\s*[:=]\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;]+)/gi,oS=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function sS(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function iS(e){let n=sS(e);return n==="authorization"||n==="cookie"||n==="setcookie"||n==="password"||n==="passwd"||n.includes("apikey")||n.includes("accesskey")||n==="token"||n.endsWith("token")||n.includes("secret")||n.includes("privatekey")||n.includes("secretkey")||n.includes("sessionkey")||n.includes("teakey")||n.includes("signature")||n.includes("credential")}function aS(e){try{let n=new URL(e);return n.protocol!=="http:"&&n.protocol!=="https:"?!1:[...n.searchParams.keys()].some(t=>{let r=t.toLowerCase();return r==="signature"||r==="sig"||r==="token"||/^x-(?:amz|goog)-(?:signature|credential|security-token)$/.test(r)})}catch{return false}}function dS(e){return e.replace(eS,n=>aS(n)?$C:n)}function qa(e){return dS(e).replace(oS,jC).replace(nS,"$1$2[REDACTED]").replace(tS,"$1$2$1$3[REDACTED]").replace(rS,"$1$2[REDACTED]")}function cS(e){if(e instanceof ArrayBuffer)return {type:"ArrayBuffer",byteLength:e.byteLength};if(ArrayBuffer.isView(e))return {type:e.constructor.name,byteLength:e.byteLength};if(typeof Blob<"u"&&e instanceof Blob){let n={type:e.constructor.name,byteLength:e.size,mimeType:e.type};return typeof File<"u"&&e instanceof File&&(n.name=e.name,n.lastModified=e.lastModified),n}}function ja(e){let n=new WeakSet;function t(r,o,s){if(s!==void 0&&iS(s))return qC;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return qa(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=zC)return "[MAX_DEPTH]";let i=cS(r);if(i!==void 0)return i;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let g=r;return {name:g.name,message:qa(g.message),...g.code===void 0?{}:{code:g.code},...g.category===void 0?{}:{category:g.category},...g.retryable===void 0?{}:{retryable:g.retryable},...g.stack===void 0?{}:{stack:qa(g.stack)},...g.data===void 0?{}:{data:t(g.data,o+1,"data")}}}if(typeof r!="object")return String(r);if(n.has(r))return "[CIRCULAR]";if(n.add(r),Array.isArray(r)){let g=r.slice(0,Xa).map(p=>t(p,o+1));return r.length>Xa&&g.push({omittedItems:r.length-Xa}),g}let a=Object.entries(r),c={};for(let[g,p]of a.slice(0,za))c[g]=t(p,o+1,g);return a.length>za&&(c.omittedKeys=a.length-za),c}return t(e,0)}function lS(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,s=false;function i(c,g){return e.enabled&&o!==void 0&&wu[c]<=wu[e.level]&&n.has(g)}function a(c){if(s||e.fallbackSink===void 0)return;s=true;let g={message:"diagnostic-sink-failed"};try{g={message:"diagnostic-sink-failed",data:ja(c)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:g}));}catch{}}return {isEnabled:i,record(c,g,p,y,h){if(!i(c,p))return;let f;try{f={...e.getRuntimeContext?.(),...h?.()};}catch(R){f={error:{message:"diagnostic-payload-factory-failed",data:R}};}let m;try{m=t();}catch{m=Date.now();}let T=++r,M;try{M=ja({timestamp:m,sequence:T,level:c,layer:g,category:p,event:y,...f});}catch{M={timestamp:m,sequence:T,level:c,layer:g,category:p,event:y,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(M));}catch(R){o=void 0,a(R);}}}}function gS(e){return (n,t)=>{let r=n.includes("crypto")?"crypto":n.includes("sync")?"sync":n.includes("read")?"message":n.includes("outbox")?"outbox":n.includes("chat")||n.includes("message")||n.includes("deliver")?"message":"protocol";e.record("trace","core",r,n,()=>({data:t}));}}function uS(){let e=new Set;function n(t){for(let r of [...e])try{r(t);}catch(o){t.type!=="error"&&n({type:"error",error:{scope:"unknown",message:"\u4E8B\u4EF6\u8BA2\u9605\u8005\u56DE\u8C03\u5F02\u5E38",cause:o}});}}return {emit:n,subscribe(t){return e.add(t),()=>{e.delete(t);}},clear(){e.clear();}}}function mS(e){return e===32768||e===0}function pS(e){if(mS(e))return {type:"success"};switch(e){case 33025:return {type:"auth-invalid",issue:{code:e,reason:"token_expired"}};case 33040:return {type:"auth-invalid",issue:{code:e,reason:"kicked"}};case 33026:case 33043:return {type:"auth-invalid",issue:{code:e,reason:"banned"}};default:return {type:"retry",error:{scope:"login",code:e,message:`\u672A\u77E5\u767B\u5F55\u9519\u8BEF\u7801\uFF1A${e}`}}}}function fS(e){let n=ft.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return Y({command:257,body:ft.encode(n)})}function Ou(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function s(a,c){if(o===void 0||o.generation!==a)return;clearTimeout(o.timer);let{resolve:g}=o;o=void 0,g(c);}function i(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:a}=o;o=void 0,a({type:"canceled"});}return {async login(){let a=++r;i();let c;try{c=await e.authProvider.getLoginContext();}catch(p){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:p}}}if(a!==r)return {type:"canceled"};if(c===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let g;try{g=fS(c);}catch(p){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:p}}}return new Promise(p=>{let y=setTimeout(()=>{s(a,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:a,resolve:p,timer:y,selfId:c.userId},e.sendFrame(g);})},onLoginAck(a){if(o===void 0)return;let{generation:c,selfId:g}=o,p;try{let y=wr.decode(a);p=pS(Number(y.nErr)),p.type==="success"&&(p={type:"success",selfId:g});}catch(y){p={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:y}};}s(c,p);},cancel(){r+=1,i();},get awaitingAck(){return o!==void 0}}}var Ku=4294967295,IS=2,yS=2.2,CS=2880;function SS(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function Lu(e,n){if(!Number.isSafeInteger(e)||e<=0||e>Ku)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${Ku} \u7684\u6574\u6570`);return e}function AS(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>yS&&t>CS?IS:0}function $a(e,n){if(e===void 0)throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);let t=e.trim();if(t==="")throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function RS(e,n){return e===void 0?void 0:$a(e,n)}function ES(e){let n=e.trim(),t;try{t=new URL(n);}catch{throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u6709\u6548\u7684 http(s) URL")}if(t.protocol!=="https:"&&t.protocol!=="http:"||t.username!==""||t.password!=="")throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u65E0\u51ED\u636E\u7684 http(s) URL");return t.href}function MS(e){let n=e.kind;if(n!=="sticker"&&n!=="gif")throw new Error(`sendExpression: \u4E0D\u652F\u6301\u7684 asset.kind\uFF08${String(n)}\uFF09`);if(e.kind==="gif"&&Object.prototype.hasOwnProperty.call(e,"packageId"))throw new Error("sendExpression: GIF \u4E0D\u5141\u8BB8\u63D0\u4F9B asset.packageId");let t=Lu(e.width,"asset.width"),r=Lu(e.height,"asset.height"),o=e.description?.trim(),s=e.kind==="sticker"?$a(e.resourceId,"asset.resourceId"):RS(e.resourceId,"asset.resourceId"),i=e.kind==="sticker"?$a(e.packageId,"asset.packageId"):void 0;return {sticker:{url:ES(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:AS(t,r),...s===void 0?{}:{contentId:s},...i===void 0?{}:{packageName:i},...e.size===void 0?{}:{size:SS(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function Zu(e,n){let t=MS(n.asset),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"sticker",body:t,encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function hS(){let e=globalThis.crypto;if(e===void 0||typeof e.getRandomValues!="function")throw new Error("sendGame: \u5F53\u524D runtime \u672A\u63D0\u4F9B crypto.getRandomValues\uFF0C\u5FC5\u987B\u6CE8\u5165 randomUint32");return e.getRandomValues(new Uint32Array(1))[0]}function Qu(e,n=hS){if(!Number.isSafeInteger(e)||e<=0||e>4294967296)throw new Error("sendGame: maxExclusive \u975E\u6CD5");let t=Math.floor(4294967296/e)*e;for(let r=0;r<128;r+=1){let o=n();if(!Number.isSafeInteger(o)||o<0||o>=4294967296)throw new Error("sendGame: randomUint32 \u5FC5\u987B\u8FD4\u56DE uint32");if(o<t)return o%e}throw new Error("sendGame: \u968F\u673A\u6E90\u8FDE\u7EED\u843D\u5165\u62D2\u7EDD\u533A\u95F4")}function TS(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:Qu(3,n)+1};if(e==="dice")return {gameType:e,value:Qu(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function Ju(e,n){let t=TS(n.gameType,e.randomUint32),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"game",body:{game:t},encryption:{encrypted:true},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var Wu=new Set([32768,0]),nd=new Set([33281,33299]),td=33298,vS=new Set([...nd,td]),ks=-2,bS=-1,xs=-3,ed=-4;function we(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>we(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=we(r);return n}return e}function Rn(e){return we(e)}function hr(e){return we(e)}function rd(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),s=e.sendStrategies??Mr(),i=new Map,a=new Map,c=new Map,g=new Set,p=new Set,y=new Set,h=new Set,f=new Set,m=new Set,T=new Map;function M(I){return te(I)}function R(I,v){return I.createdAt!==v.createdAt?I.createdAt-v.createdAt:I.id<v.id?-1:I.id>v.id?1:0}function k(I){let v=M(I),S=a.get(v);if(S!==void 0)return S;let C=0;for(let P of e.domainState.getMessagesByConversation({conversationType:I.conversationType,conversationId:I.conversationId}))C=Math.max(C,P.createdAt);for(let P of i.values())M(P)===v&&(C=Math.max(C,P.createdAt));return a.set(v,C),C}function E(I,v){let S=M(I),C=a.get(S)??k(I);v>C&&a.set(S,v);}function N(I){let v=k(I),S=Math.max(o(),v+1);return a.set(M(I),S),{id:en(),createdAt:S}}function D(I,v){e.onUpdated?.({messageId:I.id,conversation:{conversationType:I.conversationType,conversationId:I.conversationId},state:v,...I.lastError===void 0?{}:{failure:{reason:I.lastError.reason,retryable:I.lastError.retryable}}});}function w(I){e.storage!==void 0&&e.storage.saveOutboxMessage(Rn(I)).catch(v=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",v));}function x(I){e.storage!==void 0&&e.storage.removeOutboxMessage(I).catch(v=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",v));}function z(I){let v=c.get(I);v!==void 0&&(clearTimeout(v),c.delete(I));}function K(I,v,S){let C=S?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,P=e.domainState.getMessage(I);if(P!==void 0){e.domainState.upsertMessages([{...P,...v}],"live",C);return}let G=i.get(I);if(G===void 0)return;let O={id:G.id,conversationId:G.conversationId,conversationType:G.conversationType,senderId:e.getSelfId(),contentType:G.contentType,body:hr(G.body),createdAt:G.createdAt,sortKey:ye(G.createdAt,G.id),status:G.status,receipt:"unread",encryption:we(G.encryption),failure:G.lastError===void 0?void 0:we(G.lastError),...G.mention!==void 0?{mention:we(G.mention)}:{},...G.refMessageId!==void 0?{refMessageId:G.refMessageId}:{}};e.domainState.upsertMessages([{...O,...v}],"live",C);}function j(I){if(!vS.has(I.errcode))return;let v=e.domainState.getMessage(I.id);if(v===void 0||v.conversationType!=="direct"||v.senderId!==e.getSelfId())return;let S=nd.has(I.errcode),C=I.errcode===td,P=I.failure??Es(I.errcode);S?P={...P,displayCode:"contactRequired",retryable:false}:C&&(P={...P,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...v,status:"failed",failure:P}],"live",{authoritativeOutboxFailure:true}),S?e.domainState.appendDirectContactRequiredNotice(v.conversationId,v.id):C&&e.domainState.appendDirectMessageRefusedNotice(v.conversationId,v.id);}function de(I,v){z(I);let S=i.get(I);S!==void 0&&(S.status="failed",S.lastError=v,K(I,{status:"failed",failure:v}),w(S),D(S,"failed"),ce(I));}async function re(I){if(!g.has(I.id)){if(p.has(M(I))){de(I.id,{code:ed,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:false});return}g.add(I.id);try{let v=s.resolve(I.conversationType);if(v===void 0){de(I.id,{code:xs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:ot(I.conversationType,"outbox.dispatch"),retryable:!1});return}let S;try{let C={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},P=v.buildOutgoingFrames===void 0?v.buildOutgoingFrame(I,C):v.buildOutgoingFrames(I,C);if(P instanceof Uint8Array)S=[P];else if(Array.isArray(P))S=P;else {let G=await P;S=G instanceof Uint8Array?[G]:G;}if(S.length===0||S.some(G=>!(G instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${I.conversationType}\uFF09`)}catch{I.attempts+=1,de(I.id,{code:ks,reason:"unknown"});return}if(p.has(M(I))){de(I.id,{code:ed,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:!1});return}if(!e.isAuthenticated()){I.status="pending",K(I.id,{status:"pending"}),w(I),D(I,"queued");return}I.status="sending",I.attempts+=1,K(I.id,{status:"sending"}),w(I),D(I,"sending");for(let C of S)e.sendFrame(C);z(I.id),c.set(I.id,setTimeout(()=>de(I.id,{code:bS,reason:"timeout"}),t));}finally{g.delete(I.id);}}}function ce(I){let v=T.get(I);v!==void 0&&(T.delete(I),v());}function Ce(I){let v=i.get(I);return v===void 0||v.status!=="sending"?Promise.resolve():new Promise(S=>T.set(I,S))}function ge(I){return (I.status==="pending"||I.status==="failed")&&!(I.status==="failed"&&I.lastError?.retryable===false)&&I.resumePolicy!=="manual"&&(I.attempts<r||f.has(I.id))&&s.resolve(I.conversationType)!==void 0}function De(I,v){let S;for(let C of i.values())v.has(C.id)||M(C)!==I||!ge(C)||(S===void 0||R(C,S)<0)&&(S=C);return S}function F(I,v=false){let S=M(I);if(v&&m.add(S),y.has(S)){h.add(S);return}W(S);}function V(){let I=new Set;for(let v of i.values())ge(v)&&I.add(M(v));for(let v of I)L(v,true);}async function W(I){y.add(I);try{do{h.delete(I);let v=new Set;for(;e.isAuthenticated();){let S=De(I,v);if(S===void 0)break;v.add(S.id),f.delete(S.id),await re(S),m.has(I)&&await Ce(S.id);}}while(h.has(I)&&e.isAuthenticated())}finally{y.delete(I),m.delete(I);}}function L(I,v=false){if(v&&m.add(I),y.has(I)){h.add(I);return}W(I);}function q(I){let v={code:ks,reason:"unknown",displayCode:"sendCanceled",retryable:false};I.lastError=v,K(I.id,{status:"failed",failure:v}),f.delete(I.id),i.delete(I.id),x(I.id),D(I,"canceled"),ce(I.id);}return {allocateMessageIdentity:N,enqueueText(I){let{id:v,createdAt:S}=N(I),C={encrypted:I.encrypted??false},P=s.resolve(I.conversationType)!==void 0,G=P&&e.isAuthenticated(),O={id:v,conversationId:I.conversationId,conversationType:I.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:I.text},createdAt:S,sortKey:ye(S,v),status:"pending",receipt:"unread",encryption:we(C),...I.mention!==void 0?{mention:we(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}},Q={id:v,conversationId:I.conversationId,conversationType:I.conversationType,contentType:"text",body:{text:I.text},encryption:we(C),status:"pending",attempts:0,createdAt:S,...I.mention!==void 0?{mention:we(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}};return i.set(v,Q),w(Q),D(Q,"queued"),e.domainState.upsertMessages([O],"live"),P?(G&&F(Q),Rn(Q)):(de(v,{code:xs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:ot(I.conversationType,"outbox.enqueueText"),retryable:false}),Rn(Q))},enqueueContact(I){let v=I.contact.targetId.trim(),S=I.contact.displayName.trim();if(v==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(S==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(I.contact.kind!=="individual"&&I.contact.kind!=="group"&&I.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(I.contact.kind)} \u540D\u7247`);let{id:C,createdAt:P}=N(I),G={encrypted:I.encrypted??false},O=s.resolve(I.conversationType)!==void 0,Q=O&&e.isAuthenticated(),ie={contact:{...I.contact,targetId:v,displayName:S}},me={id:C,conversationId:I.conversationId,conversationType:I.conversationType,senderId:e.getSelfId(),contentType:"contact",body:hr(ie),createdAt:P,sortKey:ye(P,C),status:"pending",receipt:"unread",encryption:we(G),...I.refMessageId===void 0?{}:{refMessageId:I.refMessageId}},Be={id:C,conversationId:I.conversationId,conversationType:I.conversationType,contentType:"contact",body:hr(ie),encryption:we(G),status:"pending",attempts:0,createdAt:P,...I.refMessageId===void 0?{}:{refMessageId:I.refMessageId}};return i.set(C,Be),w(Be),D(Be,"queued"),e.domainState.upsertMessages([me],"live"),O?(Q&&F(Be),Rn(Be)):(de(C,{code:xs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:ot(I.conversationType,"outbox.enqueueContact"),retryable:false}),Rn(Be))},enqueueMedia(I){let{id:v,createdAt:S}=I,C=hr(I.body);di(I.contentType,C,"outbox.enqueueMedia"),E(I,S);let P=s.resolve(I.conversationType)!==void 0,G=P&&e.isAuthenticated(),O={id:v,conversationId:I.conversationId,conversationType:I.conversationType,senderId:e.getSelfId(),contentType:I.contentType,body:hr(C),createdAt:S,sortKey:ye(S,v),status:"pending",receipt:"unread",encryption:we(I.encryption),...I.mention!==void 0?{mention:we(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}},Q={id:v,conversationId:I.conversationId,conversationType:I.conversationType,contentType:I.contentType,body:C,encryption:we(I.encryption),status:"pending",attempts:0,createdAt:S,...I.mention!==void 0?{mention:we(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}};return i.set(v,Q),w(Q),D(Q,"queued"),e.domainState.upsertMessages([O],"live"),P?(G&&F(Q),Rn(Q)):(de(v,{code:xs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:ot(I.conversationType,"outbox.enqueueMedia"),retryable:false}),F(Q,true),Rn(Q))},onChatAck(I){z(I.id);let v=i.get(I.id);if(v===void 0){Wu.has(I.errcode)||j(I);return}if(Wu.has(I.errcode))i.delete(I.id),x(I.id),K(I.id,{status:"sent",serverTime:I.serverTime>0?I.serverTime:void 0,...I.extensions===void 0?{}:{extensions:{...e.domainState.getMessage(I.id)?.extensions,...I.extensions}}}),D(v,"sent"),ce(I.id);else {v.status="failed",v.lastError=I.failure??Es(I.errcode);let S=v.conversationType==="direct"&&nd.has(I.errcode),C=v.conversationType==="direct"&&I.errcode===td;S?v.lastError={...v.lastError,displayCode:"contactRequired",retryable:false}:C&&(v.lastError={...v.lastError,displayCode:"messageRefused",retryable:false}),K(I.id,{status:"failed",failure:v.lastError},{authoritativeFailure:true}),S?e.domainState.appendDirectContactRequiredNotice(v.conversationId,v.id):C&&e.domainState.appendDirectMessageRefusedNotice(v.conversationId,v.id),w(v),D(v,"failed"),ce(I.id);}},onAuthenticated(){V();},retry(I){let v=i.get(I);return v===void 0?{accepted:false,reason:"not-found"}:v.status==="sending"||g.has(I)?{accepted:false,reason:"in-flight"}:v.status==="failed"&&v.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:v.status!=="failed"&&!(v.status==="pending"&&v.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(v.resumePolicy==="manual"&&(v.resumePolicy="automatic",w(v)),f.add(v.id),F(v),{accepted:true})},cancel(I){let v=i.get(I);return v===void 0?{accepted:false,reason:"not-found"}:v.status==="sending"||g.has(I)?{accepted:false,reason:"in-flight"}:v.status!=="pending"?{accepted:false,reason:"invalid-state"}:v.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(q(v),{accepted:true})},markConversationTerminated(I,v){let S=M(I);p.add(S);for(let C of [...i.values()])if(M(C)===S){if(C.status==="pending"&&C.attempts===0&&!g.has(C.id)){q(C);continue}de(C.id,{code:ed,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${v}`,retryable:false});}},clearConversationTerminated(I){let v=M(I);p.delete(v),L(v);},markForLogout(I){for(let v of i.values())if(!(v.status!=="pending"&&v.status!=="sending"&&v.status!=="failed")){if(z(v.id),v.resumePolicy="manual",I.policy==="fail"){let S={code:ks,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};v.status="failed",v.lastError=S,K(v.id,{status:"failed",failure:S}),D(v,"failed");}w(v),ce(v.id);}},getPending(){return [...i.values()].map(Rn)},reset(){for(let I of [...c.keys()])z(I);for(let I of i.values())I.status==="sending"&&(I.status="pending",K(I.id,{status:"pending"}),w(I),D(I,"queued"),ce(I.id));},async hydrate(){if(e.storage!==void 0)try{let I=await e.storage.getOutbox();for(let v of I){let S=Rn(v);if(S.status==="sent"){x(S.id);continue}try{di(S.contentType,S.body,`outbox.hydrate(${S.id})`);}catch(G){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${S.id}\uFF09`,G),x(S.id),e.domainState.getMessage(S.id)!==void 0){let O={code:ks,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};K(S.id,{status:"failed",failure:O},{authoritativeFailure:!0});}continue}let C=S.status==="sending"?"pending":S.status,P={...S,status:C};i.set(S.id,P),E(P,P.createdAt),D(P,C==="pending"?"queued":C),e.domainState.getMessage(S.id)!==void 0&&K(S.id,{status:C,failure:S.lastError===void 0?void 0:we(S.lastError)});}}catch(I){e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",I);}}}}function Hu(e){function n(o,s){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:s}});}let t=Wa(),r={domainState:e.domainState,outbox:e.outbox,onReadAck:e.onReadAck,onSyncReadAck:e.onSyncReadAck,onSyncReadDeliver:e.onSyncReadDeliver,sendFrame:e.sendFrame,getSelfId:e.getSelfId,emitter:e.emitter,logger:e.logger,keepRaw:e.keepRaw,decrypt:e.decrypt};for(let{command:o,handler:s}of Ha(r))t.register(o,s);t.register(108,o=>e.emitter.emit({type:"notification",cmdId:o,name:"CM_DEVICE_ONLINE_STATUS_NOTIFY"}));for(let o of e.commandHandlers??[])t.register(o.command,o.handler);return {route(o,s){let i=t.resolve(o);if(i===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:s.byteLength}),false;try{return i(o,s),!0}catch(a){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,a),false}}}}var DS=new Set([32768,0]);function od(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,s=Math.max(1,n.readReportMaxBatch??200),i=new Map,a=new Map,c=new Map,g=new Set,p=new Map;function y(E){return E!==e.getSelfId()}function h(E){let N=E.body.system?.eventType;return E.contentType==="voice"||E.contentType==="video"?false:!(E.conversationType==="direct"&&(N==="direct_contact_established"||N==="direct_contact_required"||N==="direct_message_refused"))}function f(E,N){if(N!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:E},N)?.sortKey}function m(E,N){let D=f(E,c.get(E)??""),w=new Set;for(let x of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:E}))h(x)&&y(x.senderId)&&gn(x.id)&&x.sortKey<=N&&(D===void 0||x.sortKey>D)&&w.add(x.id);for(let x of p.get(E)??[]){let z=e.domainState.getConversationMessage({conversationType:"direct",conversationId:E},x);z!==void 0&&y(z.senderId)&&gn(z.id)&&(z.contentType==="voice"||z.contentType==="video")&&w.add(z.id);}return [...w].sort((x,z)=>{let K=f(E,x)??"",j=f(E,z)??"";return K<j?-1:K>j?1:0})}function T(E){let N=a.get(E);N!==void 0&&(clearTimeout(N.timer),a.delete(E));}function M(E){let N=i.get(E);N!==void 0&&(clearTimeout(N),i.delete(E)),T(E),p.delete(E);let D=e.domainState.getReadState(E)?.readCursor??"";D!==""&&c.set(E,D);}function R(E,N){let D=a.get(E);if(D!==void 0){if(clearTimeout(D.timer),D.attempts<o&&e.isAuthenticated()){D.attempts+=1,e.sendFrame(D.frame),D.timer=setTimeout(()=>R(E,"timeout"),r);return}a.delete(E),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${N}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}}function k(E){let N=e.domainState.getReadState(E)?.readCursor??"";if(N==="")return;let D=e.domainState.getConversationMessage({conversationType:"direct",conversationId:E},N);if(D===void 0||a.has(E))return;let w=m(E,D.sortKey);if(w.length===0){c.set(E,N);return}if(!e.isAuthenticated())return;let x=e.canSendReadReceipt?.(E);if(x===false){c.set(E,N);return}if(x===void 0&&e.canSendReadReceipt!==void 0)return;let z=w.slice(0,s),K=p.get(E),j=z.filter(ge=>K?.has(ge)===true),re=w.length<=s?N:z[z.length-1],ce=en(),Ce;try{Ce=Y({command:4103,body:Tt.encode(Tt.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(E),sMsgId:ce,readResults:z.map(ge=>({sMsgId:fe(ge),errcode:0})),readReceiptOff:0}))});}catch(ge){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:ge}});return}e.sendFrame(Ce),e.logger?.("read-report",{conversationId:E,notifyId:ce,count:z.length,remaining:w.length-z.length}),a.set(E,{conversationId:E,cursor:re,notifyId:ce,frame:Ce,explicitMediaIds:j,attempts:1,timer:setTimeout(()=>R(E,"timeout"),r)});}return {report(E){g.add(E);let N=i.get(E);if(N!==void 0&&clearTimeout(N),e.canSendReadReceipt?.(E)===false){M(E);return}i.set(E,setTimeout(()=>{i.delete(E),k(E);},t));},reportConsumedMedia(E,N){let D=e.domainState.getConversationMessage({conversationType:"direct",conversationId:E},N);if(D===void 0||!y(D.senderId)||D.contentType!=="voice"&&D.contentType!=="video"||(g.add(E),e.canSendReadReceipt?.(E)===false))return;let w=p.get(E);w===void 0&&(w=new Set,p.set(E,w)),w.add(N),e.isAuthenticated()&&k(E);},onReadAck({notifyId:E,errcode:N}){let D;for(let w of a.values())if(w.notifyId===E){D=w;break}if(D!==void 0)if(e.logger?.("read-report-ack",{conversationId:D.conversationId,notifyId:E,errcode:N}),DS.has(N)){clearTimeout(D.timer),a.delete(D.conversationId),c.set(D.conversationId,D.cursor);let w=p.get(D.conversationId);for(let x of D.explicitMediaIds)w?.delete(x);w?.size===0&&p.delete(D.conversationId),k(D.conversationId);}else R(D.conversationId,"rejected");},onAuthenticated(){for(let E of g)k(E);},suppress(E){if(E!==void 0){M(E);return}let N=new Set([...g,...i.keys(),...a.keys()]);for(let D of N)M(D);},resume(E){if(!g.has(E))return;let N=i.get(E);N!==void 0&&clearTimeout(N),i.set(E,setTimeout(()=>{i.delete(E),k(E);},t));},reset(){for(let E of i.values())clearTimeout(E);i.clear();for(let E of [...a.keys()])T(E);}}}function Yu(e,n){let t=Math.min(n.maxDelayMs,n.baseDelayMs*2**e);return n.jitter?Math.round(t/2+Math.random()*(t/2)):t}function Xu(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,s,i,a=false,c=0;function g(){i!==void 0&&(clearTimeout(i),i=void 0);}function p(){s!==void 0&&(clearInterval(s),s=void 0),g(),a=false,c=0;}function y(){if(c>=r){p(),e.onUnhealthy();return}e.sendPing(),c+=1;}return {start(){s===void 0&&(c=0,s=setInterval(y,t));},stop:p,onAck(){g(),a=false,c=0;},probe(){s!==void 0&&(a||(a=true,e.sendPing(),c=1,clearInterval(s),s=setInterval(y,t),o!==void 0&&(i=setTimeout(()=>{i=void 0,p(),e.onUnhealthy();},o))));},get running(){return s!==void 0},get missedCount(){return c}}}function NS(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function _S(e,n){if(e.length===0)return n;let t=new Uint8Array(e.length+n.length);return t.set(e,0),t.set(n,e.length),t}function GS(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function US(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:s}=e,i=n.heartbeatIntervalMs??1e4,a=n.heartbeatMaxMissed??3,c=n.foregroundProbeTimeoutMs??5e3,g=n.loginTimeoutMs??n.readTimeoutMs??3e4,p={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},y="idle",h=0,f,m=false,T=new Uint8Array(0),M=false,R=0;function k(b){y!==b&&(y=b,s.emit({type:"connection:changed",state:b}));}function E(b){s.emit({type:"error",error:b});}function N(b){t.send(NS(b)).catch(ee=>{E({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:ee});});}let D=Xu({sendPing:()=>N(Y({command:1})),onUnhealthy:()=>{E({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),G();}},{intervalMs:i,maxMissed:a,probeTimeoutMs:c}),w=Ou({authProvider:r,sendFrame:N},{timeoutMs:g}),x="",z=e.sendStrategies??Mr(),K=e.domainState?rd({domainState:e.domainState,sendFrame:N,getSelfId:()=>x,isAuthenticated:()=>y==="authenticated",sendStrategies:z,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(b,ee)=>E({scope:"storage",message:b,cause:ee}),onUpdated:b=>e.emitter.emit({type:"outbox:updated",conversation:b.conversation,item:b})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,j=e.domainState?od({domainState:e.domainState,sendFrame:N,getSelfId:()=>x,isAuthenticated:()=>y==="authenticated",emitter:s,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,de=e.domainState?wa({domainState:e.domainState,sendFrame:N,getSelfId:()=>x,isAuthenticated:()=>y==="authenticated",emitter:s,logger:e.logger}):void 0,re=e.domainState?Za({domainState:e.domainState,sendFrame:N,getSelfId:()=>x,isAuthenticated:()=>y==="authenticated",strategies:e.recallStrategies}):void 0,ce=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?Ka({domainState:e.domainState,sendFrame:N,getSelfId:()=>x,isAuthenticated:()=>y==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,Ce=e.domainState!==void 0&&re!==void 0?Qa({domainState:e.domainState,sendFrame:N,getSelfId:()=>x,onRecallAck:re.onRecallAck,onChannelMessageDeletionAck:b=>ce?.onDeleteAck(b),logger:e.logger}):[],ge=e.domainState?Ta({getSelfId:()=>x,sendFrame:N,isAuthenticated:()=>y==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,De=e.domainState!==void 0&&ge!==void 0?xa({onEditAck:ge.onEditAck}):[],F=e.domainState!==void 0&&K!==void 0&&e.media!==void 0?Pa({getSelfId:()=>x,domainState:e.domainState,outbox:K,mediaTransfer:e.media.transfer,mediaPreview:e.media.preview,mediaAssetCache:e.media.assetCache,onMediaAssetCacheError:e.media.onAssetCacheError,onMediaTransferError:e.media.onTransferError,emitter:s,crypto:e.encryptSend?.crypto,maxConcurrentUploads:e.media.maxConcurrentUploads}):void 0;function V(b,ee){return F===void 0?Promise.reject(new Error(`${b} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):x===""?Promise.reject(new Error(`${b} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):ee(F)}function W(b,ee,le,Re){let Fe=e.domainState?.getConversationMessage({conversationId:le.conversationId,conversationType:le.conversationType},ee);if(Fe===void 0||Fe.conversationId!==le.conversationId||Fe.conversationType!==le.conversationType||Fe.contentType!==Re||Fe.status!=="failed"||Fe.failure?.displayCode!=="media.uploadInterrupted")throw new Error(`${b} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u5237\u65B0\u540E\u4E0A\u4F20\u4E2D\u65AD\u7684${Re==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return Fe}let L=e.domainState&&K?Hu({domainState:e.domainState,outbox:K,onReadAck:j?.onReadAck,onSyncReadAck:de?.onAck,onSyncReadDeliver:de?.onDeliver,sendFrame:N,getSelfId:()=>x,emitter:s,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...Ce,...De]}):void 0;function q(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function I(){f!==void 0&&(clearTimeout(f),f=void 0);}function v(b){return b!==null&&b.userId.trim()!==""&&b.token.trim()!==""}async function S(){try{return v(await r.getLoginContext())?"available":"missing"}catch(b){return E({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:b}),"unavailable"}}function C(b,ee){E({scope:"transport",message:b,cause:ee}),D.stop(),k("disconnected");}function P(){if(f!==void 0)return;let b=Yu(h,p);h+=1,f=setTimeout(()=>{f=void 0,Pe();},b);}function G(){if(y==="reconnecting"||y==="suspended")return;let b=++R;D.stop(),w.cancel(),K?.reset(),j?.reset(),re?.reset(),ce?.reset(),ge?.reset(),k("reconnecting"),q(),S().then(ee=>{if(!(y!=="reconnecting"||b!==R)){if(ee==="missing"){ie({code:0,reason:"token_expired"});return}P();}});}function O(){y==="idle"||y==="disconnected"||y==="disconnecting"||y==="suspended"||(I(),R+=1,D.stop(),w.cancel(),F?.cancelAll("offline"),K?.reset(),j?.reset(),re?.reset(),ce?.reset(),ge?.reset(),k("suspended"),q());}function Q(){if(y==="suspended"){if(e.isOnline?.()===false){k("offline");return}h=0,Pe();}}function ie(b){y==="idle"||y==="disconnected"||(I(),R+=1,D.stop(),w.cancel(),k("disconnected"),q(),s.emit({type:"auth:invalid",issue:b}),Promise.resolve().then(()=>r.onAuthInvalid?.(b)).catch(ee=>E({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:ee})));}function me(b){switch(b.type){case "success":h=0,M=false,b.selfId&&(x=b.selfId),k("authenticated"),D.start(),K?.onAuthenticated(),j?.onAuthenticated(),de?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(b.issue.reason==="token_expired"&&b.issue.code!==0&&!M){M=true,E({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),G();return}ie(b.issue);break;case "retry":E(b.error),G();break;}}async function Be(){let b=await w.login();b.type!=="canceled"&&y==="authenticating"&&me(b);}async function Pe(){if(e.isOnline?.()===false){I(),D.stop(),k("offline");return}let b=++R;k("connecting"),m=false,T=new Uint8Array(0);let ee=await S();if(b!==R)return;if(ee==="missing"){ie({code:0,reason:"token_expired"});return}if(ee==="unavailable"){G();return}let le;try{le=await o.getEndpoints();}catch(Fe){if(b!==R)return;C("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",Fe);return}if(b!==R)return;let Re=le[0];if(Re===void 0){C("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!GS(Re.url)){C(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${Re.url}`);return}try{await t.connect([Re]);}catch(Fe){if(b!==R)return;E({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:Fe}),G();return}b!==R&&q();}function Ve(b,ee){switch(b){case 258:w.onLoginAck(ee);break;case 2:D.onAck();break;case 264:ie({code:33040,reason:"kicked"});break;default:L?.route(b,ee);break}}function ve(b){T=_S(T,new Uint8Array(b));let ee;try{let le=Ji(T);ee=le.frames,T=le.remainder;}catch(le){E({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:le}),G();return}for(let le of ee)Ve(le.header.command,le.body);}return t.on("open",()=>{y==="connecting"&&(k("authenticating"),Be());}),t.on("message",({data:b})=>ve(b)),t.on("error",({error:b})=>{E({scope:"transport",message:"transport \u9519\u8BEF",cause:b});}),t.on("close",()=>{if(D.stop(),m||y==="disconnecting"){m=false,k("disconnected");return}y==="idle"||y==="disconnected"||y==="reconnecting"||y==="suspended"||y==="offline"||G();}),{get state(){return y},async connect(){y==="connecting"||y==="authenticating"||y==="authenticated"||(I(),h=0,await Pe());},disconnect(){if(I(),R+=1,D.stop(),w.cancel(),K?.reset(),j?.reset(),re?.reset(),ce?.reset(),ge?.reset(),m=true,y==="idle"||y==="disconnected"){k("disconnected");return}k("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&k("disconnected");},notifyOnline(){if(y==="offline"){h=0,Pe();return}y==="reconnecting"&&(I(),Pe());},notifyOffline(){y==="idle"||y==="disconnected"||y==="disconnecting"||y==="suspended"||y==="offline"||(I(),R+=1,D.stop(),w.cancel(),F?.cancelAll("offline"),K?.reset(),j?.reset(),re?.reset(),ce?.reset(),ge?.reset(),k("offline"),q());},notifyVisible(){if(y==="suspended"){Q();return}if(y==="offline"&&e.isOnline?.()===true){h=0,Pe();return}if(y==="reconnecting"){I(),Pe();return}if(y==="authenticated"){let b=R;S().then(ee=>{if(!(y!=="authenticated"||b!==R)){if(ee==="missing"){ie({code:0,reason:"token_expired"});return}D.probe();}});}},suspendForPageLifecycle:O,resumeFromPageLifecycle:Q,suppressDirectReadReceipts(b){j?.suppress(b);},resumeDirectReadReceipts(b){j?.resume(b);},reportDirectMediaConsumed(b,ee){j?.reportConsumedMedia(b,ee),de?.reportConsumedMedia?.(b,ee);},sendText(b){if(K===void 0)throw new Error("sendText \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(x==="")throw new Error("sendText \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return K.enqueueText(b)},sendContact(b){if(K===void 0)throw new Error("sendContact \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(x==="")throw new Error("sendContact \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return K.enqueueContact(b)},forwardMessages(b){if(K===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let ee=e.domainState;if(ee===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(x==="")throw new Error("forwardMessages \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Ba({outbox:K,sendStrategies:z,resolveCurrentMessage:le=>ee.getConversationMessage(le,le.id)},b)},recallMessage(b){return re===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):re.recall(b)},deleteChannelMessageForEveryone(b){return ce===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):ce.deleteForEveryone(b)},editMessage(b){return ge===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):ge.edit(b)},sendImage(b){return V("sendImage",ee=>ee.sendImage(b))},sendVideo(b){return V("sendVideo",ee=>ee.sendVideo(b))},sendVoice(b){return V("sendVoice",ee=>ee.sendVoice(b))},sendFile(b){return V("sendFile",ee=>ee.sendFile(b))},sendGif(b){return V("sendGif",ee=>ee.sendGif(b))},sendExpression(b){if(K===void 0)throw new Error("sendExpression \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(x==="")throw new Error("sendExpression \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Zu({outbox:K},b)},sendGame(b){if(K===void 0)throw new Error("sendGame \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(x==="")throw new Error("sendGame \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Ju({outbox:K,randomUint32:e.randomUint32},b)},sendMiniProgram(b){if(K===void 0)throw new Error("sendMiniProgram \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(x==="")throw new Error("sendMiniProgram \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Au({outbox:K},b)},sendTransfer(b){if(K===void 0)throw new Error("sendTransfer \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(x==="")throw new Error("sendTransfer \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Fu({outbox:K},b)},replaceInterruptedVideo(b,ee){return V("replaceInterruptedVideo",le=>{let Re=W("replaceInterruptedVideo",b,ee,"video");return le.replaceVideo(b,Re.createdAt,{...ee,...ee.caption===void 0&&Re.body.video?.describe!==void 0?{caption:Re.body.video.describe}:{},...ee.refMessageId===void 0&&Re.refMessageId!==void 0?{refMessageId:Re.refMessageId}:{}})})},replaceInterruptedFile(b,ee){return V("replaceInterruptedFile",le=>{let Re=W("replaceInterruptedFile",b,ee,"file");return le.replaceFile(b,Re.createdAt,{...ee,...ee.refMessageId===void 0&&Re.refMessageId!==void 0?{refMessageId:Re.refMessageId}:{}})})},cancelMedia(b){F?.cancel(b);},cancelMediaUpload(b){return F?.cancel(b)??false},retryMediaUpload(b){return F?.retry(b)??false},invalidateMediaAssetCacheWrites(){F?.invalidateAssetCacheWrites();},disposeMediaTasks(){F?.dispose();},retryMessage(b){F?.retry(b)!==true&&K?.retry(b);},retryOutboxMessage(b){return K?.retry(b)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(b){return K?.cancel(b)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(b,ee){K?.markConversationTerminated(b,ee);},clearOutboxConversationTerminated(b){K?.clearConversationTerminated(b);},terminateConversationSending(b,ee){F?.cancelConversation(b),K?.markConversationTerminated(b,ee);},markRead(b,ee,le){if(e.domainState===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let Re=le??e.domainState.getSession(b)?.type;if(Re===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${b}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(Re==="direct"){if(j===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(b,ee),j.report(b),de?.report(b);return}let Fe=e.readStrategies?.resolve(Re);if(Fe===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${Re}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return Fe.markRead({conversationId:b,readCursor:ee})},sendFrame(b){N(b);},onChatAck(b){K?.onChatAck(b);},getPendingOutbox(){return K?.getPending()??[]},async hydrateOutbox(){await K?.hydrate();},markOutboxForLogout(b){K?.markForLogout({policy:b});}}}var kS=200;function xS(e){let n=e.maxBatchesPerEndpoint??kS,t=e.yieldToEventLoop??(()=>Promise.resolve()),r=false,o=false;async function s(a,c){let g=[],p="",y=0;for(let h=1;;h++){if(h>n)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${a.endpoint}' \u9012\u5F52\u8D85\u8FC7 ${n} \u6279\u4FDD\u62A4\u4E0A\u9650\uFF08\u7591\u5F02\u5E38/\u672A\u7EC8\u6B62\uFF09`);let f=await a.pullBatch({deliveredMsgInfos:g});if(f.messages.length>0){e.domainState.upsertMessages(f.messages,"offline"),y+=f.messages.length;for(let M of f.messages){let R={conversationType:M.conversationType,conversationId:M.conversationId};c.set(te(R),R);}}let m=f.batchSize>0;if(e.logger?.("sync-batch",{endpoint:a.endpoint,batchNo:h,fetched:f.batchSize,newMessages:f.messages.length,endpointTotal:y,hasMore:m}),!m)break;let T=f.deliveredMsgInfos.at(-1)?.msgId??"";if(T!==""&&T===p)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${a.endpoint}' \u7EED\u70B9\u672A\u524D\u8FDB\uFF08\u670D\u52A1\u7AEF\u7591\u91CD\u590D\u8FD4\u56DE\u540C\u6279 msgId=${T}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);p=T,g=f.deliveredMsgInfos,await t();}return y}async function i(){let a=new Map,c=0;for(let g of e.pullers)c+=await s(g,a);e.logger?.("sync-done",{totalMessages:c,conversations:a.size,done:true}),e.emitter.emit({type:"sync:complete",conversations:[...a.values()]});}return {async sync(){if(r){o=true;return}r=true;try{do{o=!1;try{await i();}catch(a){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:a}});}}while(o)}finally{r=false;}}}}export{ny as $,JC as $a,jf as A,jg as Aa,$f as B,by as Ba,Yl as C,_y as Ca,eI as D,Gy as Da,nI as E,IC as Ea,tI as F,yC as Fa,rI as G,CC as Ga,aI as H,SC as Ha,dI as I,AC as Ia,lI as J,RC as Ja,gI as K,hC as Ka,uI as L,TC as La,mI as M,Du as Ma,pI as N,_u as Na,fI as O,Gu as Oa,II as P,bC as Pa,yI as Q,_C as Qa,AI as R,UC as Ra,MI as S,BC as Sa,hI as T,VC as Ta,TI as U,PC as Ua,VI as V,wC as Va,HI as W,OC as Wa,Dr as X,KC as Xa,Hm as Y,LC as Ya,$s as Z,QC as Za,wn as _,Ya as _a,Pu as a,ry as aa,Bu as ab,XC as b,_n as ba,US as bb,ae as c,Xm as ca,lS as cb,he as d,Ca as da,gS as db,us as e,Ug as ea,uS as eb,qp as f,kg as fa,xS as fb,jp as g,xg as ga,$e as h,cy as ha,or as i,Bg as ia,en as j,Ry as ja,Ke as k,Fg as ka,Fy as l,Vg as la,Oy as m,va as ma,On as n,_s as na,zs as o,mu as oa,kr as p,Gs as pa,Le as q,Pg as qa,fs as r,ba as ra,Sf as s,vs as sa,Is as t,My as ta,Af as u,Ny as ua,Kl as v,ke as va,dr as w,fn as wa,Jf as x,Gn as xa,qf as y,te as ya,Hl as z,Da as za};