k2-im 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -0
- package/dist/browser-BKCNJDKR.js +2 -0
- package/dist/chat-kit-pinia.d.ts +7753 -0
- package/dist/chat-kit-pinia.js +1 -0
- package/dist/chat-kit-vue.d.ts +1557 -0
- package/dist/chat-kit-vue.js +1 -0
- package/dist/chat-kit.d.ts +7674 -0
- package/dist/chat-kit.js +1 -0
- package/dist/chunk-BRHUZPIB.js +1 -0
- package/dist/chunk-I6FUD7EW.js +1 -0
- package/dist/chunk-IDECJJXC.js +0 -0
- package/dist/chunk-RZFMPR6C.js +1 -0
- package/dist/chunk-SXY56EVC.js +0 -0
- package/dist/chunk-UWQHGBMV.js +1 -0
- package/dist/chunk-VKSMKG6Q.js +7 -0
- package/dist/chunk-WOT6VMZA.js +1 -0
- package/dist/chunk-YMH6LM5Q.js +2 -0
- package/dist/i18n.d.ts +1095 -0
- package/dist/i18n.js +1 -0
- package/dist/index.d.ts +8577 -0
- package/dist/index.js +1 -0
- package/dist/sdk.d.ts +4943 -0
- package/dist/sdk.js +1 -0
- package/dist/speex-runtime.txt +1 -0
- package/dist/vendor/crypto/index_bg.wasm +0 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';function di(e){return e===1?"gif":"sticker"}function ar(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 bn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function ci(e){if(e.exprType===2){if(!ar(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!bn(e.width)||!bn(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 li(e){if(e.exprType===2){if(!ar(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!bn(e.width)||e.width===0||!bn(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 Ia,Sa,Ru={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 Ru[e.contentType](e.body)}function Eu(e,n){let t=[],r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let o of e.matchAll(new RegExp(r,"giu"))){let i=o.index;t.push(Object.freeze({start:i,end:i+o[0].length}));}return Object.freeze(t)}function Au(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(s=>Number.isSafeInteger(s)&&s>=0&&s<e.length).sort((s,a)=>s-a);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],i=o;for(let s of t.slice(1)){if(s===i+1){i=s;continue}r.push(Object.freeze({start:o,end:i+1})),o=s,i=s;}return r.push(Object.freeze({start:o,end:i+1})),Object.freeze(r)}function Mu(){return Ia??=import('pinyin-pro').then(e=>e.match),Ia}function hu(){return Sa??=import('pinyin-pro').then(e=>e.pinyin),Sa}async function Tu(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 i=(await hu())(t,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function gi(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 Mu():void 0;return Object.freeze({keyword:n,match(i,s={}){let a=Eu(i,n);if(a.length>0)return Object.freeze({method:"direct",ranges:a});if(s.pinyin===false||o===void 0||!/\p{Script=Han}/u.test(i))return null;let c=o(i,t);if(c===null)return null;let u=Au(i,c);return u.length===0?null:Object.freeze({method:"pinyin",ranges:u})}})}var vu=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function bu(e,n){if(e==="")return [{kind:"text",text:""}];let t=[..._u(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),Nu(e,t))}function Nu(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 Du(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function _u(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?Uu(n.atAllTexts??vu):/\[(\d+)\]/g,o=[],i=r.exec(e);for(;i!==null;){let s=i[1];if(s!==void 0&&!t.atUserIds.includes(s)){i=r.exec(e);continue}let a=s===void 0?{kind:"mention",text:n.atAllDisplay??i[0],atAll:true,isMe:true}:Du(s,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:a}),i=r.exec(e);}return o}function Uu(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=>`${Gu(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function Gu(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var ku=new Set(["audio","video"]),xu=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function je(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 ui(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function mi(e,n){return n===void 0?e:{...e,outgoing:n}}function pi(e,n){let t=je(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 Fu(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 Bu(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 Ca(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 Vu(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function Pu(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function wu(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 Ou(e){let n=je(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=je(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return mi({callKind:Ca(n,"Android \u540C\u6B65 callType"),outcome:Pu(t),durationMs:pi(e.callDuration,"ms")},ui(e.isCaller))}function Ku(e){let n=je(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=je(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return mi({callKind:Bu(n),outcome:Vu(t),durationMs:pi(e.duration,"ms")},ui(e.isCaller))}function Lu(e){let n=je(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=je(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=pi(e.content,"s");return mi({callKind:Ca(n,"iOS type"),outcome:wu(t,r),durationMs:r},ui(e.isCaller))}function Ra(e){if(e===null||typeof e!="object")return false;let n=e;return !(!ku.has(n.callKind)||!xu.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function Ea(e){let n=Fu(e.content);if("callDuration"in n)return Ou(n);if(je(n.callType)!==void 0&&je(n.callStatus)!==void 0)return Ku(n);if(je(n.type)!==void 0&&je(n.status)!==void 0)return Lu(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function Aa(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function Zu(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 Qu(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 Ma(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...Zu(e.visitCardKey)}}function ha(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:Qu(e.kind,e.rawKind)}}function Ta(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 va(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 et(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 ba(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 Na(e){let n=e;if(!et(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 Da(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 _a(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 $e(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Wu(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 Ju(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 kn(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 fi(e){return {appId:e.miniProgramAppId,...$e(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...$e(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...$e(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...$e(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...$e(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...$e(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...Wu(e.miniProgramShowType),...$e(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...$e(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...$e(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...$e(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...$e(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()}}}function yi(e){let n=e;if(!kn(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:Ju(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 nt(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function lr(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function cr(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 Ua(e){return e===1||e===2||e===3||e===4}function Hu(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!Ua(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 Ga(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!Ua(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:lr(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:lr(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...nt(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...nt(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},...nt(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function ka(e){let n=e;if(!Hu(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:cr(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:cr(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:cr(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:cr(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function xa(e){let n=lr(e.fromUid,"fromUid"),t=lr(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=nt(e.radPacketId),i=nt(e.radPacketAmount);return {eventType:r?"red_packet_claimed_thunder":"red_packet_claimed",operatorId:t,targetUserIds:[n],payload:{...o===void 0?{}:{packetId:o},...i===void 0?{}:{amount:i},isThunder:r}}}function Ii(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function Fa(e,n){if(!Ii(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:i,...s}=e;return s}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}function xn(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 Ba(e){return e===0||e===1||e===2||e===3}function Va(e){return e===1||e===2}function mr(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||!Ba(n.status)||!Va(n.sessionType))}function Si(e){let n=e.status;if(!Ba(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!Va(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),...xn(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...xn(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...xn(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},...xn(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...xn(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...xn(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function Ci(e){let n=e;if(!mr(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 Pa(e){let n={url:e.content,width:e.width,height:e.height},t=Yu(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 Yu(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 wa(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 Oa(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 Ka(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 Wa=1,Ja=[{wireContentType:2,domainContentType:"image",parse:e=>({image:Da(e)}),build:e=>e.image!==void 0?_a(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Pa(e)}),build:e=>e.video!==void 0?wa(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:Oa(e)}),build:e=>e.voice!==void 0?Ka(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:Ta(e)}),build:e=>e.file!==void 0?va(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:ci(e)}),build:e=>e.sticker!==void 0?li(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:Ma(e)}),build:e=>e.contact!==void 0?ha(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:fi(e)}),build:e=>e.miniProgram!==void 0?yi(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:ba(e)}),build:e=>e.game!==void 0?Na(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:Si(e)}),build:e=>e.transfer!==void 0?Ci(e.transfer):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:Ea(e)}),build:e=>e.call!==void 0?Aa(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:Ga(e)}),build:e=>e.redPacket!==void 0?ka(e.redPacket):void 0}],om=[{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 yn(e,n){if(e.contentType===Wa)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:Fa(xa(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=Ja.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 Ri(e,n,t="outgoing message"){let r=om.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`)}en(n);}function en(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 Ja){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:Wa,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var Ei=/^[0-9a-f]{32}$/;function In(e){return Ei.test(e.replace(/-/g,"").toLowerCase())}function Pe(){return globalThis.crypto.randomUUID()}function ue(e){let n=e.replace(/-/g,"").toLowerCase();if(!In(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 Je(e){let n=e.replace(/-/g,"").toLowerCase();return Ei.test(n)?n:e}function te(e){let n=e.toLowerCase();return Ei.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function le(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function xe(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var Ai=9,im=20;function tt(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:ue(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:Ai,encrypt:2,bMessage:en(e.body)};return e.mention!==void 0&&Object.assign(o,sm(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=Je(e.refMessageId)),o}function sm(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 rn(e,n,t){return hi({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 Mi(e,n,t){return hi(Ya(e),n,t)}function Ha(e,n,t){return hi(Ya(e),void 0,t,n)}function Ya(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:dm(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function hi(e,n,t,r){am(e,t.edited===true&&e.oldMessageId.trim()!=="");let o=te(e.messageId),i=e.senderId.toString(),s=e.channelId.toString(),a=Number(e.msgTime),c=a>0?a:t.receivedAt??Date.now(),u=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:yn(n,t.selfId),f=cm(e,u.body.text??""),y=e.sequence.toString(),A={channelMessageType:Ai,channelSequence:y,historyCursor:e.historyCursor};e.oldMessageId!==""&&(A.previousMessageId=te(e.oldMessageId));let m={id:o,conversationId:s,conversationType:"channel",senderId:i,contentType:u.contentType,body:u.body,createdAt:c,sortKey:le(c,`${y.padStart(im,"0")}:${o}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:A};return t.decryptFailed===true&&(m.encryption.decryptFailed=true),a>0&&(m.serverTime=a),e.parentMessageId!==""&&(m.refMessageId=te(e.parentMessageId)),(e.edited||t.edited===true)&&(m.edited=true),f!==void 0&&(m.mention=f),t.keepRaw&&(m.raw=fm(e,n,t.cmdId,r)),m}function am(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 dm(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(pr)}catch{}return n.split(/[\s,;]+/).filter(pr)}function cm(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=gm(e.notifyUsers.filter(pr),lm(n)),{ranges:o,atUsersName:i}=um(e.extend);if(!(!t&&r.length===0&&o===void 0&&i===void 0))return {atAll:t,atUserIds:r,...o===void 0?{}:{ranges:o},...i===void 0?{}:{atUsersName:i}}}function lm(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function gm(e,n){return [...new Set([...e,...n])]}function pr(e){return /^[1-9]\d*$/.test(e)}function um(e){if(e==="")return {};try{let n=JSON.parse(e),t=mm(n.atRange),r=pm(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function mm(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 pm(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))pr(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function fm(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId.toString(),sToId:e.channelId.toString(),msgType:Ai,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 on=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var Ye=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwiWAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8iMwoMUHVsbENobm5JbmZvEg8KB3NDaG5uSWQYASABKAMSEgoKc1JlYWRJbmRleBgCIAEoCSJWChJQdWxsQ2hublNlc3Npb25Sc3ASDwoHZXJyY29kZRgBIAEoDRIvCglsc1Nlc3Npb24YAiADKAsyHC5pbS5jaGFubmVsLnB1bGwuU2Vzc2lvbkluZm8ijwEKC1Nlc3Npb25JbmZvEg8KB3NDaG5uSWQYASABKAMSEgoKc1JlYWRJbmRleBgCIAEoCRIPCgd1VW5yZWFkGAMgASgNEicKBGxhc3QYBCABKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQSDwoHdVN0YXR1cxgFIAEoDRIQCgh1RXhpc3RBdBgGIAEoDSK+AgoIQ2hubkNoYXQSDwoHc0Zyb21JZBgBIAEoAxIPCgdzQ2hubklkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAwSDgoGZXh0ZW5kGAcgASgJEg4KBnNJbmRleBgIIAEoCRIUCgxuTm90aWZ5Q291bnQYCSABKAUSFAoMc05vdGlmeVVzZXJzGAogASgJEhYKDnVPcGVyYXRpb25UeXBlGAsgASgNEg8KB3NJbmNySWQYDCABKAMSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkSDgoGaXNFZGl0GA8gASgFEhAKCG9sZE1zZ0lkGBAgASgJEhEKCWV2ZW50VHlwZRgRIAEoBSJvChJQdWxsQ2hubk1lc3NhZ2VSZXESDwoHc1VzZXJJZBgBIAEoAxI0CgZsc1B1bGwYAiADKAsyJC5pbS5jaGFubmVsLnB1bGwuUHVsbENobm5NZXNzYWdlSW5mbxISCgpjbGllbnRUeXBlGAMgASgNInIKE1B1bGxDaG5uTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzQmFzZUluZGV4GAIgASgJEhIKCnVEaXJlY3Rpb24YAyABKA0SDgoGdUNvdW50GAQgASgNEhIKCnVJc0NvbnRhaW4YBSABKA0iUwoSUHVsbENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlYKElVwZGF0ZVJlYWRJbmRleFJlcRIPCgdzVXNlcklkGAEgASgDEi8KB2xzSW5kZXgYAiADKAsyHi5pbS5jaGFubmVsLnB1bGwuUmVhZEluZGV4SW5mbyIwCg1SZWFkSW5kZXhJbmZvEg8KB3NDaG5uSWQYASABKAMSDgoGc0luZGV4GAIgASgJIiUKElVwZGF0ZVJlYWRJbmRleFJzcBIPCgdlcnJjb2RlGAEgASgNIjQKD0dldFJlYWRJbmRleFJlcRIPCgdzVXNlcklkGAEgASgDEhAKCGxzQ2hubklkGAIgAygDIlMKD0dldFJlYWRJbmRleFJzcBIPCgdlcnJjb2RlGAEgASgNEi8KB2xzSW5kZXgYAiADKAsyHi5pbS5jaGFubmVsLnB1bGwuUmVhZEluZGV4SW5mbyJxChtQdWxsU3BlY2lmaWVkQ2hubk1lc3NhZ2VSZXESDwoHc1VzZXJJZBgBIAEoAxJBCg5sc1NwZWNpZmllZE1zZxgCIAMoCzIpLmltLmNoYW5uZWwucHVsbC5QdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8iRAoYUHVsbFNwZWNpZmllZE1lc3NhZ2VJbmZvEg8KB3NDaG5uSWQYASABKAMSFwoPc1NwZWNpZmllZEluZGV4GAIgASgJIlwKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdCJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),Xa=messageDesc(Ye,0);var za=messageDesc(Ye,2);var qa=messageDesc(Ye,5);var ja=messageDesc(Ye,7),$a=messageDesc(Ye,8);var ed=messageDesc(Ye,10);messageDesc(Ye,11);messageDesc(Ye,12);messageDesc(Ye,13);messageDesc(Ye,15);messageDesc(Ye,16);messageDesc(Ye,18);var an=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZ0IiChNjb20ubW9zYW50LmltLnByb3RvWgsuLi9ncm91cHNydmIGcHJvdG8z");messageDesc(an,0);messageDesc(an,1);var cd=messageDesc(an,2),ld=messageDesc(an,3),gd=messageDesc(an,4),ud=messageDesc(an,5);var md=messageDesc(an,11),pd=messageDesc(an,12);var fd=messageDesc(an,17),yd=messageDesc(an,18);var Sd=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi9A8KCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCWIGcHJvdG8z");var Cd=messageDesc(Sd,1),Rd=messageDesc(Sd,2);var Cn=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[on]),Fn=messageDesc(Cn,0),Bn=messageDesc(Cn,1),rt=messageDesc(Cn,2),ot=messageDesc(Cn,3),Ti=messageDesc(Cn,4),vi=messageDesc(Cn,5),bi=messageDesc(Cn,6),Ed=messageDesc(Cn,7);var Oe=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[on]),it=messageDesc(Oe,0),fr=messageDesc(Oe,1),Ad=messageDesc(Oe,2);var Md=messageDesc(Oe,5),hd=messageDesc(Oe,6),Td=messageDesc(Oe,7),vd=messageDesc(Oe,8),bd=messageDesc(Oe,9),Nd=messageDesc(Oe,10),Dd=messageDesc(Oe,11);var _d=messageDesc(Oe,14),Ni=messageDesc(Oe,15),Di=messageDesc(Oe,16),Ud=messageDesc(Oe,17);var kd=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[on]),xd=messageDesc(kd,0),Fd=messageDesc(kd,1);var Te=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[on]),Vn=messageDesc(Te,0),_i=messageDesc(Te,1),Bd=messageDesc(Te,2),Ui=messageDesc(Te,3),Vd=messageDesc(Te,4);var Gi=messageDesc(Te,7);var Pd=messageDesc(Te,9),wd=messageDesc(Te,10),ki=messageDesc(Te,11),xi=messageDesc(Te,12),Od=messageDesc(Te,13);var Kd=messageDesc(Te,15),Ld=messageDesc(Te,16),Zd=messageDesc(Te,17);var Qd=messageDesc(Te,26);var Wd=messageDesc(Te,29);var Jd=messageDesc(Te,33);var Fi=messageDesc(Te,48),yr=messageDesc(Te,49);var Hd=messageDesc(Te,51),Yd=messageDesc(Te,52);var Xd=messageDesc(Te,59),zd=messageDesc(Te,60);var Le=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[on]),Bi=messageDesc(Le,0),qd=messageDesc(Le,1),jd=messageDesc(Le,2),Vi=messageDesc(Le,3),$d=messageDesc(Le,4),ec=messageDesc(Le,5),Pi=messageDesc(Le,6);var nc=messageDesc(Le,8),wi=messageDesc(Le,9),tc=messageDesc(Le,10),rc=messageDesc(Le,11),Oi=messageDesc(Le,12),oc=messageDesc(Le,13),ic=messageDesc(Le,14);var ac=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDWIGcHJvdG8z");var dc=messageDesc(ac,1),cc=messageDesc(ac,2);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 fe(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function mc(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 st=B(257,xd),Ir=B(258,Fd),Rn=B(4097,Vn),Sr=B(4098,_i),Cr=B(4100,Vn),at=B(4099,Ui),Rr=B(4650,Vn),Er=B(4651,Vn),Ar=B(4652,_i),Mr=B(4653,Vn),hr=B(4631,Hd),dt=B(4632,Yd),Tr=B(4627,Qd),ct=B(4628,Wd),Ki=fe(Jd),vr=B(4356,Od),lt=B(4355,Kd),br=B(4360,Ld),gt=B(4359,Zd),ut=B(4107,ki),Nr=B(4108,xi),Dr=B(4110,ki),mt=B(4109,xi),pt=B(8197,vd),_r=B(8198,bd),Ur=B(4644,Xd),Gr=B(4646,zd),kr=B(8976,Ud),xr=B(8977,fr),Fr=B(4102,Ui),ft=B(4101,Vd),yt=B(4103,Gi),Br=B(4104,Pd),Vr=B(4106,Gi),It=B(4105,wd),Nn=B(4117,Fi),Pr=B(4118,yr),wr=B(4119,Fi),dn=B(8193,it),Or=B(8194,fr),Kr=B(8196,it),St=B(8195,Ad),Ct=B(8978,it),Lr=B(8979,fr),Zr=B(8980,it),Rt=B(8967,Di),Qr=B(8968,yr),Wr=B(8969,Di),Pn=B(8708,Dd),Et=B(8707,hd),Jr=B(8452,Nd),At=B(8451,Md),Hr=B(8964,_d),Mt=B(8963,Ni),Yr=B(8966,Ni),ht=B(8965,Td),ln=B(12289,Fn),Xr=B(12290,Bn),Tt=B(12291,rt),zr=B(12292,Fn),vt=B(12817,Fn),qr=B(12818,Bn),jr=B(12819,Fn),bt=B(12293,ot),$r=B(12294,Bn),eo=B(12295,rt),no=B(12296,ot),Nt=B(12297,ot),to=B(12298,Bn),ro=B(12299,rt),oo=B(12300,ot),Dt=B(12547,vi),io=B(12548,Ti),pc=B(12551,vi),fc=B(12552,Ti),_t=B(12803,rt),so=B(12804,Fn),Ut=B(12805,bi),ao=B(12806,yr),co=B(12807,bi),lo=B(12808,Ed),go=B(12809,Bn),Gt=B(16385,Bi),uo=B(16386,qd),kt=B(16387,jd),mo=B(16388,Bi),xt=B(16389,Vi),po=B(16390,$d),Ft=B(16391,ec),fo=B(16392,Vi),Bt=B(16395,nc),yo=B(16396,Pi),wn=B(16397,wi),Io=B(16398,tc),Vt=B(16399,rc),yc=B(16400,wi),Pt=B(16401,Oi),So=B(16402,oc),wt=B(16403,ic),Co=B(16404,Oi),ne=fe(Rd),Se=fe(Cd),On=fe(Bd),Ro=fe(dc),Li=fe(cc),Eo=fe(gd),Zi=fe(ud),Ao=fe(md),Qi=fe(pd),Mo=fe(fd),Wi=fe(yd),ho=fe(cd),Ji=fe(ld),To=fe(Xa),Hi=fe(za),vo=fe(qa),bo=fe(ja),Dm=fe($a),_m=fe(ed);mc([st,Ir,Rn,Sr,Cr,at,Rr,Er,Ar,Mr,hr,dt,Tr,ct,vr,lt,br,gt,ut,Nr,Dr,mt,Gr,Fr,ft,yt,Br,Vr,It,Nn,Pr,wr,dn,Or,pt,_r,xr,Kr,St,Ct,Lr,Zr,Rt,Qr,Wr,Pn,Et,Jr,At,Hr,Mt,Yr,ht,ln,Xr,Tt,zr,vt,qr,jr,bt,$r,eo,no,Nt,to,ro,oo,Dt,io,pc,fc,_t,so,Ut,ao,co,go,Gt,uo,kt,mo,xt,po,Ft,fo,Bt,yo,wn,Io,Vt,yc,Pt,So,wt,Co]);var Ze=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function Cc(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new Ze(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 Ze(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function Ic(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function Pm(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wm(e){return e===void 0||Number.isInteger(e)}function Ot(e){return e===void 0||e===0||e===1}function Sc(e){return e===void 0||typeof e=="string"}function Rc(e){if(!Pm(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===""||!Ot(e.isBrowse)||!Ot(e.isCancel)||!Ot(e.isEdit)||!Ot(e.isNotifyAll)||!Sc(e.notifyUsersName)||!Sc(e.parentMsgId)||!Ot(e.readStatus)||!wm(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new Ze("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function Om(e){let n;try{if(n=Cc(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=ne.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof Ze?t:new Ze("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function Kt(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(Cc(e,"INVALID_BASE64"));}catch(r){throw r instanceof Ze?r:new Ze("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 Ze("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return Rc(t),{envelope:t,message:Om(t.msgContent)}}function Lt(e){let n=ne.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new Ze("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:Ic(n)};return Rc(t),Ic(new TextEncoder().encode(JSON.stringify(t)))}var Km=new Uint8Array(0);function No(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 H(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;No(e.command,16,"command"),No(n,8,"flags"),No(t,8,"appId"),No(r,32,"msgSeq");let o=e.body??Km,i=o.length;if(12+i>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${i}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let s=new Uint8Array(16+i),a=new DataView(s.buffer);return a.setUint32(0,12+i,false),a.setUint8(4,n),a.setUint8(5,t),a.setUint16(6,e.command,false),a.setUint32(8,i,false),a.setUint32(12,r,false),s.set(o,16),s}function Yi(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 i=4+o;if(e.length-r<i)break;let s=t.getUint32(r+8,false);if(o!==12+s)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${s} \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:s,msgSeq:t.getUint32(r+12,false)},c=e.subarray(r+16,r+i);n.push({header:a,body:c}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var Lm=5;function En(e,n,t){let r=e.sFromId.toString(),o=Number(e.msgTime),i=te(e.sMsgId),s=yn(n,t.selfId),a=s.contentType==="text",c=o>0?o:t.receivedAt??Date.now(),u={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:s.contentType,body:s.body,createdAt:c,sortKey:le(c,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(u.encryption.decryptFailed=true),o>0&&(u.serverTime=o),e.parentMsgId&&(u.refMessageId=te(e.parentMsgId)),t.edited===true&&(u.edited=true);let f=Zm(e,a?n.content:"");return f!==void 0&&(u.mention=f),t.keepRaw&&(u.raw=Hm(e,n,t.cmdId)),u}function Kn(e,n){let t=Ec(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=Ac(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function Zm(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=Ac(e.sNotifyUsers.map(a=>a.toString()),Ec(n)),{ranges:o,atUsersName:i}=Qm(e.extend);if(!t&&r.length===0&&o===void 0&&i===void 0)return;let s={atAll:t,atUserIds:r};return o!==void 0&&(s.ranges=o),i!==void 0&&(s.atUsersName=i),s}function Ec(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 Ac(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 Qm(e){if(e==="")return {};try{let n=JSON.parse(e),t=Wm(n.atRange),r=Jm(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function Wm(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:i,end:s}=r;(typeof o=="string"||typeof o=="number")&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&typeof s=="number"&&Number.isInteger(s)&&s>=i&&n.push({userId:String(o),start:i,end:s});}return n.length>0?n:void 0}function Jm(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 Hm(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 Zt(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:ue(e.id),msgType:Lm,encrypt:e.encryption.encrypted?1:0,bMessage:en(e.body)};return e.mention!==void 0&&Object.assign(t,Ym(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=Je(e.refMessageId)),t}function Ym(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=Xm(e);return t!==void 0&&(n.extend=t),n}function Xm(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 Ge=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function Qt(e){return e instanceof Ze||e instanceof Ge?e.code:"INVALID_SNAPSHOT"}function Do(e,n){let t=Kt(e),{envelope:r}=t;if(r.convType!==2)throw new Ge("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new Ge("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 Ge("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=dn.create({sGrpId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgType:r.msgType,msgTime:BigInt(r.msgTime),parentMsgId:r.parentMsgId??"",encrypt:0});i=En(a,t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new Ge("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:a})}let s=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"group",messageId:i.id,preview:s,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function zm(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new Ge("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 Ge("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=ne.create(en(e.body)),r=Lt({envelope:{convType:2,msgContent:"",msgId:ue(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?"":Je(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:Do(r,{conversationId:e.conversationId})}}function _o(e,n){let t=Kt(e),{envelope:r}=t;if(r.convType!==3)throw new Ge("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new Ge("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 Ge("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=r.nIncrId??"0";i=rn(ln.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 Ge("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:a})}let s=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"channel",messageId:i.id,preview:s,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function qm(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new Ge("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 Ge("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=ne.create(en(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=Lt({envelope:{convType:3,msgContent:"",msgId:ue(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?"":Je(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:i,pinnedMessage:_o(i,{conversationId:e.conversationId})}}var jm=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 $m(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function An(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||Ii(n.eventType)||!$m(e,n.eventType))return e;let t=jm.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 ep={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"},Mc=new Set([17,18,22,23,24]),np=20;function Uo(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?zi(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&Mc.has(n.rawNotifyType)&&n.fallbackText!==void 0,i=n.operatorId,s=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&i!==void 0&&i!=="";if(!r&&!o&&!s)return An(e);let a={...n,eventType:t};return o&&delete a.fallbackText,s&&i!==void 0&&(a.targetUserIds=[i]),An({...e,body:{...e.body,system:a}})}function hc(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 Xi(e){if(!hc(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return Uo({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function zi(e){return ep[e]??"channel_unknown"}function Wt(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=te(e.messageId),r=Number(e.occurredAt),o=r>0?r:n.receivedAt??Date.now(),i=e.sequence!==void 0&&e.sequence>0n?e.sequence.toString():void 0,s={eventType:zi(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(s.operatorId=e.operatorId.toString());let a=e.targetUserIds?.filter(c=>c>0n).map(c=>c.toString())??[];if(a.length>0&&(s.targetUserIds=a),e.content!==void 0&&e.content!==""&&!Mc.has(e.notifyType)&&(s.fallbackText=e.content),e.notifyType===23)try{s.pinnedMessageAction={type:"pin",pinnedMessage:_o(e.content??"",{conversationId:e.channelId.toString(),...s.operatorId===void 0?{}:{operatorId:s.operatorId}})};}catch(c){s.pinnedMessageAction={type:"invalid",code:Qt(c)};}else e.notifyType===24&&(s.pinnedMessageAction={type:"unpin"});return Uo({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:s},createdAt:o,...r>0?{serverTime:r}:{},sortKey:le(o,i===void 0?t:`${i.padStart(np,"0")}:${t}`),status:"sent",receipt:"read",encryption:{encrypted:e.encrypted??false},extensions:{...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...i===void 0?{}:{channelSequence:i}},...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}}}}:{}})}var Tc=2;function tp(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function Jt(e){let n=On.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:tp(n.action)}}function Ht(e,n){let t=Jt(e.sContent),r=e.sFromId.toString();return {id:te(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:te(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function Yt(e){let n=Jt(e.sContent);return {id:te(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:te(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function qi(e){let n=Jt(e.sContent);return {id:te(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:te(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function ji(e){if(e.eventType===Tc)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=Jt(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function $i(e){let n=Jt(e.sContent);return {id:te(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:te(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Go(e,n,t){return n===e?t:n}function es(e,n){let t=te(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,s=i?String(e.sGroupId):Go(n,r,String(e.sToId)),a=Number(e.msgTime)||o;return {id:t,conversationId:s,conversationType:i?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:a,sortKey:le(a,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function ns(e){let n=te(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:le(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function ts(e){let n=te(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:le(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function rs(e){let n=te(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:le(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}`)}var rp=ne.create({contentType:1,content:""}),op=101;function vc(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,i={channelId:e.sChnnId.toString(),readCursor:e.sReadIndex,unreadCount:e.uUnread,channelState:r,hasUnreadMention:o};return r!=="active"&&(i.sendDisabledReason=n&&t?"channel_membership_unknown":"channel_state_requires_calibration"),(!n||!t)&&(i.raw={status:e.uStatus,mentionStatus:e.uExistAt}),i}function ip(e){return To.encode(To.create({sUserId:ko(e.userId,"user"),lsChnnInfo:e.channels.map(n=>({sChnnId:ko(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function bc(e){return vo.encode(vo.create({sUserId:ko(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:ko(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function sp(e){return bc({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function ap(e,n,t){let r=Hi.decode(e);_c(r.errcode,"sessions");let o=Uc(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let s=i.sChnnId.toString();Gc(s,o,"sessions");let a=vc(i);if(i.last!==void 0){if(i.last.sChnnId!==i.sChnnId)throw new Error(`channel sessions: last \u9891\u9053\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08session=${i.sChnnId}, last=${i.last.sChnnId}\uFF09`);let c=Dc(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);c!==null&&(a.last=c);}return a})}}function Nc(e,n,t){let r=bo.decode(e);_c(r.errcode,"offlineMessages");let o=Uc(n.expectedChannelIds),i={},s={},a=new Map;for(let c of r.lsMessage){let u=c.sChnnId.toString();Gc(u,o,"offlineMessages"),i[u]=c.sIndex,s[u]=(s[u]??0)+1;let f=Dc(c,n,t);f!==null&&!a.has(f.id)&&a.set(f.id,f);}return {messages:[...a.values()].sort(xe),batchSize:r.lsMessage.length,messageCounts:s,nextBaseIndexes:i}}function dp(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=bo.decode(e),o=Nc(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),i=r.lsMessage[0]?.sIndex;if(i!==void 0&&i===n.requestedBaseIndex)throw new Error(`channel history cursor \u5FAA\u73AF\uFF08channelId=${n.channelId}, baseIndex=${i}\uFF09`);return {messages:o.messages,...i===void 0?{}:{nextBaseIndex:i},batchSize:o.batchSize,exhausted:o.batchSize<n.requestedCount}}function Dc(e,n,t){if(ji(e)){try{n.onReaction?.($i(e));}catch(s){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:s});}return null}if(e.uOperationType===1||e.uOperationType===2)return rs(e);let r=rp,o=false;if(e.encrypt===0)try{r=ne.decode(e.sContent);}catch(s){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:s}),Ha(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let s=t.resolveUserPrivateKey?.()??null;if(s===null)o=true,t.onDecryptError?.(gn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let a;try{if(a=Se.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?.(gn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:c})),a=Se.create();}if(!o){let c;try{c=t.crypto.decryptEndToEnd({secretKey:a.secretKey,cipherData:a.cipherData,privateKey:s});}catch(u){o=true,t.onDecryptError?.(gn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,cause:u})),c=new Uint8Array;}if(!o)try{r=ne.decode(c);}catch(u){o=true,t.onDecryptError?.(gn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,decryptedByteLength:c.length,cause:u}));}}}}else if(e.encrypt===2&&t!==void 0){let s=e.sChnnId.toString(),a=t.resolveChannelKey(s);if(a===null||a.length!==16)o=true,t.onDecryptError?.(gn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:a?.length??0,keySource:a===null?"miss":"cache"}));else {let c;try{let u=Se.decode(e.sContent);if(u.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");c=u.cipherData;}catch(u){o=true,t.onDecryptError?.(gn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:a.length,keySource:"cache",cause:u})),c=new Uint8Array;}if(!o){let u;try{u=t.crypto.decryptSymmetric({teaKey:a,cipherData:c});}catch(f){o=true,t.onDecryptError?.(gn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:c.length,cause:f})),u=new Uint8Array;}if(!o)try{r=ne.decode(u);}catch(f){o=true,t.onDecryptError?.(gn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:c.length,decryptedByteLength:u.length,cause:f}));}}}}else o=true,t?.onDecryptError?.(gn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o&&r.contentType===op)return Wt({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 i=Mi(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:i.conversationId},messageId:i.id,wireEncrypt:e.encrypt,sContent:e.sContent.slice(),source:n.diagnostic?.endpoint==="history"?"history":"offline",createdAt:Date.now()}),i}function gn(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 _c(e,n){if(e!==0)throw new Error(`channel ${n}: errcode=${e}`)}function Uc(e){return e===void 0?void 0:new Set(e)}function Gc(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 ko(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function cp(e,n,t){let r=yn(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var kc="system",lp=32768;function xc(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 os(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?An(e):An({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function gp(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 Xt(e,n){let t=te(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),s=e.sMnpledUserId.map(m=>m.toString()),a={eventType:xc(e.notifyType),rawNotifyType:e.notifyType},c=Number(e.errcode);c!==0&&(a.errcode=c),i!==void 0&&(a.operatorId=i),s.length>0&&(a.targetUserIds=s);let u=e.notifyType===12,f=e.notifyType===13;!u&&!f&&e.sContent!==""&&(a.fallbackText=e.sContent);let y=u||f?void 0:gp(e.sContent);if(y!==void 0&&(a.payload=y),u)try{a.pinnedMessageAction={type:"pin",pinnedMessage:Do(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(m){a.pinnedMessageAction={type:"invalid",code:Qt(m)};}else f&&(a.pinnedMessageAction={type:"unpin"});let A={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:kc,contentType:"system",body:{system:a},createdAt:o,sortKey:le(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(A.serverTime=r),n.keepRaw&&(A.raw={cmdId:n.cmdId}),os(A)}function is(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!==lp?null:{state:"active",reason:""}}default:return null}}function ss(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var up=new Set([8196,8976]),Fc=ne.create({contentType:1,content:""});function mp(e){return Ao.encode(Ao.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function pp(e){return Eo.encode(Eo.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function fp(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=Se.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 i=t.crypto.decryptEndToEnd({secretKey:o.secretKey,cipherData:o.cipherData,privateKey:r});return ne.decode(i)}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 as(e,n,t){if(e.cmdId===8980){let c=dn.decode(e.sMsgData),u={...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?.(Yt(u)),null}if(e.cmdId===8708)return Xt(Pn.decode(e.sMsgData),{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw});if(!up.has(e.cmdId))return null;let r=dn.decode(e.sMsgData),o=Fc,i=false,s=false;if(r.encrypt===0)try{o=ne.decode(r.sContent);}catch{s=true;}else if(r.encrypt===1&&t!==void 0){let c=fp(r,r.sGrpId.toString(),t);o=c??Fc,i=c===null;}else i=true;let a=En(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return s&&(a.contentType="unknown",a.body={unknown:{reason:"malformed-content"}},a.raw={...a.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&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=te(e.parentMsgId)),e.isEdit===1&&(a.edited=true),a}function yp(e,n,t){let r=Qi.decode(e),o=[],i=[];for(let s of r.msgList){i.push({msgId:s.sMsgId,msgTime:s.msgTime,cmdId:s.cmdId});let a=as(s,n,t);a!==null&&o.push(a);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length}}function Ip(e,n,t){let r=Zi.decode(e),o=[],i=[];for(let s of r.sessionList){o.push({groupId:s.groupId.toString(),unreadCount:Number(s.unreadCount)});for(let a of s.msgList){let c=as(a,n,t);c!==null&&i.push(c);}}return {unreads:o,messages:i}}function Sp(e){return Mo.encode(Mo.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),baseTime:BigInt(e.baseTime),direct:e.direct??1,limit:e.limit??50,clientType:String(e.clientType??0)}))}function Cp(e,n,t){let r=Wi.decode(e),o=[];for(let s of r.msgList){let a=as(s,n,t);a!==null&&o.push(a);}let i=r.msgList.map(s=>Number(s.msgTime));return {messages:o,batchSize:r.msgList.length,...i.length===0?{}:{oldestEntryTime:Math.min(...i),newestEntryTime:Math.max(...i)}}}function Rp(e){return ho.encode(ho.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function Ep(e){return {code:Ji.decode(e).code}}function zt(e){return /^\[[^[\]\s]+\]$/.test(e)}function qt(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function Ap(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function Mp(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function ds(e,n,t){let r=new Map;for(let a of e){let c=r.get(a.senderId);(c===void 0||Ap(c,a)<0)&&r.set(a.senderId,a);}let o=new Map,i;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&&(i=a.emoji);}let s=[...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),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(Mp)),aggregates:Object.freeze(s)})}function cs(e,n,t){if(!zt(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(qt(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:ds([...e?.events??[],n],t,(e?.version??0)+1)}function ls(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 ds(r,t,e.version+1)}function gs(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 ds([...r.values()],t,Math.max(e.version,n.version))}var Bc={unread:0,delivered:1,read:2};function xo(e,n){return Bc[n]>Bc[e]?n:e}function Vc(e,n){return e==="sent"||n==="sent"?"sent":n}function Fo(e,n,t=""){let r=e.serverTime??0,o=n.serverTime??0,s=o>=r?{...e,...n}:{...n,...e},a=Math.max(r,o),c=Math.min(e.createdAt,n.createdAt),f=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":Vc(e.status,n.status),y=f==="failed"?n.failure??e.failure:void 0,A=gs(e.reactions,n.reactions,t),m=e.encryption.decryptFailed===true,p=n.encryption.decryptFailed===true,M=s.contentType,E=s.body,C=s.encryption,_=s.mention;m&&!p?(M=n.contentType,E=n.body,C=n.encryption,_=n.mention):!m&&p&&(M=e.contentType,E=e.body,C=e.encryption,_=e.mention),n.edited===true&&!p&&(M=n.contentType,E=n.body,C=n.encryption,_=n.mention);let R=e.body.voice?.waveform??n.body.voice?.waveform;E.voice!==void 0&&E.voice.waveform===void 0&&R!==void 0&&(E={...E,voice:{...E.voice,waveform:R}});let v=e.edited===true||n.edited===true,b=e.deletedForEveryone??n.deletedForEveryone;if(b!==void 0){let Q={...s,id:e.id,createdAt:c,serverTime:a>0?a:void 0,status:f,failure:y,receipt:xo(e.receipt,n.receipt),sortKey:le(c,e.id),recalled:void 0,deletedForEveryone:b,body:{},encryption:s.encryption};return delete Q.reactions,Q}let x=e.recalled??n.recalled;if(x!==void 0){let Q={...s,id:e.id,createdAt:c,serverTime:a>0?a:void 0,status:f,failure:y,receipt:xo(e.receipt,n.receipt),sortKey:le(c,e.id),recalled:x,body:{},encryption:s.encryption};return delete Q.reactions,Q}let U={...s,id:e.id,createdAt:c,serverTime:a>0?a:void 0,status:f,failure:y,receipt:xo(e.receipt,n.receipt),sortKey:le(c,e.id),contentType:M,body:E,encryption:C,...A===void 0?{}:{reactions:A},...v?{edited:true}:{}};return _!==void 0?U.mention=_:delete U.mention,U}function hp(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 Bo(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:Fo(o,r,n));}return [...t.values()]}function Tp(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function vp(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 bp(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&&Vp(e.targetUserIds,n.targetUserIds)&&us(e.payload,n.payload)&&us(e.action,n.action)&&us(e.pinnedMessageAction,n.pinnedMessageAction)}function Np(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&&Dn(e.teaKey,n.teaKey)}function Dp(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 _p(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&&Dn(e.thumbData,n.thumbData)}function Up(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function Gp(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 kp(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 xp(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 Fp(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 Bp(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function Vp(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function us(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function Pp(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:vp(e.atUsersName,n.atUsersName)}function Dn(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function wp(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&Dn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&Dn(e.teaKey,n.teaKey)}function Op(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&&Dn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&Dn(e.teaKey,n.teaKey)}function Kp(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&&Dn(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function Ln(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&&bp(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??"")&&hp(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&Pp(e.mention,n.mention)&&wp(e.body.image,n.body.image)&&Op(e.body.video,n.body.video)&&Kp(e.body.voice,n.body.voice)&&Np(e.body.file,n.body.file)&&_p(e.body.sticker,n.body.sticker)&&Dp(e.body.contact,n.body.contact)&&Gp(e.body.miniProgram,n.body.miniProgram)&&Up(e.body.game,n.body.game)&&xp(e.body.transfer,n.body.transfer)&&kp(e.body.call,n.body.call)&&Fp(e.body.redPacket,n.body.redPacket)&&Bp(e.body.unknown,n.body.unknown)&&Tp(e.failure,n.failure)}var Lp=1;function Zn(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),s=te(e.sMsgId),a=yn(n,t.selfId),c=i>0?i:t.receivedAt??Date.now(),u={id:s,conversationId:Go(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:a.contentType,body:a.body,createdAt:c,sortKey:le(c,s),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(u.encryption.decryptFailed=true),i>0&&(u.serverTime=i),e.parentMsgId&&(u.refMessageId=te(e.parentMsgId)),t.edited===true&&(u.edited=true),t.keepRaw&&(u.raw=Zp(e,n,t.cmdId)),u}function Zp(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 jt(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:ue(e.id),msgType:Lp,encrypt:e.encryption.encrypted?1:0,bMessage:en(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:Je(e.refMessageId)}:{}}}function ms(e){return {id:te(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function Vo(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 Qp(e){return Ro.encode(Ro.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var Wp=new Set([4100,4113,4644,4645]),Pc=ne.create({contentType:1,content:""});function Jp(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=Se.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 ne.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 Hp(e,n,t){let r=Li.decode(e),o=[],i=[];for(let s of r.msgList){if(i.push({msgId:s.sMsgId,msgTime:s.msgTime,cmdId:s.cmdId}),s.cmdId===4653){let A=Rn.decode(s.sMsgData),m={...A,sMsgId:A.sMsgId||s.sMsgId,sFromId:A.sFromId===0n?s.sFromId:A.sFromId,sToId:A.sToId===0n?s.sToId:A.sToId,msgTime:A.msgTime===0n?s.msgTime:A.msgTime,parentMsgId:A.parentMsgId||s.parentMsgId};n.onReaction?.(Ht(m,n.selfId));continue}if(!Wp.has(s.cmdId))continue;let a=Rn.decode(s.sMsgData),c=Pc,u=false,f=false;if(a.encrypt===0)try{c=ne.decode(a.sContent);}catch{f=true;}else if(a.encrypt===1&&t!==void 0){let A=Jp(a,t);c=A??Pc,u=A===null;}else u=true;let y=Zn(a,c,{selfId:n.selfId,cmdId:s.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:u});f&&(y.contentType="unknown",y.body={unknown:{reason:"malformed-content"}},y.raw={...y.raw,contentDecodeFailure:{codec:"BMessage",byteLength:a.sContent.length}}),u&&a.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:y.conversationId},messageId:y.id,wireEncrypt:1,sContent:a.sContent.slice(),...a.encryptVersion===""?{}:{encryptVersion:a.encryptVersion},cmdId:s.cmdId,source:"offline",createdAt:Date.now()}),y.refMessageId===void 0&&s.parentMsgId&&(y.refMessageId=te(s.parentMsgId)),s.isCancel===1&&(y.recalled={by:y.senderId,at:y.serverTime??y.createdAt},y.body={}),s.isEdit===1&&(y.edited=true),o.push(y);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length}}function We(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 Qn(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 Yp(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,i=n?.[2]===void 0?void 0:Number(n[2]),s=n?.[3]===void 0?void 0:Number(n[3]);if(i!==void 0){let a=r.getMonth()+1;(a<i||a===i&&s!==void 0&&r.getDate()<s)&&(o-=1);}return o>=0&&o<200?o:void 0}function Xp(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 i=JSON.parse(o);if(Array.isArray(i))return n(i)}catch{}return [o]}}return []}function zp(e){let n=t=>t.flatMap(r=>{if(r===null||typeof r!="object")return [];let o=r,i=o.country_code??o.countryCode;if(typeof i!="string"||typeof o.mobile!="string")return [];let s=i.trim(),a=o.mobile.trim();return s===""||a===""?[]:[{countryCode:s,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 qp=["user_id","userId","id","uid"],jp=["nick_name","nickName","nickname","name"],$p=["remark_name","remarkName"],ef=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],nf=["per_signature","signature","sign"],tf=["mid"],rf=["birthday"],of=["public_key","publicKey"],wc=["is_undisturb","isUndisturb"];function sf(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=We(t,qp);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:We(t,jp)??""},i=We(e,$p);i!==void 0&&(o.remark=i);let s=We(t,ef);s!==void 0&&(o.avatar=s);let a=We(t,nf);a!==void 0&&(o.signature=a);let c=We(t,tf);c!==void 0&&(o.miCallId=c);let u=We(t,rf);if(u!==void 0){o.birthday=u;let p=Yp(u);p!==void 0&&(o.age=p);}let f=Xp(e);f.length>0&&(o.remarkEmail=f);let y=zp(e);y.length>0&&(o.remarkPhones=y);let A=We(t,of);A!==void 0&&(o.publicKey=A);let m=Qn(e,wc);return m!==void 0&&(o.muted=m===1),o}var af=["group_id","groupId","id","gid"],df=["group_name","groupName","name"],cf=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],lf=["total_users","member_count","memberCount","member_num","memberNum"],gf=["status"],uf=["is_ingroup","isInGroup","isIngroup"],mf=["user_id","userId","owner_id","ownerId","master_id","masterId"],pf=["verify_way","verifyWay"],ff=["invite_code","inviteCode"];function yf(e){let n=We(e,af);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:We(e,df)??""},r=We(e,cf);r!==void 0&&(t.avatar=r);let o=Qn(e,lf);o!==void 0&&(t.memberCount=o);let i=Qn(e,gf);i!==void 0&&(t.status=i);let s=Qn(e,uf);s!==void 0&&(t.isInGroup=s===1);let a=We(e,mf);a!==void 0&&(t.ownerId=a);let c=Qn(e,pf);c!==void 0&&(t.verifyWay=c);let u=We(e,ff);u!==void 0&&(t.inviteCode=u);let f=e.to_user;if(f!==null&&typeof f=="object"){let y=Qn(f,wc);y!==void 0&&(t.muted=y===1);}return t}function If(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function Sf(e){if(_n(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:di(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 Cf(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)&&Rf(e.targetUserIds,n.targetUserIds)&&Ef(e.payload,n.payload)}function _n(e){return e.body.system?.timelineVisibility!=="hidden"}function Rf(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Ef(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function ps(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 Cf(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 Af(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 fs(e,n={}){let t=e.contentType==="system"&&_n(e)?e.body.system:void 0,r=e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:If(e),lastMessageSummary:Sf(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:Af(e,n.selfId)}}var Oc=-5,$t=-4,Mf=new Set(["image","video","voice","file","sticker"]);function hf(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 Mn(e){let n=os(Uo(Xi(e)));n.body.game!==void 0&&!et(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!Ra(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=hf(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=An(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 ys(e){if(e.status==="uploading"){let n=Mf.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:Oc,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===$t){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 Tf(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function Po(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 Kc(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 Zc(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=Kc(e),i=Kc(n);return o!==i?i>o?n:e:t.status!==r.status?r.status>t.status?n:e:n.serverTime!==void 0&&e.serverTime===void 0?n:e}function Lc(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function Qc(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function Is(e,n){let t=new Map,r=new Set(n.map(s=>s.id)),o=new Map(n.map(s=>[s.id,s]));for(let s of n){let a=Lc(s);a!==null&&t.set(a,[...t.get(a)??[],s]);}if(t.size===0)return [...n];for(let s of e){let a=Lc(s);a===null||!t.has(a)||r.has(s.id)||t.get(a)?.push(s);}let i=[];for(let s of t.values()){let c=s.reduce(Zc).body.transfer;if(c!==void 0)for(let u of s){let f=u.body.transfer;if(f===void 0||Qc(f,c))continue;let y={...u,body:{transfer:Po(f,c)}};r.has(u.id)?o.set(u.id,y):i.push(y);}}return [...n.map(s=>o.get(s.id)??s),...i]}function wo(e,n,t,r){let o=[];for(let i of e){if(!Tf(i,n))continue;let s=i.body.transfer;if(s===void 0)continue;let a={...s,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??s.returnTime}:{}},c={...i,body:{transfer:a}};Zc(i,c)!==c||Qc(s,a)||o.push({...i,body:{transfer:a}});}return o}function vf(e){return e.contentType!=="system"&&e.recalled===void 0&&e.deletedForEveryone===void 0}function Wc(e,n,t=e.encrypt){return ln.encode(ln.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 Nf(e,n,t){return H({command:12289,body:Wc(e,n,t)})}function Jc(e){return ne.encode(ne.create(e.bMessage))}function Cs(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:Jc(e)}),o=Se.encode(Se.create({cipherData:r}));return Wc(e,o,2)}function Hc(e){return Nf(e,Jc(e),0)}function Yc(e,n,t){return H({command:12289,body:Cs(e,n,t)})}function Rs(e,n){let t=Rn.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 Rn.encode(t)}function Xc(e,n){return H({command:4097,body:Rs(e,n)})}function zc(e,n){let t=Rs(e,n);return [H({command:4097,body:t}),H({command:4113,body:t})]}function Es(e){return ne.encode(ne.create(e.bMessage))}function As(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Es(e),publicKey:t});return Se.encode(Se.create({secretKey:r,cipherData:o}))}function qc(e){return Xc(e,Es(e))}function jc(e){return zc(e,Es(e))}function $c(e,n,t){return Xc(e,As(e,n,t))}function el(e,n,t){return zc(e,As(e,n,t))}function nl(e,n,t){return Rs(e,As(e,n,t))}function tl(e,n,t){let r=dn.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 dn.encode(r)}function rl(e,n,t){return H({command:8193,body:tl(e,n,t)})}function ol(e){return ne.encode(ne.create(e.bMessage))}function il(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:ol(e),publicKey:t});return Se.encode(Se.create({secretKey:r,cipherData:o}))}function sl(e){return rl(e,ol(e))}function al(e,n,t,r){return rl(e,il(e,n,t),r)}function dl(e,n,t,r){return tl(e,il(e,n,t),r)}function cl(e){let n=Ur.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:ue(e.messageId),content:e.content});return H({command:4644,body:Ur.encode(n)})}function ll(e){let n=kr.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:ue(e.messageId),content:e.content});return H({command:8976,body:kr.encode(n)})}function gl(e){let n=lo.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:ue(e.messageId),content:e.content,IncrId:e.incrementId});return H({command:12808,body:lo.encode(n)})}function ul(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 ml(){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=jt({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=nl(o,t.crypto,r);return {ok:true,frame:cl({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function pl(){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=Zt({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=dl(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:ll({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function Df(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 i=await e.resolveChannelKey(t.conversationId);if(i===null||i.length!==16)return {ok:false,reason:"no-key"};let s=t.serverTime??t.createdAt,a=tt({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:s}),c=Cs(a,r.crypto,i),u=t.extensions?.channelSequence,f=typeof u=="string"&&/^\d+$/.test(u)?BigInt(u):0n;return {ok:true,frame:gl({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:c,incrementId:f})}}}}function Ms(){return ul([ml(),pl()])}var fl=120*1e3,_f=15e3;function hs(e){let n=e.now??(()=>Date.now()),t=e.strategies??Ms(),r=new Map;function o(i,s){let a=r.get(i);a!==void 0&&(clearTimeout(a.timer),r.delete(i),a.resolve(s));}return {edit(i){let s=e.domainState.getConversationMessage(i,i.messageId);if(s===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationId!==s.conversationId||i.conversationType!==s.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let a=e.getSelfId();if(s.senderId!==a)return Promise.resolve({ok:false,reason:"not-own"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(s.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(s.deletedForEveryone!==void 0)return Promise.resolve({ok:false,reason:"deleted"});if(i.text==="")return Promise.resolve({ok:false,reason:"empty"});let c=t.resolve(i.conversationType);if(c===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(s.serverTime??s.createdAt)>fl)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let u=ue(i.messageId),f=r.get(u);if(f!==void 0)return f.promise;let y,A=new Promise(p=>{y=p;}),m={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:y,timer:setTimeout(()=>{},0),promise:A};return clearTimeout(m.timer),r.set(u,m),(async()=>{let p;try{p=await c.prepare(i,s,{selfId:a,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{o(u,{ok:false,reason:"encrypt-failed"});return}if(!p.ok){o(u,p);return}r.has(u)&&(m.timer=setTimeout(()=>o(u,{ok:false,reason:"timeout"}),_f),e.sendFrame(p.frame));})(),A},onEditAck({sMsgId:i,errcode:s}){let a=r.get(i);if(a!==void 0){if(s===32768||s===0){e.domainState.editMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{text:a.text},a.mention),o(i,{ok:true});return}o(i,a.conversationType==="channel"?{ok:false,reason:"failed",errcode:s}:{ok:false,reason:"failed"});}},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function Oo(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function Wn(e){if(e!==void 0)return new Uint8Array(e)}function Uf(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function Jn(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 Gf={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:Uf},kf={contentType:"image",isContentReady:e=>Oo(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=Wn(n.thumbData),r=Wn(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:Jn},xf={contentType:"video",isContentReady:e=>Oo(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=Wn(n.thumbData),r=Wn(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:Jn},Ff={contentType:"file",isContentReady:e=>Oo(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=Wn(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:Jn},Bf={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?Oo(n.url):ar(n.url)&&bn(n.width)&&n.width>0&&bn(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=Wn(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=>Jn({...e,encryption:{encrypted:false}})},Vf={contentType:"game",isContentReady:e=>e.body.game!==void 0&&et(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:Jn},Pf={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&kn(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:Jn},wf=[Gf,kf,xf,Ff,Bf,Vf,Pf],Of=new Map(wf.map(e=>[e.contentType,e]));function er(e){return Of.get(e)}function Kf(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function yl(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:er(e.contentType)!==void 0}function Il(e){let n=er(e.contentType);return n===void 0?false:n.isContentReady(e)}function Ts(e){return yl(e)&&Il(e)}function Ko(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 Lf(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]),i=Number(t[3]),s=Number(t[4]);if(r>23||i>23||o>59||s>59)return false;let a=new Date(n),c=a.getHours()*60+a.getMinutes(),u=r*60+o,f=i*60+s;return u<=f&&u<=c&&c<=f}function Zf(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??Ko("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:Ko(t.role,n)};let r=t.baseState,o,i=t.role==="owner"||t.role==="admin";return t.baseState==="active"&&!i&&(t.currentUserMuted?(r="muted",o="current-user"):t.allMembersMuted&&(t.mutePeriod===void 0||Lf(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:Ko(t.role,r),...o===void 0?{}:{muteReason:o}}}function Sl(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function vs(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):Sl(t)-Sl(n))}var Qf=new Set(["direct","group","channel","supergroup"]);function ve(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function cn(e){return {conversationType:e.type,conversationId:e.id}}function hn(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function j(e){if(!Qf.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 un(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 Cl(){let e=new Map;return {get:n=>e.get(j(n))??null,getAll:()=>[...e.values()],set:n=>e.set(j(n.ref),n),delete:n=>e.delete(j(n)),clear:()=>e.clear()}}function Rl(e){let n=new Map,t=new Map;function r(i){if(typeof i!="string")return j(i);let s=[...t.keys()].filter(a=>un(a).conversationId===i);if(s.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${i}`);return s[0]}function o(i){let s=j(ve(i)),a=t.get(s);a===void 0&&(a=new Set,t.set(s,a)),a.add(i.id);}return {get:i=>n.get(i),getAll:()=>[...n.values()],getByConversation(i){let s=r(i),a=s===void 0?void 0:t.get(s);if(a===void 0)return [];let c=[];for(let u of a){let f=n.get(u);f!==void 0&&c.push(f);}return c.sort(xe)},has:i=>n.has(i),get size(){return n.size},upsert(i,s){let a=n.get(i.id);if(a===void 0)return n.set(i.id,i),o(i),{message:i,isNew:true,changed:true};let c=Fo(a,i,e?.getSelfId?.()??""),u=s?.authoritativeFailure===true&&i.status==="failed"?{...c,status:"failed",failure:i.failure}:c;return n.set(u.id,u),o(u),{message:u,isNew:false,changed:!Ln(a,u)}},delete(i,s){let a=n.get(s);if(a===void 0||a.conversationType!==i.conversationType||a.conversationId!==i.conversationId)return false;n.delete(s);let c=j(i),u=t.get(c);return u?.delete(s),u?.size===0&&t.delete(c),true},deleteByConversation(i){let s=r(i);if(s===void 0)return;let a=t.get(s);if(a!==void 0){for(let c of a)n.delete(c);t.delete(s);}},clear(){n.clear(),t.clear();}}}function Tn(e){let n=Mn(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=Kn(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function nr(...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 El(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,i=[],s,a=false,c=false,u=false,f,y=false,A=true,m,p=null;function M(b){if(!(n===void 0||i.length<=n)){if(b==="start"){i=i.slice(-n),s=i[0]?.sortKey,a=true,f=void 0;return}i=i.slice(0,n),c=true,A=false,m=void 0;}}function E(b){if(n===void 0||i.length<=n)return;let x=i.findIndex(oe=>oe.sortKey===b);if(x<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let U=i.length-n,Q=x-Math.floor((n-1)/2),P=Math.min(U,Math.max(0,Q)),X=P+n;P>0&&(a=true,f=void 0),X<i.length&&(c=true,A=false,m=void 0),i=i.slice(P,X),s=i[0]?.sortKey;}function C(b,x,U){return b.conversationId===x&&(U===null||b.conversationType===U)}function _(b,x,U){let Q=b.filter(P=>C(P,x,U));if(U===null&&new Set(Q.map(P=>P.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${x}`);return Q}function R(b,x){return x===null?b:{conversationType:x,conversationId:b}}function v(b,x=true){if(r!==null){for(let U of b){if(!C(U,r,o))continue;if(p!==null){p.push(U);continue}let Q=i.findIndex(X=>X.id===U.id);if(Q>=0){i[Q]=U;continue}let P=i[i.length-1];P===void 0||U.sortKey>P.sortKey?c||i.push(U):s!==void 0&&U.sortKey>=s&&(i.push(U),i.sort(xe));}x&&M(c?"end":"start");}}return {async open(b,{limit:x}){let U=typeof b=="string"?b:b.conversationId,Q=typeof b=="string"?null:b.conversationType,P=++t;r=U,o=Q,i=[],s=void 0,a=false,c=false,u=false,f=void 0,y=false,A=true,m=void 0,p=[];try{let X=e.storage===void 0?[]:await e.storage.getMessages(R(U,Q),{limit:x}),ee=_(X,U,Q).map(Tn).filter(G=>e.shouldIncludeMessage?.(G)??!0);if(P!==t)return {conversationId:U,messages:ee,stale:!0};let k=p??[];return i=[...ee].sort(xe),s=i[0]?.sortKey,a=ee.length===x||e.loadOlderFromRemote!==void 0,y=e.loadOlderFromRemote!==void 0&&(ee.length<x||Q!==null&&e.shouldEstablishRemoteLatest?.({conversationType:Q,conversationId:U},ee)===!0),c=!1,A=!0,m=void 0,p=null,v(k,!1),M("start"),{conversationId:U,messages:i,stale:!1}}finally{P===t&&(p=null);}},async openAt(b,{anchorSortKey:x,limit:U,seedMessages:Q,seedHasNewer:P}){let X=typeof b=="string"?b:b.conversationId,oe=typeof b=="string"?null:b.conversationType,ee=++t;r=X,o=oe,i=[],s=void 0,a=false,c=false,u=false,f=void 0,y=false,A=true,m=void 0,p=[];try{if(Q!==void 0&&Q.length>0){if(Q.some(ae=>!C(ae,X,oe)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${X}\uFF09`);let se=nr(Q).map(Tn).filter(ae=>e.shouldIncludeMessage?.(ae)??!0).sort(xe);if(!se.some(ae=>ae.sortKey===x))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${X}\uFF09`);let me=p??[];return i=se,s=i[0]?.sortKey,a=e.loadOlderFromRemote!==void 0,c=P??se.length===U,A=!c,m=void 0,p=null,v(me,!1),E(x),{conversationId:X,messages:i,stale:ee!==t}}if(e.storage===void 0)return {conversationId:X,messages:[],stale:ee!==t};let[k,G]=await Promise.all([e.storage.getMessages(R(X,oe),{beforeSortKey:x,limit:U}),e.storage.getMessages(R(X,oe),{afterSortKey:x,limit:U})]),F=_(k,X,oe).map(Tn).filter(se=>e.shouldIncludeMessage?.(se)??!0),W=_(G,X,oe).map(Tn).filter(se=>e.shouldIncludeMessage?.(se)??!0);if(ee!==t)return {conversationId:X,messages:nr(F,W).map(Tn),stale:!0};let K=p??[];return i=nr(F,W).sort(xe),s=i[0]?.sortKey,a=F.length===U||e.loadOlderFromRemote!==void 0,c=W.length===U,A=!c,m=void 0,p=null,v(K,!1),E(x),{conversationId:X,messages:i,stale:!1}}finally{ee===t&&(p=null);}},async loadOlder({limit:b}){let x=r,U=o;if(x===null||!a)return {conversationId:x??"",messages:[],stale:false};let Q=t,P=e.storage===void 0||f!==void 0||y?[]:await e.storage.getMessages(R(x,U),{beforeSortKey:s,limit:b}),X=_(P,x,U).map(Tn).filter(K=>e.shouldIncludeMessage?.(K)??true);if(Q!==t||r!==x||o!==U)return {conversationId:x,messages:X,stale:true};let oe=X.length===b,ee=[...X],k=false;if(X.length>0&&(f=void 0),!oe&&e.loadOlderFromRemote!==void 0&&!u){if(U===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 K=await e.loadOlderFromRemote({conversation:{conversationType:U,conversationId:x},oldestLoaded:X[0]??i[0],...f===void 0?{}:{cursor:f},intent:y?"establish-latest":"older",limit:b});if(Q!==t||r!==x||o!==U)return {conversationId:x,messages:[],stale:true};y=false,u=K.exhausted,f=K.nextCursor;let se=_(K.messages,x,U),me=se.map(Tn).filter(ae=>e.shouldIncludeMessage?.(ae)??true);if(K.replaceWindow){if(!K.exhausted&&(K.nextCursor===void 0||K.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${U}, conversationId=${x}\uFF09`);let ae=new Set(i.map(J=>J.id)),ye=nr(me).sort(xe),I=ye.at(-1)?.sortKey,N=I===void 0?i:i.filter(J=>J.sortKey>I);i=nr(ye,N).sort(xe),s=i[0]?.sortKey,a=!u;let V=ye.filter(J=>!ae.has(J.id));return M("start"),{conversationId:x,messages:V,stale:false}}k=se.length>0&&me.length===0,k&&(u=true,f=void 0),ee.push(...me);}let G=new Set(i.map(K=>K.id)),F=new Set,W=ee.filter(K=>G.has(K.id)||F.has(K.id)?false:(F.add(K.id),true)).sort(xe);return W.length>0&&(i=[...W,...i].sort(xe)),s=i[0]?.sortKey??s,a=oe||e.loadOlderFromRemote!==void 0&&!u&&!k,M("end"),{conversationId:x,messages:W,stale:false}},async loadNewer({limit:b}){let x=r,U=o;if(x===null||!c)return {conversationId:x??"",messages:[],stale:false};let Q=t,P=i.at(-1),X=P?.sortKey,oe=e.storage===void 0||X===void 0?[]:await e.storage.getMessages(R(x,U),{afterSortKey:X,limit:b+1}),ee=_(oe,x,U).map(Tn).filter(ae=>e.shouldIncludeMessage?.(ae)??true);if(Q!==t||r!==x||o!==U)return {conversationId:x,messages:[],stale:true};let k=ee.filter(ae=>X===void 0||ae.sortKey>X).slice(0,b),G=k.length===b,F=[...k];if(k.length>0&&(m=void 0),!G&&e.loadNewerFromRemote!==void 0&&!A){if(U===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 ae=await e.loadNewerFromRemote({conversation:{conversationType:U,conversationId:x},newestLoaded:k.at(-1)??P,...m===void 0?{}:{cursor:m},limit:b});if(Q!==t||r!==x||o!==U)return {conversationId:x,messages:[],stale:true};A=ae.exhausted,m=ae.nextCursor,F.push(..._(ae.messages,x,U).filter(ye=>e.shouldIncludeMessage?.(ye)??true));}let W=new Set(i.map(ae=>ae.id)),K=i.at(-1)?.sortKey,se=new Set,me=F.filter(ae=>K!==void 0&&ae.sortKey<=K||W.has(ae.id)||se.has(ae.id)?false:(se.add(ae.id),true)).sort(xe);return me.length>0&&(i=[...i,...me].sort(xe)),c=G||e.loadNewerFromRemote!==void 0&&!A,M("start"),{conversationId:x,messages:me,stale:false}},applyIncoming:v,removeMessage(b,x){if(r!==b.conversationId||o!==b.conversationType)return false;let U=i.findIndex(Q=>Q.id===x);return U<0?false:(t+=1,i.splice(U,1),s=i[0]?.sortKey,f=void 0,m=void 0,p=null,true)},clearConversation(b){return r!==b.conversationId||o!==b.conversationType?false:(t+=1,i=[],s=void 0,a=false,c=false,u=false,f=void 0,y=false,A=true,m=void 0,p=null,true)},list(){return [...i]},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,i=[],s=void 0,a=false,c=false,u=false,f=void 0,y=false,A=true,m=void 0,p=null;}}}function bs(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((s,a)=>s===n[a]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((s,a)=>bs(s,n[a]));if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;let t=e,r=n,o=Object.keys(t),i=Object.keys(r);return o.length===i.length&&o.every(s=>Object.prototype.hasOwnProperty.call(r,s)&&bs(t[s],r[s]))}function Al(){let e=new Map;function n(t){if(typeof t!="string")return j(t);let r=[...e.keys()].filter(o=>un(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=j(hn(t)),o=e.get(r);return o!==void 0&&bs(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 Ml(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:j(r)}function t(r){if(typeof r!="string"){let i=j(r);if(e.has(i))return i;let s=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(s)?s:i}let o=[...e.entries()].filter(([i,s])=>s.conversationId===r||!i.startsWith("legacy:")&&un(i).conversationId===r).map(([i])=>i);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(([s,a])=>!s.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 i=o[0];if(i!==void 0){let[s,a]=i;e.set(s,{...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 hl(){let e=new Map;function n(t){if(typeof t!="string")return j(t);let r=[...e.keys()].filter(o=>un(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(j(cn(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function _l(e){return e==="direct"?"local":"server"}function Ul(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 Wf=50,Tl="im:deleted-conversations",vl="im:terminated-conversations",bl="im:membership-reset-sort-keys",Nl="im:pending-message-reactions",Dl="im:transfer-status-records",Jf=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function Gl(e,n){return e===n?true:e===void 0||n===void 0?false:Jf.every(t=>e[t]===n[t])}function kl(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 Lo(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&ps(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&&Gl(e.channelPermissions,n.channelPermissions)&&kl(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function Hf(e){let n=Rl({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=hl(),i=Ml(),s=Cl(),a=Al(),c=new Map,u=1,f=new Set,y=new Set,A=new Map,{storage:m}=e,p=Promise.resolve(),M=new Map,E=new Map,C=new Map,_=0,R=e.unreadMode??_l,v=new Set;function b(d={}){let l=El({storage:m,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:Qe,...d});return v.add(l),l}let x=b();function U(d={}){let l=b(d),g=false;return {window:l,dispose(){g||(g=true,l.reset(),v.delete(l));}}}function Q(d){for(let l of v){let g=l.list().find(S=>S.id===d);if(g!==void 0)return g}}function P(d,l){let g=n.get(l);if(g?.conversationId===d.conversationId&&g.conversationType===d.conversationType)return g;for(let S of v){let T=S.list().find(D=>D.id===l&&D.conversationId===d.conversationId&&D.conversationType===d.conversationType);if(T!==void 0)return T}}function X(d){let l=new Map(n.getByConversation(d).map(g=>[g.id,g]));for(let g of v)if(oe(g,d))for(let S of g.list())S.conversationType===d.conversationType&&S.conversationId===d.conversationId&&!l.has(S.id)&&l.set(S.id,S);return [...l.values()].sort((g,S)=>g.sortKey.localeCompare(S.sortKey))}function oe(d,l){let g=d.info();return g.conversation===void 0?g.conversationId===l.conversationId:j(g.conversation)===j(l)}let ee=false;function k(d){return `${j(d.conversation)}\0${d.parentMessageId}`}function G(){if(m===void 0||ee)return;let d=[...t.values()].flat();m.setMeta(Nl,d).catch(l=>Me("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",l));}async function F(){if(m===void 0)return;let d=[...r.values()],l=p.then(()=>m.setMeta(Dl,d));p=l.catch(()=>{});try{await l;}catch(g){throw Me("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",g),g}}function W(d,l){if(d===void 0||d.status===0&&l.status!==0)return l;if(l.status===0&&d.status!==0)return d;let g=d.occurredTime??0,S=l.occurredTime??0;return g!==S?S>g?l:d:l.status>d.status?l:d}function K(d){let l=d.body.transfer;if(d.contentType!=="transfer"||l===void 0)return d;let g=r.get(l.serialNumber);if(g===void 0||l.status!==0&&g.status===0)return d;let S={...l,status:g.status,...g.status===1&&g.occurredTime!==void 0?{receiveTime:g.occurredTime}:{},...g.status===2||g.status===3?{returnTime:g.occurredTime??l.returnTime}:{}};return l.status===S.status&&l.receiveTime===S.receiveTime&&l.returnTime===S.returnTime&&l.isRead===S.isRead?d:{...d,body:{transfer:Po(l,S)}}}function se(d,l){let g=`${j(d)}\0${l}`;return t.delete(g)?(G(),true):false}function me(d){let l=`${j(d)}\0`,g=false;for(let S of t.keys())S.startsWith(l)&&(t.delete(S),g=true);return g&&G(),g}function ae(d,l){let g=P(d.conversation,d.parentMessageId);if(g===void 0){let T=k(d),D=t.get(T)??[];return D.some(O=>O.id===d.id)?"duplicate":(t.set(T,[...D,d]),G(),"pending")}if(g.recalled!==void 0||g.deletedForEveryone!==void 0)return "duplicate";let S=cs(g.reactions,d,e.getSelfId?.()??"");return S===g.reactions?"duplicate":(ze([{...g,reactions:S}],l),"applied")}function ye(d,l,g){let S=P(d,l);if(S===void 0){let O=`${j(d)}\0${l}`,L=t.get(O);if(L===void 0)return false;let Z=L.filter($=>$.id!==g);return Z.length===L.length?false:(Z.length===0?t.delete(O):t.set(O,Z),G(),true)}let T=ls(S.reactions,g,e.getSelfId?.()??"");if(T===S.reactions)return false;let D={...S};return T===void 0?delete D.reactions:D.reactions=T,ze([D],"live"),true}function I(d,l){let g=ve(d),S=`${j(g)}\0${d.id}`,T=t.get(S);if(T!==void 0){t.delete(S),G();for(let D of T)ae(D,l);}}function N(d){for(let l of [...t.values()]){let g=l[0];if(g===void 0)continue;let S=P(g.conversation,g.parentMessageId);S!==void 0&&(S.recalled!==void 0||S.deletedForEveryone!==void 0?se(g.conversation,g.parentMessageId):I(S,d));}}let V=0,J=new Map,ie=new Map;function re(d){return j(d)}function Ne(d){return be(d)||f.has(re(d))||f.has(d.conversationId)}function be(d){return y.has(re(d))||y.has(d.conversationId)}function Xe(d){let l=f.delete(re(d)),g=f.delete(d.conversationId);return l||g}function Gn(d){let l=Xe(d),g=y.delete(re(d)),S=y.delete(d.conversationId);return {deleted:l,terminal:g||S}}function nn(d,l){if(l===""||d.contentType!=="system")return false;let g=d.body.system;return g?.targetUserIds?.includes(l)!==true?false:d.conversationType==="group"?g.eventType==="group_member_joined"||g.eventType==="group_member_invited":d.conversationType==="channel"&&(g.eventType==="channel_member_joined"||g.eventType==="channel_member_invited"||g.eventType==="channel_created")}function Qe(d){let l=ve(d);if(Ne(l))return false;if(l.conversationType!=="group")return true;let g=A.get(j(l));return g===void 0||d.sortKey>=g}function qn(d){let l=j(d),g=(J.get(l)??0)+1;return J.set(l,g),g}function Me(d,l){e.emitter.emit({type:"error",error:{scope:"storage",message:d,cause:l}});}function h(d){e.emitter.emit({type:"session:updated",session:d,conversation:cn(d)});}let q=new Set,pe=Promise.resolve(),Ee=0;function De(d){let l=Ee===0?d():pe.then(d),g=l.then(()=>{},()=>{});return q.add(g),g.finally(()=>q.delete(g)),l}function ta(d){Ee+=1;let l=Promise.all([...q]),g=pe.then(()=>l).then(d);return pe=g.then(()=>{},()=>{}),pe.finally(()=>{Ee-=1;}),g}function Ng(d){let l=d.body.system;if(l?.pinnedMessageAction===void 0)return d;let{pinnedMessageAction:g,...S}=l;return {...d,body:{...d.body,system:S}}}function Dg(d){m===void 0||ee||d.length===0||De(()=>m.saveMessages(d.map(Ng))).catch(l=>Me("\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function Ho(d){let{lastMessageSendState:l,manuallyUnread:g,...S}=d;return S}function tn(d){m===void 0||ee||De(()=>m.saveSessions([Ho(d)])).catch(l=>Me("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",l));}function Yo(){m===void 0||ee||m.setMeta(Tl,[...f]).catch(d=>Me("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function Xo(){m===void 0||ee||m.setMeta(vl,[...y]).catch(d=>Me("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function ra(){m===void 0||ee||m.setMeta(bl,[...A.entries()]).catch(d=>Me("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",d));}function oa(d){m===void 0||ee||De(()=>m.saveReadState(d)).catch(l=>Me("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",l));}function _g(d){m===void 0||ee||m.savePinnedMessage(d).catch(l=>Me("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function Ug(d){m===void 0||ee||m.removePinnedMessage(d).catch(l=>Me("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",l));}function zo(d){if(j(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 ir(d){return zo(d),Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId})}function Gg(d){return s.get(ir(d))}function kg(){let d=[],l=new Set;for(let g of o.getAll()){let S=cn(g);l.add(j(S)),d.push({...g,draft:s.get(S)});}for(let g of s.getAll())l.has(j(g.ref))||d.push({id:g.ref.conversationId,type:g.ref.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,draft:g});return vs(d)}function qo(d,l,g){if(zo(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 S=(l.mentions??[]).map(D=>{if(typeof D.userId!="string"||D.userId.trim()===""||typeof D.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:D.userId,displayName:D.displayName})}),T=Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId});return Object.freeze({ref:T,text:l.text,mentions:Object.freeze(S),...l.replyToMessageId===void 0?{}:{replyToMessageId:l.replyToMessageId},attachments:Object.freeze([]),updatedAt:g})}function ia(d,l){return d.text===l.text&&d.replyToMessageId===l.replyToMessageId&&d.mentions.length===l.mentions.length&&d.mentions.every((g,S)=>{let T=l.mentions[S];return T!==void 0&&g.userId===T.userId&&g.displayName===T.displayName})}function jo(d,l){zo(d);let g=j(d),T=(M.get(g)??Promise.resolve()).catch(()=>{}).then(l),D=T.then(()=>{},()=>{});return M.set(g,D),D.finally(()=>{M.get(g)===D&&M.delete(g);}),T}async function xg(d,l){let g=ir(d),S=j(g),T=qo(g,l,0),D=_,O=C.get(S)??0;return await jo(g,async()=>{let L=s.get(g),Z=Math.max(Date.now(),(E.get(S)??L?.updatedAt??0)+1),$=qo(g,T,Z);if(L!==null&&ia(L,$))return L;if(m!==void 0&&await m.saveDraft($),D!==_||O!==(C.get(S)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u5199\u5165\u56DE\u704C\u5185\u5B58");return s.set($),E.set(S,Z),e.emitter.emit({type:"draft:updated",conversation:$.ref,draft:$}),$})}async function sa(d,l){let g=ir(d),S=j(g);if(l!==void 0&&(!Number.isFinite(l)||l<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${l}`);let T=_,D=C.get(S)??0;return await jo(g,async()=>{let O=s.get(g);if(O===null||l!==void 0&&O.updatedAt!==l)return false;if(m!==void 0&&await m.deleteDraft(g),T!==_||D!==(C.get(S)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u6E05\u7406\u56DE\u704C\u5185\u5B58");return s.delete(g),e.emitter.emit({type:"draft:cleared",conversation:g}),true})}async function Fg(d){await sa(d);}async function Bg(d,l){return await sa(d,l)}function Vg(d){let l=ir(d),g=j(l);C.set(g,(C.get(g)??0)+1),s.get(l)!==null&&(s.delete(l),e.emitter.emit({type:"draft:cleared",conversation:l})),jo(l,async()=>{m!==void 0&&await m.deleteDraft(l);}).catch(S=>Me("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",S));}async function Pg(){for(_+=1;M.size>0;)await Promise.all([...M.values()]);}function wg(d){let l=P(hn(d),d.messageId);return l===void 0?d:{...d,preview:{state:"ready",message:l}}}function Og(d,l){let g=wg(d);a.set(g)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:g.conversationId,conversation:{conversationType:g.conversationType,conversationId:g.conversationId},pinnedMessage:g,reason:l}),_g(g));}function Kg(d,l){let g=typeof d=="string"?d:d.conversationId,S=a.get(d);if(!a.clear(d))return;let T=typeof d=="string"?S===void 0?void 0:hn(S):d;if(T===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${g}`);e.emitter.emit({type:"pinned-message:updated",conversationId:g,conversation:T,pinnedMessage:null,reason:l}),Ug(d);}function $o(d,l,g,S){let T=o.get(d);if(T===void 0)return;let D={...T,title:l,avatar:g??T.avatar,...S!==void 0?{muted:S}:{}};Lo(T,D)||(o.set(D),h(D),tn(D));}async function ei(d,l){let{conversationId:g,conversationType:S}=d,T=j(d),D=l?.force===true;if(!D&&ie.has(T))return false;let O=V,L=qn(d);D&&ie.set(T,L);let{profile:Z,channelProfile:$}=e,w=3,Y=D?{forceRefresh:true}:void 0;try{if(S==="direct"){if(Z===void 0)return !1;let z=await Z.getUserProfile(g,Y);if(O!==V||L!==J.get(T))return !1;z!==null&&$o(d,z.remark??z.nickname,z.avatar,z.muted);}else if(S==="group"){if(Z===void 0)return !1;let z=await Z.getGroupProfile(g,Y);if(O!==V||L!==J.get(T))return !1;z!==null&&($o(d,z.name,z.avatar,z.muted),z.status===w&&ai({conversationType:"group",conversationId:g},"group_dismissed"),D&&e.emitter.emit({type:"profile:updated",profileType:"group",id:g}));}else if(S==="channel"){if($===void 0)return !1;let z=await $.getProfile(g,Y);if(O!==V||L!==J.get(T))return !1;if(z!==null){$o(d,z.name,z.avatar,z.muted);let Ie=o.get(d)?.channelState,ce=Ie==="left"||Ie==="removed"||Ie==="dismissed",Ae=z.channelState==="left"||z.channelState==="removed"||z.channelState==="dismissed";if(l?.allowChannelRecovery===!0&&ce&&Ie!=="dismissed"&&z.channelState==="active")return si(g,"active",void 0,{permissions:z.permissions,...z.accessSnapshot===void 0?{}:{snapshot:z.accessSnapshot}}),D&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}}),!0;let Re=ce&&(!Ae||Ie==="dismissed"||z.channelState!=="dismissed");if(Ae&&!Re)return ai({conversationType:"channel",conversationId:g},`channel_${z.channelState}`),D&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}}),!1;if(!Re){let Fe=z.permissions.sendMessages?void 0:`channel_${z.channelState}`;si(g,z.channelState,Fe,{permissions:z.permissions,...z.accessSnapshot===void 0?{}:{snapshot:z.accessSnapshot}});}D&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}});}}return !1}catch(z){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:z}}),false}finally{D&&ie.get(T)===L&&ie.delete(T);}}function Lg(d,l){ei({conversationType:l,conversationId:d},{force:true});}function Zg(d){return ei({conversationType:"channel",conversationId:d},{force:true,allowChannelRecovery:true})}function Qg(d,l){let g=o.get(d);if(g===void 0)return;let S={...g,...l.title!==void 0?{title:l.title}:{},...l.avatar!==void 0?{avatar:l.avatar}:{}};Lo(g,S)||(o.set(S),h(S),tn(S));}function ni(d){if(d.contentType==="system")return d.conversationType==="direct"?d.body.system?.eventType==="direct_contact_established"||d.body.system?.eventType==="direct_contact_required":d.conversationType==="group"||d.conversationType==="channel";let l=e.getSelfId?.()??"";return l!==""?d.senderId!==l:d.conversationType==="direct"&&d.senderId===d.conversationId}function ti(d){let l=i.get(d);return l===void 0||l.readCursor===""?void 0:(typeof d=="string"?n.get(l.readCursor):P(d,l.readCursor))?.sortKey??l.readCursorSortKey}function aa(d,l){let g=0;for(let S of n.getByConversation(d))_n(S)&&ni(S)&&(l===void 0||S.sortKey>l)&&(g+=1);return g}function da(d){let l=e.getSelfId?.();if(l===void 0||l===""||d.senderId===l)return false;let{mention:g}=d;return g===void 0?false:g.atAll||g.atUserIds.includes(l)}function Wg(d,l){let g=0;for(let S of n.getByConversation(d))da(S)&&(l===void 0||S.sortKey>l)&&(g+=1);return g}function pn(d,l=true){let g=d.conversationType===void 0?o.get(d.conversationId):void 0,S=d.conversationType===void 0&&g!==void 0?{...d,conversationType:g.type}:d,T=S.conversationType===void 0?S.conversationId:{conversationType:S.conversationType,conversationId:S.conversationId},D=i.get(T);if(i.set(S),l&&oa(S),D===void 0||D.readCursor!==S.readCursor||D.unreadCount!==S.unreadCount||(D.manuallyUnread??false)!==(S.manuallyUnread??false)){if(S.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=${S.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:S.conversationId,conversation:{conversationType:S.conversationType,conversationId:S.conversationId},readCursor:S.readCursor,unreadCount:S.unreadCount,...S.manuallyUnread===true?{manuallyUnread:true}:{}});}}function sr(d,l,g,S){let T=o.get(d),D=S??i.get(d);if(l===void 0){if(T===void 0)return;let w={...T,...g==="clear"?{lastMessagePreview:"",timestamp:0}:{},...D===void 0?{}:{unreadCount:D.unreadCount,manuallyUnread:D.manuallyUnread,mentionUnreadCount:D.mentionUnreadCount,readCursor:D.readCursor||T.readCursor}};return g==="clear"&&(delete w.lastMessageSummary,delete w.lastMessageSenderId,delete w.lastMessageSystemEvent,delete w.lastMessageSystemTargetsSelf,delete w.lastMessageMention,delete w.lastMessageRecalled,delete w.lastMessageDeletedForEveryone,delete w.lastMessageSendState),w}let O=D?.unreadCount??T?.unreadCount??0,L=D===void 0?T?.manuallyUnread:D.manuallyUnread,Z=D?.mentionUnreadCount??T?.mentionUnreadCount??0,$=fs(l,{unreadCount:O,mentionUnreadCount:Z,selfId:e.getSelfId?.()});return T===void 0?{...$,...L===void 0?{}:{manuallyUnread:L},readCursor:(D?.readCursor??"")||$.readCursor}:{...$,title:T.title||$.title,avatar:T.avatar??$.avatar,pinned:T.pinned,muted:T.muted,topTime:T.topTime,...L===void 0?{}:{manuallyUnread:L},readCursor:(D?.readCursor??"")||T.readCursor,groupState:T.groupState,channelState:T.channelState,channelPermissions:T.channelPermissions,channelAccessSnapshot:T.channelAccessSnapshot,sendDisabledReason:T.sendDisabledReason}}function ri(d,l){if(d===void 0)return;let g=o.get({conversationType:d.type,conversationId:d.id});g!==void 0&&Lo(g,d)||(o.set(d),h(d),l&&tn(d),d.title===""&&ei({conversationType:d.type,conversationId:d.id}));}function fn(d){let l=n.getByConversation(d).findLast(_n);ri(sr(d,l,"preserve"),true);}function ca(d){let l=[],g=Bo(d,e.getSelfId?.()??"").map(L=>{let Z={...L,sortKey:le(L.createdAt,L.id)};if(Z=Mn(Z),Z.conversationType==="group"&&Z.contentType==="text"){let $=Kn(Z.body.text??"",Z.mention);$!==void 0&&(Z.mention=$);}return K(Z)}),S=new Map;for(let L of g){if(L.contentType!=="transfer"||L.body.transfer===void 0)continue;let Z=ve(L);S.set(j(Z),Z);}let T=[...S.values()].flatMap(L=>X(L)),D=Is(T,g),O=new Set(g.map(L=>L.id));for(let L of D){let{message:Z,isNew:$,changed:w}=n.upsert(L);$?e.emitter.emit({type:"message:received",message:Z,conversation:ve(Z),source:"offline",channelLifecycleEffects:false}):w&&e.emitter.emit({type:"message:updated",message:Z,conversation:ve(Z),source:"offline",channelLifecycleEffects:false}),O.has(Z.id)&&l.push(Z);}return l}function Jg(d){let l={...d,sortKey:le(d.createdAt,d.id)};if(l=Mn(l),l.conversationType==="group"&&l.contentType==="text"){let g=Kn(l.body.text??"",l.mention);g!==void 0&&(l.mention=g);}return K(l)}async function Hg(d,l){let g=P(d,l);if(g!==void 0||m===void 0)return g;try{let S=await m.getMessage(d,l);return S===null||j(ve(S))!==j(d)?void 0:Jg(S)}catch(S){Me("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",S);return}}function ze(d,l,g={}){let S=e.getSelfId?.()??"";if(l==="live"){let de=false,ge=false;for(let Be of d){let Ue=ve(Be);if(nn(Be,S)){let Ve=Gn(Ue);Ve.deleted&&(de=true),Ve.terminal&&(Ue.conversationType==="group"?(A.set(j(Ue),Be.sortKey),ra()):Ue.conversationType==="channel"&&A.delete(j(Ue)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:Ue,data:{source:l,eventType:Be.body.system?.eventType,groupHistoryLowerBoundApplied:Ue.conversationType==="group"}})),ge=true);}else (S===""||Be.senderId!==S)&&!be(Ue)&&Xe(Ue)&&(de=true);}de&&Yo(),ge&&Xo();}let D=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,O=(de,ge)=>{if(D===void 0)return;let Be=ve(de),Ue=j(Be),Ve=D.get(Ue)??{ref:Be,tombstone:0,groupLowerBound:0};ge==="tombstone"?Ve.tombstone+=1:Ve.groupLowerBound+=1,D.set(Ue,Ve);},L=f.size>0||y.size>0?d.filter(de=>{let ge=!Ne(ve(de));return ge||O(de,"tombstone"),ge}):d,Z=A.size>0?L.filter(de=>{let ge=Qe(de);return ge||O(de,"groupLowerBound"),ge}):L;for(let de of D?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:de.ref,data:{source:l,tombstoneDroppedCount:de.tombstone,groupHistoryLowerBoundDroppedCount:de.groupLowerBound}}));let $=new Map,w=new Map,Y=new Map,z=new Set,Ie=Bo(Z,S).map(K),ce=new Map;for(let de of Ie){if(de.contentType!=="transfer"||de.body.transfer===void 0)continue;let ge=ve(de);ce.set(j(ge),ge);}let Ae=[...ce.values()].flatMap(de=>X(de)),Re=Is(Ae,Ie),Fe=[];for(let de of Re){let{message:ge,isNew:Be,changed:Ue}=n.upsert(de,{authoritativeFailure:g.authoritativeOutboxFailure===true});if(!Be&&!Ue)continue;for(let qe of v)qe.applyIncoming([ge]);Be?e.emitter.emit({type:"message:received",message:ge,conversation:ve(ge),source:l,channelLifecycleEffects:g.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:ge,conversation:ve(ge),source:l,channelLifecycleEffects:g.applyChannelLifecycleEffects===true}),Fe.push(ge);let Ve=ve(ge);if($.set(j(Ve),Ve),Be){let qe=j(Ve);ni(ge)&&z.add(qe);let $n=ti(Ve),fa=$n===void 0||ge.sortKey>$n;if(_n(ge)&&fa&&ni(ge)&&ge.recalled===void 0&&ge.deletedForEveryone===void 0){let ya=R(ge.conversationType);(ya==="local"||ya==="server"&&l==="live")&&w.set(qe,(w.get(qe)??0)+1);}fa&&da(ge)&&ge.recalled===void 0&&ge.deletedForEveryone===void 0&&Y.set(qe,(Y.get(qe)??0)+1);}}for(let de of $.values()){let ge=j(de),Be=w.get(ge)??0,Ue=Y.get(ge)??0,Ve=z.has(ge);if(Be>0||Ue>0||Ve){let qe=i.get(de)??{...de,readCursor:"",unreadCount:0},$n={...qe,unreadCount:qe.unreadCount+Be,mentionUnreadCount:(qe.mentionUnreadCount??0)+Ue};Ve&&delete $n.manuallyUnread,pn($n);}fn(de);}Dg(Fe);for(let de of Fe)de.recalled===void 0&&de.deletedForEveryone===void 0?I(de,l):se(ve(de),de.id);}function la(d,l,g=Date.now()){let S={conversationType:"direct",conversationId:d},T=P(S,l),D=n.getByConversation(S).findLast(Z=>Z.body.system?.eventType==="direct_contact_established");if(T!==void 0&&D!==void 0&&D.createdAt>=T.createdAt)return;let O=`${l}:contact-required`;if(n.get(O)!==void 0)return;let L={id:O,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[d],action:{type:"request-contact",userId:d}}},createdAt:g,sortKey:le(g,O),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};ze([L],"live");}function Yg(d,l,g=Date.now()){let S=`${l}:message-refused`;if(n.get(S)!==void 0)return;let T=n.get(l),D=T?.conversationType==="direct"&&T.conversationId===d?T.createdAt:g,O={id:S,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[d]}},createdAt:D,sortKey:le(D,S),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};ze([O],"live");}function Xg(d,l=Date.now()){let g=Pe(),S={id:g,conversationId:d.conversationId,conversationType:"direct",senderId:d.senderId,contentType:"text",body:{text:d.text},createdAt:l,sortKey:le(l,g),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 ze([S],"live"),la(d.conversationId,g,l+1),S}function zg(d,l){return `${d.trim()===""?`contact-established:${l}`:d}:contact-established`}function qg(d,l,g=Date.now(),S=g){let T=zg(l,S);if(n.get(T)!==void 0)return;let D={id:T,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[d]}},createdAt:g,sortKey:le(g,T),status:"sent",receipt:"unread",encryption:{encrypted:false}};ze([D],"live");}let jn=new Map,oi=0;function jg(d,l,g=Date.now()){let S=jn.get(d);if(S!==void 0)return S;let T={conversationType:"direct",conversationId:d},D=oi,O=(async()=>{let L=n.getByConversation(T).filter(Re=>{let Fe=Re.body.system?.eventType;return Fe==="direct_contact_required"||Fe==="direct_contact_established"}),Z=L.filter(Re=>Re.body.system?.eventType==="direct_contact_required"),$=Z.at(-1)?.createdAt??0,w=L.findLast(Re=>Re.body.system?.eventType==="direct_contact_established")?.createdAt??0,Y=w>=$&&w>0;if(Z.length===0&&Y)return;let z=ti(T);for(let Re of Z)try{let Fe=await ma(T,Re.id),de=P(T,Re.id);!Fe&&de?.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:T,messageId:Re.id}}});}catch(Fe){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:T,messageId:Re.id,error:Fe}}});}if(D!==oi)return;let Ie=i.get(T);if(Ie!==void 0&&(pn({...Ie,...Ie.readCursorSortKey===void 0&&z!==void 0?{readCursorSortKey:z}:{},unreadCount:aa(T,z)}),fn(T)),Y)return;let ce=Number.isFinite(g)&&g>0?g:Date.now(),Ae=Math.max(ce,$+1);qg(d,l,Ae,ce);})().finally(()=>{jn.get(d)===O&&jn.delete(d);});return jn.set(d,O),O}function $g(d,l){let g=typeof d=="string"?n.get(l)??Q(l):P(d,l);if(g===void 0)return;let S=typeof d=="string"?ve(g):d,T=typeof d=="string"?d:d.conversationId;if(g.conversationId!==T||g.conversationType!==S.conversationType)return;let D=ti(S);if(D!==void 0&&D>=g.sortKey){typeof d!="string"&&ga(d);return}let O={...S,readCursor:l,readCursorSortKey:g.sortKey,unreadCount:aa(S,g.sortKey),mentionUnreadCount:Wg(S,g.sortKey)};return pn(O),fn(S),O}function eu(d){let l=o.get(d);if(l===void 0)return false;let g=i.get(d)??{...d,readCursor:l.readCursor??"",unreadCount:l.unreadCount,mentionUnreadCount:l.mentionUnreadCount};return g.unreadCount>0||g.manuallyUnread===true?false:(pn({...g,manuallyUnread:true}),fn(d),true)}function ga(d){let l=i.get(d);if(l?.manuallyUnread!==true)return false;let g={...l};return delete g.manuallyUnread,pn(g),fn(d),true}function ua(d,l,g,S,T=false){let D=typeof d=="string"?d:d.conversationId,O=o.get(d),L=typeof d=="string"?O===void 0?void 0:cn(O):d;if(O!==void 0&&R(O.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${D}, type=${O.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=${D}, count=${l}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}T||c.delete(D);let Z=i.get(d),$=Z?.readCursor??"",w=Z?.readCursorSortKey,Y=g===void 0||g===""?void 0:L===void 0?n.get(g)??Q(g):P(L,g);Y!==void 0&&Y.conversationId===D&&(w===void 0||Y.sortKey>w)&&($=Y.id,w=Y.sortKey),S!==void 0&&($=S),pn({...L===void 0?{conversationId:D}:L,readCursor:$,readCursorSortKey:w,unreadCount:Math.max(0,Math.floor(l)),...l>0?{}:{manuallyUnread:Z?.manuallyUnread},mentionUnreadCount:l===0?0:Z?.mentionUnreadCount}),fn(d);}function ii(d){let l=c.get(d.conversation.conversationId);return l?.handle.transactionId===d.transactionId?l:void 0}function nu(d){let l=d.conversationId,g=o.get(d);if(g===void 0||g.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${l}, type=${g?.type??"missing"}\uFF09`);if(c.has(l))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${l}\uFF09`);let S={conversation:d,transactionId:u++},D=i.get(d)??{conversationId:l,readCursor:g.readCursor??"",unreadCount:g.unreadCount,...g.mentionUnreadCount===void 0?{}:{mentionUnreadCount:g.mentionUnreadCount}};return c.set(l,{handle:S,baseReadState:{...D},steps:[],committedThrough:-1}),S}function tu(d,l,g){let S=d.conversation,T=S.conversationId,D=ii(d);if(D===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${T}\uFF09`);let O=P(S,l);if(O===void 0||O.conversationId!==T||O.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${T}, messageId=${l}\uFF09`);if(O.extensions?.historyCursor!==g)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${T}, messageId=${l}\uFF09`);if(D.steps.at(-1)?.readCursor===g)return;let Z=i.get(S)??(D.steps.length===0?D.baseReadState:void 0);D.steps.push({readCursor:g,messageId:l,sortKey:O.sortKey,clearedUnreadCount:Z?.unreadCount??0,clearedMentionUnreadCount:Z?.mentionUnreadCount??0}),ua(S,0,l,g,true);}function ru(d,l){let g=ii(d);if(g===void 0)return false;let S=g.steps.findLastIndex(T=>T.readCursor===l);if(S<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${d.conversation.conversationId}, cursor=${l}\uFF09`);return g.committedThrough=Math.max(g.committedThrough,S),g.committedThrough===g.steps.length-1&&c.delete(d.conversation.conversationId),true}function ou(d){let l=ii(d);if(l===void 0)return false;let g=d.conversation,S=g.conversationId,T=i.get(g),D=l.committedThrough>=0?l.steps[l.committedThrough]:void 0,O=D===void 0?l.baseReadState:void 0,L=T?.unreadCount??0,Z=T?.mentionUnreadCount??0;for(let Y=l.committedThrough+1;Y<l.steps.length;Y+=1)L+=l.steps[Y].clearedUnreadCount,Z+=l.steps[Y].clearedMentionUnreadCount;let $=O?.mentionUnreadCount!==void 0||(T?.mentionUnreadCount??0)>0||l.steps.some(Y=>Y.clearedMentionUnreadCount>0),w={conversationId:S,conversationType:"channel",readCursor:D?.readCursor??O?.readCursor??"",readCursorSortKey:D?.sortKey??O?.readCursorSortKey,unreadCount:L,...$?{mentionUnreadCount:Z}:{}};return c.delete(S),pn(w),fn(g),true}function iu(d,l,g){let S={conversationType:"group",conversationId:d},T=o.get(S);if(T===void 0){let O={id:d,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:l,sendDisabledReason:g};o.set(O),h(O),tn(O);return}if(T.groupState===l&&T.sendDisabledReason===g)return;let D={...T,groupState:l,sendDisabledReason:g};o.set(D),h(D),tn(D);}function si(d,l,g,S){let T={conversationType:"channel",conversationId:d},D=j(T);if(Ne(T))return;let O=o.get(T);if(O===void 0){qn(T),ie.delete(D);let w={id:d,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:l,channelPermissions:S?.permissions,channelAccessSnapshot:S?.snapshot,sendDisabledReason:g};o.set(w),h(w),tn(w);return}if(O.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${d} \u7C7B\u578B\u4E3A ${O.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);qn(T),ie.delete(D);let L=S?.permissions,Z=S?.snapshot;if(O.channelState===l&&O.sendDisabledReason===g&&Gl(O.channelPermissions,L)&&kl(O.channelAccessSnapshot,Z))return;let $={...O,channelState:l,channelPermissions:L,channelAccessSnapshot:Z,sendDisabledReason:g};o.set($),h($),tn($);}function su(d,l){let g=o.get(d);if(g===void 0||g.pinned===l)return;let S={...g,pinned:l,topTime:l?Date.now():void 0};o.set(S),h(S),tn(S);}function au(d,l){let g=o.get(d);if(g===void 0||g.muted===l)return;let S={...g,muted:l};o.set(S),h(S),tn(S);}async function ma(d,l){if(l.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let g=n.get(l),S=g!==void 0&&g.conversationType===d.conversationType&&g.conversationId===d.conversationId,T=n.getByConversation(d).filter(Y=>Y.id!==l),D=sr(d,T.at(-1),"clear"),O=D===void 0?void 0:Ho(D);function L(Y){return Y!==void 0&&(g===void 0||!Ln(g,Y))}let Z=m===void 0?{deleted:false,superseded:false}:await ta(async()=>L(n.get(l))?{deleted:false,superseded:true}:{deleted:await m.deleteMessage(d,l,O),superseded:false});if(Z.superseded||L(n.get(l)))return false;let $=S&&n.delete(d,l),w=false;for(let Y of v)w=Y.removeMessage(d,l)||w;return !Z.deleted&&!$&&!w?false:(ri(D,false),se(d,l),e.emitter.emit({type:"message:removed",conversation:{...d},messageId:l,scope:"local-only"}),true)}async function du(d){let l={...d},g=new Map(n.getByConversation(l).map(w=>[w.id,w])),S=o.get(l),T=i.get(l),D=T===void 0&&S===void 0?void 0:{...l,readCursor:T?.readCursor??S?.readCursor??"",...T?.readCursorSortKey===void 0?{}:{readCursorSortKey:T.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},O=sr(l,void 0,"clear",D);if(m!==void 0){if(m.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 ta(()=>m.clearConversationHistory(l,O===void 0?void 0:Ho(O),D));}let L=i.get(l),Z=L?.conversationType===T?.conversationType&&L?.conversationId===T?.conversationId&&L?.readCursor===T?.readCursor&&L?.readCursorSortKey===T?.readCursorSortKey&&L?.unreadCount===T?.unreadCount&&L?.mentionUnreadCount===T?.mentionUnreadCount;D!==void 0&&Z&&pn(D,false);for(let[w,Y]of g){let z=n.get(w);z!==void 0&&Ln(Y,z)&&n.delete(l,w);}let $=n.getByConversation(l);for(let w of v)w.clearConversation(l)&&w.applyIncoming($);me(l),ri(sr(l,$.at(-1),"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:l,scope:"local-only"});}function pa(d,l={}){let g=typeof d=="string"?d:d.conversationId,S=o.get(d),T=a.get(d),D=typeof d=="string"?S!==void 0?{conversationType:S.type,conversationId:g}:T===void 0?void 0:hn(T):d;if(D===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${g}`);let O=n.getByConversation(D).length;Vg(D),me(D),o.delete(d),i.delete(d),n.deleteByConversation(d),a.clear(d);let L=re(D);if(l.terminal===true){y.add(L);let Z=A.delete(L);f.delete(L),f.delete(g),Z&&ra(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:D,data:{reason:l.terminalReason??"membership-terminated",removedMessageCount:O}}));}else f.add(L);for(let Z of v)oe(Z,D)&&Z.reset();e.emitter.emit({type:"session:removed",conversationId:g,conversation:D}),Yo(),l.terminal===true&&Xo(),m!==void 0&&(m.deleteConversationMessages(D).catch(Z=>Me("\u5220\u4F1A\u8BDD\u6D88\u606F\u5931\u8D25",Z)),m.deleteSession(D).catch(Z=>Me("\u5220\u4F1A\u8BDD\u5931\u8D25",Z)),m.deleteReadState(D).catch(Z=>Me("\u5220\u5DF2\u8BFB\u6001\u5931\u8D25",Z)),m.removePinnedMessage(D).catch(Z=>Me("\u5220\u4F1A\u8BDD\u7F6E\u9876\u6D88\u606F\u5931\u8D25",Z)));}function cu(d){pa(d);}function ai(d,l){pa(d,{terminal:true,terminalReason:l});}function lu(d){let l=cn(d);if(j(l),l.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let g=o.get(l);if(g!==void 0)return g;let S={...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}}},T=Gn(l);return T.deleted&&Yo(),T.terminal&&Xo(),o.set(S),h(S),tn(S),S}function gu(d){return Ul(o.getAll(),d)}async function uu(){if(m!==void 0){ee=true;try{let d=await m.getMeta(Tl);if(d!==null)for(let w of d)f.add(w);let l=await m.getMeta(vl);if(l!==null)for(let w of l)y.add(w);let g=await m.getMeta(bl);if(g!==null)for(let[w,Y]of g)typeof w=="string"&&typeof Y=="string"&&A.set(w,Y);let S=await m.getMeta(Nl);if(S!==null)for(let w of S){let Y=k(w);t.set(Y,[...t.get(Y)??[],w]);}let T=await m.getMeta(Dl);if(Array.isArray(T))for(let w of T){if(typeof w!="object"||w===null)continue;let Y=Reflect.get(w,"serialNumber"),z=Reflect.get(w,"status"),Ie=Reflect.get(w,"occurredTime");typeof Y!="string"||Y.trim()===""||z!==0&&z!==1&&z!==2&&z!==3||Ie!==void 0&&(typeof Ie!="number"||!Number.isFinite(Ie)||Ie<=0)||r.set(Y,{serialNumber:Y,status:z,...Ie===void 0?{}:{occurredTime:Ie}});}let D=await m.getPinnedMessages();for(let w of D)Ne({conversationType:w.conversationType,conversationId:w.conversationId})||a.set(w)&&e.emitter.emit({type:"pinned-message:updated",conversationId:w.conversationId,conversation:hn(w),pinnedMessage:w,reason:"hydrate"});let O=(await m.getSessions()).filter(w=>!Ne({conversationType:w.type,conversationId:w.id}));for(let w of O){let Y=cn(w),z=o.get(Y);o.set(w),(z===void 0||!Lo(z,w))&&h(w);}let L=await m.getReadStates();for(let w of L)i.set(w);let Z=_,$=await m.getDrafts();if(Z!==_)return;for(let w of $){if(!Number.isFinite(w.updatedAt)||w.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${w.updatedAt}`);let Y=qo(w.ref,w,w.updatedAt);if(Ne(Y.ref)){try{await m.deleteDraft(Y.ref);}catch(ce){Me("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",ce);}continue}let z=j(Y.ref);E.set(z,Math.max(E.get(z)??0,Y.updatedAt));let Ie=s.get(Y.ref);Ie!==null&&Ie.updatedAt===Y.updatedAt&&ia(Ie,Y)||(s.set(Y),e.emitter.emit({type:"draft:updated",conversation:Y.ref,draft:Y}));}for(let w of O){let Y=cn(w),z=(await m.getMessages(Y,{limit:Wf})).filter(Ae=>j(ve(Ae))===j(Y)).filter(Qe),Ie=[],ce=z.map(Ae=>{let Re=ys(Mn(Ae));return Re!==Ae&&Ie.push(Re),Re});if(ca(ce),Ie.length>0)try{await m.saveMessages(Ie);}catch(Ae){Me("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",Ae);}fn(Y);}}catch(d){Me("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",d);}finally{ee=false,N("offline");}}}async function mu(d,l){if(m===void 0)return [];try{let g=await m.getMessages(d,l),S=typeof d=="string"?g.filter(Qe):g.filter(O=>j(ve(O))===j(d)).filter(Qe),T=ee;ee=!0;let D;try{D=ca(S);}finally{ee=T;}return ee||N("offline"),D.map(O=>P(ve(O),O.id)??O)}catch(g){return Me("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",g),[]}}function pu(d,l){let g=l?.match(dr(d));return {message:d,ranges:g?.ranges.map(({start:S,end:T})=>[S,T])??[]}}async function fu(d,l){let g=l.keyword?.trim()??"",S=l.contentTypes;if(g===""&&(S===void 0||S.length===0))return {results:[],exhausted:true};let T=g===""?void 0:await gi(g),D=ce=>{let Ae=S===void 0||S.includes(ce.contentType),Re=T===void 0||T.match(dr(ce))!==null;return Ae&&Re},O=(ce,Ae)=>ce.sortKey<Ae.sortKey?1:ce.sortKey>Ae.sortKey?-1:0,L=ce=>pu(ce,T),Z=()=>{let ce=n.getByConversation(d).filter(D).sort(O),Re=(l.beforeSortKey===void 0?ce:ce.filter(de=>de.sortKey<l.beforeSortKey)).slice(0,l.limit),Fe=Re.length<l.limit;return {results:Re.map(L),exhausted:Fe,...Fe?{}:{nextBeforeSortKey:Re.at(-1)?.sortKey}}};if(m===void 0)return Z();let $;try{$=await m.searchMessages(d,{...l.keyword!==void 0?{keyword:l.keyword}:{},...S!==void 0?{contentTypes:S}:{},limit:l.limit,...l.beforeSortKey!==void 0?{beforeSortKey:l.beforeSortKey}:{}});}catch(ce){throw Me("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",ce),ce}let w=$.exhausted?void 0:$.nextBeforeSortKey,Y=new Map(n.getByConversation(d).map(ce=>[ce.id,ce])),z=new Map;for(let ce of $.items){let Ae=Mn(ce);j(ve(Ae))===j(d)&&z.set(Ae.id,Y.get(Ae.id)??Ae);}for(let ce of Y.values()){let Ae=l.beforeSortKey===void 0||ce.sortKey<l.beforeSortKey,Re=w===void 0||ce.sortKey>=w;Ae&&Re&&D(ce)&&z.set(ce.id,ce);}return {results:[...z.values()].filter(D).sort(O).map(L),exhausted:$.exhausted,...$.exhausted?{}:{nextBeforeSortKey:$.nextBeforeSortKey}}}function yu(d,l,g){let S=P(d,l);S!==void 0&&ze([{...S,recalled:g,body:{}}],"live");}function Iu(d,l,g){let S=P(d,l);S===void 0||S.conversationType!=="channel"||ze([{...S,recalled:void 0,deletedForEveryone:g,body:{}}],"live");}function Su(d,l,g,S){let T=P(d,l);if(T===void 0)return;let D={...T,body:g,edited:true};S!==void 0?D.mention=S:delete D.mention,ze([D],"live");}async function Cu(d,l,g){let S=r.get(d),T={serialNumber:d,status:l,...g===void 0?{}:{occurredTime:g}},D=W(S,T);r.set(D.serialNumber,D),await F();let O=new Map;for(let L of wo(n.getAll(),d,D.status,D.occurredTime))O.set(L.id,L);for(let L of o.getAll()){let Z=X({conversationType:L.type,conversationId:L.id});for(let $ of wo(Z,d,D.status,D.occurredTime))O.set($.id,$);}O.size!==0&&ze([...O.values()],"live");}return {upsertMessages:ze,applyReaction:ae,rollbackReaction:ye,appendDirectContactRequiredNotice:la,appendDirectMessageRefusedNotice:Yg,appendDirectContactRequiredTextFailure:Xg,reconcileDirectContactEstablishedNotice:jg,recallMessage:yu,deleteChannelMessageForEveryone:Iu,editMessage:Su,applyTransferStatusBySerialNumber:Cu,getMessage:d=>n.get(d),getConversationMessage:P,getLoadedMessagesByConversation:X,resolveConversationMessage:Hg,getMessages:()=>n.getAll(),getMessagesByConversation:d=>n.getByConversation(d),deleteLocalMessage:ma,clearLocalConversationHistory:du,getSession:d=>o.get(d),ensureConversation:lu,getSessions:()=>o.getAll(),getConversationList:kg,getReadState:d=>i.get(d),getPinnedMessage:d=>a.get(d),setPinnedMessage:Og,clearPinnedMessage:Kg,isPinnedMessage:(d,l)=>a.isPinnedMessage(d,l),setReadState:d=>{let l=d.conversationType===void 0?o.get(d.conversationId):void 0,g=d.conversationType===void 0&&l!==void 0?{...d,conversationType:l.type}:d;i.set(g),oa(g);},markConversationUnread:eu,clearConversationManualUnread:ga,advanceRead:$g,applyServerUnread:ua,beginChannelReadTransaction:nu,applyChannelReadOptimistically:tu,commitChannelReadTransaction:ru,rollbackChannelReadTransaction:ou,setGroupRestriction:iu,setChannelRestriction:si,setPinned:su,setMuted:au,removeConversation:cu,removeConversationForMembershipTermination:ai,refreshConversationProfile:Lg,recoverChannelFromProfile:Zg,updateConversationProfile:Qg,getTotalUnread:gu,getDraft:Gg,saveDraft:xg,clearDraft:Fg,clearDraftIfUnchanged:Bg,invalidateAndDrainDraftOperations:Pg,clearSession(){V+=1,_+=1,oi+=1,jn.clear(),J.clear(),ie.clear(),n.clear(),o.clear(),i.clear(),s.clear(),M.clear(),E.clear(),C.clear(),c.clear(),a.clearAll(),f.clear(),y.clear(),A.clear(),t.clear();for(let d of v)d.reset();},hydrate:uu,loadOlderMessages:mu,searchMessages:fu,messageWindow:x,createMessageWindow:U}}var Yf=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function Xf(e){let n=new Set,t=new Map,r=new Map,o=true;function i(u){let f=u.extensions?.channelSequence,y=typeof f=="string"?f:u.raw?.channelNotify?.sequence;if(y===void 0||!/^\d+$/.test(y))return;let A=BigInt(y);return A>0n?A:void 0}function s(u){return n.has(u)?false:(n.add(u),n.size>2048&&n.delete(n.values().next().value),true)}function a(u,f,y,A){A!==void 0&&r.set(u,A),e.clearChannelKey(u),e.stopChannelHistory(u),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:u},y);}function c(u){let f=e.domainState.getSession(u);e.domainState.setChannelRestriction(u,f?.channelState??"unknown_restricted",f?.channelState===void 0?"channel_access_requires_refresh":f.sendDisabledReason);}return {handleMessage(u,f={source:"live"}){if(!o||u.conversationType!=="channel"||u.contentType!=="system"||u.body.system===void 0||f.source!=="live"&&f.applyLifecycleEffects!==true||!s(u.id))return;let y=u.conversationId,A=u.body.system,m=A.targetUserIds?.includes(e.getSelfId())??false,p=A.targetUserIds===void 0||A.targetUserIds.length===0,M=i(u),E=t.get(y);if(M!==void 0){if(E!==void 0&&M<=E)return;t.set(y,M);}switch(A.eventType){case "channel_member_left":m?a(y,"left","channel_left",M):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_member_removed":m?a(y,"removed","channel_removed",M):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_dismissed":a(y,"dismissed","channel_dismissed",M);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!m){e.domainState.refreshConversationProfile(y,"channel");return}let C=e.domainState.getSession(y)?.channelState;if(C==="dismissed")return;if(C==="left"||C==="removed"){let _=r.get(y);if(!(M!==void 0&&_!==void 0&&M>_)){e.domainState.recoverChannelFromProfile(y).then(v=>{!o||!v||(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":(m||p)&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_admin_added":case "channel_admin_removed":(m||p)&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_owner_transferred":(m||p||A.operatorId===e.getSelfId())&&c(y),e.domainState.refreshConversationProfile(y,"channel");return;default:Yf.has(A.eventType)&&e.domainState.refreshConversationProfile(y,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function zf(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(i){let s=i.body.system;if(i.contentType==="system"&&s!==void 0){if(s.eventType==="group_info_changed"||s.eventType==="group_master_changed"){n.refreshConversationProfile(i.conversationId,"group");return}let a=is(s,t());if(a===null)return;a.state==="active"?(n.setGroupRestriction(i.conversationId,a.state,a.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}),r(i.conversationId)):(o(i.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},a.reason));return}if(i.conversationType==="group"&&i.senderId===t()&&i.status==="failed"){let a=ss(i.failure?.code);a!==null?(o(i.conversationId),a.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},a.reason):n.setGroupRestriction(i.conversationId,a.state,a.reason)):i.failure?.code===33540&&n.refreshConversationProfile(i.conversationId,"group");return}i.conversationType==="group"&&i.contentType!=="system"&&i.senderId!==t()&&i.encryption.decryptFailed!==true&&(n.getSession(i.conversationId)?.groupState==="removed"&&n.setGroupRestriction(i.conversationId,"active",""),n.getSession(i.conversationId)?.groupState==="active"&&e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}));}}}function qf(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 jf(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:le(e.createdAt,e.callId),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function Hn(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([jf(n)],"live");}var Ns=3e4,xl=0,Fl=1,Bl=5,Vl=1,Pl=2;function wl(e){return e==="audio"?Fl:xl}function Ol(e){if(e===Fl)return "audio";if(e===xl)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Kl(e,n,t=Ns){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 Ll(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 Zl(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function Ds(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function _s(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 ke(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function vn(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}function Yn(e){return {conversationType:"direct",conversationId:e}}function $f(e){let n;function t(){return e.now?.()??Date.now()}function r(){let k=e.getSelfId();if(k.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return k}function o(k){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${k}`);return r()}function i(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function s(){return n?.connectedAt===void 0?0:Math.max(0,t()-n.connectedAt)}function a(k,G){n!==void 0&&Hn(e.domainState,{callId:n.callId,peerId:n.peerId,selfId:r(),callKind:n.callKind,outcome:k,durationMs:s(),outgoing:n.direction==="outgoing",createdAt:G});}function c(k,G=t(),F=true){if(n===void 0)return;let W=n;return i(),a(k,G),n=void 0,F&&e.emitter.emit({type:"call:hangup",conversation:Yn(W.peerId),callId:W.callId,peerId:W.peerId,outcome:k}),W}function u(k,G,F){let W=k===16387?kt.encode(kt.create({sUserId:G,sMsgId:F})):k===16391?Ft.encode(Ft.create({sUserId:G,sMsgId:F})):k===16399?Vt.encode(Vt.create({sUserId:G,sMsgId:F})):k===16403?wt.encode(wt.create({sUserId:G,sMsgId:F})):Bt.encode(Bt.create({sUserId:G,sMsgId:F}));e.sendFrame(H({command:k,body:W}));}function f(k){return setTimeout(k,Ns)}function y(k,G,F,W){let K=Gt.encode(Gt.create({sInviteId:ke(G,"peerId"),sFromId:ke(k,"selfId"),sMsgId:Pe(),msgTime:BigInt(t()),callType:wl(W),scallId:F}));e.sendFrame(H({command:16385,body:K}));}function A(k,G,F,W){let K=xt.encode(xt.create({sToId:ke(G,"peerId"),sFromId:ke(k,"selfId"),sMsgId:Pe(),msgTime:BigInt(t()),errcode:Zl(W),scallId:F}));e.sendFrame(H({command:16389,body:K}));}function m(k,G,F,W){let K=wn.encode(wn.create({sToId:ke(G,"peerId"),sFromId:ke(k,"selfId"),sMsgId:Pe(),msgTime:BigInt(t()),scallId:F,hangupReasonCode:Ds(W)}));e.sendFrame(H({command:16397,body:K}));}function p(k,G){let F=vn(k.callId);if(ke(k.peerId,"peerId"),n===void 0||n.callId!==F||n.peerId!==k.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${G}`);return n}function M(k){let G=o("\u53D1\u8D77\u901A\u8BDD"),F=k.callKind??"audio";if(F!=="audio")throw new Error("call signaling: \u5F53\u524D\u53EA\u5B9E\u73B0 1v1 \u8BED\u97F3");let W=String(ke(k.peerId,"peerId"));if(W===G)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let K=vn(k.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let se=t();return n={callId:K,peerId:W,callKind:F,direction:"outgoing",phase:"outgoing-ringing",startedAt:se},y(G,W,K,F),n.ringTimer=f(()=>{n?.callId!==K||n.phase!=="outgoing-ringing"||(m(G,W,K,"no-answer"),c("cancelled"));}),{callId:K,conversation:Yn(W)}}function E(k){let G=o("\u63A5\u542C"),F=p(k,"\u63A5\u542C");if(F.direction!=="incoming"||F.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");i(),A(G,F.peerId,F.callId,"accept"),F.phase="accepted";}function C(k){let G=o("\u62D2\u7EDD"),F=p(k,"\u62D2\u7EDD");if(F.direction!=="incoming"||F.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");A(G,F.peerId,F.callId,"reject"),c("rejected");}function _(k){let G=o("\u56DE\u5FD9"),F=vn(k.callId),W=String(ke(k.peerId,"peerId"));A(G,W,F,"busy"),n?.callId===F?c("busy"):Hn(e.domainState,{callId:F,peerId:W,selfId:G,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:t()});}function R(k){let G=o("\u6302\u65AD"),F=p(k,"\u6302\u65AD");m(G,F.peerId,F.callId,k.reason);let W=F.phase==="connected",K=_s(Ds(k.reason),F.direction,W);c(K);}function v(k){let G=o("\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB"),F=p(k,"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB");if(F.phase!=="accepted"&&F.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001 PEER_AUDIO_BEGIN");let W=Pt.encode(Pt.create({sToId:ke(F.peerId,"peerId"),sFromId:ke(G,"selfId"),sMsgId:Pe(),msgTime:BigInt(t()),notifyType:5,notifyValue:k.role==="caller"?Vl:Pl,scallId:F.callId}));e.sendFrame(H({command:16401,body:W}));}function b(k){let G=mo.decode(k);if(G.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let F=r();u(16387,ke(F,"selfId"),G.sMsgId);let W=vn(G.scallId),K=G.sFromId.toString();if(G.sFromId<=0n||G.sInviteId.toString()!==F)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(K===F)return;let se=Number(G.msgTime),me=Ol(G.callType),ae=Kl(se,t()),ye=Yn(K);if(ae){Hn(e.domainState,{callId:W,peerId:K,selfId:F,callKind:me,outcome:"missed",durationMs:0,outgoing:false,createdAt:se}),e.emitter.emit({type:"call:incoming",conversation:ye,callId:W,peerId:K,callKind:me,createdAt:se,expired:true});return}if(n!==void 0){A(F,K,W,"busy"),Hn(e.domainState,{callId:W,peerId:K,selfId:F,callKind:me,outcome:"busy",durationMs:0,outgoing:false,createdAt:se});return}if(me!=="audio"){A(F,K,W,"busy"),Hn(e.domainState,{callId:W,peerId:K,selfId:F,callKind:me,outcome:"busy",durationMs:0,outgoing:false,createdAt:se});return}n={callId:W,peerId:K,callKind:me,direction:"incoming",phase:"incoming-ringing",startedAt:se},n.ringTimer=f(()=>{n?.callId!==W||n.phase!=="incoming-ringing"||c("missed",se);}),e.emitter.emit({type:"call:incoming",conversation:ye,callId:W,peerId:K,callKind:me,createdAt:se,expired:false});}function x(k){let G=uo.decode(k);if(n===void 0||n.direction!=="outgoing"||G.errcode===32768)return;let F=G.errcode===33794?"peer-offline":"ack-error",W=c("cancelled",t(),false);W!==void 0&&e.emitter.emit({type:"call:failed",conversation:Yn(W.peerId),callId:W.callId,peerId:W.peerId,reason:F});}function U(k,G){G!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${k} ACK \u5931\u8D25`,cause:{errcode:G}}});}function Q(k){let G=fo.decode(k);if(G.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let F=r();u(16391,ke(F,"selfId"),G.sMsgId);let W=vn(G.scallId);if(n===void 0||n.callId!==W||n.direction!=="outgoing")return;let K=Ll(G.errcode);if(e.emitter.emit({type:"call:answered",conversation:Yn(n.peerId),callId:W,peerId:n.peerId,result:K}),K==="accept"){i(),n.phase="accepted";return}c(K==="reject"?"rejected":K==="busy"?"busy":"cancelled");}function P(k){let G=wn.decode(k);if(G.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let F=r();u(16399,ke(F,"selfId"),G.sMsgId);let W=vn(G.scallId);if(n===void 0||n.callId!==W)return;let K=_s(G.hangupReasonCode,n.direction,n.phase==="connected");c(K);}function X(k){let G=Co.decode(k);if(G.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let F=r();if(u(16403,ke(F,"selfId"),G.sMsgId),G.notifyType!==Bl)return;let W=vn(G.scallId);n===void 0||n.callId!==W||n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=t()),n.phase="connected",e.emitter.emit({type:"call:peer-audio-begin",conversation:Yn(n.peerId),callId:W,peerId:n.peerId}));}function oe(k){let G=yo.decode(k);if(G.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");u(16395,ke(r(),"selfId"),G.sMsgId);}return {handlers:[{command:16388,handler:(k,G)=>b(G)},{command:16386,handler:(k,G)=>x(G)},{command:16392,handler:(k,G)=>Q(G)},{command:16390,handler:(k,G)=>U("answer",po.decode(G).errcode)},{command:16400,handler:(k,G)=>P(G)},{command:16398,handler:(k,G)=>U("hangup",Io.decode(G).errcode)},{command:16404,handler:(k,G)=>X(G)},{command:16402,handler:(k,G)=>U("state-notify",So.decode(G).errcode)},{command:16396,handler:(k,G)=>oe(G)}],invite:M,accept:E,reject:C,busy:_,hangup:R,notifyPeerAudioBegin:v,dispose(){i(),n=void 0;}}}function Xn(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 Us(e){return [{command:4646,handler:(n,t)=>{let r=Gr.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=xr.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=go.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var Ql=9;function ey(){return {encrypted:true}}function ny(e,n){if(e.length===0)return "empty-input";if(e.length>Ql)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function ty(e){return "body"in e&&"contentType"in e&&"sortKey"in e}function Gs(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 i=ny(n.targets,e.sendStrategies);if(i!==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:i});return {results:r,skippedSourceIds:[]}}let s=[];for(let a of n.messages){let c=e.resolveCurrentMessage===void 0?ty(a)?a:void 0:e.resolveCurrentMessage(a);if(c===void 0||c.id!==a.id||c.conversationId!==a.conversationId||c.conversationType!==a.conversationType||!Ts(c)){o.push(a.id);continue}s.push(c);}for(let a of n.targets)for(let c of s)try{let u=er(c.contentType);if(u===void 0){r.push({ok:!1,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"type-not-allowed"});continue}let f=u.cloneBody(c),y=ey(),A=u.enqueue({outbox:e.outbox,target:a,source:c,body:f,encryption:y,now:t});r.push({ok:!0,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,newMessageId:A});}catch{r.push({ok:false,sourceMessageId:c.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}function Wl(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 Zo(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 ry=1,oy=2,iy=3,sy=3,ay=3,Jl=6,dy=1e3;function ks(e){return Number.isFinite(e)&&e>0}var cy=320,ly=12*1024,Hl=20*1024,gy=.9,uy=.72,my=320,py=10*1024,xs=16*1024,fy=.84,yy=.68,Iy=xs;function Sy(e,n){let t=e.localPreviewMetadata;if(!(n.contentType!=="video"&&n.contentType!=="image"||t===void 0)&&!(!ks(t.width)||!ks(t.height)||n.contentType==="video"&&t.duration!==void 0&&!ks(t.duration)||n.contentType==="video"&&t.posterData!==void 0&&(!(t.posterData instanceof Uint8Array)||t.posterData.length===0||t.posterData.length>Iy)))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 Yl(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 Cy={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:cy,targetBytes:ly,maxBytes:Hl,quality:gy,minQuality:uy});return {width:r.width,height:r.height,...o.data.byteLength<=Hl?{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}:{}}}}},Xl={contentType:"video",uploadKind:"video",encryptMode:"integral",async buildPreview(e,n,t){let r=await t.videoPoster(e,{mimeType:n,maxSize:my,targetBytes:py,maxBytes:xs,quality:fy,minQuality:yy});return {width:r.width,height:r.height,...r.data.byteLength<=xs?{thumbData:r.data}:{},duration:r.duration}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o},i){return {video:{url:e,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...i.caption!==void 0&&i.caption!==""?{describe:i.caption}:{},...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},Ry={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}:{}}}}},Ey={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 Ay(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function My(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 zl={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 i=o.filename??"",s=Ay(i),a=My(s,o.mimeType);return {file:{url:e,fileName:i,...n!==void 0?{size:n}:{},...s!==""?{extension:s}:{},...a!==0?{fileType:a}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}};function ql(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 hy(e){return typeof e=="function"}function Ty(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 i=false;o.resolve(()=>{i||(i=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 i=false;return Promise.resolve(()=>{i||(i=true,n-=1,r());})}return new Promise((i,s)=>{let a={signal:o,resolve:i,reject:s,onAbort:()=>{let c=t.indexOf(a);c>=0&&t.splice(c,1),s(new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError"));}};t.push(a),o.addEventListener("abort",a.onAbort,{once:true});})}}}function vy(e){let n=e??ay;if(!Number.isInteger(n)||n<1||n>Jl)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${Jl} \u7684\u6574\u6570`);return n}function Fs(e){let n=Ty(vy(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,s=new Map,a=true,c=0;function u(m){return {conversationType:m.conversationType,conversationId:m.conversationId}}function f(m,p,M,E,C,_){if(!a)return;let R=u(p);e.emitter.emit({type:"media-task:updated",conversation:R,task:{id:`upload:${m}`,messageId:m,ref:R,direction:"upload",state:M,percent:Math.max(0,Math.min(100,Math.round(E))),..._===void 0?{}:{phase:_},...C===void 0?{}:{failure:C}}});}function y(m,p,M,E,C,_){for(s.delete(m),s.set(m,{spec:p,input:M,createdAt:E,message:C,failureReason:_});s.size>sy;){let R=s.keys().next().value;if(R===void 0)break;let v=s.get(R);if(s.delete(R),v===void 0||!a)continue;let b=v.spec.contentType==="video"||v.spec.contentType==="file",x={code:$t,reason:"unknown",displayCode:b?"media.uploadInterrupted":ql(v.failureReason),mediaKind:v.spec.uploadKind,retryable:false};e.domainState.upsertMessages([{...v.message,status:"failed",failure:x}],"live"),f(R,v.input,"failed",i.get(R)??0,x);}}async function A(m,p,M,E){if(!a)return {ok:false,reason:"cancelled"};let C=c,_=hy(p.data),R=_?void 0:p.data;if(R?.length===0)return {ok:false,reason:"empty"};let v=p.encrypted??true;if(v&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let b=Sy(p,m);if((m.contentType==="video"||m.contentType==="image")&&p.localPreviewMetadata!==void 0&&b===void 0)return {ok:false,reason:"preview-failed"};let x=M===void 0||E===void 0?e.outbox.allocateMessageIdentity({conversationId:p.conversationId,conversationType:p.conversationType}):{id:M,createdAt:E},{id:U,createdAt:Q}=x,P=e.getSelfId(),X=b??{width:0,height:0};if(!_)try{X=Yl(await m.buildPreview(R,p.mimeType,e.mediaPreview),b);}catch{}if(!a)return {ok:false,reason:"cancelled"};let oe={id:U,conversationId:p.conversationId,conversationType:p.conversationType,senderId:P,contentType:m.contentType,body:m.buildBody({url:p.localPreviewUrl??"",meta:X},p),createdAt:Q,sortKey:le(Q,U),status:"uploading",receipt:"unread",encryption:{encrypted:v},...p.refMessageId!==void 0?{refMessageId:p.refMessageId}:{}};e.domainState.upsertMessages([oe],"live"),i.set(U,0),f(U,p,"queued",0,void 0,"waiting-upload-slot");let ee=(G,F=false)=>{let W={code:$t,reason:"unknown",displayCode:ql(G),mediaKind:m.uploadKind,retryable:F};return a?(e.domainState.upsertMessages([{...oe,status:"failed",failure:W}],"live"),f(U,p,G==="cancelled"?"canceled":"failed",i.get(U)??0,W),{ok:false,reason:G}):{ok:false,reason:G}},k=new AbortController;t.set(U,k),r.set(U,u(p));try{let G=await n.acquire(k.signal);try{f(U,p,"running",i.get(U)??0);let F;try{F=_?await p.data():R;}catch{return ee("upload-failed",!0)}if(F.length===0)return ee("empty");if(_&&!(m.contentType==="video"&&b?.thumbData!==void 0)){try{X=Yl(await m.buildPreview(F,p.mimeType,e.mediaPreview),b);}catch{}if(!a)return {ok:!1,reason:"cancelled"};oe={...oe,body:m.buildBody({url:p.localPreviewUrl??"",meta:X},p)},e.domainState.upsertMessages([oe],"live");}let W=F,K,se=ry;if(v&&e.crypto!==void 0&&m.encryptMode!=="none")try{K=e.crypto.randomTeaKey(),m.encryptMode==="simple"?(W=e.crypto.encryptFileSimple({teaKey:K,plain:F}),se=oy):(W=e.crypto.encryptSymmetric({teaKey:K,plain:F}),se=iy);}catch{return ee("encrypt-failed")}let me;try{me=(await e.mediaTransfer.upload({data:W,kind:m.uploadKind,signal:k.signal,...p.filename!==void 0?{filename:p.filename}:{},...p.mimeType!==void 0?{mimeType:p.mimeType}:{},onProgress:ye=>{if(!a||k.signal.aborted||t.get(U)!==k)return;let I=Number.isFinite(ye.percent)?Math.max(0,Math.min(100,Math.round(ye.percent))):0,N=Math.max(i.get(U)??0,I);i.set(U,N),e.emitter.emit({type:"media:progress",conversation:u(p),messageId:U,percent:N}),f(U,p,"running",N,void 0,ye.phase);}})).url;}catch(ae){if(!a)return {ok:!1,reason:"cancelled"};let ye=k.signal.aborted?o.get(U)??"cancelled":"upload-failed";return k.signal.aborted||e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:U,conversation:u(p),cause:ae}),y(U,m,p,Q,oe,ye),ee(ye,!0)}if(!a)return {ok:!1,reason:"cancelled"};if(k.signal.aborted){let ae=o.get(U)??"cancelled";return y(U,m,p,Q,oe,ae),ee(ae,!0)}if(C===c&&(m.contentType==="image"||m.contentType==="video")&&e.mediaAssetCache!==void 0){let ae=m.contentType,ye=F.byteLength;e.mediaAssetCache.put({kind:ae,messageId:U,resourceVersion:Zo(me),bytes:F,...p.mimeType===void 0?{}:{mimeType:p.mimeType}}).catch(I=>{e.onMediaAssetCacheError?.({operation:"put",kind:ae,messageId:U,byteLength:ye,cause:I});});}return e.outbox.enqueueMedia({id:U,conversationId:p.conversationId,conversationType:p.conversationType,contentType:m.contentType,body:m.buildBody({url:me,meta:X,size:F.length,...m.encryptMode==="none"?{}:{teaKey:K,fileEncryptType:se}},p),encryption:{encrypted:v},createdAt:Q,...p.refMessageId!==void 0?{refMessageId:p.refMessageId}:{}}),f(U,p,"completed",100),{ok:!0,messageId:U}}finally{G();}}catch{if(!a)return {ok:false,reason:"cancelled"};let G=k.signal.aborted?o.get(U)??"cancelled":"upload-failed";return y(U,m,p,Q,oe,G),ee(G,true)}finally{t.get(U)===k&&(t.delete(U),r.delete(U),i.delete(U),o.delete(U));}}return {sendImage:m=>A(Cy,m),sendVideo:m=>A(Xl,m),replaceVideo:(m,p,M)=>A(Xl,M,m,p),sendVoice:m=>{let p=m.durationMs;return p===void 0||!Number.isFinite(p)||p<dy?Promise.resolve({ok:false,reason:"invalid-duration"}):A(Ry,m)},sendFile:m=>A(zl,m),sendGif:m=>A(Ey,{...m,encrypted:false}),replaceFile:(m,p,M)=>A(zl,M,m,p),cancel(m){if(!a)return false;let p=t.get(m);return p===void 0?false:(o.set(m,"cancelled"),p.abort(),true)},cancelConversation(m,p="offline"){if(a)for(let[M,E]of r){if(E.conversationType!==m.conversationType||E.conversationId!==m.conversationId)continue;let C=t.get(M);C!==void 0&&(o.set(M,p),C.abort());}},cancelAll(m="offline"){if(a)for(let[p,M]of t)o.set(p,m),M.abort();},retry(m){if(!a)return false;let p=s.get(m);return p===void 0?false:(s.delete(m),f(m,p.input,"queued",0),A(p.spec,p.input,m,p.createdAt),true)},invalidateAssetCacheWrites(){c+=1;},dispose(){if(a){a=false,c+=1;for(let m of t.values())m.abort();t.clear(),i.clear(),o.clear(),s.clear();}}}}function jl(e,n){if(!kn(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}})}var by=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram"]);function Ny(e){return by.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0}function Dy(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 _y(e,n){return On.encode(On.create({emoji:e,action:n}))}function Uy(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(f,y){let A=BigInt(e.getSelfId()),m=BigInt(f.conversation.conversationId),p=_y(f.emoji,f.action),M=ue(f.id),E=Je(f.parentMessageId);switch(f.conversation.conversationType){case "direct":{let C=y===4651?Er:Rr,_=C.create({sToId:m,sFromId:A,sMsgId:M,msgType:1,msgTime:BigInt(f.createdAt),encrypt:0,sContent:p,parentMsgId:E});return H({command:y??4650,body:C.encode(_)})}case "group":{let C=Ct.create({sGrpId:m,sToId:m,sFromId:A,sMsgId:M,msgType:5,msgTime:BigInt(f.createdAt),encrypt:0,sContent:p,parentMsgId:E});return H({command:8978,body:Ct.encode(C)})}case "channel":{let C=vt.create({sRadioId:m,sFromId:A,sMsgId:M,msgTime:BigInt(f.createdAt),encrypt:0,sContent:p,parentMsgId:E});return H({command:12817,body:vt.encode(C)})}}}function s(f,y,A){clearTimeout(f.timer),n.delete(f.event.id),e.domainState.rollbackReaction(f.event.conversation,f.event.parentMessageId,f.event.id),f.resolve({ok:false,reason:y,...A===void 0?{}:{errcode:A}});}function a(f){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let y=e.domainState.getConversationMessage(f.conversation,f.parentMessageId);if(y===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!Ny(y))return Promise.resolve({ok:false,reason:"unsupported-message"});if(!zt(f.emoji)||qt(f.emoji)||e.isEmojiSupported?.(f.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let A=Object.freeze({id:Pe(),conversation:Object.freeze({...f.conversation}),parentMessageId:f.parentMessageId,senderId:e.getSelfId(),emoji:f.emoji,action:f.action,createdAt:t()});return e.domainState.applyReaction(A,"live"),new Promise(m=>{let p=setTimeout(()=>{let M=n.get(A.id);M!==void 0&&s(M,"timeout");},r);n.set(A.id,{event:A,resolve:m,timer:p});try{e.sendFrame(i(A));}catch(M){e.logger?.("reaction-send-frame-failed",{eventId:A.id,cause:M});let E=n.get(A.id);E!==void 0&&s(E,"failed");}})}function c(f){let A=e.domainState.getConversationMessage(f.conversation,f.parentMessageId)?.reactions?.currentUserEmoji===f.emoji?1:0;return a({...f,action:A})}function u(f){let y=n.get(f.eventId);if(y!==void 0){if(f.errcode!==32768&&f.errcode!==0){s(y,"failed",f.errcode);return}if(clearTimeout(y.timer),n.delete(y.event.id),y.event.conversation.conversationType==="direct")try{e.sendFrame(i(y.event,4651));}catch(A){e.logger?.("reaction-opposite-end-send-failed",{eventId:y.event.id,cause:A});}y.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(y.event.emoji).catch(A=>e.logger?.("reaction-report-failed",{emoji:y.event.emoji,cause:A})),y.resolve({ok:true,event:y.event});}}return {set:a,toggle:c,onAck:u,ingest:(f,y="live")=>!Dy(f)||!zt(f.emoji)||qt(f.emoji)||e.isEmojiSupported?.(f.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:f.id,parentMessageId:f.parentMessageId,emoji:f.emoji}),"ignored"):e.domainState.applyReaction(f,y),dispose(){o=true;for(let f of [...n.values()])s(f,"disconnected");}}}function Gy(e){return [{command:4652,handler:(n,t)=>{let r=Ar.decode(t);e.manager.onAck({eventId:te(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=Ht(Mr.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=Lr.decode(t);e.manager.onAck({eventId:te(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=Yt(Zr.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=qr.decode(t);e.manager.onAck({eventId:te(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=qi(jr.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function ky(e){return [{command:12806,handler:(n,t)=>{let r=ao.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=co.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 i=r.lastReadIndex.trim();if(i==="")throw new Error(`CHANNEL 0x3207 cursor \u7F3A\u5931\uFF08channelId=${r.radioId}\uFF09`);e.applyRemoteRead({conversationId:r.radioId.toString(),readCursor:i});}}]}function xy(e){let n=new Map,t=new Map,r=new Map,o=0;function i(C,_){let R={conversationType:"channel",conversationId:C},v=e.domainState.getSession(R);if(v===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${C}\uFF09`);if(v.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${v.type}\uFF08channelId=${C}\uFF09`);if(_.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${C}\uFF09`);let b=e.domainState.getConversationMessage(R,_),x=e.domainState.getLoadedMessagesByConversation(R).find(P=>P.extensions?.historyCursor===_),Q=(b===void 0?void 0:tr(b))??(x===void 0?void 0:tr(x));if(Q===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${C}, cursor=${_}\uFF09`);return Q}function s(C){let _={conversationType:"channel",conversationId:C},R=e.domainState.getReadState(_);if(R?.readCursor!==void 0&&R.readCursor!==""){let v=e.domainState.getLoadedMessagesByConversation(_).find(b=>b.extensions?.historyCursor===R.readCursor);if(v!==void 0){let b=tr(v);if(b!==void 0)return b}}return R?.readCursorSortKey===void 0?void 0:{sortKey:R.readCursorSortKey}}function a(C,_){return $l(C,_)}function c(C,_){let R=r.get(C),v=R===void 0?s(C):R.committed;return v!==void 0&&a(v,_)>=0}function u(C,_){let R=r.get(C);if(R!==void 0){if(a(R.optimistic,_)>=0)return;e.domainState.applyChannelReadOptimistically(R.transaction,_.messageId,_.cursor),R.optimistic=_;return}let v=s(C),b=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:C});e.domainState.applyChannelReadOptimistically(b,_.messageId,_.cursor),r.set(C,{transaction:b,committed:v,optimistic:_});}function f(C,_){let R=n.get(C);(R===void 0||a(_,R)>0)&&n.set(C,_);}function y(C,_){if(e.syncRead!==void 0)try{let R=Ut.encode(Ut.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(C),lastReadIndex:_}));e.syncRead.sendFrame(H({command:12805,body:R}));}catch(R){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${C}\uFF09`,cause:R}});}}async function A(C,_){for(;;){if(_!==o)return;let R=n.get(C);if(R===void 0)return;if(n.delete(C),c(C,R))continue;try{await e.updateReadIndex({channelId:C,readCursor:R.cursor});}catch(x){if(_!==o)return;let U=r.get(C);throw U!==void 0&&(e.domainState.rollbackChannelReadTransaction(U.transaction),r.delete(C)),f(C,R),x}if(_!==o)return;if(c(C,R))continue;let v=r.get(C);v!==void 0&&e.domainState.commitChannelReadTransaction(v.transaction,R.cursor)||e.domainState.applyServerUnread({conversationType:"channel",conversationId:C},0,R.messageId,R.cursor),v!==void 0&&(v.committed=R,a(v.optimistic,R)===0&&r.delete(C)),e.logger?.("channel-read-index",{channelId:C,cursor:R.cursor}),y(C,R.cursor);}}function m(C,_){let R=Promise.resolve().then(()=>A(C,_)).then(()=>{if(t.get(C)===R&&(t.delete(C),_===o&&n.has(C)))return m(C,_)},v=>{throw t.get(C)===R&&t.delete(C),v});return t.set(C,R),R}function p(C){let _;try{_=i(C.conversationId,C.readCursor);}catch(v){return Promise.reject(v)}if(c(C.conversationId,_))return Promise.resolve();u(C.conversationId,_),f(C.conversationId,_);let R=t.get(C.conversationId);return R!==void 0?R:m(C.conversationId,o)}function M(C){let _=i(C.conversationId,C.readCursor);c(C.conversationId,_)||(e.domainState.applyServerUnread({conversationType:"channel",conversationId:C.conversationId},0,_.messageId,_.cursor),r.delete(C.conversationId));}function E(){o+=1;for(let C of r.values())e.domainState.rollbackChannelReadTransaction(C.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:p,applyRemoteRead:M,reset:E}}function Fy(e){return e===void 0?void 0:tr(e)?.cursor}function tr(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 By(e){let n;for(let t of e){let r=tr(t);r!==void 0&&(n===void 0||$l(r,n)>0)&&(n=r);}return n?.cursor}function $l(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 Qo=50;function eg(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function Vy(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:In(e.id)}function Py(e,n,t,r){let o=eg(e,n,r);if(o===void 0)return;let i=eg(e,n,t),s=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(a=>Vy(a)&&a.senderId!==s&&a.sortKey<=o&&(i===void 0||a.sortKey>i)).map(a=>a.id)}function Bs(e){let n=new Set,t=new Map,r=new Map;function o(s){let a=r.get(s);if(a===void 0||a.size===0||!e.isAuthenticated())return;for(let u of a)In(u)||a.delete(u);if(a.size===0){r.delete(s);return}let c=[...a];for(let u=0;u<c.length;u+=Qo){let f=c.slice(u,u+Qo);try{let y=Nn.encode(Nn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:f.map(ue)}));e.sendFrame(H({command:4117,body:y}));for(let A of f)a.delete(A);}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=${s}\uFF09`,cause:y}});break}}a.size===0&&r.delete(s);}function i(s){let a=e.domainState.getReadState({conversationType:"direct",conversationId:s})?.readCursor??"";if(a===""||!e.isAuthenticated())return;let c=Py(e,s,t.get(s),a);if(c===void 0)return;if(c.length===0){t.set(s,a);return}let u,f=true;for(let y=0;y<c.length;y+=Qo){let A=c.slice(y,y+Qo),m=A.map(ue);try{let p=Nn.encode(Nn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:m}));e.sendFrame(H({command:4117,body:p})),u=A.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:s,count:m.length,offset:y});}catch(p){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${s}\uFF09`,cause:p}}),f=false;break}}f?t.set(s,a):u!==void 0&&t.set(s,u);}return {report(s){n.add(s),i(s);},reportConsumedMedia(s,a){let c=e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},a);if(c===void 0||c.senderId===e.getSelfId()||c.contentType!=="voice"&&c.contentType!=="video")return;n.add(s);let u=r.get(s);u===void 0&&(u=new Set,r.set(s,u)),u.add(a),o(s);},onAck({errcode:s}){e.logger?.("direct-sync-read-ack",{errcode:s}),s!==32768&&s!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${s}\uFF09`,code:4118}});},onDeliver({userId:s,peerId:a,msgIdList:c}){if(s!==e.getSelfId())return;let f=c.map(y=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},te(y))).filter(y=>y!==void 0).sort((y,A)=>y.sortKey<A.sortKey?-1:y.sortKey>A.sortKey?1:0).at(-1);f!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:a},f.id);},onAuthenticated(){for(let s of n)i(s),o(s);},reset(){}}}var Vs=50;function wy(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function s(c,u){let{syncRead:f}=e;if(f===void 0||!i())return;let y=f.getSelfId(),A=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:c}),m=A.find(v=>v.id===u);if(m===void 0)return;let p=o.get(c),M=p===void 0?void 0:A.find(v=>v.id===p)?.sortKey,E=A.filter(v=>v.senderId!==y&&v.sortKey<=m.sortKey&&(M===void 0||v.sortKey>M));if(E.length===0){o.set(c,u);return}let C=E.map(v=>ue(v.id)),_,R=true;for(let v=0;v<C.length;v+=Vs){let b=C.slice(v,v+Vs);try{let x=Rt.encode(Rt.create({sUserId:BigInt(y),msgIdList:b,groupId:BigInt(c)}));f.sendFrame(H({command:8967,body:x})),_=E[Math.min(v+Vs,E.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:c,count:b.length,offset:v});}catch(x){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:x}}),R=false;break}}R?o.set(c,u):_!==void 0&&o.set(c,_);}async function a(c){if(!(t.has(c)||!i())){t.add(c);try{for(;i();){let u=n.get(c);if(u===void 0)return;if(n.delete(c),r.get(c)!==u){s(c,u);try{await e.markGroupReadAll(c),r.set(c,u);}catch(f){if(!i()){n.has(c)||n.set(c,u);return}n.get(c)===u&&n.delete(c),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${c}\uFF09`,cause:f}});return}}}}finally{t.delete(c),i()&&n.has(c)&&a(c);}}}return {conversationType:"group",markRead({conversationId:c,readCursor:u}){e.domainState.applyServerUnread({conversationType:"group",conversationId:c},0,u),e.logger?.("grp-read-all",{groupId:c}),n.set(c,u),a(c);},onAuthenticated(){for(let c of n.keys())a(c);}}}function Oy(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 ng(e){let n=ut.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:ue(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return H({command:4107,body:ut.encode(n)})}function tg(e){let n=pt.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:ue(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return H({command:8197,body:pt.encode(n)})}function rg(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:ue(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function og(e){let n=Nt.create(rg(e));return H({command:12297,body:Nt.encode(n)})}function ig(e){let n=bt.create(rg(e));return H({command:12293,body:bt.encode(n)})}var Ky=15e3;function Ps(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,i){let s=t.get(o);s!==void 0&&(s.timer!==void 0&&clearTimeout(s.timer),t.delete(o),s.resolve(i));}return {deleteForEveryone(o){let i=e.domainState.getConversationMessage(o,o.messageId);if(i===void 0||i.conversationId!==o.conversationId||i.id!==o.messageId)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationType!=="channel")return Promise.resolve({ok:false,reason:"unsupported"});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:true});if(i.recalled!==void 0)return Promise.resolve({ok:false,reason:"unavailable"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let s;try{s=ue(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let a=t.get(s);if(a!==void 0)return a.promise;let c,u=new Promise(y=>{c=y;}),f={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:c,promise:u};return t.set(s,f),e.resolveProfile(i.conversationId).then(y=>{if(t.get(s)===f){if(y===null||y.role!=="admin"&&y.role!=="owner"){r(s,{ok:false,reason:"forbidden"});return}f.timer=setTimeout(()=>r(s,{ok:false,reason:"timeout"}),Ky),e.sendFrame(ig({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>r(s,{ok:false,reason:"failed"})),u},onDeleteAck({sMsgId:o,errcode:i}){let s=t.get(o);if(s!==void 0){if(i===32768||i===0){e.domainState.deleteChannelMessageForEveryone({conversationId:s.channelId,conversationType:"channel"},s.messageId,{by:e.getSelfId(),at:s.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(i===34052){e.onPermissionDenied?.(s.channelId),r(o,{ok:false,reason:"forbidden",errcode:i});return}r(o,{ok:false,reason:"failed",errcode:i});}},reset(){for(let o of [...t.keys()])r(o,{ok:false,reason:"disconnected"});}}}var zn=300*1e3;function sg(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 ag(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>zn)return "expired"}function dg(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:zn,prepare(e,n,t){let r=ag(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:ng({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function cg(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:zn,prepare(e,n,t){let r=ag(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:tg({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function Ly(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:zn,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>zn)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:og({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function ws(){return sg([dg(),cg()])}var lg=15e3;function Os(e){let n=e.now??(()=>Date.now()),t=e.strategies??ws(),r=new Map;function o(i,s){let a=r.get(i);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),r.delete(i),a.resolve(s));}return {recall(i){let s=e.domainState.getConversationMessage(i,i.messageId);if(s===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(s.recalled!==void 0)return Promise.resolve({ok:true});if(s.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let a=t.resolve(i.conversationType);if(a===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let c=e.getSelfId();if(a.ownMessageOnly===true&&s.senderId!==c)return Promise.resolve({ok:false,reason:"not-own"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let u=n();if(a.recallWindowMs!==void 0&&u-(s.serverTime??s.createdAt)>a.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let f=ue(i.messageId),y=r.get(f);if(y!==void 0)return y.promise;let A=a.prepare(i,s,{selfId:c,now:u});function m(C){if(!C.ok)return Promise.resolve(C);let _,R=new Promise(b=>{_=b;}),v=setTimeout(()=>o(f,{ok:false,reason:"timeout"}),lg);return r.set(f,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:C.recalledAt,resolve:_,timer:v,promise:R}),e.sendFrame(C.frame),R}if(!(A instanceof Promise))return m(A);let p,M=new Promise(C=>{p=C;}),E={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:u,resolve:p,promise:M};return r.set(f,E),A.then(C=>{if(r.has(f)){if(!C.ok){o(f,C);return}E.cancelTime=C.recalledAt,E.timer=setTimeout(()=>o(f,{ok:false,reason:"timeout"}),lg),e.sendFrame(C.frame);}}).catch(()=>o(f,{ok:false,reason:"failed"})),M},onRecallAck({sMsgId:i,errcode:s}){let a=r.get(i);if(a===void 0)return;if(s===32768||s===0){e.domainState.recallMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{by:e.getSelfId(),at:a.cancelTime}),o(i,{ok:true});return}let c=s===33284?"server-expired":"failed";o(i,a.conversationType==="channel"?{ok:false,reason:c,errcode:s}:{ok:false,reason:c});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function Ks(e){function n(r){let o=Dr.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([es(o,e.getSelfId())],"live");let i=mt.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(H({command:4109,body:mt.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let s=(o?no:oo).decode(r);if(s.sFromId<=0n||s.sRadioId<=0n||s.sMsgId.trim()==="")return;let a=o?eo:ro,c=o?12295:12299,u=a.create({sFromId:s.sFromId,sRadioId:s.sRadioId,sMsgId:s.sMsgId,sIndex:s.sIndex});e.sendFrame(H({command:c,body:a.encode(u)})),e.domainState.upsertMessages([o?ts(s):ns(s)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:s.sMsgId,sFromId:s.sFromId.toString(),sRadioId:s.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let i=Nr.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=_r.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=to.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=$r.decode(o);e.onChannelMessageDeletionAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12300,handler:(r,o)=>t(o,false)},{command:12296,handler:(r,o)=>t(o,true)}]}function Ls(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function Zy(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 Qy(e){let n=Ls(e.sFromId,"applicant"),t=Ls(e.sToId,"recipient"),r=Ls(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 Wy(e){function n(t){let r=io.decode(t),o=Zy(e),i=Qy(r),s=Dt.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(H({command:12547,body:Dt.encode(s)}));}catch(a){e.emitter.emit({type:"error",error:{scope:"transport",message:`CHANNEL \u5165\u7FA4\u7533\u8BF7 ACK \u53D1\u9001\u5931\u8D25\uFF08channelId=${i.channelId}, messageId=${i.messageId}\uFF09`,cause:a}});}i.recipientId===o&&e.emitter.emit({type:"channel-join-application:received",conversation:{conversationType:"channel",conversationId:i.channelId},notification:i});}return [{command:12548,handler:(t,r)=>n(r)}]}function Jy(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 Hy(e){function n(i){let s=_t.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(H({command:12803,body:_t.encode(s)}));}function t(i,s,a,c="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${c}\uFF08channelId=${s.sRadioId.toString()}, messageId=${s.sMsgId}\uFF09`,cause:a}});}function r(i){if(i.encrypt===0)return ne.decode(i.sContent);if(i.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 u=Se.decode(i.sContent);if(u.secretKey.length===0||u.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return ne.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:u.secretKey,cipherData:u.cipherData,privateKey:c}))}if(i.encrypt!==2)throw new Error(`CHANNEL \u901A\u77E5 encrypt=${i.encrypt} \u4E0D\u652F\u6301`);if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 ChannelKeyService \u89E3\u5BC6\u4F9D\u8D56");let s=e.decrypt.resolveChannelKey(i.sRadioId.toString());if(s===null||s.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let a=Se.decode(i.sContent);if(a.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return ne.decode(e.decrypt.crypto.decryptSymmetric({teaKey:s,cipherData:a.cipherData}))}function o(i,s){let a=so.decode(s);Jy(a);try{n(a);}catch(u){t("transport",a,u,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let c;try{c=r(a);}catch(u){t(a.encrypt===0?"protocol":"crypto",a,u);let f=rn(a,ne.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:a.encrypt!==0});e.domainState.upsertMessages([f],"live"),(a.encrypt===1||a.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:f.conversationId},messageId:f.id,wireEncrypt:a.encrypt,sContent:a.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let u=Wt({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:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([u],"live"),e.logger?.("channel-notify-deliver",{channelId:a.sRadioId.toString(),messageId:a.sMsgId,notifyType:c.type});}catch(u){t("protocol",a,u);}}return [{command:12804,handler:(i,s)=>o(i,s)}]}function Yy(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 Xy(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 gg(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 zy(e){function n(c){let u=Xr.decode(c),f={...u.sIndex===""?{}:{historyCursor:u.sIndex},...u.nIncrId===0n?{}:{channelSequence:u.nIncrId.toString()}},y=Yy(u.errcode);e.outbox.onChatAck({id:te(u.sMsgId),serverTime:Number(u.msgTime),errcode:u.errcode,...Object.keys(f).length===0?{}:{extensions:f},...y===void 0?{}:{failure:y}});let A=Xy(u.errcode);A!==void 0&&u.sRadioId>0n&&e.domainState.setChannelRestriction(u.sRadioId.toString(),A.state,A.reason),e.logger?.("channel-chat-ack",{messageId:u.sMsgId,channelId:u.sRadioId.toString(),errcode:u.errcode});}function t(c){let u=Tt.create({sFromId:c.sFromId,sRadioId:c.sRadioId,sMsgId:c.sMsgId,sIndex:c.sId});e.sendFrame(H({command:12291,body:Tt.encode(u)}));}function r(c,u,f){let y=c.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:u,messageId:c.sMsgId,channelId:y,encrypt:c.encrypt,payloadByteLength:c.sContent.length,...f}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${f.reason}, channelId=${y}\uFF09`,...f.cause===void 0?{}:{cause:f.cause}}});}function o(c,u){let f;if(c.encrypt===0)f=ne.decode(c.sContent);else if(c.encrypt===1&&e.decrypt!==void 0){let y=e.decrypt.resolveUserPrivateKey?.()??null;if(y===null){r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let A;try{if(A=Se.decode(c.sContent),A.secretKey.length===0||A.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(p){r(c,u,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:p});return}let m;try{m=e.decrypt.crypto.decryptEndToEnd({secretKey:A.secretKey,cipherData:A.cipherData,privateKey:y});}catch(p){r(c,u,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:A.cipherData.length,cause:p});return}try{f=ne.decode(m);}catch(p){r(c,u,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:A.cipherData.length,decryptedByteLength:m.length,cause:p});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,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:y?.length??0,keySource:y===null?"miss":"cache"});return}let A;try{let p=Se.decode(c.sContent);if(p.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");A=p.cipherData;}catch(p){r(c,u,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:y.length,keySource:"cache",cause:p});return}let m;try{m=e.decrypt.crypto.decryptSymmetric({teaKey:y,cipherData:A});}catch(p){r(c,u,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:A.length,cause:p});return}try{f=ne.decode(m);}catch(p){r(c,u,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:A.length,decryptedByteLength:m.length,cause:p});return}}else {r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return f}function i(c,u){let f=rn(c,ne.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:u,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([f],"live"),(c.encrypt===1||c.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:f.conversationId},messageId:f.id,wireEncrypt:c.encrypt,sContent:c.sContent.slice(),cmdId:u,source:"live",createdAt:Date.now()});}function s(c,u){let f=zr.decode(u);gg(f),t(f);let y=o(f,"live-deliver");if(y===void 0){i(f,c);return}let A=rn(f,y,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw});e.domainState.upsertMessages([A],"live"),e.logger?.("channel-chat-deliver",{messageId:f.sMsgId,channelId:f.sRadioId.toString(),encrypt:f.encrypt});}function a(c,u){let f=ln.decode(u);if(gg(f,false),f.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(f.isEdit===""||f.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(f.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let y=te(f.oldMsgId),A=o(f,"live-edit");if(A===void 0){let p={conversationType:"channel",conversationId:f.sRadioId.toString()};if(e.domainState.getConversationMessage(p,y)===void 0){let M=rn(f,ne.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...M,id:y}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:p,messageId:y,wireEncrypt:2,sContent:f.sContent.slice(),cmdId:c,source:"live",createdAt:Date.now()});return}let m=rn(f,A,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,edited:true});if(m.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:m.conversationId},y,m.body,m.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:m.conversationId},y)===void 0&&e.domainState.upsertMessages([{...m,id:y,edited:true,extensions:{...m.extensions,editOperationMessageId:m.id,previousMessageId:y}}],"live");}return [{command:12290,handler:(c,u)=>n(u)},{command:12292,handler:(c,u)=>s(c,u)},{command:12808,handler:(c,u)=>a(c,u)}]}function Zs(){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 qy(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 jy(e){return [{command:4360,handler:(n,t)=>{let r=br.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(H({command:4359,body:gt.encode(gt.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=r.sFromId.toString(),s=r.errcode===32768||r.errcode===33300||qy(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";s==="accepted"&&(e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,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(i,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:s}});}}]}function $y(e){return [{command:4356,handler:(n,t)=>{let r=vr.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(H({command:4355,body:lt.encode(lt.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=Number(r.msgTime);if(!Number.isSafeInteger(i)||i<=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:i}});}}]}function Qs(e){function n(m){let p=at.create({sFromId:m.sFromId,sToId:m.sToId,sMsgId:m.sMsgId,msgTime:m.msgTime});e.sendFrame(H({command:4099,body:at.encode(p)}));}function t(m){let p=ms(Sr.decode(m));e.logger?.("chat-ack",{id:p.id,errcode:p.errcode,serverTime:p.serverTime}),e.outbox.onChatAck(p);}function r(m,p,M){let E=Zn(m,ne.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:p,keepRaw:e.keepRaw,decryptFailed:true,edited:M});e.domainState.upsertMessages([E],"live"),m.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:E.conversationId},messageId:E.id,wireEncrypt:1,sContent:m.sContent.slice(),...m.encryptVersion===""?{}:{encryptVersion:m.encryptVersion},cmdId:p,source:"live",createdAt:Date.now()});}function o(m,p,M=false){let E=Cr.decode(p),C;if(E.encrypt===0)C=ne.decode(E.sContent);else if(E.encrypt===1&&e.decrypt!==void 0){let R=e.decrypt.resolvePrivateKey({msgType:E.msgType,encrypt:E.encrypt,encryptVersion:E.encryptVersion});if(R===null){e.decrypt.onDecryptError?.({msgId:E.sMsgId,fromId:String(E.sFromId),toId:String(E.sToId),msgType:E.msgType,cmdId:m,encrypt:E.encrypt,encryptVersion:E.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${E.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(E,m,M);return}try{let v=Se.decode(E.sContent);if(v.secretKey.length===0||v.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${v.secretKey.length}B cipherData=${v.cipherData.length}B`);let b=e.decrypt.crypto.decryptEndToEnd({secretKey:v.secretKey,cipherData:v.cipherData,privateKey:R});C=ne.decode(b);}catch(v){e.decrypt.onDecryptError?.({msgId:E.sMsgId,fromId:String(E.sFromId),toId:String(E.sToId),msgType:E.msgType,cmdId:m,encrypt:E.encrypt,encryptVersion:E.encryptVersion,reason:"decrypt-failed",cause:v}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${E.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:v}}),r(E,m,M);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${E.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(E,m,M);return}let _=Zn(E,C,{selfId:e.getSelfId(),cmdId:m,keepRaw:e.keepRaw,edited:M});e.domainState.upsertMessages([_],"live"),n(E),e.logger?.("chat-deliver",{sMsgId:E.sMsgId,sFromId:String(E.sFromId),sToId:String(E.sToId),encrypt:E.encrypt});}function i(m){let p=ft.create({sUserId:m.sToId,sMsgId:m.sMsgId});e.sendFrame(H({command:4101,body:ft.encode(p)})),e.logger?.("delivered-notif-ack",{sUserId:String(p.sUserId),sMsgId:p.sMsgId});}function s(m,p){let M=Fr.decode(p);if(e.logger?.("delivered-notif",{sMsgId:M.sMsgId,sFromId:String(M.sFromId),sToId:String(M.sToId)}),M.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_DELIVERED_NOTIFICATION(4102) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}i(M),e.emitter.emit({type:"notification",cmdId:m,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function a(m){let p=It.create({sUserId:m.sToId,sMsgId:m.sMsgId});e.sendFrame(H({command:4105,body:It.encode(p)})),e.logger?.("read-deliver-ack",{sUserId:String(p.sUserId),sMsgId:p.sMsgId});}function c(m,p){let M=e.getSelfId(),E=[];for(let C of p){let _=e.domainState.getConversationMessage({conversationType:"direct",conversationId:m},te(C.sMsgId));_!==void 0&&_.senderId===M&&_.receipt!=="read"&&E.push({..._,receipt:"read"});}E.length>0&&e.domainState.upsertMessages(E,"live");}function u(m,p){let M=Vr.decode(p);if(e.logger?.("read-deliver",{sMsgId:M.sMsgId,sFromId:String(M.sFromId),sToId:String(M.sToId),readResults:M.readResults.length,readReceiptOff:M.readReceiptOff}),M.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(M),M.readReceiptOff!==1){let E=e.getSelfId(),C=M.sFromId.toString(),_=M.sToId.toString();c(C===E?_:C,M.readResults);}e.emitter.emit({type:"notification",cmdId:m,name:"MES_CHAT_READ_DELIVER"});}function f(m){let p=Br.decode(m);e.logger?.("read-report-ack",{notifyId:p.sMsgId,sUserId:String(p.sUserId),errcode:p.errcode}),e.onReadAck?.({notifyId:p.sMsgId,errcode:p.errcode});}function y(m){let p=Pr.decode(m);e.logger?.("direct-sync-read-ack",{errcode:p.errcode}),e.onSyncReadAck?.({errcode:p.errcode});}function A(m,p){let M=wr.decode(p),E=M.sUserId.toString(),C=M.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:E,peerId:C,msgIds:M.msgIdList.length}),e.onSyncReadDeliver?.({userId:E,peerId:C,msgIdList:M.msgIdList}),e.emitter.emit({type:"notification",cmdId:m,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(m,p)=>t(p)},{command:4100,handler:(m,p)=>o(m,p)},{command:4644,handler:(m,p)=>o(m,p,true)},{command:4102,handler:(m,p)=>s(m,p)},{command:4106,handler:(m,p)=>u(m,p)},{command:4104,handler:(m,p)=>f(p)},{command:4118,handler:(m,p)=>y(p)},{command:4119,handler:(m,p)=>A(m,p)}]}function eI(e){function n(t){let r=hr.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=dt.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(H({command:4632,body:dt.encode(o)})),r.friendNotifyType===2&&e.getSelfId()===r.uerId.toString()){let i=r.friendId.toString();e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(s=>{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:s}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let i=r.friendId.toString(),s=r.friendNotifyType===0,a=r.friendNotifyType===1&&r.blackStatus===2;(s||a)&&(e.onRelationshipChanged?.(i,s?"none":"blocked"),e.domainState.removeConversation({conversationType:"direct",conversationId:i}),Promise.resolve(e.resetDirectReadReceiptPreference?.(i)).catch(c=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:i,error:c}}});}),e.emitter.emit({type:"profile:updated",profileType:"user",id:i}));}e.emitter.emit({type:"notification",cmdId:4631,name:"MES_FRIEND_NOTIFY"});}return [{command:4631,handler:(t,r)=>n(r)}]}function nI(e){function n(i,s){let a=Pn.decode(s),c=e.getSelfId(),u=Xt(a,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([u],"live");let f=Et.create({sUserId:BigInt(c),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(H({command:8707,body:Et.encode(f)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:a.sGrpId.toString(),sMsgId:a.sMsgId,notifyType:a.notifyType});}function t(i,s){let a=Jr.decode(s),c=At.create({sUserId:BigInt(e.getSelfId()),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(H({command:8451,body:At.encode(c)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:a.sGrpId.toString(),sMsgId:a.sMsgId});}function r(i){let s=Hr.decode(i),a=Mt.create({sFromId:BigInt(e.getSelfId()),sToId:s.sFromId,sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(H({command:8963,body:Mt.encode(a)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:s.sMsgId});}function o(i){let s=Yr.decode(i),a=ht.create({sUserId:BigInt(e.getSelfId()),sMsgId:s.sMsgId});e.sendFrame(H({command:8965,body:ht.encode(a)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:s.sMsgId});}return [{command:8708,handler:(i,s)=>n(i,s)},{command:8452,handler:(i,s)=>t(i,s)},{command:8964,handler:(i,s)=>r(s)},{command:8966,handler:(i,s)=>o(s)}]}function tI(e){let n=new Map;function t(p){let M=Or.decode(p),E={id:te(M.sMsgId),serverTime:Number(M.sendtime),errcode:M.errcode};e.logger?.("grp-chat-ack",{id:E.id,errcode:E.errcode,serverTime:E.serverTime}),e.outbox.onChatAck(E);}function r(p){let M=St.create({sFromId:BigInt(e.getSelfId()),sGrpId:p.sGrpId,sMsgId:p.sMsgId});e.sendFrame(H({command:8195,body:St.encode(M)}));}function o(){return e.isActive?.()??true}function i(p,M,E,C,_=false){let R=p.sGrpId.toString(),v=En(p,ne.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:M,keepRaw:e.keepRaw,decryptFailed:true,edited:_});e.domainState.upsertMessages([v],"live"),p.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:R},messageId:v.id,wireEncrypt:1,sContent:p.sContent.slice(),...p.encryptVersion===""?{}:{encryptVersion:p.encryptVersion},cmdId:M,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:p.sMsgId,groupId:R,fromId:String(p.sFromId),msgType:p.msgType,cmdId:M,encrypt:p.encrypt,encryptVersion:p.encryptVersion,reason:E,...C===void 0?{}:{cause:C}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:E==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${p.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=${p.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...C===void 0?{}:{cause:C}}});}function s(p,M,E,C){let _=En(p,E,{selfId:e.getSelfId(),cmdId:M,keepRaw:e.keepRaw,edited:C});e.domainState.upsertMessages([_],"live"),r(p),e.logger?.("grp-chat-deliver",{sMsgId:p.sMsgId,sGrpId:String(p.sGrpId),sFromId:String(p.sFromId),encrypt:p.encrypt});}function a(p,M){let E=Se.decode(p.sContent);if(E.secretKey.length===0||E.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${E.secretKey.length}B cipherData=${E.cipherData.length}B`);let C=e.decrypt.crypto.decryptEndToEnd({secretKey:E.secretKey,cipherData:E.cipherData,privateKey:M});return ne.decode(C)}async function c(p,M,E){if(!o())return;if(p.encrypt===0){try{s(p,M,ne.decode(p.sContent),E);}catch(b){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:b}});}return}if(p.encrypt!==1||e.decrypt===void 0){i(p,M,"no-key",void 0,E);return}let _={groupId:p.sGrpId.toString(),msgType:p.msgType,encrypt:p.encrypt,encryptVersion:p.encryptVersion},R;try{R=e.decrypt.resolvePrivateKey(_),R===null&&e.decrypt.preparePrivateKey!==void 0&&(R=await e.decrypt.preparePrivateKey(_));}catch(b){o()&&i(p,M,"no-key",b,E);return}if(!o())return;if(R===null){i(p,M,"no-key",void 0,E);return}let v;try{v=a(p,R);}catch(b){i(p,M,"decrypt-failed",b,E);return}if(o())try{s(p,M,v,E);}catch(b){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:b}});}}function u(p,M,E){let C=p.sGrpId.toString(),R=(n.get(C)??Promise.resolve()).then(()=>c(p,M,E));n.set(C,R),R.finally(()=>{n.get(C)===R&&n.delete(C);});}function f(p,M,E=false){let C=Kr.decode(M),_=C.sGrpId.toString();if(n.has(_)){u(C,p,E);return}if(C.encrypt===0){s(C,p,ne.decode(C.sContent),E);return}if(C.encrypt!==1||e.decrypt===void 0){i(C,p,"no-key",void 0,E);return}let R={groupId:_,msgType:C.msgType,encrypt:C.encrypt,encryptVersion:C.encryptVersion},v=e.decrypt.resolvePrivateKey(R);if(v===null){if(e.decrypt.preparePrivateKey!==void 0){u(C,p,E);return}i(C,p,"no-key",void 0,E);return}let b;try{b=a(C,v);}catch(x){i(C,p,"decrypt-failed",x,E);return}s(C,p,b,E);}function y(p){let M=Qr.decode(p);e.logger?.("grp-sync-read-ack",{errcode:M.errcode});}function A(p,M){for(let E=M.length-1;E>=0;E-=1){let C=M[E];if(C===void 0||C==="")continue;let _=te(C),R=e.domainState.getConversationMessage({conversationType:"group",conversationId:p},_);if(R!==void 0&&R.conversationId===p)return _}}function m(p,M){let E=Wr.decode(M),C=E.groupId.toString();if(E.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:C,sUserId:String(E.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:C,sUserId:String(E.sUserId),msgIds:E.msgIdList.length});let _=A(C,E.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:C},0,_),e.emitter.emit({type:"notification",cmdId:p,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(p,M)=>t(M)},{command:8196,handler:(p,M)=>f(p,M)},{command:8976,handler:(p,M)=>f(p,M,true)},{command:8968,handler:(p,M)=>y(M)},{command:8969,handler:(p,M)=>m(p,M)}]}function rI(e){function n(t){let r=Tr.decode(t),o=()=>e.sendFrame(H({command:4628,body:ct.encode(ct.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=Ki.decode(r.sContent),s=i.serialNumber.trim();if(s==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let a=Number(i.occurredTime);e.domainState.applyTransferStatusBySerialNumber(s,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 oI(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 iI(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&oI(n.body)&&n.encryption.encrypted===false,o=tt({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return Hc(o);let{crypto:i}=t,{resolveChannelKey:s}=e;return (async()=>{if(i===void 0||s===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let a=await s(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 Yc(o,i,a)})()}}}function ug(e,n){return jt({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Ws(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=ug(t,r);if(o.encrypt!==1)return qc(o);let{crypto:i,resolveEncryptionKey:s}=r;if(i===void 0||s===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 s(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return $c(o,i,a)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=ug(t,r);if(o.encrypt!==1)return jc(o);let{crypto:i,resolveEncryptionKey:s}=r;if(i===void 0||s===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 s(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return el(o,i,a)})()}}}function sI(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=Zt({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 sl(r);let{crypto:o}=t,{resolveGroupKey:i}=e;if(o===void 0||i===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 s=await i(n.conversationId);if(s===null||s.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return al(r,o,s.publicKey,s.version)})()}}}function mg(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 rr(){return mg([Ws()])}function pg(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!mr(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 aI=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,dI=/^[a-z0-9][a-z0-9._-]{0,63}$/,cI=new Set(["durable","rebuildable","ephemeral"]);function yg(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!aI.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 fg(e,n){if(!dI.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 lI(e){let n=yg(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,i,s){if(!cI.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return fg(i,"domain"),fg(s,"resource"),o==="durable"&&i==="storage"&&s==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${s}`}}}}}var Ig={error:0,warn:1,info:2,debug:3,trace:4},gI=8,Js=50,Hs=100,uI="[REDACTED]",mI="[REDACTED_PRIVATE_KEY]",pI="[SIGNED_URL_REDACTED]",fI=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,yI=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,II=/(["'])(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,SI=/\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,CI=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function RI(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function EI(e){let n=RI(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 AI(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 MI(e){return e.replace(fI,n=>AI(n)?pI:n)}function Ys(e){return MI(e).replace(CI,mI).replace(yI,"$1$2[REDACTED]").replace(II,"$1$2$1$3[REDACTED]").replace(SI,"$1$2[REDACTED]")}function hI(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 Xs(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&EI(i))return uI;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return Ys(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=gI)return "[MAX_DEPTH]";let s=hI(r);if(s!==void 0)return s;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let u=r;return {name:u.name,message:Ys(u.message),...u.code===void 0?{}:{code:u.code},...u.category===void 0?{}:{category:u.category},...u.retryable===void 0?{}:{retryable:u.retryable},...u.stack===void 0?{}:{stack:Ys(u.stack)},...u.data===void 0?{}:{data:t(u.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 u=r.slice(0,Js).map(f=>t(f,o+1));return r.length>Js&&u.push({omittedItems:r.length-Js}),u}let a=Object.entries(r),c={};for(let[u,f]of a.slice(0,Hs))c[u]=t(f,o+1,u);return a.length>Hs&&(c.omittedKeys=a.length-Hs),c}return t(e,0)}function TI(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function s(c,u){return e.enabled&&o!==void 0&&Ig[c]<=Ig[e.level]&&n.has(u)}function a(c){if(i||e.fallbackSink===void 0)return;i=true;let u={message:"diagnostic-sink-failed"};try{u={message:"diagnostic-sink-failed",data:Xs(c)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:u}));}catch{}}return {isEnabled:s,record(c,u,f,y,A){if(!s(c,f))return;let m;try{m={...e.getRuntimeContext?.(),...A?.()};}catch(C){m={error:{message:"diagnostic-payload-factory-failed",data:C}};}let p;try{p=t();}catch{p=Date.now();}let M=++r,E;try{E=Xs({timestamp:p,sequence:M,level:c,layer:u,category:f,event:y,...m});}catch{E={timestamp:p,sequence:M,level:c,layer:u,category:f,event:y,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(E));}catch(C){o=void 0,a(C);}}}}function vI(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 bI(){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 NI(e){return e===32768||e===0}function DI(e){if(NI(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 _I(e){let n=st.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return H({command:257,body:st.encode(n)})}function Sg(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(a,c){if(o===void 0||o.generation!==a)return;clearTimeout(o.timer);let{resolve:u}=o;o=void 0,u(c);}function s(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:a}=o;o=void 0,a({type:"canceled"});}return {async login(){let a=++r;s();let c;try{c=await e.authProvider.getLoginContext();}catch(f){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:f}}}if(a!==r)return {type:"canceled"};if(c===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let u;try{u=_I(c);}catch(f){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:f}}}return new Promise(f=>{let y=setTimeout(()=>{i(a,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:a,resolve:f,timer:y,selfId:c.userId},e.sendFrame(u);})},onLoginAck(a){if(o===void 0)return;let{generation:c,selfId:u}=o,f;try{let y=Ir.decode(a);f=DI(Number(y.nErr)),f.type==="success"&&(f={type:"success",selfId:u});}catch(y){f={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:y}};}i(c,f);},cancel(){r+=1,s();},get awaitingAck(){return o!==void 0}}}var Cg=4294967295,UI=2,GI=2.2,kI=2880;function xI(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function Rg(e,n){if(!Number.isSafeInteger(e)||e<=0||e>Cg)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${Cg} \u7684\u6574\u6570`);return e}function FI(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>GI&&t>kI?UI:0}function zs(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 BI(e,n){return e===void 0?void 0:zs(e,n)}function VI(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 PI(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=Rg(e.width,"asset.width"),r=Rg(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?zs(e.resourceId,"asset.resourceId"):BI(e.resourceId,"asset.resourceId"),s=e.kind==="sticker"?zs(e.packageId,"asset.packageId"):void 0;return {sticker:{url:VI(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:FI(t,r),...i===void 0?{}:{contentId:i},...s===void 0?{}:{packageName:s},...e.size===void 0?{}:{size:xI(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function Eg(e,n){let t=PI(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 wI(){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 Ag(e,n=wI){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 OI(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:Ag(3,n)+1};if(e==="dice")return {gameType:e,value:Ag(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function Mg(e,n){let t=OI(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 hg=new Set([32768,0]),js=new Set([33281,33299]),$s=33298,KI=new Set([...js,$s]),Wo=-2,LI=-1,Jo=-3,qs=-4;function _e(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>_e(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=_e(r);return n}return e}function mn(e){return _e(e)}function or(e){return _e(e)}function ea(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??rr(),s=new Map,a=new Map,c=new Map,u=new Set,f=new Set,y=new Set,A=new Set,m=new Set,p=new Set,M=new Map;function E(I){return j(I)}function C(I,N){return I.createdAt!==N.createdAt?I.createdAt-N.createdAt:I.id<N.id?-1:I.id>N.id?1:0}function _(I){let N=E(I),V=a.get(N);if(V!==void 0)return V;let J=0;for(let ie of e.domainState.getMessagesByConversation({conversationType:I.conversationType,conversationId:I.conversationId}))J=Math.max(J,ie.createdAt);for(let ie of s.values())E(ie)===N&&(J=Math.max(J,ie.createdAt));return a.set(N,J),J}function R(I,N){let V=E(I),J=a.get(V)??_(I);N>J&&a.set(V,N);}function v(I){let N=_(I),V=Math.max(o(),N+1);return a.set(E(I),V),{id:Pe(),createdAt:V}}function b(I,N){e.onUpdated?.({messageId:I.id,conversation:{conversationType:I.conversationType,conversationId:I.conversationId},state:N,...I.lastError===void 0?{}:{failure:{reason:I.lastError.reason,retryable:I.lastError.retryable}}});}function x(I){e.storage!==void 0&&e.storage.saveOutboxMessage(mn(I)).catch(N=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",N));}function U(I){e.storage!==void 0&&e.storage.removeOutboxMessage(I).catch(N=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",N));}function Q(I){let N=c.get(I);N!==void 0&&(clearTimeout(N),c.delete(I));}function P(I,N,V){let J=V?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,ie=e.domainState.getMessage(I);if(ie!==void 0){e.domainState.upsertMessages([{...ie,...N}],"live",J);return}let re=s.get(I);if(re===void 0)return;let Ne={id:re.id,conversationId:re.conversationId,conversationType:re.conversationType,senderId:e.getSelfId(),contentType:re.contentType,body:or(re.body),createdAt:re.createdAt,sortKey:le(re.createdAt,re.id),status:re.status,receipt:"unread",encryption:_e(re.encryption),failure:re.lastError===void 0?void 0:_e(re.lastError),...re.mention!==void 0?{mention:_e(re.mention)}:{},...re.refMessageId!==void 0?{refMessageId:re.refMessageId}:{}};e.domainState.upsertMessages([{...Ne,...N}],"live",J);}function X(I){if(!KI.has(I.errcode))return;let N=e.domainState.getMessage(I.id);if(N===void 0||N.conversationType!=="direct"||N.senderId!==e.getSelfId())return;let V=js.has(I.errcode),J=I.errcode===$s,ie=I.failure??Vo(I.errcode);V?ie={...ie,displayCode:"contactRequired",retryable:false}:J&&(ie={...ie,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...N,status:"failed",failure:ie}],"live",{authoritativeOutboxFailure:true}),V?e.domainState.appendDirectContactRequiredNotice(N.conversationId,N.id):J&&e.domainState.appendDirectMessageRefusedNotice(N.conversationId,N.id);}function oe(I,N){Q(I);let V=s.get(I);V!==void 0&&(V.status="failed",V.lastError=N,P(I,{status:"failed",failure:N}),x(V),b(V,"failed"),k(I));}async function ee(I){if(!u.has(I.id)){if(f.has(E(I))){oe(I.id,{code:qs,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}u.add(I.id);try{let N=i.resolve(I.conversationType);if(N===void 0){oe(I.id,{code:Jo,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:Xn(I.conversationType,"outbox.dispatch"),retryable:!1});return}let V;try{let J={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},ie=N.buildOutgoingFrames===void 0?N.buildOutgoingFrame(I,J):N.buildOutgoingFrames(I,J);if(ie instanceof Uint8Array)V=[ie];else if(Array.isArray(ie))V=ie;else {let re=await ie;V=re instanceof Uint8Array?[re]:re;}if(V.length===0||V.some(re=>!(re 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,oe(I.id,{code:Wo,reason:"unknown"});return}if(f.has(E(I))){oe(I.id,{code:qs,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",P(I.id,{status:"pending"}),x(I),b(I,"queued");return}I.status="sending",I.attempts+=1,P(I.id,{status:"sending"}),x(I),b(I,"sending");for(let J of V)e.sendFrame(J);Q(I.id),c.set(I.id,setTimeout(()=>oe(I.id,{code:LI,reason:"timeout"}),t));}finally{u.delete(I.id);}}}function k(I){let N=M.get(I);N!==void 0&&(M.delete(I),N());}function G(I){let N=s.get(I);return N===void 0||N.status!=="sending"?Promise.resolve():new Promise(V=>M.set(I,V))}function F(I){return (I.status==="pending"||I.status==="failed")&&!(I.status==="failed"&&I.lastError?.retryable===false)&&I.resumePolicy!=="manual"&&(I.attempts<r||m.has(I.id))&&i.resolve(I.conversationType)!==void 0}function W(I,N){let V;for(let J of s.values())N.has(J.id)||E(J)!==I||!F(J)||(V===void 0||C(J,V)<0)&&(V=J);return V}function K(I,N=false){let V=E(I);if(N&&p.add(V),y.has(V)){A.add(V);return}me(V);}function se(){let I=new Set;for(let N of s.values())F(N)&&I.add(E(N));for(let N of I)ae(N,true);}async function me(I){y.add(I);try{do{A.delete(I);let N=new Set;for(;e.isAuthenticated();){let V=W(I,N);if(V===void 0)break;N.add(V.id),m.delete(V.id),await ee(V),p.has(I)&&await G(V.id);}}while(A.has(I)&&e.isAuthenticated())}finally{y.delete(I),p.delete(I);}}function ae(I,N=false){if(N&&p.add(I),y.has(I)){A.add(I);return}me(I);}function ye(I){let N={code:Wo,reason:"unknown",displayCode:"sendCanceled",retryable:false};I.lastError=N,P(I.id,{status:"failed",failure:N}),m.delete(I.id),s.delete(I.id),U(I.id),b(I,"canceled"),k(I.id);}return {allocateMessageIdentity:v,enqueueText(I){let{id:N,createdAt:V}=v(I),J={encrypted:I.encrypted??false},ie=i.resolve(I.conversationType)!==void 0,re=ie&&e.isAuthenticated(),Ne={id:N,conversationId:I.conversationId,conversationType:I.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:I.text},createdAt:V,sortKey:le(V,N),status:"pending",receipt:"unread",encryption:_e(J),...I.mention!==void 0?{mention:_e(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}},be={id:N,conversationId:I.conversationId,conversationType:I.conversationType,contentType:"text",body:{text:I.text},encryption:_e(J),status:"pending",attempts:0,createdAt:V,...I.mention!==void 0?{mention:_e(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}};return s.set(N,be),x(be),b(be,"queued"),e.domainState.upsertMessages([Ne],"live"),ie?(re&&K(be),mn(be)):(oe(N,{code:Jo,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:Xn(I.conversationType,"outbox.enqueueText"),retryable:false}),mn(be))},enqueueContact(I){let N=I.contact.targetId.trim(),V=I.contact.displayName.trim();if(N==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(V==="")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:J,createdAt:ie}=v(I),re={encrypted:I.encrypted??false},Ne=i.resolve(I.conversationType)!==void 0,be=Ne&&e.isAuthenticated(),Xe={contact:{...I.contact,targetId:N,displayName:V}},Gn={id:J,conversationId:I.conversationId,conversationType:I.conversationType,senderId:e.getSelfId(),contentType:"contact",body:or(Xe),createdAt:ie,sortKey:le(ie,J),status:"pending",receipt:"unread",encryption:_e(re),...I.refMessageId===void 0?{}:{refMessageId:I.refMessageId}},nn={id:J,conversationId:I.conversationId,conversationType:I.conversationType,contentType:"contact",body:or(Xe),encryption:_e(re),status:"pending",attempts:0,createdAt:ie,...I.refMessageId===void 0?{}:{refMessageId:I.refMessageId}};return s.set(J,nn),x(nn),b(nn,"queued"),e.domainState.upsertMessages([Gn],"live"),Ne?(be&&K(nn),mn(nn)):(oe(J,{code:Jo,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:Xn(I.conversationType,"outbox.enqueueContact"),retryable:false}),mn(nn))},enqueueMedia(I){let{id:N,createdAt:V}=I,J=or(I.body);Ri(I.contentType,J,"outbox.enqueueMedia"),R(I,V);let ie=i.resolve(I.conversationType)!==void 0,re=ie&&e.isAuthenticated(),Ne={id:N,conversationId:I.conversationId,conversationType:I.conversationType,senderId:e.getSelfId(),contentType:I.contentType,body:or(J),createdAt:V,sortKey:le(V,N),status:"pending",receipt:"unread",encryption:_e(I.encryption),...I.mention!==void 0?{mention:_e(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}},be={id:N,conversationId:I.conversationId,conversationType:I.conversationType,contentType:I.contentType,body:J,encryption:_e(I.encryption),status:"pending",attempts:0,createdAt:V,...I.mention!==void 0?{mention:_e(I.mention)}:{},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}};return s.set(N,be),x(be),b(be,"queued"),e.domainState.upsertMessages([Ne],"live"),ie?(re&&K(be),mn(be)):(oe(N,{code:Jo,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:I.conversationType},message:Xn(I.conversationType,"outbox.enqueueMedia"),retryable:false}),K(be,true),mn(be))},onChatAck(I){Q(I.id);let N=s.get(I.id);if(N===void 0){hg.has(I.errcode)||X(I);return}if(hg.has(I.errcode))s.delete(I.id),U(I.id),P(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}}}),b(N,"sent"),k(I.id);else {N.status="failed",N.lastError=I.failure??Vo(I.errcode);let V=N.conversationType==="direct"&&js.has(I.errcode),J=N.conversationType==="direct"&&I.errcode===$s;V?N.lastError={...N.lastError,displayCode:"contactRequired",retryable:false}:J&&(N.lastError={...N.lastError,displayCode:"messageRefused",retryable:false}),P(I.id,{status:"failed",failure:N.lastError},{authoritativeFailure:true}),V?e.domainState.appendDirectContactRequiredNotice(N.conversationId,N.id):J&&e.domainState.appendDirectMessageRefusedNotice(N.conversationId,N.id),x(N),b(N,"failed"),k(I.id);}},onAuthenticated(){se();},retry(I){let N=s.get(I);return N===void 0?{accepted:false,reason:"not-found"}:N.status==="sending"||u.has(I)?{accepted:false,reason:"in-flight"}:N.status==="failed"&&N.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:N.status!=="failed"&&!(N.status==="pending"&&N.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(N.resumePolicy==="manual"&&(N.resumePolicy="automatic",x(N)),m.add(N.id),K(N),{accepted:true})},cancel(I){let N=s.get(I);return N===void 0?{accepted:false,reason:"not-found"}:N.status==="sending"||u.has(I)?{accepted:false,reason:"in-flight"}:N.status!=="pending"?{accepted:false,reason:"invalid-state"}:N.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(ye(N),{accepted:true})},markConversationTerminated(I,N){let V=E(I);f.add(V);for(let J of [...s.values()])if(E(J)===V){if(J.status==="pending"&&J.attempts===0&&!u.has(J.id)){ye(J);continue}oe(J.id,{code:qs,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${N}`,retryable:false});}},clearConversationTerminated(I){let N=E(I);f.delete(N),ae(N);},markForLogout(I){for(let N of s.values())if(!(N.status!=="pending"&&N.status!=="sending"&&N.status!=="failed")){if(Q(N.id),N.resumePolicy="manual",I.policy==="fail"){let V={code:Wo,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};N.status="failed",N.lastError=V,P(N.id,{status:"failed",failure:V}),b(N,"failed");}x(N),k(N.id);}},getPending(){return [...s.values()].map(mn)},reset(){for(let I of [...c.keys()])Q(I);for(let I of s.values())I.status==="sending"&&(I.status="pending",P(I.id,{status:"pending"}),x(I),b(I,"queued"),k(I.id));},async hydrate(){if(e.storage!==void 0)try{let I=await e.storage.getOutbox();for(let N of I){let V=mn(N);if(V.status==="sent"){U(V.id);continue}try{Ri(V.contentType,V.body,`outbox.hydrate(${V.id})`);}catch(re){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${V.id}\uFF09`,re),U(V.id),e.domainState.getMessage(V.id)!==void 0){let Ne={code:Wo,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};P(V.id,{status:"failed",failure:Ne},{authoritativeFailure:!0});}continue}let J=V.status==="sending"?"pending":V.status,ie={...V,status:J};s.set(V.id,ie),R(ie,ie.createdAt),b(ie,J==="pending"?"queued":J),e.domainState.getMessage(V.id)!==void 0&&P(V.id,{status:J,failure:V.lastError===void 0?void 0:_e(V.lastError)});}}catch(I){e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",I);}}}}function Tg(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=Zs(),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:i}of Qs(r))t.register(o,i);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,i){let s=t.resolve(o);if(s===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return s(o,i),!0}catch(a){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,a),false}}}}var ZI=new Set([32768,0]);function na(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,i=Math.max(1,n.readReportMaxBatch??200),s=new Map,a=new Map,c=new Map,u=new Set,f=new Map;function y(R){return R!==e.getSelfId()}function A(R){let v=R.body.system?.eventType;return R.contentType==="voice"||R.contentType==="video"?false:!(R.conversationType==="direct"&&(v==="direct_contact_established"||v==="direct_contact_required"||v==="direct_message_refused"))}function m(R,v){if(v!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:R},v)?.sortKey}function p(R,v){let b=m(R,c.get(R)??""),x=new Set;for(let U of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:R}))A(U)&&y(U.senderId)&&In(U.id)&&U.sortKey<=v&&(b===void 0||U.sortKey>b)&&x.add(U.id);for(let U of f.get(R)??[]){let Q=e.domainState.getConversationMessage({conversationType:"direct",conversationId:R},U);Q!==void 0&&y(Q.senderId)&&In(Q.id)&&(Q.contentType==="voice"||Q.contentType==="video")&&x.add(Q.id);}return [...x].sort((U,Q)=>{let P=m(R,U)??"",X=m(R,Q)??"";return P<X?-1:P>X?1:0})}function M(R){let v=a.get(R);v!==void 0&&(clearTimeout(v.timer),a.delete(R));}function E(R){let v=s.get(R);v!==void 0&&(clearTimeout(v),s.delete(R)),M(R),f.delete(R);let b=e.domainState.getReadState(R)?.readCursor??"";b!==""&&c.set(R,b);}function C(R,v){let b=a.get(R);if(b!==void 0){if(clearTimeout(b.timer),b.attempts<o&&e.isAuthenticated()){b.attempts+=1,e.sendFrame(b.frame),b.timer=setTimeout(()=>C(R,"timeout"),r);return}a.delete(R),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${v}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}}function _(R){let v=e.domainState.getReadState(R)?.readCursor??"";if(v==="")return;let b=e.domainState.getConversationMessage({conversationType:"direct",conversationId:R},v);if(b===void 0||a.has(R))return;let x=p(R,b.sortKey);if(x.length===0){c.set(R,v);return}if(!e.isAuthenticated())return;let U=e.canSendReadReceipt?.(R);if(U===false){c.set(R,v);return}if(U===void 0&&e.canSendReadReceipt!==void 0)return;let Q=x.slice(0,i),P=f.get(R),X=Q.filter(F=>P?.has(F)===true),ee=x.length<=i?v:Q[Q.length-1],k=Pe(),G;try{G=H({command:4103,body:yt.encode(yt.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(R),sMsgId:k,readResults:Q.map(F=>({sMsgId:ue(F),errcode:0})),readReceiptOff:0}))});}catch(F){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:F}});return}e.sendFrame(G),e.logger?.("read-report",{conversationId:R,notifyId:k,count:Q.length,remaining:x.length-Q.length}),a.set(R,{conversationId:R,cursor:ee,notifyId:k,frame:G,explicitMediaIds:X,attempts:1,timer:setTimeout(()=>C(R,"timeout"),r)});}return {report(R){u.add(R);let v=s.get(R);if(v!==void 0&&clearTimeout(v),e.canSendReadReceipt?.(R)===false){E(R);return}s.set(R,setTimeout(()=>{s.delete(R),_(R);},t));},reportConsumedMedia(R,v){let b=e.domainState.getConversationMessage({conversationType:"direct",conversationId:R},v);if(b===void 0||!y(b.senderId)||b.contentType!=="voice"&&b.contentType!=="video"||(u.add(R),e.canSendReadReceipt?.(R)===false))return;let x=f.get(R);x===void 0&&(x=new Set,f.set(R,x)),x.add(v),e.isAuthenticated()&&_(R);},onReadAck({notifyId:R,errcode:v}){let b;for(let x of a.values())if(x.notifyId===R){b=x;break}if(b!==void 0)if(e.logger?.("read-report-ack",{conversationId:b.conversationId,notifyId:R,errcode:v}),ZI.has(v)){clearTimeout(b.timer),a.delete(b.conversationId),c.set(b.conversationId,b.cursor);let x=f.get(b.conversationId);for(let U of b.explicitMediaIds)x?.delete(U);x?.size===0&&f.delete(b.conversationId),_(b.conversationId);}else C(b.conversationId,"rejected");},onAuthenticated(){for(let R of u)_(R);},suppress(R){if(R!==void 0){E(R);return}let v=new Set([...u,...s.keys(),...a.keys()]);for(let b of v)E(b);},resume(R){if(!u.has(R))return;let v=s.get(R);v!==void 0&&clearTimeout(v),s.set(R,setTimeout(()=>{s.delete(R),_(R);},t));},reset(){for(let R of s.values())clearTimeout(R);s.clear();for(let R of [...a.keys()])M(R);}}}function vg(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 bg(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,s,a=false,c=0;function u(){s!==void 0&&(clearTimeout(s),s=void 0);}function f(){i!==void 0&&(clearInterval(i),i=void 0),u(),a=false,c=0;}function y(){if(c>=r){f(),e.onUnhealthy();return}e.sendPing(),c+=1;}return {start(){i===void 0&&(c=0,i=setInterval(y,t));},stop:f,onAck(){u(),a=false,c=0;},probe(){i!==void 0&&(a||(a=true,e.sendPing(),c=1,clearInterval(i),i=setInterval(y,t),o!==void 0&&(s=setTimeout(()=>{s=void 0,f(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return c}}}function QI(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function WI(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 JI(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function HI(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,s=n.heartbeatIntervalMs??1e4,a=n.heartbeatMaxMissed??3,c=n.foregroundProbeTimeoutMs??5e3,u=n.loginTimeoutMs??n.readTimeoutMs??3e4,f={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},y="idle",A=0,m,p=false,M=new Uint8Array(0),E=false,C=0;function _(h){y!==h&&(y=h,i.emit({type:"connection:changed",state:h}));}function R(h){i.emit({type:"error",error:h});}function v(h){t.send(QI(h)).catch(q=>{R({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:q});});}let b=bg({sendPing:()=>v(H({command:1})),onUnhealthy:()=>{R({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),re();}},{intervalMs:s,maxMissed:a,probeTimeoutMs:c}),x=Sg({authProvider:r,sendFrame:v},{timeoutMs:u}),U="",Q=e.sendStrategies??rr(),P=e.domainState?ea({domainState:e.domainState,sendFrame:v,getSelfId:()=>U,isAuthenticated:()=>y==="authenticated",sendStrategies:Q,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(h,q)=>R({scope:"storage",message:h,cause:q}),onUpdated:h=>e.emitter.emit({type:"outbox:updated",conversation:h.conversation,item:h})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,X=e.domainState?na({domainState:e.domainState,sendFrame:v,getSelfId:()=>U,isAuthenticated:()=>y==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,oe=e.domainState?Bs({domainState:e.domainState,sendFrame:v,getSelfId:()=>U,isAuthenticated:()=>y==="authenticated",emitter:i,logger:e.logger}):void 0,ee=e.domainState?Os({domainState:e.domainState,sendFrame:v,getSelfId:()=>U,isAuthenticated:()=>y==="authenticated",strategies:e.recallStrategies}):void 0,k=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?Ps({domainState:e.domainState,sendFrame:v,getSelfId:()=>U,isAuthenticated:()=>y==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,G=e.domainState!==void 0&&ee!==void 0?Ks({domainState:e.domainState,sendFrame:v,getSelfId:()=>U,onRecallAck:ee.onRecallAck,onChannelMessageDeletionAck:h=>k?.onDeleteAck(h),logger:e.logger}):[],F=e.domainState?hs({getSelfId:()=>U,sendFrame:v,isAuthenticated:()=>y==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,W=e.domainState!==void 0&&F!==void 0?Us({onEditAck:F.onEditAck}):[],K=e.domainState!==void 0&&P!==void 0&&e.media!==void 0?Fs({getSelfId:()=>U,domainState:e.domainState,outbox:P,mediaTransfer:e.media.transfer,mediaPreview:e.media.preview,mediaAssetCache:e.media.assetCache,onMediaAssetCacheError:e.media.onAssetCacheError,onMediaTransferError:e.media.onTransferError,emitter:i,crypto:e.encryptSend?.crypto,maxConcurrentUploads:e.media.maxConcurrentUploads}):void 0;function se(h,q){return K===void 0?Promise.reject(new Error(`${h} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):U===""?Promise.reject(new Error(`${h} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):q(K)}function me(h,q,pe,Ee){let De=e.domainState?.getConversationMessage({conversationId:pe.conversationId,conversationType:pe.conversationType},q);if(De===void 0||De.conversationId!==pe.conversationId||De.conversationType!==pe.conversationType||De.contentType!==Ee||De.status!=="failed"||De.failure?.displayCode!=="media.uploadInterrupted")throw new Error(`${h} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u5237\u65B0\u540E\u4E0A\u4F20\u4E2D\u65AD\u7684${Ee==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return De}let ae=e.domainState&&P?Tg({domainState:e.domainState,outbox:P,onReadAck:X?.onReadAck,onSyncReadAck:oe?.onAck,onSyncReadDeliver:oe?.onDeliver,sendFrame:v,getSelfId:()=>U,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...G,...W]}):void 0;function ye(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function I(){m!==void 0&&(clearTimeout(m),m=void 0);}function N(h){return h!==null&&h.userId.trim()!==""&&h.token.trim()!==""}async function V(){try{return N(await r.getLoginContext())?"available":"missing"}catch(h){return R({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:h}),"unavailable"}}function J(h,q){R({scope:"transport",message:h,cause:q}),b.stop(),_("disconnected");}function ie(){if(m!==void 0)return;let h=vg(A,f);A+=1,m=setTimeout(()=>{m=void 0,Qe();},h);}function re(){if(y==="reconnecting"||y==="suspended")return;let h=++C;b.stop(),x.cancel(),P?.reset(),X?.reset(),ee?.reset(),k?.reset(),F?.reset(),_("reconnecting"),ye(),V().then(q=>{if(!(y!=="reconnecting"||h!==C)){if(q==="missing"){Xe({code:0,reason:"token_expired"});return}ie();}});}function Ne(){y==="idle"||y==="disconnected"||y==="disconnecting"||y==="suspended"||(I(),C+=1,b.stop(),x.cancel(),K?.cancelAll("offline"),P?.reset(),X?.reset(),ee?.reset(),k?.reset(),F?.reset(),_("suspended"),ye());}function be(){if(y==="suspended"){if(e.isOnline?.()===false){_("offline");return}A=0,Qe();}}function Xe(h){y==="idle"||y==="disconnected"||(I(),C+=1,b.stop(),x.cancel(),_("disconnected"),ye(),i.emit({type:"auth:invalid",issue:h}),Promise.resolve().then(()=>r.onAuthInvalid?.(h)).catch(q=>R({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:q})));}function Gn(h){switch(h.type){case "success":A=0,E=false,h.selfId&&(U=h.selfId),_("authenticated"),b.start(),P?.onAuthenticated(),X?.onAuthenticated(),oe?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(h.issue.reason==="token_expired"&&h.issue.code!==0&&!E){E=true,R({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),re();return}Xe(h.issue);break;case "retry":R(h.error),re();break;}}async function nn(){let h=await x.login();h.type!=="canceled"&&y==="authenticating"&&Gn(h);}async function Qe(){if(e.isOnline?.()===false){I(),b.stop(),_("offline");return}let h=++C;_("connecting"),p=false,M=new Uint8Array(0);let q=await V();if(h!==C)return;if(q==="missing"){Xe({code:0,reason:"token_expired"});return}if(q==="unavailable"){re();return}let pe;try{pe=await o.getEndpoints();}catch(De){if(h!==C)return;J("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",De);return}if(h!==C)return;let Ee=pe[0];if(Ee===void 0){J("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!JI(Ee.url)){J(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${Ee.url}`);return}try{await t.connect([Ee]);}catch(De){if(h!==C)return;R({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:De}),re();return}h!==C&&ye();}function qn(h,q){switch(h){case 258:x.onLoginAck(q);break;case 2:b.onAck();break;case 264:Xe({code:33040,reason:"kicked"});break;default:ae?.route(h,q);break}}function Me(h){M=WI(M,new Uint8Array(h));let q;try{let pe=Yi(M);q=pe.frames,M=pe.remainder;}catch(pe){R({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:pe}),re();return}for(let pe of q)qn(pe.header.command,pe.body);}return t.on("open",()=>{y==="connecting"&&(_("authenticating"),nn());}),t.on("message",({data:h})=>Me(h)),t.on("error",({error:h})=>{R({scope:"transport",message:"transport \u9519\u8BEF",cause:h});}),t.on("close",()=>{if(b.stop(),p||y==="disconnecting"){p=false,_("disconnected");return}y==="idle"||y==="disconnected"||y==="reconnecting"||y==="suspended"||y==="offline"||re();}),{get state(){return y},async connect(){y==="connecting"||y==="authenticating"||y==="authenticated"||(I(),A=0,await Qe());},disconnect(){if(I(),C+=1,b.stop(),x.cancel(),P?.reset(),X?.reset(),ee?.reset(),k?.reset(),F?.reset(),p=true,y==="idle"||y==="disconnected"){_("disconnected");return}_("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&_("disconnected");},notifyOnline(){if(y==="offline"){A=0,Qe();return}y==="reconnecting"&&(I(),Qe());},notifyOffline(){y==="idle"||y==="disconnected"||y==="disconnecting"||y==="suspended"||y==="offline"||(I(),C+=1,b.stop(),x.cancel(),K?.cancelAll("offline"),P?.reset(),X?.reset(),ee?.reset(),k?.reset(),F?.reset(),_("offline"),ye());},notifyVisible(){if(y==="suspended"){be();return}if(y==="offline"&&e.isOnline?.()===true){A=0,Qe();return}if(y==="reconnecting"){I(),Qe();return}if(y==="authenticated"){let h=C;V().then(q=>{if(!(y!=="authenticated"||h!==C)){if(q==="missing"){Xe({code:0,reason:"token_expired"});return}b.probe();}});}},suspendForPageLifecycle:Ne,resumeFromPageLifecycle:be,suppressDirectReadReceipts(h){X?.suppress(h);},resumeDirectReadReceipts(h){X?.resume(h);},reportDirectMediaConsumed(h,q){X?.reportConsumedMedia(h,q),oe?.reportConsumedMedia?.(h,q);},sendText(h){if(P===void 0)throw new Error("sendText \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")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 P.enqueueText(h)},sendContact(h){if(P===void 0)throw new Error("sendContact \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")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 P.enqueueContact(h)},forwardMessages(h){if(P===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let q=e.domainState;if(q===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")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 Gs({outbox:P,sendStrategies:Q,resolveCurrentMessage:pe=>q.getConversationMessage(pe,pe.id)},h)},recallMessage(h){return ee===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):ee.recall(h)},deleteChannelMessageForEveryone(h){return k===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):k.deleteForEveryone(h)},editMessage(h){return F===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):F.edit(h)},sendImage(h){return se("sendImage",q=>q.sendImage(h))},sendVideo(h){return se("sendVideo",q=>q.sendVideo(h))},sendVoice(h){return se("sendVoice",q=>q.sendVoice(h))},sendFile(h){return se("sendFile",q=>q.sendFile(h))},sendGif(h){return se("sendGif",q=>q.sendGif(h))},sendExpression(h){if(P===void 0)throw new Error("sendExpression \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")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 Eg({outbox:P},h)},sendGame(h){if(P===void 0)throw new Error("sendGame \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")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 Mg({outbox:P,randomUint32:e.randomUint32},h)},sendMiniProgram(h){if(P===void 0)throw new Error("sendMiniProgram \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")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 jl({outbox:P},h)},sendTransfer(h){if(P===void 0)throw new Error("sendTransfer \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")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 pg({outbox:P},h)},replaceInterruptedVideo(h,q){return se("replaceInterruptedVideo",pe=>{let Ee=me("replaceInterruptedVideo",h,q,"video");return pe.replaceVideo(h,Ee.createdAt,{...q,...q.caption===void 0&&Ee.body.video?.describe!==void 0?{caption:Ee.body.video.describe}:{},...q.refMessageId===void 0&&Ee.refMessageId!==void 0?{refMessageId:Ee.refMessageId}:{}})})},replaceInterruptedFile(h,q){return se("replaceInterruptedFile",pe=>{let Ee=me("replaceInterruptedFile",h,q,"file");return pe.replaceFile(h,Ee.createdAt,{...q,...q.refMessageId===void 0&&Ee.refMessageId!==void 0?{refMessageId:Ee.refMessageId}:{}})})},cancelMedia(h){K?.cancel(h);},cancelMediaUpload(h){return K?.cancel(h)??false},retryMediaUpload(h){return K?.retry(h)??false},invalidateMediaAssetCacheWrites(){K?.invalidateAssetCacheWrites();},disposeMediaTasks(){K?.dispose();},retryMessage(h){K?.retry(h)!==true&&P?.retry(h);},retryOutboxMessage(h){return P?.retry(h)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(h){return P?.cancel(h)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(h,q){P?.markConversationTerminated(h,q);},clearOutboxConversationTerminated(h){P?.clearConversationTerminated(h);},terminateConversationSending(h,q){K?.cancelConversation(h),P?.markConversationTerminated(h,q);},markRead(h,q,pe){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 Ee=pe??e.domainState.getSession(h)?.type;if(Ee===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${h}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(Ee==="direct"){if(X===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(h,q),X.report(h),oe?.report(h);return}let De=e.readStrategies?.resolve(Ee);if(De===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${Ee}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return De.markRead({conversationId:h,readCursor:q})},sendFrame(h){v(h);},onChatAck(h){P?.onChatAck(h);},getPendingOutbox(){return P?.getPending()??[]},async hydrateOutbox(){await P?.hydrate();},markOutboxForLogout(h){P?.markForLogout({policy:h});}}}var YI=200;function XI(e){let n=e.maxBatchesPerEndpoint??YI,t=e.yieldToEventLoop??(()=>Promise.resolve()),r=false,o=false;async function i(a,c){let u=[],f="",y=0;for(let A=1;;A++){if(A>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 m=await a.pullBatch({deliveredMsgInfos:u});if(m.messages.length>0){e.domainState.upsertMessages(m.messages,"offline"),y+=m.messages.length;for(let E of m.messages){let C={conversationType:E.conversationType,conversationId:E.conversationId};c.set(j(C),C);}}let p=m.batchSize>0;if(e.logger?.("sync-batch",{endpoint:a.endpoint,batchNo:A,fetched:m.batchSize,newMessages:m.messages.length,endpointTotal:y,hasMore:p}),!p)break;let M=m.deliveredMsgInfos.at(-1)?.msgId??"";if(M!==""&&M===f)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=${M}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);f=M,u=m.deliveredMsgInfos,await t();}return y}async function s(){let a=new Map,c=0;for(let u of e.pullers)c+=await i(u,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 s();}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{yl as $,Nc as A,cg as Aa,dp as B,Ly as Ba,cp as C,Wy as Ca,mp as D,Hy as Da,pp as E,zy as Ea,yp as F,jy as Fa,Ip as G,$y as Ga,Sp as H,eI as Ha,Cp as I,nI as Ia,Rp as J,tI as Ja,Ep as K,rI as Ka,Qp as L,iI as La,Hp as M,Ws as Ma,sf as N,sI as Na,yf as O,mg as Oa,dr as P,HI as Pa,Tu as Q,TI as Qa,gi as R,vI as Ra,Mn as S,bI as Sa,bu as T,XI as Ta,vf as U,ul as V,ml as W,pl as X,Df as Y,fl as Z,Kf as _,yg as a,Il as aa,lI as b,Ts as ba,ne as c,Wl as ca,Se as d,Zo as da,bo as e,Ko as ea,Dm as f,Zf as fa,_m as g,Xf as ga,Ze as h,ve as ha,Kt as i,cn as ia,Pe as j,hn as ja,xe as k,j as ka,$f as l,vs as la,kn as m,Ul as ma,di as n,Hf as na,mr as o,zf as oa,Ge as p,qf as pa,Do as q,Uy as qa,zm as r,Gy as ra,_o as s,ky as sa,qm as t,xy as ta,hc as u,Fy as ua,Wt as v,By as va,ip as w,wy as wa,bc as x,Oy as xa,sp as y,sg as ya,ap as z,dg as za};
|