k2-im 0.1.58 → 0.2.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.
Files changed (470) hide show
  1. package/README.md +3 -1
  2. package/dist/browser.js +1 -1
  3. package/dist/chat-kit-pinia.d.ts +225 -170
  4. package/dist/chat-kit-pinia.js +1 -1
  5. package/dist/chat-kit-vue.d.ts +64 -44
  6. package/dist/chat-kit-vue.js +1 -1
  7. package/dist/chat-kit.d.ts +226 -171
  8. package/dist/chat-kit.js +1 -1
  9. package/dist/crypto.worker.js +17 -25
  10. package/dist/i18n.d.ts +61 -41
  11. package/dist/i18n.js +1 -1
  12. package/dist/index.d.ts +241 -186
  13. package/dist/index.js +1 -1
  14. package/dist/modules/api-protocol-client/src/bi-feedback.js +1 -0
  15. package/dist/modules/api-protocol-client/src/browser.js +1 -0
  16. package/dist/modules/api-protocol-client/src/client.js +1 -0
  17. package/dist/modules/api-protocol-client/src/config.js +1 -0
  18. package/dist/modules/api-protocol-client/src/constants.js +1 -0
  19. package/dist/modules/api-protocol-client/src/json.js +1 -0
  20. package/dist/modules/api-protocol-client/src/nonce.js +1 -0
  21. package/dist/modules/api-protocol-client/src/transports/axios.js +1 -0
  22. package/dist/modules/api-protocol-client/src/utils.js +1 -0
  23. package/dist/modules/crypto/browser.js +1 -0
  24. package/dist/modules/crypto/driver.js +1 -0
  25. package/dist/modules/crypto/vendor/crypto/index_bg.js +1 -0
  26. package/dist/modules/im-browser/src/crypto/channel-key-service.js +1 -0
  27. package/dist/modules/im-browser/src/crypto/collect-tea.js +1 -0
  28. package/dist/modules/im-browser/src/crypto/crypto-task-executor.js +1 -0
  29. package/dist/modules/im-browser/src/crypto/crypto-worker-factory.js +1 -0
  30. package/dist/modules/im-browser/src/crypto/crypto-worker-protocol.js +1 -0
  31. package/dist/modules/im-browser/src/crypto/encrypt-key-service.js +1 -0
  32. package/dist/modules/im-browser/src/crypto/group-key-service.js +1 -0
  33. package/dist/modules/im-browser/src/crypto/peer-public-key-service.js +1 -0
  34. package/dist/modules/im-browser/src/crypto/rsa-private-key.js +1 -0
  35. package/dist/modules/im-browser/src/crypto/rsa-tea-crypto-adapter.js +1 -0
  36. package/dist/modules/im-browser/src/crypto/stale-key-refresh.js +1 -0
  37. package/dist/modules/im-browser/src/crypto/tea.js +1 -0
  38. package/dist/modules/im-browser/src/crypto/wait-for-key-signal.js +1 -0
  39. package/dist/modules/im-browser/src/http/application-http-adapters.js +1 -0
  40. package/dist/modules/im-browser/src/http/channel-http-adapter.js +1 -0
  41. package/dist/modules/im-browser/src/http/channel-join-application-http-adapter.js +1 -0
  42. package/dist/modules/im-browser/src/http/channel-member-http-adapter.js +1 -0
  43. package/dist/modules/im-browser/src/http/channel-mention-member-http-adapter.js +1 -0
  44. package/dist/modules/im-browser/src/http/cm-http-adapter.js +1 -0
  45. package/dist/modules/im-browser/src/http/directory-http-adapter.js +1 -0
  46. package/dist/modules/im-browser/src/http/expression-http-adapter.js +1 -0
  47. package/dist/modules/im-browser/src/http/lazy-api-protocol-client.js +1 -0
  48. package/dist/modules/im-browser/src/http/profile-http-adapter.js +1 -0
  49. package/dist/modules/im-browser/src/http/requests/applications.js +1 -0
  50. package/dist/modules/im-browser/src/http/requests/bind-robot-conversation.js +1 -0
  51. package/dist/modules/im-browser/src/http/requests/board-pinned-message-validation.js +1 -0
  52. package/dist/modules/im-browser/src/http/requests/channel-join-applications.js +1 -0
  53. package/dist/modules/im-browser/src/http/requests/channel-management.js +1 -0
  54. package/dist/modules/im-browser/src/http/requests/channel-members.js +1 -0
  55. package/dist/modules/im-browser/src/http/requests/channel-mention-members.js +1 -0
  56. package/dist/modules/im-browser/src/http/requests/channel-message-context.js +1 -0
  57. package/dist/modules/im-browser/src/http/requests/channel-mini-program-rel.js +1 -0
  58. package/dist/modules/im-browser/src/http/requests/channel-profile.js +1 -0
  59. package/dist/modules/im-browser/src/http/requests/channel-read-index.js +1 -0
  60. package/dist/modules/im-browser/src/http/requests/contact-blocklist.js +1 -0
  61. package/dist/modules/im-browser/src/http/requests/contact-friendship.js +1 -0
  62. package/dist/modules/im-browser/src/http/requests/contact-report.js +1 -0
  63. package/dist/modules/im-browser/src/http/requests/core-json-request.js +1 -0
  64. package/dist/modules/im-browser/src/http/requests/create-channel.js +1 -0
  65. package/dist/modules/im-browser/src/http/requests/create-face-to-face-group.js +1 -0
  66. package/dist/modules/im-browser/src/http/requests/create-group.js +1 -0
  67. package/dist/modules/im-browser/src/http/requests/customer-service-profile.js +1 -0
  68. package/dist/modules/im-browser/src/http/requests/get-board-pinned-message.js +1 -0
  69. package/dist/modules/im-browser/src/http/requests/get-channel-board-pinned-message.js +1 -0
  70. package/dist/modules/im-browser/src/http/requests/get-channel-secret-key.js +1 -0
  71. package/dist/modules/im-browser/src/http/requests/get-conversation-background-presets.js +1 -0
  72. package/dist/modules/im-browser/src/http/requests/get-group-encrypt-info.js +1 -0
  73. package/dist/modules/im-browser/src/http/requests/get-group-info.js +1 -0
  74. package/dist/modules/im-browser/src/http/requests/get-group-member-list.js +1 -0
  75. package/dist/modules/im-browser/src/http/requests/get-user-encrypt-info.js +1 -0
  76. package/dist/modules/im-browser/src/http/requests/get-user-info-friend.js +1 -0
  77. package/dist/modules/im-browser/src/http/requests/get-user-info-other.js +1 -0
  78. package/dist/modules/im-browser/src/http/requests/group-management.js +1 -0
  79. package/dist/modules/im-browser/src/http/requests/mark-group-read-all.js +1 -0
  80. package/dist/modules/im-browser/src/http/requests/membership-join.js +1 -0
  81. package/dist/modules/im-browser/src/http/requests/pin-board-message.js +1 -0
  82. package/dist/modules/im-browser/src/http/requests/pin-channel-board-message.js +1 -0
  83. package/dist/modules/im-browser/src/http/requests/pull-messages-by-id.js +1 -0
  84. package/dist/modules/im-browser/src/http/requests/pull-offline-channel.js +1 -0
  85. package/dist/modules/im-browser/src/http/requests/pull-offline-chat.js +1 -0
  86. package/dist/modules/im-browser/src/http/requests/pull-offline-group.js +1 -0
  87. package/dist/modules/im-browser/src/http/requests/pull-offline-signal.js +1 -0
  88. package/dist/modules/im-browser/src/http/requests/robot-menu-reply.js +1 -0
  89. package/dist/modules/im-browser/src/http/requests/robot-profile.js +1 -0
  90. package/dist/modules/im-browser/src/http/requests/search-robots.js +1 -0
  91. package/dist/modules/im-browser/src/http/requests/set-conversation-undisturb.js +1 -0
  92. package/dist/modules/im-browser/src/http/requests/set-friend-remark.js +1 -0
  93. package/dist/modules/im-browser/src/http/requests/set-group-nickname.js +1 -0
  94. package/dist/modules/im-browser/src/http/requests/unpin-board-message.js +1 -0
  95. package/dist/modules/im-browser/src/http/requests/unpin-channel-board-message.js +1 -0
  96. package/dist/modules/im-browser/src/http/requests/update-group-info.js +1 -0
  97. package/dist/modules/im-browser/src/http/session-favorite-http-adapter.js +1 -0
  98. package/dist/modules/im-browser/src/media/file-md5.js +1 -0
  99. package/dist/modules/im-browser/src/media/image-clipboard.js +1 -0
  100. package/dist/modules/im-browser/src/media/image-header-dimensions.js +1 -0
  101. package/dist/modules/im-browser/src/media/media-downloader.js +1 -0
  102. package/dist/modules/im-browser/src/media/media-preview-adapter.js +1 -0
  103. package/dist/modules/im-browser/src/media/media-preview-preparation-executor.js +1 -0
  104. package/dist/modules/im-browser/src/media/media-request-limiter.js +1 -0
  105. package/dist/modules/im-browser/src/media/media-transfer-adapter.js +1 -0
  106. package/dist/modules/im-browser/src/media/media-transfer-errors.js +1 -0
  107. package/dist/modules/im-browser/src/media/media-transfer-policy.js +1 -0
  108. package/dist/modules/im-browser/src/media/media-upload-credentials.js +1 -0
  109. package/dist/modules/im-browser/src/media/media-upload-recovery-codec.js +1 -0
  110. package/dist/modules/im-browser/src/media/media-upload-recovery-store.js +1 -0
  111. package/dist/modules/im-browser/src/media/media-upload-source-fingerprint.js +1 -0
  112. package/dist/modules/im-browser/src/media/s3-multipart-uploader.js +1 -0
  113. package/dist/modules/im-browser/src/media/xhr-upload-idle-timeout.js +1 -0
  114. package/dist/modules/im-browser/src/network/browser-connection-ownership.js +1 -0
  115. package/dist/modules/im-browser/src/network/network-monitor.js +1 -0
  116. package/dist/modules/im-browser/src/scheduling/yield-to-browser.js +1 -0
  117. package/dist/modules/im-browser/src/storage/indexed-db-storage-adapter.js +1 -0
  118. package/dist/modules/im-browser/src/transport/ws-transport.js +1 -0
  119. package/dist/modules/im-browser/src/voice/voice-amplitude.js +1 -0
  120. package/dist/modules/im-browser/src/voice/voice-capabilities.js +1 -0
  121. package/dist/modules/im-browser/src/voice/voice-codec.js +1 -0
  122. package/dist/modules/im-browser/src/voice/voice-errors.js +1 -0
  123. package/dist/modules/im-browser/src/voice/voice-playback.js +1 -0
  124. package/dist/modules/im-browser/src/voice/voice-player.js +1 -0
  125. package/dist/modules/im-browser/src/voice/voice-recorder.js +1 -0
  126. package/dist/modules/im-chat-kit/src/i18n/use-im-text.js +1 -0
  127. package/dist/modules/im-chat-kit/src/pinia/applications.store.js +1 -0
  128. package/dist/modules/im-chat-kit/src/pinia/capabilities.store.js +1 -0
  129. package/dist/modules/im-chat-kit/src/pinia/composer.store.js +1 -0
  130. package/dist/modules/im-chat-kit/src/pinia/context.js +1 -0
  131. package/dist/modules/im-chat-kit/src/pinia/conversation-activation.js +1 -0
  132. package/dist/modules/im-chat-kit/src/pinia/conversation-deletion.js +1 -0
  133. package/dist/modules/im-chat-kit/src/pinia/conversation-list.store.js +1 -0
  134. package/dist/modules/im-chat-kit/src/pinia/expression.store.js +1 -0
  135. package/dist/modules/im-chat-kit/src/pinia/history-return-after-send.js +1 -0
  136. package/dist/modules/im-chat-kit/src/pinia/media-transfer-estimate.js +1 -0
  137. package/dist/modules/im-chat-kit/src/pinia/media.store.js +1 -0
  138. package/dist/modules/im-chat-kit/src/pinia/message-operations.store.js +1 -0
  139. package/dist/modules/im-chat-kit/src/pinia/profile-directory.store.js +1 -0
  140. package/dist/modules/im-chat-kit/src/pinia/quoted-message.store.js +1 -0
  141. package/dist/modules/im-chat-kit/src/pinia/reaction.store.js +1 -0
  142. package/dist/modules/im-chat-kit/src/pinia/search-senders.js +1 -0
  143. package/dist/modules/im-chat-kit/src/pinia/search.store.js +1 -0
  144. package/dist/modules/im-chat-kit/src/pinia/session-favorites.store.js +1 -0
  145. package/dist/modules/im-chat-kit/src/pinia/session.store.js +1 -0
  146. package/dist/modules/im-chat-kit/src/pinia/thread-paging.store.js +1 -0
  147. package/dist/modules/im-chat-kit/src/pinia/thread-return-to-latest.js +1 -0
  148. package/dist/modules/im-chat-kit/src/pinia/thread.store.js +1 -0
  149. package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-open.js +1 -0
  150. package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-rels.js +1 -0
  151. package/dist/modules/im-chat-kit/src/presentation/conversation-list.js +1 -0
  152. package/dist/modules/im-chat-kit/src/presentation/conversation-unread.js +1 -0
  153. package/dist/modules/im-chat-kit/src/presentation/delayed-loading-indicator.js +1 -0
  154. package/dist/modules/im-chat-kit/src/presentation/media-source-priority.js +1 -0
  155. package/dist/modules/im-chat-kit/src/presentation/message-notification.js +1 -0
  156. package/dist/modules/im-chat-kit/src/presentation/message-search.js +1 -0
  157. package/dist/modules/im-chat-kit/src/presentation/mini-program-game-preview.js +1 -0
  158. package/dist/modules/im-chat-kit/src/presentation/mini-program-open-url.js +1 -0
  159. package/dist/modules/im-chat-kit/src/runtime/chat-runtime.js +1 -0
  160. package/dist/modules/im-chat-kit/src/runtime/conversation-prefetch-controller.js +1 -0
  161. package/dist/modules/im-chat-kit/src/runtime/media-object-url-registry.js +1 -0
  162. package/dist/modules/im-chat-kit/src/runtime/runtime-operation.js +1 -0
  163. package/dist/modules/im-chat-kit/src/services/capabilities.js +1 -0
  164. package/dist/modules/im-chat-kit/src/services/channel-member-management.service.js +1 -0
  165. package/dist/modules/im-chat-kit/src/services/channel-profile-management.service.js +1 -0
  166. package/dist/modules/im-chat-kit/src/services/channel-send-restriction.js +1 -0
  167. package/dist/modules/im-chat-kit/src/services/direct-contact-management.service.js +1 -0
  168. package/dist/modules/im-chat-kit/src/services/forward.service.js +1 -0
  169. package/dist/modules/im-chat-kit/src/services/group-member-management.service.js +1 -0
  170. package/dist/modules/im-chat-kit/src/services/group-profile-management.service.js +1 -0
  171. package/dist/modules/im-chat-kit/src/services/image-copy.service.js +1 -0
  172. package/dist/modules/im-chat-kit/src/services/media-file-classification.js +1 -0
  173. package/dist/modules/im-chat-kit/src/services/media.service.js +1 -0
  174. package/dist/modules/im-chat-kit/src/services/message.service.js +1 -0
  175. package/dist/modules/im-chat-kit/src/services/pinned-message-rules.js +1 -0
  176. package/dist/modules/im-chat-kit/src/services/pinned-message.service.js +1 -0
  177. package/dist/modules/im-chat-kit/src/services/profile-access.service.js +1 -0
  178. package/dist/modules/im-chat-kit/src/services/profile-directory.service.js +1 -0
  179. package/dist/modules/im-chat-kit/src/services/profile-display.js +1 -0
  180. package/dist/modules/im-chat-kit/src/services/profile.service.js +1 -0
  181. package/dist/modules/im-chat-kit/src/services/read.service.js +1 -0
  182. package/dist/modules/im-chat-kit/src/services/robot-sender-profile.js +1 -0
  183. package/dist/modules/im-chat-kit/src/services/search.service.js +1 -0
  184. package/dist/modules/im-chat-kit/src/services/send.service.js +1 -0
  185. package/dist/modules/im-chat-kit/src/thread/active-date.js +1 -0
  186. package/dist/modules/im-chat-kit/src/thread/create-thread-items.js +1 -0
  187. package/dist/modules/im-chat-kit/src/thread/message-locate-result.js +1 -0
  188. package/dist/modules/im-chat-kit/src/thread/new-message-badge.js +1 -0
  189. package/dist/modules/im-chat-kit/src/thread/resolve-message-body-kind.js +1 -0
  190. package/dist/modules/im-chat-kit/src/thread/resolve-quoted-message-presentation.js +1 -0
  191. package/dist/modules/im-chat-kit/src/thread/viewport-rules.js +1 -0
  192. package/dist/modules/im-chat-kit/src/utils/emoji/emoji-legacy-catalog.json.js +1 -0
  193. package/dist/modules/im-chat-kit/src/utils/emoji/index.js +1 -0
  194. package/dist/modules/im-chat-kit/src/utils/emoji/recent.js +1 -0
  195. package/dist/modules/im-chat-kit/src/utils/emoji/unicode-emoji-catalog.json.js +1 -0
  196. package/dist/modules/im-chat-kit/src/utils/emoji/unicode.js +1 -0
  197. package/dist/modules/im-chat-kit/src/utils/highlight.js +1 -0
  198. package/dist/modules/im-chat-kit/src/utils/link.js +1 -0
  199. package/dist/modules/im-chat-kit/src/utils/media-batch.js +1 -0
  200. package/dist/modules/im-chat-kit/src/utils/media-dimensions.js +1 -0
  201. package/dist/modules/im-chat-kit/src/utils/media-format.js +1 -0
  202. package/dist/modules/im-chat-kit/src/utils/media-transfer-presentation.js +1 -0
  203. package/dist/modules/im-chat-kit/src/utils/time-display.js +1 -0
  204. package/dist/modules/im-chat-kit/src/utils/waveform.js +1 -0
  205. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadBodySwitch.js +1 -0
  206. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadItems.js +1 -0
  207. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadSurface.js +1 -0
  208. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadViewport.js +1 -0
  209. package/dist/modules/im-chat-kit/src/vue/thread/message-renderer-registry.js +1 -0
  210. package/dist/modules/im-chat-kit/src/vue/thread/thread-idle-task.js +1 -0
  211. package/dist/modules/im-chat-kit/src/vue/thread/thread-layout-measurements.js +1 -0
  212. package/dist/modules/im-chat-kit/src/vue/thread/thread-read-actions-context.js +1 -0
  213. package/dist/modules/im-chat-kit/src/vue/thread/thread-surface-context.js +1 -0
  214. package/dist/modules/im-chat-kit/src/vue/thread/thread-viewport-context.js +1 -0
  215. package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-target-group.js +1 -0
  216. package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-targets.js +1 -0
  217. package/dist/modules/im-chat-kit/src/vue/thread/use-im-thread-layout-measurement.js +1 -0
  218. package/dist/modules/im-core/src/abort.js +1 -0
  219. package/dist/modules/im-core/src/cache-namespace.js +1 -0
  220. package/dist/modules/im-core/src/connection/backoff.js +1 -0
  221. package/dist/modules/im-core/src/connection/connection-manager.js +1 -0
  222. package/dist/modules/im-core/src/connection/heartbeat-manager.js +1 -0
  223. package/dist/modules/im-core/src/conversation-identity.js +1 -0
  224. package/dist/modules/im-core/src/diagnostics.js +1 -0
  225. package/dist/modules/im-core/src/event-emitter.js +1 -0
  226. package/dist/modules/im-core/src/login/login-handler.js +1 -0
  227. package/dist/modules/im-core/src/mapping/bot-sender.js +1 -0
  228. package/dist/modules/im-core/src/mapping/call-record-body.js +1 -0
  229. package/dist/modules/im-core/src/mapping/channel-message-mapper.js +1 -0
  230. package/dist/modules/im-core/src/mapping/channel-notify-mapper.js +1 -0
  231. package/dist/modules/im-core/src/mapping/channel-offline-mapper.js +1 -0
  232. package/dist/modules/im-core/src/mapping/channel-pinned-message-mapper.js +1 -0
  233. package/dist/modules/im-core/src/mapping/channel-read-position.js +1 -0
  234. package/dist/modules/im-core/src/mapping/contact-body.js +1 -0
  235. package/dist/modules/im-core/src/mapping/content-body.js +1 -0
  236. package/dist/modules/im-core/src/mapping/conversation.js +1 -0
  237. package/dist/modules/im-core/src/mapping/crypto-batch-preparation.js +1 -0
  238. package/dist/modules/im-core/src/mapping/customer-service-body.js +1 -0
  239. package/dist/modules/im-core/src/mapping/customer-service-message-mapper.js +1 -0
  240. package/dist/modules/im-core/src/mapping/decrypt-recovery.js +1 -0
  241. package/dist/modules/im-core/src/mapping/file-body.js +1 -0
  242. package/dist/modules/im-core/src/mapping/files-album-body.js +1 -0
  243. package/dist/modules/im-core/src/mapping/game-body.js +1 -0
  244. package/dist/modules/im-core/src/mapping/gift-body.js +1 -0
  245. package/dist/modules/im-core/src/mapping/group-message-mapper.js +1 -0
  246. package/dist/modules/im-core/src/mapping/group-notify-mapper.js +1 -0
  247. package/dist/modules/im-core/src/mapping/group-offline-mapper.js +1 -0
  248. package/dist/modules/im-core/src/mapping/image-body.js +1 -0
  249. package/dist/modules/im-core/src/mapping/live-room-body.js +1 -0
  250. package/dist/modules/im-core/src/mapping/media-album-body.js +1 -0
  251. package/dist/modules/im-core/src/mapping/merge.js +1 -0
  252. package/dist/modules/im-core/src/mapping/mes-chat-mapper.js +1 -0
  253. package/dist/modules/im-core/src/mapping/message-id.js +1 -0
  254. package/dist/modules/im-core/src/mapping/message-mapper.js +1 -0
  255. package/dist/modules/im-core/src/mapping/messages-by-id.js +1 -0
  256. package/dist/modules/im-core/src/mapping/mini-program-body.js +1 -0
  257. package/dist/modules/im-core/src/mapping/offline-mapper.js +1 -0
  258. package/dist/modules/im-core/src/mapping/pinned-message-mapper.js +1 -0
  259. package/dist/modules/im-core/src/mapping/profile-mapper.js +1 -0
  260. package/dist/modules/im-core/src/mapping/reaction-mapper.js +1 -0
  261. package/dist/modules/im-core/src/mapping/recall-mapper.js +1 -0
  262. package/dist/modules/im-core/src/mapping/red-packet-body.js +1 -0
  263. package/dist/modules/im-core/src/mapping/robot-body.js +1 -0
  264. package/dist/modules/im-core/src/mapping/robot-message-mapper.js +1 -0
  265. package/dist/modules/im-core/src/mapping/search-text.js +1 -0
  266. package/dist/modules/im-core/src/mapping/session-mapper.js +1 -0
  267. package/dist/modules/im-core/src/mapping/signal-offline-mapper.js +1 -0
  268. package/dist/modules/im-core/src/mapping/sort.js +1 -0
  269. package/dist/modules/im-core/src/mapping/sticker-body.js +1 -0
  270. package/dist/modules/im-core/src/mapping/stored-message.js +1 -0
  271. package/dist/modules/im-core/src/mapping/system-event-timeline-policy.js +1 -0
  272. package/dist/modules/im-core/src/mapping/text-segments.js +1 -0
  273. package/dist/modules/im-core/src/mapping/transfer-body.js +1 -0
  274. package/dist/modules/im-core/src/mapping/transfer-status.js +1 -0
  275. package/dist/modules/im-core/src/mapping/unread-divider.js +1 -0
  276. package/dist/modules/im-core/src/mapping/video-body.js +1 -0
  277. package/dist/modules/im-core/src/mapping/voice-body.js +1 -0
  278. package/dist/modules/im-core/src/message-flow/call/direct-call-manager.js +1 -0
  279. package/dist/modules/im-core/src/message-flow/call/direct-call-record.js +1 -0
  280. package/dist/modules/im-core/src/message-flow/call/direct-p2p-call.js +1 -0
  281. package/dist/modules/im-core/src/message-flow/call/group-call-manager.js +1 -0
  282. package/dist/modules/im-core/src/message-flow/call/group-call-record.js +1 -0
  283. package/dist/modules/im-core/src/message-flow/conversation-support.js +1 -0
  284. package/dist/modules/im-core/src/message-flow/edit/edit-frame.js +1 -0
  285. package/dist/modules/im-core/src/message-flow/edit/edit-manager.js +1 -0
  286. package/dist/modules/im-core/src/message-flow/edit/edit-receive-handlers.js +1 -0
  287. package/dist/modules/im-core/src/message-flow/edit/edit-strategy.js +1 -0
  288. package/dist/modules/im-core/src/message-flow/expression/expression-message.js +1 -0
  289. package/dist/modules/im-core/src/message-flow/forward/can-transmit.js +1 -0
  290. package/dist/modules/im-core/src/message-flow/forward/forward-content-spec.js +1 -0
  291. package/dist/modules/im-core/src/message-flow/forward/forward-messages.js +1 -0
  292. package/dist/modules/im-core/src/message-flow/game/game-message.js +1 -0
  293. package/dist/modules/im-core/src/message-flow/gift/gift-message.js +1 -0
  294. package/dist/modules/im-core/src/message-flow/live-room/live-room-message.js +1 -0
  295. package/dist/modules/im-core/src/message-flow/media/media-sender.js +1 -0
  296. package/dist/modules/im-core/src/message-flow/mini-program/mini-program-message.js +1 -0
  297. package/dist/modules/im-core/src/message-flow/reaction/can-react.js +1 -0
  298. package/dist/modules/im-core/src/message-flow/reaction/reaction-manager.js +1 -0
  299. package/dist/modules/im-core/src/message-flow/reaction/reaction-receive-handlers.js +1 -0
  300. package/dist/modules/im-core/src/message-flow/read/channel-read-receive-handlers.js +1 -0
  301. package/dist/modules/im-core/src/message-flow/read/channel-read-strategy.js +1 -0
  302. package/dist/modules/im-core/src/message-flow/read/customer-service-read-strategy.js +1 -0
  303. package/dist/modules/im-core/src/message-flow/read/direct-read-sync.js +1 -0
  304. package/dist/modules/im-core/src/message-flow/read/group-read-strategy.js +1 -0
  305. package/dist/modules/im-core/src/message-flow/read/read-strategy.js +1 -0
  306. package/dist/modules/im-core/src/message-flow/read/robot-read-strategy.js +1 -0
  307. package/dist/modules/im-core/src/message-flow/recall/channel-message-deletion-manager.js +1 -0
  308. package/dist/modules/im-core/src/message-flow/recall/recall-frame.js +1 -0
  309. package/dist/modules/im-core/src/message-flow/recall/recall-manager.js +1 -0
  310. package/dist/modules/im-core/src/message-flow/recall/recall-receive-handlers.js +1 -0
  311. package/dist/modules/im-core/src/message-flow/recall/recall-strategy.js +1 -0
  312. package/dist/modules/im-core/src/message-flow/receive/channel-application-receive-handlers.js +1 -0
  313. package/dist/modules/im-core/src/message-flow/receive/channel-notify-receive-handlers.js +1 -0
  314. package/dist/modules/im-core/src/message-flow/receive/channel-receive-handlers.js +1 -0
  315. package/dist/modules/im-core/src/message-flow/receive/command-handler-registry.js +1 -0
  316. package/dist/modules/im-core/src/message-flow/receive/contact-application-answer-receive-handlers.js +1 -0
  317. package/dist/modules/im-core/src/message-flow/receive/contact-application-receive-handlers.js +1 -0
  318. package/dist/modules/im-core/src/message-flow/receive/direct-receive-handlers.js +1 -0
  319. package/dist/modules/im-core/src/message-flow/receive/friend-action-receive-handlers.js +1 -0
  320. package/dist/modules/im-core/src/message-flow/receive/group-event-receive-handlers.js +1 -0
  321. package/dist/modules/im-core/src/message-flow/receive/group-receive-handlers.js +1 -0
  322. package/dist/modules/im-core/src/message-flow/receive/mes-chat-receive-handlers.js +1 -0
  323. package/dist/modules/im-core/src/message-flow/receive/robot-receive-handlers.js +1 -0
  324. package/dist/modules/im-core/src/message-flow/receive/session-favorite-receive-handlers.js +1 -0
  325. package/dist/modules/im-core/src/message-flow/receive/wallet-notify-receive-handlers.js +1 -0
  326. package/dist/modules/im-core/src/message-flow/send/channel-outgoing-frame.js +1 -0
  327. package/dist/modules/im-core/src/message-flow/send/channel-send-strategy.js +1 -0
  328. package/dist/modules/im-core/src/message-flow/send/direct-outgoing-frame.js +1 -0
  329. package/dist/modules/im-core/src/message-flow/send/direct-send-strategy.js +1 -0
  330. package/dist/modules/im-core/src/message-flow/send/group-outgoing-frame.js +1 -0
  331. package/dist/modules/im-core/src/message-flow/send/group-send-strategy.js +1 -0
  332. package/dist/modules/im-core/src/message-flow/send/robot-outgoing-frame.js +1 -0
  333. package/dist/modules/im-core/src/message-flow/send/robot-send-strategy.js +1 -0
  334. package/dist/modules/im-core/src/message-flow/send/send-strategy-registry.js +1 -0
  335. package/dist/modules/im-core/src/message-flow/transfer/transfer-message.js +1 -0
  336. package/dist/modules/im-core/src/outbox/outbox-manager.js +1 -0
  337. package/dist/modules/im-core/src/packet-router.js +1 -0
  338. package/dist/modules/im-core/src/ports/crypto-port.js +1 -0
  339. package/dist/modules/im-core/src/ports/crypto-task-executor.js +1 -0
  340. package/dist/modules/im-core/src/ports/http-port.js +1 -0
  341. package/dist/modules/im-core/src/ports/media-asset-cache-port.js +1 -0
  342. package/dist/modules/im-core/src/push/push-registration.js +1 -0
  343. package/dist/modules/im-core/src/read/read-reporter.js +1 -0
  344. package/dist/modules/im-core/src/request-tracker.js +1 -0
  345. package/dist/modules/im-core/src/session-favorite-album.js +1 -0
  346. package/dist/modules/im-core/src/session-favorite-files.js +1 -0
  347. package/dist/modules/im-core/src/state/channel-permissions.js +1 -0
  348. package/dist/modules/im-core/src/state/channel-restriction-coordinator.js +1 -0
  349. package/dist/modules/im-core/src/state/domain-state.js +1 -0
  350. package/dist/modules/im-core/src/state/draft-store.js +1 -0
  351. package/dist/modules/im-core/src/state/group-restriction-coordinator.js +1 -0
  352. package/dist/modules/im-core/src/state/local-message-window-read-error.js +1 -0
  353. package/dist/modules/im-core/src/state/message-reactions.js +1 -0
  354. package/dist/modules/im-core/src/state/message-store.js +1 -0
  355. package/dist/modules/im-core/src/state/message-window-store.js +1 -0
  356. package/dist/modules/im-core/src/state/pinned-message-coordinator.js +1 -0
  357. package/dist/modules/im-core/src/state/pinned-message-store.js +1 -0
  358. package/dist/modules/im-core/src/state/read-store.js +1 -0
  359. package/dist/modules/im-core/src/state/session-sort.js +1 -0
  360. package/dist/modules/im-core/src/state/session-store.js +1 -0
  361. package/dist/modules/im-core/src/sync/channel-sync-checkpoint.js +1 -0
  362. package/dist/modules/im-core/src/sync/sync-manager.js +1 -0
  363. package/dist/modules/im-i18n/src/catalog/en-US.js +1 -0
  364. package/dist/modules/im-i18n/src/catalog/index.js +1 -0
  365. package/dist/modules/im-i18n/src/catalog/th-TH.js +1 -0
  366. package/dist/modules/im-i18n/src/catalog/vi-VN.js +1 -0
  367. package/dist/modules/im-i18n/src/catalog/zh-CN.js +1 -0
  368. package/dist/modules/im-i18n/src/catalog/zh-TW.js +1 -0
  369. package/dist/modules/im-i18n/src/create-im-i18n.js +1 -0
  370. package/dist/modules/im-i18n/src/format/failure.js +1 -0
  371. package/dist/modules/im-i18n/src/format/last-message.js +1 -0
  372. package/dist/modules/im-i18n/src/format/media.js +1 -0
  373. package/dist/modules/im-i18n/src/format/mention.js +1 -0
  374. package/dist/modules/im-i18n/src/format/service-text.js +1 -0
  375. package/dist/modules/im-i18n/src/format/system-message.js +1 -0
  376. package/dist/modules/im-i18n/src/internal/duration.js +1 -0
  377. package/dist/modules/im-i18n/src/internal/interpolate.js +1 -0
  378. package/dist/modules/im-i18n/src/locale.js +1 -0
  379. package/dist/modules/im-protocol/src/board-pinned-message.js +1 -0
  380. package/dist/modules/im-protocol/src/frame-codec.js +1 -0
  381. package/dist/modules/im-protocol/src/protobuf/gen/channel_pb.js +1 -0
  382. package/dist/modules/im-protocol/src/protobuf/gen/group_pb.js +1 -0
  383. package/dist/modules/im-protocol/src/protobuf/gen/im.app.msg_pb.js +1 -0
  384. package/dist/modules/im-protocol/src/protobuf/gen/im.channel_pb.js +1 -0
  385. package/dist/modules/im-protocol/src/protobuf/gen/im.group_pb.js +1 -0
  386. package/dist/modules/im-protocol/src/protobuf/gen/im.login_pb.js +1 -0
  387. package/dist/modules/im-protocol/src/protobuf/gen/im.msg_pb.js +1 -0
  388. package/dist/modules/im-protocol/src/protobuf/gen/im.pub_pb.js +1 -0
  389. package/dist/modules/im-protocol/src/protobuf/gen/im.robot_pb.js +1 -0
  390. package/dist/modules/im-protocol/src/protobuf/gen/im.sig_pb.js +1 -0
  391. package/dist/modules/im-protocol/src/protobuf/gen/msg_pb.js +1 -0
  392. package/dist/modules/im-protocol/src/protobuf/registry.js +1 -0
  393. package/dist/modules/im-sdk/src/cache-prefix-migration.js +1 -0
  394. package/dist/modules/im-sdk/src/create-im-client.js +1 -0
  395. package/dist/modules/im-sdk/src/domains/channel.js +1 -0
  396. package/dist/modules/im-sdk/src/domains/contact.js +1 -0
  397. package/dist/modules/im-sdk/src/domains/conversation.js +1 -0
  398. package/dist/modules/im-sdk/src/domains/group.js +1 -0
  399. package/dist/modules/im-sdk/src/domains/media-byte-computation.js +1 -0
  400. package/dist/modules/im-sdk/src/domains/media.js +1 -0
  401. package/dist/modules/im-sdk/src/domains/message.js +1 -0
  402. package/dist/modules/im-sdk/src/domains/pinned-message-source.js +1 -0
  403. package/dist/modules/im-sdk/src/domains/pinned-message.js +1 -0
  404. package/dist/modules/im-sdk/src/domains/session.js +1 -0
  405. package/dist/modules/im-sdk/src/product/applications.js +1 -0
  406. package/dist/modules/im-sdk/src/product/calls.js +1 -0
  407. package/dist/modules/im-sdk/src/product/capabilities.js +1 -0
  408. package/dist/modules/im-sdk/src/product/channel-mention-candidates.js +1 -0
  409. package/dist/modules/im-sdk/src/product/conversation-background.js +1 -0
  410. package/dist/modules/im-sdk/src/product/conversation-entry-unread.js +1 -0
  411. package/dist/modules/im-sdk/src/product/conversation-handle.js +1 -0
  412. package/dist/modules/im-sdk/src/product/conversations.js +1 -0
  413. package/dist/modules/im-sdk/src/product/customer-service.js +1 -0
  414. package/dist/modules/im-sdk/src/product/diagnostic-memory-buffer.js +1 -0
  415. package/dist/modules/im-sdk/src/product/diagnostics.js +1 -0
  416. package/dist/modules/im-sdk/src/product/directory.js +1 -0
  417. package/dist/modules/im-sdk/src/product/draft.js +1 -0
  418. package/dist/modules/im-sdk/src/product/emoji-catalog.js +1 -0
  419. package/dist/modules/im-sdk/src/product/emoji-catalog.json.js +1 -0
  420. package/dist/modules/im-sdk/src/product/events.js +1 -0
  421. package/dist/modules/im-sdk/src/product/expressions.js +1 -0
  422. package/dist/modules/im-sdk/src/product/face-to-face-group.js +1 -0
  423. package/dist/modules/im-sdk/src/product/group-calls.js +1 -0
  424. package/dist/modules/im-sdk/src/product/image-format.js +1 -0
  425. package/dist/modules/im-sdk/src/product/local-data.js +1 -0
  426. package/dist/modules/im-sdk/src/product/media.js +1 -0
  427. package/dist/modules/im-sdk/src/product/mention.js +1 -0
  428. package/dist/modules/im-sdk/src/product/message.js +1 -0
  429. package/dist/modules/im-sdk/src/product/messages-by-id.js +1 -0
  430. package/dist/modules/im-sdk/src/product/outbox.js +1 -0
  431. package/dist/modules/im-sdk/src/product/profiles.js +1 -0
  432. package/dist/modules/im-sdk/src/product/resource-uploader.js +1 -0
  433. package/dist/modules/im-sdk/src/product/robots.js +1 -0
  434. package/dist/modules/im-sdk/src/product/search.js +1 -0
  435. package/dist/modules/im-sdk/src/product/session-favorites.js +1 -0
  436. package/dist/modules/im-sdk/src/product/settings.js +1 -0
  437. package/dist/modules/im-sdk/src/runtime/advanced-message-diagnostics.js +1 -0
  438. package/dist/modules/im-sdk/src/runtime/channel-read-summary-refresh.js +1 -0
  439. package/dist/modules/im-sdk/src/runtime/customer-service-legacy-recovery.js +1 -0
  440. package/dist/modules/im-sdk/src/runtime/decrypt-diagnostics.js +1 -0
  441. package/dist/modules/im-sdk/src/runtime/foreground-work-coordinator.js +1 -0
  442. package/dist/modules/im-sdk/src/runtime/group-history-page-boundary.js +1 -0
  443. package/dist/modules/im-sdk/src/runtime/key-prefetch.js +1 -0
  444. package/dist/modules/im-sdk/src/runtime/local-media-preview.js +1 -0
  445. package/dist/modules/im-sdk/src/runtime/media-cache-maintenance.js +1 -0
  446. package/dist/modules/im-sdk/src/runtime/media-upload-recovery.js +1 -0
  447. package/dist/modules/im-sdk/src/runtime/protobuf-wire-shape.js +1 -0
  448. package/dist/modules/im-sdk/src/runtime/receiving-activity.js +1 -0
  449. package/dist/modules/im-sdk/src/runtime/recent-history-fetcher.js +1 -0
  450. package/dist/modules/im-sdk/src/runtime/recent-history-prefetch.js +1 -0
  451. package/dist/modules/im-sdk/src/runtime/session-http-clients.js +1 -0
  452. package/dist/modules/im-sdk/src/runtime/session-runtime.js +1 -0
  453. package/dist/modules/im-sdk/src/runtime/signal-offline-poller.js +1 -0
  454. package/dist/request-crypto.js +1 -1
  455. package/dist/sdk.d.ts +170 -111
  456. package/dist/sdk.js +1 -1
  457. package/package.json +2 -2
  458. package/dist/browser-GFKMMRZD.js +0 -1
  459. package/dist/browser-RTCHWSQ2.js +0 -2
  460. package/dist/chunk-2U2JMY5V.js +0 -1
  461. package/dist/chunk-B5V2O54N.js +0 -1
  462. package/dist/chunk-I7YY5G76.js +0 -1
  463. package/dist/chunk-IDECJJXC.js +0 -0
  464. package/dist/chunk-PHJQ6QKU.js +0 -2
  465. package/dist/chunk-Q2DEFN53.js +0 -1
  466. package/dist/chunk-SXY56EVC.js +0 -0
  467. package/dist/chunk-TIQ37Q7E.js +0 -2
  468. package/dist/chunk-VMNZGJNM.js +0 -2
  469. package/dist/chunk-WOT6VMZA.js +0 -1
  470. package/dist/chunk-X7ZBIWYF.js +0 -8
@@ -1,2 +0,0 @@
1
- import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';var yi=29;function gu(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Invalid FILES_ALBUM object");return e}function mu(e){let n=gu(e),t=n.fileName??n.fielName,r=n.md5??n.MD5,o=n.fileSize??n.fileLength;if(typeof n.url!="string"||!/^https?:\/\//i.test(n.url)||typeof t!="string"||t===""||typeof n.extension!="string"||typeof r!="string"||r===""||typeof o!="number"||!Number.isSafeInteger(o)||o<0||typeof n.fileType!="number"||!Number.isInteger(n.fileType)||n.fileType<0||n.fileType>5||typeof n.fileEncryptType!="number"||![0,1,2,3].includes(n.fileEncryptType)||typeof n.teaKey!="string")throw new Error("Invalid FILES_ALBUM item");let i=n.extension.replace(/^\./,"").toLowerCase(),s=Uint8Array.from(globalThis.atob(n.teaKey),a=>a.charCodeAt(0));if(n.fileEncryptType!==1&&s.length===0)throw new Error("Missing FILES_ALBUM item key");return {url:n.url,fileName:t,extension:i,md5:r,size:o,fileType:["zip","rar","torrent"].includes(i)?5:n.fileType,fileEncryptType:n.fileEncryptType,...s.length===0?{}:{teaKey:s}}}function fu(e){let n=gu(JSON.parse(e.content));if(n.contentType!=="29"||!Array.isArray(n.items)||n.items.length===0||n.caption!==void 0&&typeof n.caption!="string")throw new Error("Invalid FILES_ALBUM body");return {items:n.items.map(mu),...typeof n.caption=="string"&&n.caption.trim()!==""?{caption:n.caption}:{}}}function pu(e){if(e.items.length!==1||Array.from(e.caption??"").length>Hn)throw new Error("Invalid outgoing FILES_ALBUM size");return {contentType:yi,content:JSON.stringify(yu(e))}}function yu(e){if(e.items.length===0)throw new Error("Invalid FILES_ALBUM items");let n=e.items.map(t=>{let r="";for(let i of t.teaKey??[])r+=String.fromCharCode(i);let o={url:t.url,fileName:t.fileName,extension:t.extension,fileType:t.fileType,md5:t.md5,fileSize:t.size,fileEncryptType:t.fileEncryptType,teaKey:globalThis.btoa(r)};return mu(o),o});return {contentType:"29",...e.caption?.trim()?{caption:e.caption}:{},items:n}}var Ii=28,Su=1,ld=2,Hn=1200,ur=9;function md(e){let n=e.caption!==void 0&&e.caption.trim()!=="",t=e.items.length===1?e.items[0]:void 0;return n||t===void 0?"mediaAlbum":t.kind}var ud=512*1024,fd=256*1024;function lr(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r!=="")return r}}function cr(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()!==""){let o=Number(r);if(Number.isFinite(o))return o}}}function mI(e,n){for(let t of n){let r=e[t];if(typeof r=="boolean")return r;if(typeof r=="number"&&(r===0||r===1))return r===1;if(r==="true"||r==="false")return r==="true"}}function gd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Iu(e){let n=e.replace(/\s+/g,"");if(!(n===""||n.length%4!==0||!/^[A-Z0-9+/]*={0,2}$/i.test(n)))try{let t=globalThis.atob(n),r=new Uint8Array(t.length);for(let o=0;o<t.length;o+=1)r[o]=t.charCodeAt(o);return r}catch{return}}function Cu(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function fI(e){return e!==void 0&&e!==1}function pI(e){if(!gd(e))return;let n=cr(e,["mediaType","type"]);if(n!==Su&&n!==ld)return;let t=lr(e,["url","content"]);if(t===void 0)return;let r=cr(e,["fileEncryptType"]),o,i=lr(e,["teaKey"]);if(i!==void 0&&(o=Iu(i)),fI(r)&&(o===void 0||o.length===0))return;let s=cr(e,["width","imageWidth"])??0,a=cr(e,["height","imageHeight"])??0,l={kind:n===ld?"video":"image",url:t,width:Number.isInteger(s)&&s>0?s:0,height:Number.isInteger(a)&&a>0?a:0},c=cr(e,["duration"]);l.kind==="video"&&c!==void 0&&c>0&&(l.durationMs=c);let g=lr(e,["thumbUrl","thumbURL","thumbnailUrl","thumbnailURL"]);g!==void 0&&(l.thumbUrl=g);let f=lr(e,["thumbData"]);if(f!==void 0){let D=Iu(f);D!==void 0&&D.length>0&&(l.thumbData=D);}let C=lr(e,["md5","MD5"]);C!==void 0&&(l.md5=C);let E=cr(e,["fileSize","fileLength"]);E!==void 0&&E>0&&(l.size=E),o!==void 0&&o.length>0&&(l.teaKey=o),r!==void 0&&(l.fileEncryptType=r);let I=mI(e,["hd","isHd","isHD"]);return I!==void 0&&(l.hd=I),l}function pd(e){let n=JSON.parse(e.content);if(!gd(n))throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u9876\u5C42\u4E0D\u662F\u5BF9\u8C61");let t=n,r=n.content;if(typeof r=="string"&&r!==""){let l=JSON.parse(r);if(!gd(l))throw new Error("\u5A92\u4F53\u5408\u96C6\u5D4C\u5957\u6B63\u6587\u4E0D\u662F\u5BF9\u8C61");t=l;}let o=t.items,i=[];if(Array.isArray(o))for(let l of o){let c=pI(l);c!==void 0&&i.push(c);}let s={items:i},a=lr(t,["caption"]);return a!==void 0&&a.trim()!==""&&(s.caption=a),s}function yI(e){return {mediaType:e.kind==="video"?ld:Su,url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0&&e.durationMs>0?{duration:e.durationMs}:{},...e.thumbUrl!==void 0&&e.thumbUrl!==""?{thumbUrl:e.thumbUrl}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:Cu(e.thumbData)}:{},...e.md5!==void 0&&e.md5!==""?{md5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileSize:e.size}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:Cu(e.teaKey)}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...e.hd!==void 0?{hd:e.hd}:{}}}function Ci(e){return new TextEncoder().encode(e).length}function xr(e){if(e.items.length===0)throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u6CA1\u6709\u53EF\u53D1\u9001\u7684\u9879");if(e.items.length>ur)throw new Error(`\u5A92\u4F53\u5408\u96C6\u9879\u6570\u8D85\u8FC7\u4E0A\u9650\uFF1A${e.items.length} > ${ur}`);if(e.caption!==void 0&&Array.from(e.caption).length>Hn)throw new Error(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u8D85\u8FC7 ${Hn} \u5B57\u7B26\u4E0A\u9650\uFF1A${Array.from(e.caption).length}`);let n=e.caption!==void 0&&e.caption.trim()!==""?e.caption:void 0,t=JSON.stringify({...n===void 0?{}:{caption:n},items:e.items.map(yI)}),r=Ci(t);if(r>=ud)throw new Error(`\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u8FBE\u5230 ${ud} \u5B57\u8282\u4E0A\u9650\uFF1A${r}`);let o=e.items.find(i=>i.thumbData!==void 0&&i.thumbData.length>0)?.thumbData;return {contentType:Ii,content:t,...o===void 0?{}:{thumbData:o}}}function yd(e){return e===1?"gif":"sticker"}function Si(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 Jt(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function Id(e){if(e.exprType===2){if(!Si(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!Jt(e.width)||!Jt(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 Cd(e){if(e.exprType===2){if(!Si(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!Jt(e.width)||e.width===0||!Jt(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 hu,Ru,II={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:()=>"",filesAlbum:e=>[e.filesAlbum?.caption,...e.filesAlbum?.items.map(n=>n.fileName)??[]].filter(Boolean).join(" "),mediaAlbum:e=>e.mediaAlbum?.caption?.trim()??"",miniProgram:e=>[e.miniProgram?.name,e.miniProgram?.description].filter(n=>n!==void 0&&n!=="").join(" "),robot:e=>e.robot?.modules.flatMap(n=>n.type==="section"?[n.content]:[]).filter(n=>n.trim()!=="").join(" ")??"",game:()=>"",transfer:e=>[e.transfer?.fromUserName,e.transfer?.toUserName,e.transfer?.remark,e.transfer?.coinName].filter(n=>n!==void 0&&n!=="").join(" "),gift:e=>[e.gift?.giftName,e.gift?.fromUserName,e.gift?.toUserName,e.gift?.explain].filter(n=>n!==void 0&&n!=="").join(" "),liveRoom:e=>[e.liveRoom?.liveRoomName,e.liveRoom?.broadcasterUserName].filter(n=>n!==void 0&&n!=="").join(" "),call:()=>"",redPacket:e=>e.redPacket?.coinName?.trim()??"",system:()=>"",unknown:()=>""};function hi(e){return II[e.contentType](e.body)}function CI(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 SI(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 hI(){return hu??=import('pinyin-pro').then(e=>e.match),hu}function RI(){return Ru??=import('pinyin-pro').then(e=>e.pinyin),Ru}async function AI(e){let n=e.trim(),t=n.charAt(0);if(/^[A-Z]$/i.test(t))return t.toLocaleUpperCase();if(!/\p{Script=Han}/u.test(t))return "#";let i=(await RI())(n,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function Sd(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 hI():void 0;return Object.freeze({keyword:n,match(i,s={}){let a=CI(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 l=o(i,t);if(l===null)return null;let c=SI(i,l);return c.length===0?null:Object.freeze({method:"pinyin",ranges:c})}})}var MI=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function EI(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...bI(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),vI(e,t))}function vI(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 TI(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function bI(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?NI(n.atAllTexts??MI):/\[(\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}:TI(s,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:a}),i=r.exec(e);}return o}function NI(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=>`${DI(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function DI(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Br(e,n){let t=n.trim();return t===""?e.toString():t}function Au(e){let n=e.trim();return n!==""&&n!=="0"}var _I=new Set(["audio","video"]),GI=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function tt(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 hd(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function Rd(e,n){return n===void 0?e:{...e,outgoing:n}}function Ad(e,n){let t=tt(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 UI(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 kI(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 Mu(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 wI(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function xI(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function BI(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 PI(e){let n=tt(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=tt(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return Rd({callKind:Mu(n,"Android \u540C\u6B65 callType"),outcome:xI(t),durationMs:Ad(e.callDuration,"ms")},hd(e.isCaller))}function FI(e){let n=tt(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=tt(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return Rd({callKind:kI(n),outcome:wI(t),durationMs:Ad(e.duration,"ms")},hd(e.isCaller))}function OI(e){let n=tt(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=tt(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=Ad(e.content,"s");return Rd({callKind:Mu(n,"iOS type"),outcome:BI(t,r),durationMs:r},hd(e.isCaller))}function Eu(e){if(e===null||typeof e!="object")return false;let n=e;return !(!_I.has(n.callKind)||!GI.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function vu(e){let n=UI(e.content);if("callDuration"in n)return PI(n);if(tt(n.callType)!==void 0&&tt(n.callStatus)!==void 0)return FI(n);if(tt(n.type)!==void 0&&tt(n.status)!==void 0)return OI(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function Tu(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function VI(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 KI(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 bu(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...VI(e.visitCardKey)}}function Nu(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:KI(e.kind,e.rawKind)}}function Du(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 _u(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 Pr(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 Gu(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 Uu(e){let n=e;if(!Pr(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 Ri(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Yt(e,n){if(e<0n)throw new Error(`gift body: ${n} \u975E\u6CD5`);return e.toString()}function Xt(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`gift body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function ku(e){return e===0||e===1||e===2}function wu(e){return e===0||e===1||e===2||e===3}function xu(e){return e===1||e===2}function zt(e){return typeof e=="string"&&/^\d+$/.test(e.trim())}function Ai(e){if(e===null||typeof e!="object")return false;let n=e;return !(!zt(n.fromUid)||!zt(n.toUid)||!zt(n.serialNumber)||typeof n.giftName!="string"||n.giftName.trim()===""||!ku(n.giftType)||!wu(n.state)||!xu(n.sessionType)||typeof n.initiateTime!="number"||!Number.isSafeInteger(n.initiateTime)||n.initiateTime<0||n.amount!==void 0&&!zt(n.amount)||n.zhangCount!==void 0&&!zt(n.zhangCount)||n.benCount!==void 0&&!zt(n.benCount)||n.fissionNumber!==void 0&&!zt(n.fissionNumber))}function Md(e){let n=e.giftType;if(!ku(n))throw new Error(`gift body: giftType \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.state;if(!wu(t))throw new Error(`gift body: state \u975E\u6CD5\uFF08${String(t)}\uFF09`);let r=e.sessionType;if(!xu(r))throw new Error(`gift body: sessionType \u975E\u6CD5\uFF08${String(r)}\uFF09`);return {fromUid:Yt(e.fromUid,"fromUid"),toUid:Yt(e.toUid,"toUid"),giftType:n,state:t,serialNumber:Yt(e.serialNumber,"serialNumber"),sessionType:r,initiateTime:Number(e.initiateTime),giftName:e.giftName.trim(),...e.amount===0n?{}:{amount:Yt(e.amount,"amount")},...Ri(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Ri(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Ri(e.explain)===void 0?{}:{explain:e.explain.trim()},...Ri(e.giftIcon)===void 0?{}:{giftIcon:e.giftIcon.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...e.zhangCount===0n?{}:{zhangCount:Yt(e.zhangCount,"zhangCount")},...e.benCount===0n?{}:{benCount:Yt(e.benCount,"benCount")},...e.fissionNumber===0n?{}:{fissionNumber:Yt(e.fissionNumber,"fissionNumber")}}}function Ed(e){let n=e;if(!Ai(e))throw new Error(`gift body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.giftType)}\uFF09`);return {contentType:17,content:"",fromUid:Xt(e.fromUid,"fromUid"),toUid:Xt(e.toUid,"toUid"),giftType:e.giftType,state:e.state,serialNumber:Xt(e.serialNumber,"serialNumber"),sessionType:e.sessionType,initiateTime:BigInt(e.initiateTime),giftName:e.giftName,...e.amount===void 0?{}:{amount:Xt(e.amount,"amount")},...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.explain===void 0?{}:{explain:e.explain},...e.giftIcon===void 0?{}:{giftIcon:e.giftIcon},...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.zhangCount===void 0?{}:{zhangCount:Xt(e.zhangCount,"zhangCount")},...e.benCount===void 0?{}:{benCount:Xt(e.benCount,"benCount")},...e.fissionNumber===void 0?{}:{fissionNumber:Xt(e.fissionNumber,"fissionNumber")}}}function Bu(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 Pu(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}:{}}}var LI={1:"video",2:"voice",3:"dual-phone",4:"screen-record",5:"voice-chat"},ZI={video:1,voice:2,"dual-phone":3,"screen-record":4,"voice-chat":5},QI={1:"preview",2:"live",3:"ended"},WI={preview:1,live:2,ended:3};function rt(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function HI(e){return e==="video"||e==="voice"||e==="dual-phone"||e==="screen-record"||e==="voice-chat"}function JI(e){return e==="preview"||e==="live"||e==="ended"}function YI(e){if(e===0)return "";let n=LI[e];if(n===void 0)throw new Error(`live room body: liveType \u975E\u6CD5\uFF08${String(e)}\uFF09`);return n}function XI(e){let n=QI[e];if(n===void 0)throw new Error(`live room body: liveRoomStatus \u975E\u6CD5\uFF08${String(e)}\uFF09`);return n}function gr(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.liveRoomId!="string"||n.liveType!==""&&!HI(n.liveType)||!JI(n.liveRoomStatus)||typeof n.isFocus!="boolean"||typeof n.isReservation!="boolean"?false:[n.liveRecordId,n.screenRatio,n.broadcasterUserId,n.broadcasterUserName,n.uid,n.liveCover,n.liveRoomName,n.livePreviewTime,n.livePreviewId,n.liveRoomViewers,n.liveRoomLikes].every(r=>r===void 0||typeof r=="string")}function vd(e){return {liveRoomId:e.liveRoomId.trim(),liveType:YI(e.liveType),liveRoomStatus:XI(e.liveRoomStatus),isFocus:e.isFocus,isReservation:e.isReservation,...rt(e.liveRecordId)===void 0?{}:{liveRecordId:e.liveRecordId.trim()},...rt(e.screenRatio)===void 0?{}:{screenRatio:e.screenRatio.trim()},...rt(e.broadcasterUserId)===void 0?{}:{broadcasterUserId:e.broadcasterUserId.trim()},...rt(e.broadcasterUserName)===void 0?{}:{broadcasterUserName:e.broadcasterUserName.trim()},...rt(e.uid)===void 0?{}:{uid:e.uid.trim()},...rt(e.liveCover)===void 0?{}:{liveCover:e.liveCover.trim()},...rt(e.liveRoomName)===void 0?{}:{liveRoomName:e.liveRoomName.trim()},...rt(e.livePreviewTime)===void 0?{}:{livePreviewTime:e.livePreviewTime.trim()},...rt(e.livePreviewId)===void 0?{}:{livePreviewId:e.livePreviewId.trim()},...rt(e.liveRoomViewers)===void 0?{}:{liveRoomViewers:e.liveRoomViewers.trim()},...rt(e.liveRoomLikes)===void 0?{}:{liveRoomLikes:e.liveRoomLikes.trim()}}}function Td(e){if(!gr(e))throw new Error(`live room body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(e.liveRoomId)}\uFF09`);return {contentType:30,content:"",liveRoomId:e.liveRoomId.trim(),liveType:e.liveType===""?0:ZI[e.liveType],liveRoomStatus:WI[e.liveRoomStatus],isFocus:e.isFocus,isReservation:e.isReservation,...e.liveRecordId===void 0?{}:{liveRecordId:e.liveRecordId.trim()},...e.screenRatio===void 0?{}:{screenRatio:e.screenRatio.trim()},...e.broadcasterUserId===void 0?{}:{broadcasterUserId:e.broadcasterUserId.trim()},...e.broadcasterUserName===void 0?{}:{broadcasterUserName:e.broadcasterUserName.trim()},...e.uid===void 0?{}:{uid:e.uid.trim()},...e.liveCover===void 0?{}:{liveCover:e.liveCover.trim()},...e.liveRoomName===void 0?{}:{liveRoomName:e.liveRoomName.trim()},...e.livePreviewTime===void 0?{}:{livePreviewTime:e.livePreviewTime.trim()},...e.livePreviewId===void 0?{}:{livePreviewId:e.livePreviewId.trim()},...e.liveRoomViewers===void 0?{}:{liveRoomViewers:e.liveRoomViewers.trim()},...e.liveRoomLikes===void 0?{}:{liveRoomLikes:e.liveRoomLikes.trim()}}}function Jn(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Fu(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:void 0}function zI(e){switch(e){case 0:return {showType:"default"};case 1:return {showType:"board-game"};case 2:return {showType:"board-game-link"};case 3:return {showType:"game-preview"};default:return {showType:"unknown",rawShowType:e}}}function qI(e,n){switch(e){case "default":return 0;case "board-game":return 1;case "board-game-link":return 2;case "game-preview":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("miniProgram body: unknown showType \u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawShowType");return n}}function jI(e){return e.showType==="unknown"&&e.rawShowType===3}function mr(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>3&&n.rawShowType<=4294967295:n.showType==="default"||n.showType==="board-game"||n.showType==="board-game-link"||n.showType==="game-preview"}function bd(e){return {appId:e.miniProgramAppId,...Jn(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...Jn(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...Jn(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...Jn(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...Jn(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...Jn(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...zI(e.miniProgramShowType),...Jn(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...Jn(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...Jn(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...Jn(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...Jn(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()},...Jn(e.miniProgramGamePreviewUrl)===void 0?{}:{gamePreviewUrl:e.miniProgramGamePreviewUrl.trim()},...Fu(e.miniProgramGamePreviewWidth)===void 0?{}:{gamePreviewWidth:e.miniProgramGamePreviewWidth},...Fu(e.miniProgramGamePreviewHeight)===void 0?{}:{gamePreviewHeight:e.miniProgramGamePreviewHeight}}}function Nd(e){let n=e;if(!mr(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:qI(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},...e.gamePreviewUrl===void 0?{}:{miniProgramGamePreviewUrl:e.gamePreviewUrl},...e.gamePreviewWidth===void 0?{}:{miniProgramGamePreviewWidth:e.gamePreviewWidth},...e.gamePreviewHeight===void 0?{}:{miniProgramGamePreviewHeight:e.gamePreviewHeight}}}function Fr(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Ei(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function Mi(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 Ou(e){return e===1||e===2||e===3||e===4}function $I(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!Ou(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 Vu(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!Ou(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:Ei(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:Ei(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...Fr(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...Fr(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},...Fr(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function Ku(e){let n=e;if(!$I(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:Mi(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:Mi(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:Mi(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:Mi(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function Lu(e){let n=Ei(e.fromUid,"fromUid"),t=Ei(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=Fr(e.radPacketId),i=Fr(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 Dd(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function Zu(e,n){if(!Dd(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"}}var Yn=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var bn=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),Qu=messageDesc(bn,0);var Wu=messageDesc(bn,2);var Hu=messageDesc(bn,5);var Ju=messageDesc(bn,7),Yu=messageDesc(bn,8);var Xu=messageDesc(bn,10);messageDesc(bn,11);messageDesc(bn,12);messageDesc(bn,13);messageDesc(bn,15);var eg=messageDesc(bn,16),ng=messageDesc(bn,17);messageDesc(bn,18);messageDesc(bn,20);var zn=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(zn,0);messageDesc(zn,1);var sg=messageDesc(zn,2),ag=messageDesc(zn,3),dg=messageDesc(zn,4),cg=messageDesc(zn,5);var lg=messageDesc(zn,11),ug=messageDesc(zn,12);var gg=messageDesc(zn,17),mg=messageDesc(zn,18),fg=messageDesc(zn,19),pg=messageDesc(zn,20);var Ig=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwizRMKCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCRIhChltaW5pUHJvZ3JhbUdhbWVQcmV2aWV3VXJsGF4gASgJEiMKG21pbmlQcm9ncmFtR2FtZVByZXZpZXdXaWR0aBhfIAEoDRIkChxtaW5pUHJvZ3JhbUdhbWVQcmV2aWV3SGVpZ2h0GGAgASgNEgoKAmhkGGEgASgIEhIKCmxpdmVSb29tSWQYYiABKAkSFAoMbGl2ZVJlY29yZElkGGMgASgJEhAKCGxpdmVUeXBlGGQgASgFEhMKC3NjcmVlblJhdGlvGGUgASgJEhkKEWJyb2FkY2FzdGVyVXNlcklkGGYgASgJEhsKE2Jyb2FkY2FzdGVyVXNlck5hbWUYZyABKAkSDwoHaXNGb2N1cxhoIAEoCBILCgN1aWQYaSABKAkSEQoJbGl2ZUNvdmVyGGogASgJEhYKDmxpdmVSb29tU3RhdHVzGGsgASgFEhQKDGxpdmVSb29tTmFtZRhsIAEoCRIXCg9saXZlUHJldmlld1RpbWUYbSABKAkSFQoNbGl2ZVByZXZpZXdJZBhuIAEoCRIVCg1pc1Jlc2VydmF0aW9uGG8gASgIEhcKD2xpdmVSb29tVmlld2VycxhwIAEoCRIVCg1saXZlUm9vbUxpa2VzGHEgASgJYgZwcm90bzM");var Cg=messageDesc(Ig,1),Sg=messageDesc(Ig,2);var Ut=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[Yn]),qt=messageDesc(Ut,0),fr=messageDesc(Ut,1),Or=messageDesc(Ut,2),Vr=messageDesc(Ut,3),_d=messageDesc(Ut,4),Gd=messageDesc(Ut,5),Ud=messageDesc(Ut,6),hg=messageDesc(Ut,7);var Dn=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[Yn]),Kr=messageDesc(Dn,0),vi=messageDesc(Dn,1),Rg=messageDesc(Dn,2);var Ag=messageDesc(Dn,5),Mg=messageDesc(Dn,6),Eg=messageDesc(Dn,7),vg=messageDesc(Dn,8),Tg=messageDesc(Dn,9),bg=messageDesc(Dn,10),Ng=messageDesc(Dn,11);var Dg=messageDesc(Dn,14),kd=messageDesc(Dn,15),wd=messageDesc(Dn,16),_g=messageDesc(Dn,17);var Zr=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[Yn]),Gg=messageDesc(Zr,0),Ug=messageDesc(Zr,1),kg=messageDesc(Zr,2),wg=messageDesc(Zr,3),xg=messageDesc(Zr,4);var $e=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[Yn]),pr=messageDesc($e,0),xd=messageDesc($e,1),Bg=messageDesc($e,2),Bd=messageDesc($e,3),Pg=messageDesc($e,4);var Pd=messageDesc($e,7);var Fg=messageDesc($e,9),Og=messageDesc($e,10),Fd=messageDesc($e,11),Od=messageDesc($e,12),Vg=messageDesc($e,13);var Kg=messageDesc($e,15),Lg=messageDesc($e,16),Zg=messageDesc($e,17);var Qg=messageDesc($e,26);var Wg=messageDesc($e,29);var Hg=messageDesc($e,33);var Vd=messageDesc($e,48),Ti=messageDesc($e,49);var Jg=messageDesc($e,51),Yg=messageDesc($e,52);var Xg=messageDesc($e,55);var zg=messageDesc($e,58),qg=messageDesc($e,59),jg=messageDesc($e,60);var Ld=fileDesc("Cg5pbS5yb2JvdC5wcm90bxIKaW0uYXBwLnB0bCJdCghSb2JvdE1zZxIOCgZ1c2VySWQYASABKAMSDwoHcm9ib3RJZBgCIAEoCRIPCgdjb250ZW50GAMgASgJEg8KB21zZ1RpbWUYBCABKAMSDgoGc01zZ0lkGAUgASgJImMKC1JvYm90TXNnQWNrEg4KBnVzZXJJZBgBIAEoAxIPCgdyb2JvdElkGAIgASgJEiQKB2VyckNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDQoFbXNnSWQYBCABKAkiZgoRUm9ib3RSZXBseVVzZXJNc2cSDgoGdXNlcklkGAEgASgDEg8KB3JvYm90SWQYAiABKAkSDgoGc01zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoA0IfChNjb20ubW9zYW50LmltLnByb3RvSANaBi4uL2FwcGIGcHJvdG8z",[Yn]),$g=messageDesc(Ld,0),em=messageDesc(Ld,1),nm=messageDesc(Ld,2);var sn=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[Yn]),Zd=messageDesc(sn,0),tm=messageDesc(sn,1),rm=messageDesc(sn,2),Qd=messageDesc(sn,3),om=messageDesc(sn,4),im=messageDesc(sn,5),Wd=messageDesc(sn,6);var sm=messageDesc(sn,8),Hd=messageDesc(sn,9),am=messageDesc(sn,10),dm=messageDesc(sn,11),Jd=messageDesc(sn,12),cm=messageDesc(sn,13),lm=messageDesc(sn,14),Yd=messageDesc(sn,15),St=messageDesc(sn,16),ht=messageDesc(sn,17),Xd=messageDesc(sn,18),zd=messageDesc(sn,19),Qr=messageDesc(sn,20),qd=messageDesc(sn,21),jd=messageDesc(sn,22),$d=messageDesc(sn,23);var Ni=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var um=messageDesc(Ni,1),gm=messageDesc(Ni,2);var mm=messageDesc(Ni,4),fm=messageDesc(Ni,5);function L(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function Ve(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function Cm(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 Wr=L(257,Gg),Hr=L(261,wg),Di=L(262,xg),_i=L(258,Ug),ec=L(264,kg),jt=L(4097,pr),Gi=L(4098,xd),Ui=L(4100,pr),kt=L(4099,Bd),Jr=L(4647,$g),ki=L(4648,em),wi=L(4649,nm),xi=L(24579,zg),Bi=L(4650,pr),Pi=L(4651,pr),Fi=L(4652,xd),Oi=L(4653,pr),Vi=L(4631,Jg),Yr=L(4632,Yg),Ki=L(4633,Xg),Li=L(4627,Qg),Xr=L(4628,Wg),nc=Ve(Hg),Zi=L(4356,Vg),zr=L(4355,Kg),Qi=L(4360,Lg),qr=L(4359,Zg),jr=L(4107,Fd),Wi=L(4108,Od),Hi=L(4110,Fd),$r=L(4109,Od),eo=L(8197,vg),Ji=L(8198,Tg),Yi=L(4644,qg),Xi=L(4646,jg),zi=L(8976,_g),qi=L(8977,vi),ji=L(4102,Bd),no=L(4101,Pg),to=L(4103,Pd),$i=L(4104,Fg),es=L(4106,Pd),ro=L(4105,Og),$t=L(4117,Vd),ns=L(4118,Ti),ts=L(4119,Vd),ot=L(8193,Kr),rs=L(8194,vi),os=L(8196,Kr),oo=L(8195,Rg),io=L(8978,Kr),is=L(8979,vi),ss=L(8980,Kr),so=L(8967,wd),as=L(8968,Ti),ds=L(8969,wd),er=L(8708,Ng),ao=L(8707,Mg),cs=L(8452,bg),co=L(8451,Ag),ls=L(8964,Dg),lo=L(8963,kd),us=L(8966,kd),uo=L(8965,Eg),Rt=L(12289,qt),gs=L(12290,fr),go=L(12291,Or),ms=L(12292,qt),Sm=L(12816,qt),mo=L(12817,qt),fs=L(12818,fr),ps=L(12819,qt),fo=L(12293,Vr),ys=L(12294,fr),Is=L(12295,Or),Cs=L(12296,Vr),po=L(12297,Vr),Ss=L(12298,fr),hs=L(12299,Or),Rs=L(12300,Vr),yo=L(12547,Gd),As=L(12548,_d),hm=L(12551,Gd),Rm=L(12552,_d),Io=L(12803,Or),Ms=L(12804,qt),Co=L(12805,Ud),Es=L(12806,Ti),vs=L(12807,Ud),Ts=L(12808,hg),bs=L(12809,fr),So=L(16385,Zd),Ns=L(16386,tm),ho=L(16387,rm),Ds=L(16388,Zd),Ro=L(16389,Qd),_s=L(16390,om),Ao=L(16391,im),Gs=L(16392,Qd),Mo=L(16395,sm),Us=L(16396,Wd),yr=L(16397,Hd),ks=L(16398,am),Eo=L(16399,dm),Am=L(16400,Hd),vo=L(16401,Jd),ws=L(16402,cm),To=L(16403,lm),xs=L(16404,Jd),bo=L(16641,Yd),Bs=L(16642,St),No=L(16643,ht),Ps=L(16644,Yd),Do=L(16645,Xd),Fs=L(16646,St),Mm=L(16647,ht),Os=L(16648,Xd),_o=L(16649,zd),Vs=L(16650,St),Em=L(16651,ht),Ks=L(16652,zd),Go=L(16653,Qr),Ls=L(16654,St),vm=L(16655,ht),Zs=L(16656,Qr),Uo=L(16657,Qr),Qs=L(16658,St),Tm=L(16659,ht),Ws=L(16660,Qr),ko=L(16661,qd),Hs=L(16662,St),bm=L(16663,ht),Js=L(16664,qd),Nm=L(16665,jd),Dm=L(16666,St),_m=L(16667,ht),Ys=L(16668,jd),wo=L(16669,$d),Xs=L(16670,St),Gm=L(16671,ht),zs=L(16672,$d),Ee=Ve(Sg),We=Ve(Cg),Ir=Ve(Bg),qs=Ve(um),js=Ve(gm),$s=Ve(mm),ea=Ve(fm),na=Ve(dg),ta=Ve(cg),ra=Ve(lg),oa=Ve(ug),ia=Ve(gg),sa=Ve(mg),aa=Ve(fg),da=Ve(pg),ca=Ve(sg),tc=Ve(ag),la=Ve(Qu),rc=Ve(Wu),ua=Ve(Hu),xo=Ve(Ju),fC=Ve(Yu),pC=Ve(Xu),ga=Ve(eg),oc=Ve(ng);Cm([Wr,Hr,Di,_i,jt,Gi,Jr,ki,wi,xi,Ui,kt,Bi,Pi,Fi,Oi,Vi,Yr,Ki,Li,Xr,Zi,zr,Qi,qr,jr,Wi,Hi,$r,Xi,ji,no,to,$i,es,ro,$t,ns,ts,ot,rs,eo,Ji,qi,os,oo,io,is,ss,so,as,ds,er,ao,cs,co,ls,lo,us,uo,Rt,gs,go,ms,Sm,mo,fs,ps,fo,ys,Is,Cs,po,Ss,hs,Rs,yo,As,hm,Rm,Io,Ms,Co,Es,vs,bs,So,Ns,ho,Ds,Ro,_s,Ao,Gs,Mo,Us,yr,ks,Eo,Am,vo,ws,To,xs,bo,Bs,No,Ps,Do,Fs,Mm,Os,_o,Vs,Em,Ks,Go,Ls,vm,Zs,Uo,Qs,Tm,Ws,ko,Hs,bm,Js,Nm,Dm,_m,Ys,wo,Xs,Gm,zs]);var _n=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function wm(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new _n(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 _n(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function Um(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function MC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function EC(e){return e===void 0||Number.isInteger(e)}function Bo(e){return e===void 0||e===0||e===1}function km(e){return e===void 0||typeof e=="string"}function xm(e){if(!MC(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===""||!Bo(e.isBrowse)||!Bo(e.isCancel)||!Bo(e.isEdit)||!Bo(e.isNotifyAll)||!km(e.notifyUsersName)||!km(e.parentMsgId)||!Bo(e.readStatus)||!EC(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new _n("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function vC(e){let n;try{if(n=wm(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=Ee.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof _n?t:new _n("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function Po(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(wm(e,"INVALID_BASE64"));}catch(r){throw r instanceof _n?r:new _n("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 _n("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return xm(t),{envelope:t,message:vC(t.msgContent)}}function Fo(e){let n=Ee.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new _n("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:Um(n)};return xm(t),Um(new TextEncoder().encode(JSON.stringify(t)))}var TC=new Uint8Array(0);function ma(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 ae(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;ma(e.command,16,"command"),ma(n,8,"flags"),ma(t,8,"appId"),ma(r,32,"msgSeq");let o=e.body??TC,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 ic(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)},l=e.subarray(r+16,r+i);n.push({header:a,body:l}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var Oo=18,bC=Object.freeze({modules:Object.freeze([]),commands:Object.freeze([])});function nr(e){if(typeof e!="string")return e;let n=e.trim();if(n!=="")try{return JSON.parse(n)}catch{return}}function st(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}function sc(e){return Array.isArray(e)?e:[]}function it(e){if(typeof e!="string")return;let n=e.trim();return n===""?void 0:n}function fa(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=0?String(e):it(e)}function NC(e){let n=typeof e=="number"?e:typeof e=="string"?Number(e.trim()):Number.NaN;if(!(!Number.isFinite(n)||n<=0))return n>1e12?n:n*1e3}function DC(e){let n=nr(e)??e,t=st(n);if(t===void 0)return {content:n,children:void 0};let r=t.contentType;if(r===18||r==="18"){let o=nr(t.content)??t.content,i=st(o);return i===void 0?{content:o,children:void 0}:{content:nr(i.content)??i.content,children:i.children}}return {content:nr(t.content)??t.content,children:t.children}}function _C(e){let n=e.trim();if(!n.startsWith("["))return;let t=nr(n);if(!Array.isArray(t)||t.length===0||!t.every(o=>st(o)?.type!==void 0))return;let r=Pm(t);return r.length>0?r:void 0}function GC(e){let n=st(e.text),t=it(n?.content)??"",r=_C(t);return r!==void 0?r:{type:"section",textType:it(n?.type)??"plain-text",content:t}}function UC(e){let n=sc(e.elements).map(t=>it(st(t)?.src)).filter(t=>t!==void 0);if(n.length!==0)return {type:"image-group",images:Object.freeze(n)}}function kC(e){let n=NC(e.endTime);if(n!==void 0)return {type:"countdown",endTimeMs:n}}function wC(e){let n=st(e);if(n===void 0)return;let t=it(n.type);if(!(t==="divider"||t===void 0)){if(t==="section")return GC(n);if(t==="image-group")return UC(n);if(t==="countdown")return kC(n)}}function Pm(e){let n=Array.isArray(e)?e:sc(nr(e)),t=[];for(let r of n){let o=wC(r);o!==void 0&&("type"in o?t.push(o):t.push(...o));}return Object.freeze(t)}function xC(e){let n=st(typeof e=="string"?nr(e):e);if(n===void 0)return;let t=it(n.path),r=it(n.app_id)??it(n.appId),o=it(n.domain);if(!(t===void 0&&r===void 0&&o===void 0))return {...t===void 0?{}:{path:t},...r===void 0?{}:{appId:r},...o===void 0?{}:{domain:o}}}function Bm(e){let n=st(e),t=it(n?.menu_name)??it(n?.menuName);if(n===void 0||t===void 0)return;let r=fa(n.menu_id)??fa(n.menuId),o=fa(n.msg_type)??fa(n.messageType),i=xC(n.msg_content??n.content);return {menuName:t,...r===void 0?{}:{menuId:r},...o===void 0?{}:{messageType:o},...i===void 0?{}:{miniProgram:i}}}function BC(e){let n=[];for(let t of sc(e)){if(Array.isArray(t)){let o=t.map(Bm).filter(i=>i!==void 0);o.length>0&&n.push(Object.freeze(o));continue}let r=Bm(t);r!==void 0&&n.push(Object.freeze([r]));}return Object.freeze(n)}function PC(e){let n=st(e);return n===void 0?false:n.type==="section"?typeof n.textType=="string"&&typeof n.content=="string":n.type==="image-group"?Array.isArray(n.images)&&n.images.every(t=>typeof t=="string"&&t.trim()!==""):n.type==="countdown"?typeof n.endTimeMs=="number"&&Number.isFinite(n.endTimeMs)&&n.endTimeMs>0:false}function FC(e){let n=st(e);return n!==void 0&&typeof n.menuName=="string"&&n.menuName.trim()!==""}function ac(e){let n=st(e);return n===void 0||!Array.isArray(n.modules)||!Array.isArray(n.commands)?false:n.modules.every(PC)&&n.commands.every(t=>Array.isArray(t)&&t.every(FC))}function OC(e){let n=DC(e);return {modules:Pm(n.content),commands:BC(n.children)}}function dc(e){try{return OC(e.content)}catch{return bC}}function Fm(e,n){if(n?.contentType!==Oo||n.text===void 0||n.text.trim()==="")return;let t=dc(Ee.create({contentType:Oo,content:n.text}));if(!(t.modules.length===0&&t.commands.length===0)&&!(e!==void 0&&JSON.stringify(e)===JSON.stringify(t)))return t}function VC(e){return e.type==="section"?{type:"section",text:{type:e.textType,content:e.content}}:e.type==="image-group"?{type:"image-group",elements:e.images.map(n=>({type:"image",src:n}))}:{type:"countdown",endTime:String(e.endTimeMs)}}function KC(e){return {menu_name:e.menuName,...e.menuId===void 0?{}:{menu_id:e.menuId},...e.messageType===void 0?{}:{msg_type:e.messageType},...e.miniProgram===void 0?{}:{msg_content:{...e.miniProgram.path===void 0?{}:{path:e.miniProgram.path},...e.miniProgram.appId===void 0?{}:{app_id:e.miniProgram.appId},...e.miniProgram.domain===void 0?{}:{domain:e.miniProgram.domain}}}}}function Om(e){if(!ac(e))throw new Error("robot body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5");return {contentType:Oo,content:JSON.stringify({content:e.modules.map(VC),children:e.commands.map(n=>n.map(KC))})}}function Cr(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function pa(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function ya(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 Vm(e){return e===0||e===1||e===2||e===3}function Km(e){return e===1||e===2}function Ia(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||!Vm(n.status)||!Km(n.sessionType))}function cc(e){let n=e.status;if(!Vm(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!Km(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:pa(e.fromUid,"fromUid"),toUid:pa(e.toUid,"toUid"),amount:pa(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:pa(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...Cr(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Cr(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Cr(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},...Cr(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...Cr(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...Cr(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function lc(e){let n=e;if(!Ia(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:ya(e.fromUid,"fromUid"),toUid:ya(e.toUid,"toUid"),amount:ya(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:ya(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 Lm(e){let n={url:e.content,width:e.width,height:e.height};e.hd&&(n.hd=true);let t=LC(e);return t!==void 0&&(n.duration=t,t!==e.duration&&(n.durationUnit="seconds")),e.thumbData.length>0&&(n.thumbData=e.thumbData),e.describe!==""&&(n.describe=e.describe),e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.unverifiedFileLength=e.fileLength.toString()),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function uc(e,n){return (e===void 0||e===0)&&(n?.length??0)>0}function LC(e){let n=e.duration;if(!Number.isFinite(n)||n<=0)return;let t=e.fileEncryptType===0&&e.width===0&&e.height===0&&n%1e3===0&&n/1e3<=300;return uc(e.fileEncryptType,e.teaKey)||t?n/1e3:n}function Ca(e){if(e.size!==void 0&&e.sizeUnit!=="bytes"){let{size:n,...t}=e;e={...t,...t.unverifiedFileLength===void 0&&Number.isSafeInteger(n)&&n>0?{unverifiedFileLength:String(Math.round(n/1024))}:{}};}return e.durationUnit==="seconds"||e.duration===void 0||!Number.isFinite(e.duration)||e.duration<=0||!uc(e.fileEncryptType,e.teaKey)||e.width===0&&e.height===0&&e.duration<=300?e:{...e,duration:e.duration/1e3,durationUnit:"seconds"}}function Zm(e){let n=uc(e.fileEncryptType,e.teaKey)?1e3:1,t=ZC(e);return {contentType:3,content:e.url,width:e.width,height:e.height,...e.hd===true?{hd:true}:{},...e.duration!==void 0&&Number.isFinite(e.duration)&&e.duration>0?{duration:Math.max(1,Math.round(e.duration*n))}:{},...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}:{},...t===void 0?{}:{fileLength:t},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function ZC(e){if(e.size!==void 0){if(!Number.isSafeInteger(e.size)||e.size<0)throw new RangeError("\u89C6\u9891 size \u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");return e.size===0?void 0:BigInt(e.size)}if(e.unverifiedFileLength!==void 0){if(!/^\d{1,20}$/.test(e.unverifiedFileLength)||BigInt(e.unverifiedFileLength)>0xFFFFFFFFFFFFFFFFn)throw new RangeError("\u89C6\u9891\u5386\u53F2 fileLength \u5FC5\u987B\u4E3A uint64 \u5341\u8FDB\u5236\u6574\u6570");return BigInt(e.unverifiedFileLength)}}function Qm(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 Wm(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 qm=1,jm=[{wireContentType:yi,domainContentType:"filesAlbum",parse:e=>({filesAlbum:fu(e)}),build:e=>e.filesAlbum===void 0?void 0:pu(e.filesAlbum)},{wireContentType:2,domainContentType:"image",parse:e=>({image:Bu(e)}),build:e=>e.image!==void 0?Pu(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Lm(e)}),build:e=>e.video!==void 0?Zm(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:Qm(e)}),build:e=>e.voice!==void 0?Wm(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:Du(e)}),build:e=>e.file!==void 0?_u(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:Id(e)}),build:e=>e.sticker!==void 0?Cd(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:bu(e)}),build:e=>e.contact!==void 0?Nu(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:bd(e)}),build:e=>e.miniProgram!==void 0?Nd(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:Gu(e)}),build:e=>e.game!==void 0?Uu(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:cc(e)}),build:e=>e.transfer!==void 0?lc(e.transfer):void 0},{wireContentType:17,domainContentType:"gift",parse:e=>({gift:Md(e)}),build:e=>e.gift!==void 0?Ed(e.gift):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:vu(e)}),build:e=>e.call!==void 0?Tu(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:Vu(e)}),build:e=>e.redPacket!==void 0?Ku(e.redPacket):void 0},{wireContentType:Ii,domainContentType:"mediaAlbum",parse:e=>({mediaAlbum:pd(e)}),build:e=>e.mediaAlbum!==void 0?xr(e.mediaAlbum):void 0},{wireContentType:Oo,domainContentType:"robot",parse:e=>({robot:dc(e)}),build:e=>e.robot!==void 0&&ac(e.robot)?Om(e.robot):void 0},{wireContentType:30,domainContentType:"liveRoom",parse:e=>({liveRoom:vd(e)}),build:e=>e.liveRoom!==void 0?Td(e.liveRoom):void 0}],$C=[{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:"filesAlbum",read:e=>e.filesAlbum},{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:"gift",read:e=>e.gift},{contentType:"call",read:e=>e.call},{contentType:"redPacket",read:e=>e.redPacket},{contentType:"mediaAlbum",read:e=>e.mediaAlbum},{contentType:"robot",read:e=>e.robot},{contentType:"liveRoom",read:e=>e.liveRoom},{contentType:"unknown",read:e=>e.unknown}];function qn(e,n){if(e.contentType===qm)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:Zu(Lu(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=jm.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 gc(e,n,t="outgoing message"){let r=$C.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`)}On(n);}function On(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 jm){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:qm,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var mc=/^[0-9a-f]{32}$/;function Gn(e){return mc.test(e.replace(/-/g,"").toLowerCase())}function Vn(){return globalThis.crypto.randomUUID()}function we(e){let n=e.replace(/-/g,"").toLowerCase();if(!Gn(e))throw new Error(`toWireMsgId: \u975E\u6CD5\u6D88\u606F id\u300C${e}\u300D\uFF08\u53BB\u6A2A\u7EBF\u540E\u975E 32 \u4F4D hex\uFF09\uFF0C\u62D2\u7EDD\u4F5C\u4E3A\u51FA\u7AD9 sMsgId`);return n}function Un(e){let n=e.replace(/-/g,"").toLowerCase();return mc.test(n)?n:e}function be(e){let n=e.toLowerCase();return mc.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function Sa(e){let n=e.serverTime;return n!==void 0&&Number.isFinite(n)&&n>0&&n<=864e13?n:void 0}function ct(e){return Sa(e)??e.createdAt}function lt(e){let n=e.conversationType==="channel"?e.extensions?.channelSequence:void 0,t=typeof n=="string"&&/^\d+$/.test(n)?`${n.padStart(20,"0")}:${e.id}`:e.id;return Be(ct(e),t)}function Be(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function an(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var fc=9,eS=20;function Vo(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:we(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:fc,encrypt:2,bMessage:On(e.body)};return e.mention!==void 0&&Object.assign(o,nS(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=Un(e.refMessageId)),o}function nS(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 wt(e,n,t){return Ra(ef(e),n,t)}function $m(e,n,t){return Ra({...ef(e),historyCursor:""},n,t,void 0,true)}function ef(e){return {senderId:Br(e.sFromId,e.botId),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}}function pc(e,n,t){return Ra(tf(e),n,t)}function nf(e,n,t){return Ra(tf(e),void 0,t,n)}function tf(e){return {senderId:Br(e.sFromId,e.botId),channelId:e.sChnnId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sIndex,sequence:e.sIncrId,notifyCount:e.nNotifyCount,notifyUsers:rS(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function Ra(e,n,t,r,o=false){tS(e,o||t.edited===true&&e.oldMessageId.trim()!=="");let i=be(e.messageId),s=e.senderId,a=e.channelId.toString(),l=Number(e.msgTime),c=l>0?l:t.receivedAt??Date.now(),g=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:qn(n,t.selfId),f=oS(e,g.body.text??""),C=e.sequence.toString(),E={channelMessageType:fc,channelSequence:C,...o?{}:{historyCursor:e.historyCursor}};e.oldMessageId!==""&&(E.previousMessageId=be(e.oldMessageId));let I={id:i,conversationId:a,conversationType:"channel",senderId:s,contentType:g.contentType,body:g.body,createdAt:c,sortKey:Be(c,`${C.padStart(eS,"0")}:${i}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:E};return t.decryptFailed===true&&(I.encryption.decryptFailed=true),l>0&&(I.serverTime=l),e.parentMessageId!==""&&(I.refMessageId=be(e.parentMessageId)),(e.edited||t.edited===true)&&(I.edited=true),f!==void 0&&(I.mention=f),t.keepRaw&&(I.raw=lS(e,n,t.cmdId,r)),I}function tS(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Au(e.senderId))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 rS(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(ha)}catch{}return n.split(/[\s,;]+/).filter(ha)}function oS(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=sS(e.notifyUsers.filter(ha),iS(n)),{ranges:o,atUsersName:i}=aS(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 iS(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function sS(e,n){return [...new Set([...e,...n])]}function ha(e){return /^[1-9]\d*$/.test(e)}function aS(e){if(e==="")return {};try{let n=JSON.parse(e),t=dS(n.atRange),r=cS(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function dS(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 cS(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))ha(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function lS(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId,sToId:e.channelId.toString(),msgType:fc,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 uS=5;function xt(e,n,t){let r=Br(e.sFromId,e.botId),o=Number(e.msgTime),i=be(e.sMsgId),s=qn(n,t.selfId),a=s.contentType==="text",l=o>0?o:t.receivedAt??Date.now(),c={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:s.contentType,body:s.body,createdAt:l,sortKey:Be(l,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(c.encryption.decryptFailed=true),o>0&&(c.serverTime=o),e.parentMsgId&&(c.refMessageId=be(e.parentMsgId)),t.edited===true&&(c.edited=true);let g=gS(e,a?n.content:"");return g!==void 0&&(c.mention=g),t.keepRaw&&(c.raw=yS(e,n,t.cmdId)),c}function Sr(e,n){let t=rf(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=of(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function gS(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=of(e.sNotifyUsers.map(a=>a.toString()),rf(n)),{ranges:o,atUsersName:i}=mS(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 rf(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 of(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 mS(e){if(e==="")return {};try{let n=JSON.parse(e),t=fS(n.atRange),r=pS(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function fS(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 pS(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 yS(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 Ko(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:we(e.id),msgType:uS,encrypt:e.encryption.encrypted?1:0,bMessage:On(e.body)};return e.mention!==void 0&&Object.assign(t,IS(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=Un(e.refMessageId)),t}function IS(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=CS(e);return t!==void 0&&(n.extend=t),n}function CS(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 In=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function Lo(e){return e instanceof _n||e instanceof In?e.code:"INVALID_SNAPSHOT"}function Aa(e,n){let t=Po(e),{envelope:r}=t;if(r.convType!==2)throw new In("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new In("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 In("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=ot.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=xt(a,t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new In("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 SS(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new In("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 In("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Ee.create(On(e.body)),r=Fo({envelope:{convType:2,msgContent:"",msgId:we(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?"":Un(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:Aa(r,{conversationId:e.conversationId})}}function Ma(e,n){let t=Po(e),{envelope:r}=t;if(r.convType!==3)throw new In("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new In("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 In("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=r.nIncrId??"0";i=$m(Rt.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,nIncrId:BigInt(a),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new In("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 hS(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new In("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 In("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=Ee.create(On(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=Fo({envelope:{convType:3,msgContent:"",msgId:we(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?"":Un(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:i,pinnedMessage:Ma(i,{conversationId:e.conversationId})}}var RS=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 AS(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Bt(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||Dd(n.eventType)||!AS(e,n.eventType))return e;let t=RS.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 MS={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"},sf=new Set([17,18,22,23,24]),ES=20;function Ea(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?Ic(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&sf.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 Bt(e);let a={...n,eventType:t};return o&&delete a.fallbackText,s&&i!==void 0&&(a.targetUserIds=[i]),Bt({...e,body:{...e.body,system:a}})}function af(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 yc(e){if(!af(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return Ea({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function Ic(e){return MS[e]??"channel_unknown"}function Zo(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=be(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:Ic(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(s.operatorId=e.operatorId.toString());let a=e.targetUserIds?.filter(l=>l>0n).map(l=>l.toString())??[];if(a.length>0&&(s.targetUserIds=a),e.content!==void 0&&e.content!==""&&!sf.has(e.notifyType)&&(s.fallbackText=e.content),e.notifyType===23)try{s.pinnedMessageAction={type:"pin",pinnedMessage:Ma(e.content??"",{conversationId:e.channelId.toString(),...s.operatorId===void 0?{}:{operatorId:s.operatorId}})};}catch(l){s.pinnedMessageAction={type:"invalid",code:Lo(l)};}else e.notifyType===24&&(s.pinnedMessageAction={type:"unpin"});return Ea({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:s},createdAt:o,...r>0?{serverTime:r}:{},sortKey:Be(o,i===void 0?t:`${i.padStart(ES,"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}}}}:{}})}function Rn(e){if(e?.aborted!==true)return;if(e.reason!==void 0)throw e.reason;let n=new Error("The operation was aborted");throw n.name="AbortError",n}var vS=new Set(["direct","group","channel","supergroup","robot"]);function Ke(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function An(e){return {conversationType:e.type,conversationId:e.id}}function Pt(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function ue(e){if(!vS.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 At(e){let n=/^v1:(direct|group|channel|supergroup|robot):(.+)$/.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 Qo(e){return /^\[[^[\]\s]+\]$/.test(e)}function Wo(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function TS(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function bS(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function Cc(e,n,t){let r=new Map;for(let a of e){let l=r.get(a.senderId);(l===void 0||TS(l,a)<0)&&r.set(a.senderId,a);}let o=new Map,i;for(let a of r.values()){if(a.action===1)continue;let l=o.get(a.emoji)??{participants:[],latestAt:0};l.participants.push(a.senderId),l.latestAt=Math.max(l.latestAt,a.createdAt),o.set(a.emoji,l),a.senderId===n&&(i=a.emoji);}let s=[...o.entries()].map(([a,l])=>Object.freeze({emoji:a,count:l.participants.length,mine:l.participants.includes(n),latestAt:l.latestAt,participantIds:Object.freeze([...l.participants].sort())})).sort((a,l)=>Number(l.mine)-Number(a.mine)||l.latestAt-a.latestAt||a.emoji.localeCompare(l.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((a,l)=>a+l.participants.length,0),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(bS)),aggregates:Object.freeze(s)})}function Sc(e,n,t){if(!Qo(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(Wo(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:Cc([...e?.events??[],n],t,(e?.version??0)+1)}function hc(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 Cc(r,t,e.version+1)}function Rc(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 Cc([...r.values()],t,Math.max(e.version,n.version))}var df={unread:0,delivered:1,read:2};function va(e,n){return df[n]>df[e]?n:e}function lf(e,n){return e==="sent"||n==="sent"?"sent":n}function hr(e,n,t=""){let r=Sa(e)??0,o=Sa(n)??0,i=o>=r,s=i?{...e,...n}:{...n,...e},a=e.readBySelf===true||n.readBySelf===true,l=Math.max(r,o),c=Math.min(e.createdAt,n.createdAt),g=e.extensions===void 0&&n.extensions===void 0?void 0:i?{...e.extensions,...n.extensions}:{...n.extensions,...e.extensions},f=lt({...s,createdAt:c,serverTime:l,extensions:g}),E=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":lf(e.status,n.status),I=E==="failed"?n.failure??e.failure:void 0,D=Rc(e.reactions,n.reactions,t),w=e.encryption.decryptFailed===true,v=n.encryption.decryptFailed===true,b=s.contentType,U=s.body,G=s.encryption,O=s.mention;w&&!v?(b=n.contentType,U=n.body,G=n.encryption,O=n.mention):!w&&v&&(b=e.contentType,U=e.body,G=e.encryption,O=e.mention),n.edited===true&&!v&&(b=n.contentType,U=n.body,G=n.encryption,O=n.mention);let J=e.body.voice?.waveform??n.body.voice?.waveform;if(U.voice!==void 0&&U.voice.waveform===void 0&&J!==void 0&&(U={...U,voice:{...U.voice,waveform:J}}),U.video!==void 0&&U.video.size===void 0){let ee=U.video,se=[e.body.video,n.body.video].find(he=>he?.sizeUnit==="bytes"&&he.size!==void 0&&he.url===ee.url&&he.fileEncryptType===ee.fileEncryptType&&he.md5===ee.md5&&ut(he.teaKey,ee.teaKey)&&(ee.unverifiedFileLength===void 0||ee.unverifiedFileLength===String(he.size)));se!==void 0&&(U={...U,video:{...ee,size:se.size,sizeUnit:"bytes"}});}let me=e.edited===true||n.edited===true,x=e.deletedForEveryone??n.deletedForEveryone;if(x!==void 0){let ee={...s,...a?{readBySelf:true}:{},id:e.id,createdAt:c,serverTime:l>0?l:void 0,status:E,failure:I,receipt:va(e.receipt,n.receipt),sortKey:f,extensions:g,recalled:void 0,deletedForEveryone:x,body:{},encryption:s.encryption};return delete ee.reactions,ee}let z=e.recalled??n.recalled;if(z!==void 0){let ee={...s,...a?{readBySelf:true}:{},id:e.id,createdAt:c,serverTime:l>0?l:void 0,status:E,failure:I,receipt:va(e.receipt,n.receipt),sortKey:f,extensions:g,recalled:z,body:{},encryption:s.encryption};return delete ee.reactions,ee}let ne={...s,...a?{readBySelf:true}:{},id:e.id,createdAt:c,serverTime:l>0?l:void 0,status:E,failure:I,receipt:va(e.receipt,n.receipt),sortKey:f,extensions:g,contentType:b,body:U,encryption:G,...D===void 0?{}:{reactions:D},...me?{edited:true}:{}};return O!==void 0?ne.mention=O:delete ne.mention,ne}function NS(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 Mt(e,n=""){let t=new Map;for(let r of e){let o=JSON.stringify([ue(r),r.id]),i=t.get(o);t.set(o,i===void 0?r:hr(i,r,n));}return [...t.values()]}function DS(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function _S(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 GS(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&&LS(e.targetUserIds,n.targetUserIds)&&Ac(e.payload,n.payload)&&Ac(e.action,n.action)&&Ac(e.pinnedMessageAction,n.pinnedMessageAction)}function cf(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&&ut(e.teaKey,n.teaKey)}function US(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 kS(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&&ut(e.thumbData,n.thumbData)}function wS(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function xS(e,n){return e===void 0||n===void 0?e===n:JSON.stringify(e.modules)===JSON.stringify(n.modules)&&JSON.stringify(e.commands)===JSON.stringify(n.commands)}function BS(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&&e.gamePreviewUrl===n.gamePreviewUrl&&e.gamePreviewWidth===n.gamePreviewWidth&&e.gamePreviewHeight===n.gamePreviewHeight}function PS(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 FS(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 OS(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.giftType===n.giftType&&e.giftName===n.giftName&&e.giftIcon===n.giftIcon&&e.explain===n.explain&&e.state===n.state&&e.serialNumber===n.serialNumber&&e.sessionType===n.sessionType&&e.initiateTime===n.initiateTime&&e.amount===n.amount&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.zhangCount===n.zhangCount&&e.benCount===n.benCount&&e.fissionNumber===n.fissionNumber}function VS(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 KS(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function LS(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Ac(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function ZS(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:_S(e.atUsersName,n.atUsersName)}function ut(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function QS(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&ut(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&ut(e.teaKey,n.teaKey)}function WS(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&&e.durationUnit===n.durationUnit&&e.sizeUnit===n.sizeUnit&&e.unverifiedFileLength===n.unverifiedFileLength&&ut(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&ut(e.teaKey,n.teaKey)}function HS(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&&ut(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function JS(e,n){return e.kind===n.kind&&e.url===n.url&&e.width===n.width&&e.height===n.height&&e.durationMs===n.durationMs&&e.thumbUrl===n.thumbUrl&&ut(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&ut(e.teaKey,n.teaKey)&&e.hd===n.hd}function YS(e,n){return e===void 0||n===void 0?e===n:e.caption!==n.caption||e.items.length!==n.items.length?false:e.items.every((t,r)=>JS(t,n.items[r]))}function tr(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&&GS(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.readBySelf===n.readBySelf&&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??"")&&NS(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&ZS(e.mention,n.mention)&&QS(e.body.image,n.body.image)&&WS(e.body.video,n.body.video)&&HS(e.body.voice,n.body.voice)&&cf(e.body.file,n.body.file)&&(e.body.filesAlbum===void 0||n.body.filesAlbum===void 0?e.body.filesAlbum===n.body.filesAlbum:e.body.filesAlbum.caption===n.body.filesAlbum.caption&&e.body.filesAlbum.items.length===n.body.filesAlbum.items.length&&e.body.filesAlbum.items.every((t,r)=>cf(t,n.body.filesAlbum.items[r])))&&kS(e.body.sticker,n.body.sticker)&&US(e.body.contact,n.body.contact)&&BS(e.body.miniProgram,n.body.miniProgram)&&xS(e.body.robot,n.body.robot)&&wS(e.body.game,n.body.game)&&FS(e.body.transfer,n.body.transfer)&&OS(e.body.gift,n.body.gift)&&PS(e.body.call,n.body.call)&&VS(e.body.redPacket,n.body.redPacket)&&YS(e.body.mediaAlbum,n.body.mediaAlbum)&&KS(e.body.unknown,n.body.unknown)&&DS(e.failure,n.failure)}var XS=20;function Ft(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(Gn(r)?r.replace(/-/g,""):r);}return [...n]}function Ot(e,n){let t=n===void 0?void 0:Ft(n),r=new Set(e),o=new Set;for(let i of e){if(i==="")continue;let s=be(i);if(t!==void 0){let a=t.filter(l=>be(l)===s);if(a.length===0||!a.every(l=>r.has(l)))continue}o.add(s);}return [...o]}var uf=2;function zS(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function Ho(e){let n=Ir.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:zS(n.action)}}function Jo(e,n){let t=Ho(e.sContent),r=e.sFromId.toString();return {id:be(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:be(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function Yo(e){let n=Ho(e.sContent);return {id:be(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:be(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Mc(e){let n=Ho(e.sContent);return {id:be(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:be(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Ec(e){if(e.eventType===uf)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=Ho(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function vc(e){let n=Ho(e.sContent);return {id:be(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:be(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Rr(e,n,t){return n===e?t:n}var qS=102,gf=1,jS=2;function Tc(e,n){let t=be(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,s=i?String(e.sGroupId):Rr(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:Be(a,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function bc(e){let n=be(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:Be(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function Nc(e){let n=be(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:Be(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function Dc(e){let n=be(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:Be(r,n),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0},extensions:{...e.sIndex===""?{}:{historyCursor:e.sIndex},...e.sIncrId===0n?{}:{channelSequence:e.sIncrId.toString()}}};if(e.uOperationType===1)return {...o,deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}};if(e.uOperationType===2)return {...o,recalled:{by:t,at:r}};throw new Error(`CHANNEL \u5386\u53F2\u5220\u9664\u7C7B\u578B\u975E\u6CD5\uFF1A${e.uOperationType}`)}function Xo(e,n){if(n.contentType!==qS||n.type!==gf&&n.type!==jS||!Gn(n.content))return null;let t=be(n.content),r=n.oprUserId>0n?n.oprUserId.toString():e.senderId.toString(),o=Number(e.msgTime),i={id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:r,contentType:"text",body:{},createdAt:o,sortKey:Be(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===gf?{...i,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...i,recalled:{by:r,at:o}}}var $S=Ee.create({contentType:1,content:""}),eh=101;function mf(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 nh(e){return la.encode(la.create({sUserId:zo(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:zo(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function ff(e){return ua.encode(ua.create({sUserId:zo(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:zo(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function th(e){return ff({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function rh(e,n,t){let r=rc.decode(e);_c(r.errcode,"sessions");let o=ba(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let s=i.sChnnId.toString();Na(s,o,"sessions");let a=mf(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 l=Ta(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);l!==null&&(a.last=l);}return a})}}function pf(e,n,t){let r=xo.decode(e);_c(r.errcode,"offlineMessages");let o=ba(n.expectedChannelIds),i={},s={},a=[];for(let l of r.lsMessage){let c=l.sChnnId.toString();Na(c,o,"offlineMessages"),i[c]=l.sIndex,s[c]=(s[c]??0)+1;let g=Ta(l,n,t);g!==null&&a.push(g);}return {messages:Mt(a,n.selfId).sort(an),batchSize:r.lsMessage.length,messageCounts:s,nextBaseIndexes:i}}async function oh(e,n,t,r){Rn(r.signal);let o=xo.decode(e);_c(o.errcode,"offlineMessages");let i=ba(n.expectedChannelIds),s={},a={},l=[],c=0;for(let f of o.lsMessage){Rn(r.signal),c>0&&c%5===0&&(await r.yieldToEventLoop(),Rn(r.signal));let C=f.sChnnId.toString();Na(C,i,"offlineMessages"),s[C]=f.sIndex,a[C]=(a[C]??0)+1;let E=Ta(f,n,t);E!==null&&l.push(E),c+=1;}Rn(r.signal);let g=o.lsMessage[0]?.sIndex;return {messages:Mt(l,n.selfId).sort(an),batchSize:o.lsMessage.length,messageCounts:a,nextBaseIndexes:s,firstBaseIndex:g}}function yf(e,n,t,r="specificMsgs"){let o=ba(n.expectedChannelIds),i=[];for(let s of e){let a=s.sChnnId.toString();Na(a,o,r);let l=Ta(s,n,t);l!==null&&i.push(l);}return Mt(i,n.selfId).sort(an)}function ih(e){return ga.encode(ga.create({sUserId:BigInt(e.userId),sChnnId:zo(e.channelId,"channel"),lsMsgId:Ft(e.messageIds),clientType:e.clientType??0}))}function sh(e,n,t,r){let o=oc.decode(e);return {messages:yf(o.lsMessage,n,t,"msg/by_id"),missingMessageIds:Ot(o.lsMissingMsgId,r),code:o.errcode}}function ah(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=xo.decode(e),o=pf(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 Ta(e,n,t){if(Ec(e)){try{n.onReaction?.(vc(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 Dc(e);let r=$S,o=false;if(e.encrypt===0)try{r=Ee.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}),nf(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?.(Et(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let a;try{if(a=We.decode(e.sContent),a.secretKey.length===0||a.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(l){o=true,t.onDecryptError?.(Et(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:l})),a=We.create();}if(!o){let l;try{l=t.crypto.decryptEndToEnd({secretKey:a.secretKey,cipherData:a.cipherData,privateKey:s});}catch(c){o=true,t.onDecryptError?.(Et(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,cause:c})),l=new Uint8Array;}if(!o)try{r=Ee.decode(l);}catch(c){o=true,t.onDecryptError?.(Et(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,decryptedByteLength:l.length,cause:c}));}}}}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?.(Et(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:a?.length??0,keySource:a===null?"miss":"cache"}));else {let l;try{let c=We.decode(e.sContent);if(c.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");l=c.cipherData;}catch(c){o=true,t.onDecryptError?.(Et(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:a.length,keySource:"cache",cause:c})),l=new Uint8Array;}if(!o){let c;try{c=t.crypto.decryptSymmetric({teaKey:a,cipherData:l});}catch(g){o=true,t.onDecryptError?.(Et(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:l.length,cause:g})),c=new Uint8Array;}if(!o)try{r=Ee.decode(c);}catch(g){o=true,t.onDecryptError?.(Et(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:l.length,decryptedByteLength:c.length,cause:g}));}}}}else o=true,t?.onDecryptError?.(Et(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let s=Xo({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(s!==null)return s}if(!o&&r.contentType===eh)return Zo({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=pc(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 Et(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 ba(e){return e===void 0?void 0:new Set(e)}function Na(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 zo(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function dh(e,n,t){let r=qn(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var Da="system",ch=32768;function If(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 Gc(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Bt(e):Bt({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function lh(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 qo(e,n){let t=be(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(E=>E.toString()),a={eventType:If(e.notifyType),rawNotifyType:e.notifyType},l=Number(e.errcode);l!==0&&(a.errcode=l),i!==void 0&&(a.operatorId=i),s.length>0&&(a.targetUserIds=s);let c=e.notifyType===12,g=e.notifyType===13;!c&&!g&&e.sContent!==""&&(a.fallbackText=e.sContent);let f=c||g?void 0:lh(e.sContent);if(f!==void 0&&(a.payload=f),c)try{a.pinnedMessageAction={type:"pin",pinnedMessage:Aa(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(E){a.pinnedMessageAction={type:"invalid",code:Lo(E)};}else g&&(a.pinnedMessageAction={type:"unpin"});let C={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:Da,contentType:"system",body:{system:a},createdAt:o,sortKey:Be(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(C.serverTime=r),n.keepRaw&&(C.raw={cmdId:n.cmdId}),Gc(C)}function Uc(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!==ch?null:{state:"active",reason:""}}default:return null}}function kc(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var uh=["unavailable","load-failed","messageerror","crashed","timeout","queue-full","disposed","protocol-mismatch"],gt=class extends Error{constructor(t){super(`IM crypto execution failed: ${t}`);this.reason=t;this.name="CryptoExecutionError";}reason;code="IM_SDK_CRYPTO_EXECUTION_FAILED"};function mt(e){if(e===null||typeof e!="object")return false;let n=e;return n.code==="IM_SDK_CRYPTO_EXECUTION_FAILED"&&typeof n.reason=="string"&&uh.includes(n.reason)}var Ar=class extends Error{status;path;constructor(n){super(`CmHttp.postProtobuf \u5931\u8D25\uFF1Apath=${n.path} status=${n.status} ${n.statusText}`),this.name="ImHttpRequestError",this.status=n.status,this.path=n.path;}};function Cf(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||t.maxIdleMs!==void 0&&(!Number.isSafeInteger(t.maxIdleMs)||t.maxIdleMs<=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 jo(e,n){let t=n===void 0?e:JSON.stringify([n.conversation.conversationType,n.conversation.conversationId,n.itemIndex??null,e]),r=2166136261,o=2654435761;for(let i=0;i<t.length;i+=1){let s=t.charCodeAt(i);r=Math.imul(r^s,16777619),o=Math.imul(o^s,2246822507);}return `${n===void 0?"":"v2:"}${(r>>>0).toString(16).padStart(8,"0")}${(o>>>0).toString(16).padStart(8,"0")}`}function _a(e,n){let t=[],r=0,o=new Set,i=0,s=async()=>{if(t.length===0)return;e.assertCurrent();let a=await e.executor.decryptBatch({operationId:`${e.operationId}:${i++}`,generation:e.generation,items:t,priority:e.priority,signal:e.signal});e.assertCurrent();let l=new Set(t.map(c=>c.itemIndex));if(!Array.isArray(a)||a.length!==l.size)throw new gt("protocol-mismatch");for(let c of a){if(c===null||typeof c!="object"||!l.delete(c.itemIndex))throw new gt("protocol-mismatch");let g=c.result;if(!(g?.ok===true&&g.plain instanceof Uint8Array)&&!(g?.ok===false&&(g.stage==="rsa"||g.stage==="tea")))throw new gt("protocol-mismatch")}for(let{itemIndex:c,result:g}of a)n(c,g.ok?{kind:"plain",plain:g.plain}:{kind:"failed",cause:Object.assign(new Error("IM end-to-end decryption failed"),{name:"CryptoComputationError",stage:g.stage})});t=[],r=0,o.clear();};return {async add(a){let l=a.input.secretKey.byteLength+a.input.cipherData.byteLength,c=o.has(a.input.privateKey)?0:a.input.privateKey.length*2;t.length>0&&(t.length===8||r+l+c>256*1024)&&await s(),r+=l+(o.has(a.input.privateKey)?0:a.input.privateKey.length*2),o.add(a.input.privateKey),t.push(a),(t.length===8||r>=256*1024)&&await s();},finish:s}}var Ga=new Set([8196,8976]),Sf=Ee.create({contentType:1,content:""});function mh(e){return ra.encode(ra.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function fh(e){return na.encode(na.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function ph(e,n,t,r){let o=r===void 0?t.resolvePrivateKey({groupId:n,msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion}):null;if(r?.kind==="no-key"||r===void 0&&o===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{if(r?.kind==="plain")return Ee.decode(r.plain);if(r?.kind==="failed")throw r.cause;let i=We.decode(e.sContent);if(i.secretKey.length===0||i.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${i.secretKey.length}B cipherData=${i.cipherData.length}B`);let s=t.crypto.decryptEndToEnd({secretKey:i.secretKey,cipherData:i.cipherData,privateKey:o});return Ee.decode(s)}catch(i){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:i}),null}}function Mr(e,n,t,r){if(Vt(e.sGroupId,n.expectedGroupId),e.cmdId===8980){let c=r?.chat??ot.decode(e.sMsgData),g={...c,sMsgId:c.sMsgId||e.sMsgId,sFromId:c.sFromId===0n?e.sFromId:c.sFromId,sGrpId:c.sGrpId===0n?e.sGroupId:c.sGrpId,sToId:c.sToId===0n?e.sGroupId:c.sToId,msgTime:c.msgTime===0n?e.msgTime:c.msgTime,parentMsgId:c.parentMsgId||e.parentMsgId};return Vt(g.sGrpId,n.expectedGroupId),n.onReaction?.(Yo(g)),null}if(e.cmdId===8708){let c=r?.notify??er.decode(e.sMsgData);return Vt(c.sGrpId,n.expectedGroupId),qo(c,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw})}if(!Ga.has(e.cmdId))return null;let o=r?.chat??ot.decode(e.sMsgData);Vt(o.sGrpId,n.expectedGroupId);let i=Sf,s=false,a=false;if(o.encrypt===0)try{i=Ee.decode(o.sContent);}catch{a=true;}else if(o.encrypt===1&&t!==void 0){let c=ph(o,o.sGrpId.toString(),t,r?.content);i=c??Sf,s=c===null;}else s=true;let l=xt(o,i,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:s});return a&&(l.contentType="unknown",l.body={unknown:{reason:"malformed-content"}},l.raw={...l.raw,contentDecodeFailure:{codec:"BMessage",byteLength:o.sContent.length}}),s&&o.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:l.conversationId},messageId:l.id,wireEncrypt:1,sContent:o.sContent.slice(),...o.encryptVersion===""?{}:{encryptVersion:o.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),l.refMessageId===void 0&&e.parentMsgId&&(l.refMessageId=be(e.parentMsgId)),e.isEdit===1&&(l.edited=true),l}function Vt(e,n){if(n!==void 0&&e.toString()!==n)throw new Error(`group history: \u54CD\u5E94\u7FA4\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\uFF08groupId=${e}\uFF09`)}function mn(e,n){Rn(e.signal),e.assertCurrent?.(n===void 0?void 0:{conversationType:"group",conversationId:n});}async function wc(e){mn(e),await e.yieldToEventLoop(),mn(e);}function yh(e,n){if(Vt(e.sGroupId,n),(Ga.has(e.cmdId)||e.cmdId===8980||e.cmdId===8708)&&e.sGroupId<=0n)throw new Error("group response: \u6D88\u606F\u7F3A\u5C11\u6709\u6548\u7FA4\u8EAB\u4EFD");let r={...e.sGroupId>0n?{groupId:e.sGroupId.toString()}:{}};if(Ga.has(e.cmdId)||e.cmdId===8980){r.chat=ot.decode(e.sMsgData);let o=e.cmdId===8980&&r.chat.sGrpId===0n?e.sGroupId:r.chat.sGrpId;Vt(o,r.groupId);}else e.cmdId===8708&&(r.notify=er.decode(e.sMsgData),Vt(r.notify.sGrpId,r.groupId));return r}async function Ih(e,n,t,r=[],o=true){let i=new Map,s=new Map,a=new Set(r);for(let c of r)mn(t,c);for(let[c,{item:g,expectedGroupId:f}]of e.entries()){mn(t),c>0&&c%5===0&&await wc(t);let C;try{C=yh(g,f);}catch(E){if(!o)throw E;s.set(c,E);continue}mn(t,C.groupId),i.set(c,C),C.groupId!==void 0&&(C.chat!==void 0||C.notify!==void 0)&&a.add(C.groupId);}mn(t),n!==void 0&&a.size>0&&t.prepareKeys!==void 0&&(await t.prepareKeys([...a]),mn(t));let l=_a({...t,assertCurrent:()=>mn(t)},(c,g)=>{i.get(c).content=g;});for(let[c,{item:g}]of e.entries()){mn(t),c>0&&c%5===0&&await wc(t);let f=i.get(c);if(f===void 0)continue;mn(t,f.groupId);let C=f.chat;if(!Ga.has(g.cmdId)||C?.encrypt!==1||n===void 0)continue;let E;try{let I=n.resolvePrivateKey({groupId:f.groupId,msgType:C.msgType,encrypt:C.encrypt,encryptVersion:C.encryptVersion});if(I===null)f.content={kind:"no-key"};else try{let D=We.decode(C.sContent);if(D.secretKey.length===0||D.cipherData.length===0)throw new Error("BContent secretKey/cipherData missing");E={itemIndex:c,input:{secretKey:D.secretKey,cipherData:D.cipherData,privateKey:I}};}catch(D){f.content={kind:"failed",cause:D};}}catch(I){if(mt(I)||I instanceof Error&&I.name==="AbortError")throw I;s.set(c,I);}E!==void 0&&await l.add(E),mn(t,f.groupId);}return await l.finish(),mn(t),{rows:i,errors:s}}async function Ua(e,n,t,r,o,i=[],s=false){let a=await Ih(e,t,r,i,o),l=[],c=[],g=[];for(let[f,{item:C,expectedGroupId:E}]of e.entries()){mn(r),f>0&&f%5===0&&await wc(r);let I=a.rows.get(f);mn(r,I?.groupId);try{if(a.errors.has(f))throw a.errors.get(f);let D=Mr(C,{...n,expectedGroupId:E},t,I);D!==null&&(s&&C.isCancel===1&&(D.recalled={by:D.senderId,at:D.serverTime??D.createdAt},D.body={}),l.push(D)),c.push({msgId:C.sMsgId,msgTime:C.msgTime,cmdId:C.cmdId});}catch(D){if(!o||mt(D)||D instanceof Error&&D.name==="AbortError")throw D;g.push({msgId:C.sMsgId,cmdId:C.cmdId,cause:D});}mn(r,I?.groupId);}return mn(r),{messages:l,deliveredMsgInfos:c,...g.length===0?{}:{itemErrors:g}}}async function Ch(e,n,t,r){mn(r);let o=oa.decode(e);return {...await Ua(o.msgList.map(s=>({item:s,expectedGroupId:n.expectedGroupId})),n,t,r,true),batchSize:o.msgList.length,responseBytes:e.length}}function Sh(e,n,t){let r=oa.decode(e),o=[],i=[],s=[];for(let a of r.msgList)try{let l=Mr(a,n,t);l!==null&&o.push(l),i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});}catch(l){s.push({msgId:a.sMsgId,cmdId:a.cmdId,cause:l});}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length,...s.length===0?{}:{itemErrors:s}}}function hh(e,n,t){let r=ta.decode(e),o=[],i=[],s=[];for(let a of r.sessionList){o.push({groupId:a.groupId.toString(),unreadCount:Number(a.unreadCount)});for(let l of a.msgList)try{let c=Mr(l,n,t);c!==null&&i.push(c);}catch(c){s.push({msgId:l.sMsgId,cmdId:l.cmdId,cause:c});}}return {unreads:o,messages:i,...s.length===0?{}:{itemErrors:s}}}async function Rh(e,n,t,r){mn(r);let o=ta.decode(e),i=[],s=[];for(let c of o.sessionList){Vt(c.groupId,n.expectedGroupId);let g=c.groupId.toString();mn(r,g),i.push({groupId:g,unreadCount:Number(c.unreadCount)}),s.push(...c.msgList.map(f=>({item:f,expectedGroupId:g})));}let{messages:a,itemErrors:l}=await Ua(s,n,t,r,true,i.map(c=>c.groupId));return {unreads:i,messages:a,...l===void 0?{}:{itemErrors:l}}}function Ah(e){return ia.encode(ia.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),baseTime:BigInt(e.baseTime),direct:e.direct??1,limit:e.limit??50,clientType:e.clientType??0}))}function Mh(e,n,t){let r=sa.decode(e),o=[];for(let s of r.msgList){let a=Mr(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)}}}async function Eh(e,n,t,r,o){Rn(r.signal);let i=sa.decode(e);if(i.code!==200)throw new Error(`group history: code=${i.code}`);if(o!==void 0){let g={...o,assertCurrent:I=>{Rn(r.signal),o.assertCurrent?.(I);}},{messages:f}=await Ua(i.msgList.map(I=>({item:I,expectedGroupId:n.expectedGroupId})),n,t,g,false),C,E;for(let I of i.msgList){let D=Number(I.msgTime);C=C===void 0?D:Math.min(C,D),E=E===void 0?D:Math.max(E,D);}return {messages:f,batchSize:i.msgList.length,...C===void 0?{}:{oldestEntryTime:C,newestEntryTime:E}}}let s=[],a,l,c=0;for(let g of i.msgList){Rn(r.signal),c>0&&c%5===0&&(await r.yieldToEventLoop(),Rn(r.signal));let f=Mr(g,n,t);f!==null&&s.push(f);let C=Number(g.msgTime);a=a===void 0?C:Math.min(a,C),l=l===void 0?C:Math.max(l,C),c+=1;}return Rn(r.signal),{messages:s,batchSize:i.msgList.length,...a===void 0?{}:{oldestEntryTime:a,newestEntryTime:l}}}function vh(e){return aa.encode(aa.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:Ft(e.messageIds),clientType:e.clientType??0}))}function Th(e,n,t,r){let o=da.decode(e),i=[];for(let s of o.msgList){let a=Mr(s,n,t);a!==null&&(s.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),i.push(a));}return {messages:i,missingMessageIds:Ot(o.missingMsgIds,r),code:o.code}}async function bh(e,n,t,r,o){mn(o);let i=da.decode(e),s=Ot(i.missingMsgIds,r);if(i.code!==200)return {messages:[],missingMessageIds:s,code:i.code};let{messages:a}=await Ua(i.msgList.map(l=>({item:l,expectedGroupId:n.expectedGroupId})),n,t,o,false,[],true);return {messages:a,missingMessageIds:s,code:i.code}}function Nh(e){return ca.encode(ca.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function Dh(e){return {code:tc.decode(e).code}}var _h=1;function Er(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),s=be(e.sMsgId),a=qn(n,t.selfId),l=i>0?i:t.receivedAt??Date.now(),c={id:s,conversationId:Rr(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:a.contentType,body:a.body,createdAt:l,sortKey:Be(l,s),status:"sent",receipt:"unread",...t.readBySelf===true?{readBySelf:true}:{},encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(c.encryption.decryptFailed=true),i>0&&(c.serverTime=i),e.parentMsgId&&(c.refMessageId=be(e.parentMsgId)),t.edited===true&&(c.edited=true),t.keepRaw&&(c.raw=Gh(e,n,t.cmdId)),c}function Gh(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 $o(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:we(e.id),msgType:_h,encrypt:e.encryption.encrypted?1:0,bMessage:On(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:Un(e.refMessageId)}:{}}}function xc(e){return {id:be(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function ka(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 Uh(e){return qs.encode(qs.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var Bc=new Set([4100,4113,4644,4645]),hf=Ee.create({contentType:1,content:""});function kh(e,n,t){let r=t===void 0?n.resolvePrivateKey({msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion}):t.kind==="no-key"?null:"";if(r===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{if(t?.kind==="failed")throw t.cause;if(t?.kind==="plain")return Ee.decode(t.plain);let o=We.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=n.crypto.decryptEndToEnd({secretKey:o.secretKey,cipherData:o.cipherData,privateKey:r});return Ee.decode(i)}catch(o){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:o}),null}}function Fc(e){if(e.itemErrors!==void 0&&e.itemErrors.length>0)throw new AggregateError(e.itemErrors.map(n=>n.cause),`\u79BB\u7EBF\u6279\u6B21\u5305\u542B\u65E0\u6CD5\u5904\u7406\u7684\u6D88\u606F\uFF1A${e.itemErrors.map(n=>`${n.msgId}(cmd=${n.cmdId})`).join(", ")}`)}function wh(e,n,t){let r=js.decode(e),o=[],i=[],s=[];for(let a of r.msgList)try{let l=wa(a,n,t);l!==null&&o.push(l),i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});}catch(l){s.push({msgId:a.sMsgId,cmdId:a.cmdId,cause:l});}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length,...s.length===0?{}:{itemErrors:s}}}function xh(e,n){if(e[0]!==8)return null;try{let t=Ee.decode(e);if(t.$unknown!==void 0&&t.$unknown.length>0)return null;let r=Ee.encode(t);if(r.length!==e.length||!r.every((i,s)=>i===e[s])||r.length===Ee.encode(Ee.create({contentType:t.contentType})).length)return null;let o=qn(t,n);return o.contentType==="unknown"||o.contentType==="text"&&t.content.trim()===""?null:t}catch{return null}}function Pc(e){let n=jt.decode(e.sMsgData);return e.cmdId!==4653?n:{...n,sMsgId:n.sMsgId||e.sMsgId,sFromId:n.sFromId===0n?e.sFromId:n.sFromId,sToId:n.sToId===0n?e.sToId:n.sToId,msgTime:n.msgTime===0n?e.msgTime:n.msgTime,parentMsgId:n.parentMsgId||e.parentMsgId}}function wa(e,n,t,r=false,o){if(e.cmdId===4653){let g=o?.chat??Pc(e);return n.onReaction?.(Jo(g,n.selfId)),null}if(!Bc.has(e.cmdId))return null;let i=o?.chat??Pc(e),s=hf,a=false,l=false;if(i.encrypt===0)try{s=Ee.decode(i.sContent);}catch{l=true;}else if(i.encrypt===1&&t!==void 0){if(o!==void 0&&o.content===void 0)throw new gt("protocol-mismatch");let g=kh(i,t,o?.content);s=g??hf,a=g===null;}else a=true;if(a&&i.encrypt===1&&r){let g=xh(i.sContent,n.selfId);g!==null&&(s=g,a=false,n.onPlaintextFallback?.({msgId:i.sMsgId,fromId:String(i.sFromId),toId:String(i.sToId),contentType:s.contentType}));}let c=Er(i,s,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:a,...e.isRead===1?{readBySelf:true}:{}});return l&&(c.contentType="unknown",c.body={unknown:{reason:"malformed-content"}},c.raw={...c.raw,contentDecodeFailure:{codec:"BMessage",byteLength:i.sContent.length}}),a&&i.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:c.conversationId},messageId:c.id,wireEncrypt:1,sContent:i.sContent.slice(),...i.encryptVersion===""?{}:{encryptVersion:i.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),c.refMessageId===void 0&&e.parentMsgId&&(c.refMessageId=be(e.parentMsgId)),e.isCancel===1&&(c.recalled={by:c.senderId,at:c.serverTime??c.createdAt},c.body={}),e.isEdit===1&&(c.edited=true),c}function Bh(e){return $s.encode($s.create({userId:BigInt(e.userId),msgIds:Ft(e.messageIds),clientType:e.clientType??0}))}function Ph(e,n,t,r){let o=ea.decode(e),i=[];for(let s of o.msgList){let a=wa(s,n,t,true);a!==null&&i.push(a);}return {messages:i,missingMessageIds:Ot(o.missingMsgIds,r),code:o.code}}function fn(e,n,t){Rn(e.signal),e.assertCurrent?.(n===void 0||t===void 0?void 0:{conversationType:"direct",conversationId:Rr(t,String(n.sFromId),String(n.sToId))});}async function Oc(e){fn(e),await e.yieldToEventLoop(),fn(e);}async function Rf(e,n,t,r){let o=new Map,i=new Map,s=_a({...r,assertCurrent:()=>fn(r)},(a,l)=>{o.get(a).content=l;});for(let[a,l]of e.entries()){if(fn(r),a>0&&a%5===0&&await Oc(r),!Bc.has(l.cmdId)&&l.cmdId!==4653)continue;let c,g;try{g=Pc(l);}catch(C){i.set(a,C);continue}fn(r,g,n.selfId);let f={chat:g};if(o.set(a,f),Bc.has(l.cmdId)&&g.encrypt===1&&t!==void 0)try{let C=t.resolvePrivateKey({msgType:g.msgType,encrypt:g.encrypt,encryptVersion:g.encryptVersion});if(C===null)f.content={kind:"no-key"};else try{let E=We.decode(g.sContent);if(E.secretKey.length===0||E.cipherData.length===0)throw new Error("BContent secretKey/cipherData missing");c={itemIndex:a,input:{secretKey:E.secretKey,cipherData:E.cipherData,privateKey:C}};}catch(E){f.content={kind:"failed",cause:E};}}catch(C){if(mt(C)||C instanceof Error&&C.name==="AbortError")throw C;i.set(a,C);}c!==void 0&&await s.add(c);}return await s.finish(),fn(r),{rows:o,errors:i}}async function Fh(e,n,t,r){fn(r);let o=js.decode(e),i=await Rf(o.msgList,n,t,r);fn(r);let s=[],a=[],l=[];for(let[c,g]of o.msgList.entries()){fn(r),c>0&&c%5===0&&await Oc(r);let f=i.rows.get(c);fn(r,f?.chat,n.selfId);try{if(i.errors.has(c))throw i.errors.get(c);let C=wa(g,n,t,!1,f);C!==null&&s.push(C),a.push({msgId:g.sMsgId,msgTime:g.msgTime,cmdId:g.cmdId});}catch(C){if(mt(C)||C instanceof Error&&C.name==="AbortError")throw C;l.push({msgId:g.sMsgId,cmdId:g.cmdId,cause:C});}fn(r,f?.chat,n.selfId);}return fn(r),{messages:s,deliveredMsgInfos:a,batchSize:o.msgList.length,responseBytes:e.length,...l.length===0?{}:{itemErrors:l}}}async function Oh(e,n,t,r,o){fn(o);let i=ea.decode(e),s=await Rf(i.msgList,n,t,o);fn(o);let a=[];for(let[l,c]of i.msgList.entries()){fn(o),l>0&&l%5===0&&await Oc(o);let g=s.rows.get(l);if(fn(o,g?.chat,n.selfId),s.errors.has(l))throw s.errors.get(l);let f=wa(c,n,t,true,g);f!==null&&a.push(f),fn(o,g?.chat,n.selfId);}return fn(o),{messages:a,missingMessageIds:Ot(i.missingMsgIds,r),code:i.code}}function jn(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 Af(e,n){for(let t of n){let r=e[t];if(typeof r=="string"){let o=r.trim();if(o!=="")return o}if(typeof r=="number"&&Number.isFinite(r))return String(r)}}function vr(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 Vh(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 Kh(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 Lh(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 Zh=["user_id","userId","id","uid"],Qh=["nick_name","nickName","nickname","name"],Wh=["remark_name","remarkName"],Hh=["contact_name","contactName"],Jh=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],Yh=["per_signature","signature","sign"],Xh=["mid"],zh=["birthday"],qh=["public_key","publicKey"],Mf=["is_undisturb","isUndisturb"];function jh(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=jn(t,Zh);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:jn(t,Qh)??""},i=Af(e,Wh)??Af(e,Hh);i!==void 0&&(o.remark=i);let s=jn(t,Jh);s!==void 0&&(o.avatar=s);let a=jn(t,Yh);a!==void 0&&(o.signature=a);let l=jn(t,Xh);l!==void 0&&(o.miCallId=l);let c=jn(t,zh);if(c!==void 0){o.birthday=c;let I=Vh(c);I!==void 0&&(o.age=I);}let g=Kh(e);g.length>0&&(o.remarkEmail=g);let f=Lh(e);f.length>0&&(o.remarkPhones=f);let C=jn(t,qh);C!==void 0&&(o.publicKey=C);let E=vr(e,Mf);return E!==void 0&&(o.muted=E===1),o}var $h=["group_id","groupId","id","gid"],eR=["group_name","groupName","name"],nR=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],tR=["total_users","member_count","memberCount","member_num","memberNum"],rR=["status"],oR=["is_ingroup","isInGroup","isIngroup"],iR=["user_id","userId","owner_id","ownerId","master_id","masterId"],sR=["verify_way","verifyWay"],aR=["invite_code","inviteCode"];function dR(e){let n=jn(e,$h);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:jn(e,eR)??""},r=jn(e,nR);r!==void 0&&(t.avatar=r);let o=vr(e,tR);o!==void 0&&(t.memberCount=o);let i=vr(e,rR);i!==void 0&&(t.status=i);let s=vr(e,oR);s!==void 0&&(t.isInGroup=s===1);let a=jn(e,iR);a!==void 0&&(t.ownerId=a);let l=vr(e,sR);l!==void 0&&(t.verifyWay=l);let c=jn(e,aR);c!==void 0&&(t.inviteCode=c);let g=e.to_user;if(g!==null&&typeof g=="object"){let f=vr(g,Mf);f!==void 0&&(t.muted=f===1);}return t}function Vc(e,n){if(e.robotId.trim()==="")throw new Error("robot reply: robotId \u7F3A\u5931");if(e.userId<=0n)throw new Error("robot reply: userId \u7F3A\u5931\u6216\u975E\u6CD5");return Ef(e,vf(e.content),n)}function cR(e,n){if(e.content.byteLength===0)return;let t=e.robotId.trim();if(t==="")throw new Error("robot fixed reply: robotId \u7F3A\u5931");let r=e.userId.trim();if(!/^[1-9]\d*$/.test(r))throw new Error("robot fixed reply: userId \u7F3A\u5931\u6216\u975E\u6CD5");let o=e.msgId.trim();if(o==="")throw new Error("robot fixed reply: sMsgId \u7F3A\u5931");let i;try{i=Ee.decode(e.content);}catch(s){let a=s instanceof Error?s.message:String(s);throw new Error(`robot fixed reply: sContent \u4E0D\u662F BMessage\uFF08${a}\uFF09`)}return Ef({robotId:t,userId:BigInt(r),sMsgId:o,msgTime:e.msgTime},i,n)}function Ef(e,n,t){let r=be(e.sMsgId),o=Number(e.msgTime),i=o>0?o:t.receivedAt??Date.now(),s=qn(n,t.selfId),a={id:r,conversationId:e.robotId,conversationType:"robot",senderId:e.robotId,contentType:s.contentType,body:s.body,createdAt:i,sortKey:Be(i,r),status:"sent",receipt:"unread",encryption:{encrypted:false}};return o>0&&(a.serverTime=o),t.keepRaw&&(a.raw={cmdId:t.cmdId,chat:{sMsgId:e.sMsgId,sFromId:e.robotId,sToId:e.userId.toString(),msgType:11,encrypt:0,msgTime:e.msgTime.toString()},content:{contentType:n.contentType,text:n.content||void 0}}),a}function Kc(e){if(e.msgId.trim()==="")throw new Error("robot ack: msgId \u7F3A\u5931");return {id:be(e.msgId),serverTime:0,errcode:e.errCode}}function Lc(e,n){if(e.encryption.encrypted)throw new Error("robot \u79C1\u804A\u53EA\u8D70\u660E\u6587 JSON\uFF08EncryptType.NONE\uFF09\uFF0C\u7981\u6B62 encrypt=1");if(e.conversationId.trim()==="")throw new Error("robot \u51FA\u7AD9: robotId \u7F3A\u5931");let t=On(e.body);return {userId:BigInt(n.selfId),robotId:e.conversationId,sMsgId:we(e.id),msgTime:BigInt(e.createdAt),content:uR(t,e.refMessageId)}}function vf(e){let n=e.trim();if(n.startsWith("{"))try{let t=JSON.parse(n);if(t!==null&&typeof t=="object"&&!Array.isArray(t))return Ee.create(lR(t))}catch{}try{return Ee.decode(new TextEncoder().encode(e))}catch{return Ee.create({contentType:1,content:e})}}function lR(e){let n=ft(e.contentType)??1,t=typeof e.content=="string"?e.content:"",r=xa(e.md5)??xa(e.MD5),o=ft(e.fileLength);return {contentType:n,content:t,...ft(e.width)!==void 0?{width:ft(e.width)}:{},...ft(e.height)!==void 0?{height:ft(e.height)}:{},...ft(e.duration)!==void 0?{duration:ft(e.duration)}:{},...xa(e.describe)!==void 0?{describe:xa(e.describe)}:{},...r!==void 0?{MD5:r}:{},...ft(e.imageType)!==void 0?{imageType:ft(e.imageType)}:{},...o!==void 0&&o>0?{fileLength:BigInt(Math.round(o))}:{}}}function uR(e,n){let t={contentType:e.contentType,content:e.content};return e.contentType===1&&(t.logicType=0),e.width!==void 0&&(t.width=e.width),e.height!==void 0&&(t.height=e.height),e.duration!==void 0&&(t.duration=e.duration),e.describe!==void 0&&e.describe!==""&&(t.describe=e.describe),e.MD5!==void 0&&e.MD5!==""&&(t.md5=e.MD5),e.imageType!==void 0&&(t.imageType=e.imageType),e.fileLength!==void 0&&e.fileLength>0n&&(t.fileLength=Number(e.fileLength)),n!==void 0&&n!==""&&(t.parentMsgId=Un(n)),JSON.stringify(t)}function ft(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 xa(e){return typeof e=="string"&&e!==""?e:void 0}function gR(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function mR(e,n={}){if(pt(e)){if(e.deletedForEveryone!==void 0)return e.conversationType==="channel"&&n.showChannelModerationDeleted===false?void 0:{kind:"channel-moderation-deleted",by:e.deletedForEveryone.by};if(e.recalled!==void 0)return {kind:"recalled",by:e.recalled.by};if(e.encryption.decryptFailed===true)return {kind:"decrypt-failed"};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==="filesAlbum"&&e.body.filesAlbum!==void 0)return {kind:"filesAlbum",count:e.body.filesAlbum.items.length,...e.body.filesAlbum.caption===void 0?{}:{caption:e.body.filesAlbum.caption}};if(e.contentType==="file")return {kind:"file"};if(e.contentType==="sticker")return {kind:yd(e.body.sticker?.imageType??0)};if(e.contentType==="mediaAlbum"&&e.body.mediaAlbum!==void 0){let t=e.body.mediaAlbum.items,r=e.body.mediaAlbum.caption,o=t[0]?.kind;return {kind:"mediaAlbum",imageCount:t.filter(i=>i.kind==="image").length,videoCount:t.filter(i=>i.kind==="video").length,...r!==void 0&&r.trim()!==""?{caption:r}:{},...o===void 0?{}:{firstItemKind:o}}}if(e.contentType==="contact")return {kind:"contact"};if(e.contentType==="miniProgram")return {kind:"miniProgram"};if(e.contentType==="robot")return {kind:"robot"};if(e.contentType==="transfer")return {kind:"transfer"};if(e.contentType==="gift")return {kind:"gift"};if(e.contentType==="liveRoom"&&e.body.liveRoom!==void 0){let t=e.body.liveRoom,r=t.liveRoomName?.trim()||t.broadcasterUserName?.trim()||"";return r===""?{kind:"liveRoom"}:{kind:"liveRoom",title:r}}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:t,...r}=e.body.system;return {kind:"system",system:r}}if(e.encryption.encrypted)return {kind:"encrypted"}}}function fR(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)&&pR(e.targetUserIds,n.targetUserIds)&&yR(e.payload,n.payload)}function pt(e){return e.body.system?.timelineVisibility!=="hidden"}function pR(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function yR(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function Zc(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 fR(e.system,n.system);case "game":return e.gameType===n.gameType;case "call":return e.callKind===n.callKind;case "liveRoom":return e.title===n.title;case "filesAlbum":{let t=n;return e.count===t.count&&e.caption===t.caption}case "mediaAlbum":{let t=n;return e.imageCount===t.imageCount&&e.videoCount===t.videoCount&&e.caption===t.caption&&e.firstItemKind===t.firstItemKind}case "image":case "gif":case "video":case "file":case "sticker":case "contact":case "miniProgram":case "robot":case "transfer":case "gift":case "redPacket":case "encrypted":case "decrypt-failed":case "unknown":return true}}function IR(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 CR(e,n){if(!(n===void 0||n==="")&&e.senderId===n&&e.status==="sent"&&!(e.recalled!==void 0||e.deletedForEveryone!==void 0)&&e.contentType!=="system")return e.receipt==="read"?"read":"unread"}function Qc(e,n={}){let t=e.conversationType==="channel"&&e.deletedForEveryone!==void 0&&n.showChannelModerationDeleted===false,r=!t&&e.contentType==="system"&&pt(e)?e.body.system:void 0,o=t?void 0:e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:gR(e),lastMessageSummary:mR(e,n),...t?{}:{lastMessageSenderId:e.senderId},lastMessageSystemEvent:r?.eventType,lastMessageSystemTargetsSelf:r!==void 0&&n.selfId!==void 0&&n.selfId!==""?r.targetUserIds?.includes(n.selfId)??false:void 0,...o!==void 0?{lastMessageMention:o}:{},...e.recalled!==void 0&&!t?{lastMessageRecalled:{by:e.recalled.by}}:{},...e.deletedForEveryone!==void 0&&!t?{lastMessageDeletedForEveryone:{by:e.deletedForEveryone.by}}:{},timestamp:ct(e),unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:t?void 0:IR(e,n.selfId),lastMessageReceipt:CR(e,n.selfId)}}function bf(e){if(e<0n)throw new Error("signal offline: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7Fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function Wc(e,n){let t=Uint8Array.of(e<<3),r=bf(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function Tf(e,n){let t=e<<3|2,r=bf(BigInt(n.length)),o=new Uint8Array(1+r.length+n.length);return o[0]=t,o.set(r,1),o.set(n,1+r.length),o}function SR(e){let n=e.reduce((o,i)=>o+i.length,0),t=new Uint8Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}function Tr(e,n){let t=0n,r=0n,o=n;for(;o<e.length;){let i=BigInt(e[o]);if(o+=1,t|=(i&0x7Fn)<<r,(i&0x80n)===0n)return {value:t,offset:o};if(r+=7n,r>63n)throw new Error("signal offline: varint \u8FC7\u957F")}throw new Error("signal offline: varint \u4E0D\u5B8C\u6574")}function Nf(e,n,t){if(t===0)return Tr(e,n).offset;if(t===1){if(n+8>e.length)throw new Error("signal offline: 64 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+8}if(t===2){let r=Tr(e,n),o=Number(r.value)+r.offset;if(o>e.length)throw new Error("signal offline: \u957F\u5EA6\u5B57\u6BB5\u8D8A\u754C");return o}if(t===5){if(n+4>e.length)throw new Error("signal offline: 32 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+4}throw new Error(`signal offline: wire type ${String(t)}`)}function hR(e){let n=new TextEncoder,t=[Wc(1,BigInt(e.userId)),Tf(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(Tf(3,n.encode(r)));return t.push(Wc(4,BigInt(e.limit??100))),t.push(Wc(5,BigInt(e.clientType??0))),SR(t)}function RR(e){let n=0,t=0,r=new Uint8Array(0),o="",i=new TextDecoder;for(;n<e.length;){let s=e[n];n+=1;let a=s>>>3,l=s&7;if(a===1&&l===0){let c=Tr(e,n);t=Number(c.value),n=c.offset;continue}if(a===2&&l===2){let c=Tr(e,n),g=c.offset+Number(c.value);if(g>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(c.offset,g)),n=g;continue}if(a===3&&l===2){let c=Tr(e,n),g=c.offset+Number(c.value);if(g>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=i.decode(e.subarray(c.offset,g)),n=g;continue}n=Nf(e,n,l);}return {cmdId:t,body:r,msgId:o}}function AR(e){let n=[],t=0;for(;t<e.length;){let r=e[t];t+=1;let o=r>>>3,i=r&7;if(o===3&&i===2){let s=Tr(e,t),a=s.offset+Number(s.value);if(a>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(RR(e.subarray(s.offset,a))),t=a;continue}t=Nf(e,t,i);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var Df=-5,vt=-4,MR=new Set(["image","video","voice","file","sticker"]);function ER(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.gift!==void 0&&n.push("gift"),e.call!==void 0&&n.push("call"),e.redPacket!==void 0&&n.push("redPacket"),e.filesAlbum!==void 0&&n.push("filesAlbum"),e.mediaAlbum!==void 0&&n.push("mediaAlbum"),e.robot!==void 0&&n.push("robot"),e.liveRoom!==void 0&&n.push("liveRoom"),e.unknown!==void 0&&n.push("unknown"),n.length===1?n[0]:void 0}function Kt(e){let n=Gc(Ea(yc(e)));if(n.body.video!==void 0){let i=Ca(n.body.video);i!==n.body.video&&(n={...n,body:{...n.body,video:i}});}if(n.body.game!==void 0&&!Pr(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!Eu(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.contentType==="robot"){let i=Fm(n.body.robot,n.raw?.content);i!==void 0&&(n={...n,body:{...n.body,robot:i}});}let t=ER(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Bt(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 Hc(e){if(e.status==="uploading"){let n=MR.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:Df,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===vt){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 vR(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function Ba(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 _f(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 Uf(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=_f(e),i=_f(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 Gf(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function kf(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function Jc(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=Gf(s);a!==null&&t.set(a,[...t.get(a)??[],s]);}if(t.size===0)return [...n];for(let s of e){let a=Gf(s);a===null||!t.has(a)||r.has(s.id)||t.get(a)?.push(s);}let i=[];for(let s of t.values()){let l=s.reduce(Uf).body.transfer;if(l!==void 0)for(let c of s){let g=c.body.transfer;if(g===void 0||kf(g,l))continue;let f={...c,body:{transfer:Ba(g,l)}};r.has(c.id)?o.set(c.id,f):i.push(f);}}return [...n.map(s=>o.get(s.id)??s),...i]}function Pa(e,n,t,r){let o=[];for(let i of e){if(!vR(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}:{}},l={...i,body:{transfer:a}};Uf(i,l)!==l||kf(s,a)||o.push({...i,body:{transfer:a}});}return o}function Yc(e,n){return e.readBySelf===true?false:e.contentType==="system"?e.conversationType==="direct"?e.body.system?.eventType==="direct_contact_established"||e.body.system?.eventType==="direct_contact_required":e.conversationType==="group"||e.conversationType==="channel":n!==""?e.senderId!==n:e.conversationType==="direct"&&e.senderId===e.conversationId}function wf(e,n,t=e.encrypt){return Rt.encode(Rt.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 bR(e,n,t){return ae({command:12289,body:wf(e,n,t)})}function xf(e){return Ee.encode(Ee.create(e.bMessage))}function zc(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:xf(e)}),o=We.encode(We.create({cipherData:r}));return wf(e,o,2)}function Bf(e){return bR(e,xf(e),0)}function Pf(e,n,t){return ae({command:12289,body:zc(e,n,t)})}function Fa(e,n,t){let r=jt.create({sToId:e.sToId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...t===void 0||t===""?{}:{encryptVersion:t},...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{}});return jt.encode(r)}function Ff(e,n){return ae({command:4097,body:Fa(e,n)})}function NR(e,n){let t=Fa(e,n);return [ae({command:4097,body:t}),ae({command:4113,body:t})]}function qc(e){return Ee.encode(Ee.create(e.bMessage))}function jc(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:qc(e),publicKey:t});return We.encode(We.create({secretKey:r,cipherData:o}))}function Of(e){return Ff(e,qc(e))}function Vf(e){return NR(e,qc(e))}function $c(e,n,t){return Ff(e,jc(e,n,t))}function Kf(e,n,t,r,o){let i=$c(e,n,t),s=jc(e,n,r),a=ae({command:4113,body:Fa(e,s,o)});return [i,a]}function Lf(e,n,t){return Fa(e,jc(e,n,t))}function Zf(e,n,t){let r=ot.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 ot.encode(r)}function Qf(e,n,t){return ae({command:8193,body:Zf(e,n,t)})}function Wf(e){return Ee.encode(Ee.create(e.bMessage))}function Hf(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Wf(e),publicKey:t});return We.encode(We.create({secretKey:r,cipherData:o}))}function Jf(e){return Qf(e,Wf(e))}function Yf(e,n,t,r){return Qf(e,Hf(e,n,t),r)}function Xf(e,n,t,r){return Zf(e,Hf(e,n,t),r)}function zf(e){let n=Yi.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:we(e.messageId),content:e.content});return ae({command:4644,body:Yi.encode(n)})}function qf(e){let n=zi.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:we(e.messageId),content:e.content});return ae({command:8976,body:zi.encode(n)})}function jf(e){let n=Ts.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:we(e.messageId),content:e.content,IncrId:e.incrementId});return ae({command:12808,body:Ts.encode(n)})}function $f(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 ep(){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=$o({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=Lf(o,t.crypto,r);return {ok:true,frame:zf({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function np(){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=Ko({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=Xf(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:qf({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function DR(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=Vo({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:s}),l=zc(a,r.crypto,i),c=t.extensions?.channelSequence,g=typeof c=="string"&&/^\d+$/.test(c)?BigInt(c):0n;return {ok:true,frame:jf({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:l,incrementId:g})}}}}function el(){return $f([ep(),np()])}var tp=120*1e3,_R=15e3;function nl(e){let n=e.now??(()=>Date.now()),t=e.strategies??el(),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"});if((i.conversationType==="group"||i.conversationType==="channel")&&e.domainState.getPinnedMessage(i)?.messageId===i.messageId)return Promise.resolve({ok:false,reason:"pinned"});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 l=t.resolve(i.conversationType);if(l===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(s.serverTime??s.createdAt)>tp)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let c=we(i.messageId),g=r.get(c);if(g!==void 0)return g.promise;let f,C=new Promise(I=>{f=I;}),E={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:f,timer:setTimeout(()=>{},0),promise:C};return clearTimeout(E.timer),r.set(c,E),(async()=>{let I;try{I=await l.prepare(i,s,{selfId:a,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{if(r.get(c)!==E)return;o(c,{ok:false,reason:"encrypt-failed"});return}if(r.get(c)===E){if(!I.ok){o(c,I);return}if((i.conversationType==="group"||i.conversationType==="channel")&&e.domainState.getPinnedMessage(i)?.messageId===i.messageId){o(c,{ok:false,reason:"pinned"});return}E.timer=setTimeout(()=>o(c,{ok:false,reason:"timeout"}),_R),e.sendFrame(I.frame);}})(),C},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 rr(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function $n(e){if(e!==void 0)return new Uint8Array(e)}function GR(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function Tt(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.contentType,body:e.body,encryption:e.encryption,createdAt:t}).id}var UR={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:GR},kR={contentType:"image",isContentReady:e=>rr(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=$n(n.thumbData),r=$n(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:Tt},wR={contentType:"video",isContentReady:e=>rr(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=$n(n.thumbData),r=$n(n.teaKey);return {video:{url:n.url,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration,durationUnit:"seconds"}:{},...n.hd===true?{hd:true}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.size!==void 0?{size:n.size}:{},...n.sizeUnit!==void 0?{sizeUnit:n.sizeUnit}:{},...n.unverifiedFileLength!==void 0?{unverifiedFileLength:n.unverifiedFileLength}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Tt},rp={contentType:"file",isContentReady:e=>rr(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=$n(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:Tt},xR={contentType:"filesAlbum",isContentReady:e=>{let n=e.body.filesAlbum;return n!==void 0&&n.items.length===1&&Array.from(n.caption??"").length<=Hn&&n.items.every(t=>rr(t.url))},cloneBody:e=>{let n=e.body.filesAlbum;return n===void 0?{}:{filesAlbum:{...n.caption===void 0?{}:{caption:n.caption},items:n.items.map(t=>rp.cloneBody({...e,body:{file:t}}).file)}}},enqueue:Tt},BR={contentType:"mediaAlbum",isContentReady:e=>{let n=e.body.mediaAlbum;return n===void 0||n.items.length===0?false:n.items.every(t=>rr(t.url))},cloneBody:e=>{let n=e.body.mediaAlbum;return n===void 0?{}:{mediaAlbum:{...n.caption!==void 0?{caption:n.caption}:{},items:n.items.map(t=>{let r=$n(t.thumbData),o=$n(t.teaKey);return {kind:t.kind,url:t.url,width:t.width,height:t.height,...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.thumbUrl!==void 0?{thumbUrl:t.thumbUrl}:{},...t.md5!==void 0?{md5:t.md5}:{},...t.size!==void 0?{size:t.size}:{},...t.fileEncryptType!==void 0?{fileEncryptType:t.fileEncryptType}:{},...t.hd!==void 0?{hd:t.hd}:{},...r!==void 0?{thumbData:r}:{},...o!==void 0?{teaKey:o}:{}}})}}},enqueue:Tt},PR={contentType:"liveRoom",isContentReady:e=>gr(e.body.liveRoom),cloneBody:e=>{let n=e.body.liveRoom;return n===void 0?{}:{liveRoom:{...n}}},enqueue:Tt};function FR(e){let n=$n(e.thumbData),t=$n(e.teaKey);return {image:{url:e.url,width:e.width,height:e.height,...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function OR(e){let n=$n(e.thumbData),t=$n(e.teaKey);return {video:{url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0?{duration:e.durationMs/1e3,durationUnit:"seconds"}:{},...e.hd===true?{hd:true}:{},...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size,sizeUnit:"bytes"}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function op(e,n){let t=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||t===void 0)return {ok:false,reason:"not-media-album"};let r=Number.isInteger(n)&&n>=0?t.items[n]:void 0;return r===void 0?{ok:false,reason:"item-not-found"}:rr(r.url)?{ok:true,contentType:r.kind,body:r.kind==="video"?OR(r):FR(r)}:{ok:false,reason:"item-not-ready"}}var VR={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?rr(n.url):Si(n.url)&&Jt(n.width)&&n.width>0&&Jt(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=$n(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=>Tt({...e,encryption:{encrypted:false}})},KR={contentType:"game",isContentReady:e=>e.body.game!==void 0&&Pr(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:Tt},LR={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&mr(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:Tt},ZR=[UR,kR,wR,rp,xR,BR,PR,VR,KR,LR],QR=new Map(ZR.map(e=>[e.contentType,e]));function ei(e){return QR.get(e)}function WR(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function Oa(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:ei(e.contentType)!==void 0}function ip(e){let n=ei(e.contentType);return n===void 0?false:n.isContentReady(e)}function tl(e){return Oa(e)&&ip(e)}var sp=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","robot","transfer","gift","call","redPacket","mediaAlbum","liveRoom"]);function rl(e){return sp.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function Va(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 HR(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),l=a.getHours()*60+a.getMinutes(),c=r*60+o,g=i*60+s;return c<=g&&c<=l&&l<=g}function ol(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??Va("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:Va(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||HR(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:Va(t.role,r),...o===void 0?{}:{muteReason:o}}}function ap(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function il(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):ap(t)-ap(n))}function ni(e){let n=e.extensions?.channelSequence;return {sortKey:e.sortKey,...typeof n=="string"&&/^\d+$/.test(n)?{sequence:BigInt(n)}:{}}}function ti(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}function sl(e){return `im:channel-sync-checkpoint:${ue(e)}`}function al(e,n){if(typeof e!="object"||e===null)return;let t=e;if(!(t.version!==1||t.conversation?.conversationType!=="channel"||t.conversation.conversationId!==n.conversationId||typeof t.startIndex!="string"||t.startIndex.trim()===""||typeof t.baseIndex!="string"||t.baseIndex.trim()===""))return {version:1,conversation:{...n},baseIndex:t.baseIndex,startIndex:t.startIndex}}function dp(){let e=new Map;return {get:n=>e.get(ue(n))??null,getAll:()=>[...e.values()],set:n=>e.set(ue(n.ref),n),delete:n=>e.delete(ue(n)),clear:()=>e.clear()}}function cp(e){let n=new Map,t=new Map,r=new Map;function o(c,g){return JSON.stringify([ue(c),g])}function i(c,g){if(g!==void 0)return n.get(o(g,c));let f=r.get(c);if(f!==void 0){if(f.size>1)throw new Error(`\u88F8 messageId \u5B58\u5728\u591A\u4F1A\u8BDD\u6B67\u4E49\uFF1A${c}`);return n.get(f.values().next().value)}}function s(c){if(typeof c!="string")return ue(c);let g=[...t.keys()].filter(f=>At(f).conversationId===c);if(g.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${c}`);return g[0]}function a(c,g){let f=ue(Ke(c)),C=t.get(f);C===void 0&&(C=new Set,t.set(f,C)),C.add(g);let E=r.get(c.id)??new Set;E.add(g),r.set(c.id,E);}function l(c){let g=n.get(c);n.delete(c);let f=ue(g),C=t.get(f);C.delete(c),C.size===0&&t.delete(f);let E=r.get(g.id);E.delete(c),E.size===0&&r.delete(g.id);}return {get:i,getById(c){let g=r.get(c);return g===void 0?[]:[...g].map(f=>n.get(f))},getAll:()=>[...n.values()],getByConversation(c){let g=s(c),f=g===void 0?void 0:t.get(g);if(f===void 0)return [];let C=[];for(let E of f){let I=n.get(E);I!==void 0&&C.push(I);}return C.sort(an)},has:(c,g)=>i(c,g)!==void 0,get size(){return n.size},upsert(c,g){let f=o(c,c.id),C=n.get(f);if(C===void 0){let D={...c,sortKey:lt(c)};return n.set(f,D),a(D,f),{message:D,isNew:true,changed:true}}let E=hr(C,c,e?.getSelfId?.()??""),I=g?.authoritativeFailure===true&&c.status==="failed"?{...E,status:"failed",failure:c.failure}:E;return n.set(f,I),{message:I,isNew:false,changed:!tr(C,I)}},delete(c,g){let f=o(c,g);return n.has(f)?(l(f),true):false},deleteByConversation(c){let g=s(c);if(g===void 0)return;let f=t.get(g);if(f!==void 0)for(let C of [...f])l(C);},clear(){n.clear(),t.clear(),r.clear();}}}var ri=class extends Error{constructor(n){super(n instanceof Error?n.message:"\u672C\u5730\u6D88\u606F\u7A97\u53E3\u8BFB\u53D6\u5931\u8D25",{cause:n}),this.name="LocalMessageWindowReadError";}};function Lt(e){let n=Kt(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=Sr(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function br(...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 lp(e){let n=e.retention?.maxMessages,t=e.historySource==="remote"&&e.loadOlderFromRemote!==void 0;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 r=0,o=new AbortController;function i(){return o.abort(),o=new AbortController,++r}let s=null,a=null,l=[],c,g,f=false,C=false;async function E(de,pe){if(e.storage===void 0)return [];try{let X=await e.storage.getMessages(de,pe);return e.normalizeStoredUpload===void 0?X:X.map(e.normalizeStoredUpload)}catch(X){throw new ri(X)}}let I=false,D,w=false,v=true,b,U=false,G=null;function O(){c=l[0],g=l.at(-1);}function J(){let de=l[0],pe=l.at(-1);(!f||c===void 0||de!==void 0&&de.sortKey>=c.sortKey)&&(c=de),(!C||g===void 0||pe!==void 0&&pe.sortKey<=g.sortKey)&&(g=pe);}function me(de){let pe=l.filter(X=>(c===void 0||X.sortKey>=c.sortKey)&&(g===void 0||X.sortKey<=g.sortKey));if(pe.length===0){let X=de==="start"?l.at(-1):l[0];c=X,g=X;return}de==="start"?c=pe[0]:g=pe.at(-1);}function x(de){if(!(n===void 0||l.length<=n)){if(de==="start"){l=l.slice(-n),f=true,me(de),D=void 0,U&&(I=false);return}l=l.slice(0,n),C=true,me(de),v=false,b=void 0;}}function z(de){if(n===void 0||l.length<=n)return;let pe=l.findIndex(F=>F.sortKey===de);if(pe<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let X=l.length-n,Te=pe-Math.floor((n-1)/2),Ce=Math.min(X,Math.max(0,Te)),ke=Ce+n,H=ke<l.length;Ce>0&&(f=true,D=void 0,U&&(I=false)),H&&(C=true,v=false,b=void 0),l=l.slice(Ce,ke),Ce>0&&me("start"),H&&me("end");}function ne(de,pe,X){return de.conversationId===pe&&(X===null||de.conversationType===X)}function ee(de,pe,X){let Te=de.filter(Ce=>ne(Ce,pe,X));if(X===null&&new Set(Te.map(Ce=>Ce.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${pe}`);return Te}function se(de,pe){return pe===null?de:{conversationType:pe,conversationId:de}}function he(de,pe=true){if(s!==null){for(let X of de){if(!ne(X,s,a))continue;if(G!==null){G.push(X);continue}let Te=l.findIndex(ke=>ke.id===X.id);if(Te>=0){let ke=l[Te].sortKey!==X.sortKey;l[Te]=X,ke&&(l.sort(an),J()),c?.id===X.id&&c.sortKey===X.sortKey&&(c=X),g?.id===X.id&&g.sortKey===X.sortKey&&(g=X);continue}let Ce=g;Ce===void 0||X.sortKey>Ce.sortKey?C||(l.push(X),l.sort(an),J()):c!==void 0&&X.sortKey>=c.sortKey&&(l.push(X),l.sort(an));}pe&&x(C?"end":"start");}}let Ge={async open(de,{limit:pe}){let X=typeof de=="string"?de:de.conversationId,Te=typeof de=="string"?null:de.conversationType,Ce=i();s=X,a=Te,l=[],O(),f=false,C=false,I=false,D=void 0,w=false,v=true,b=void 0,U=false,G=[];try{let ke=e.storage===void 0?[]:await E(se(X,Te),{limit:pe}),F=ee(ke,X,Te).map(Lt).filter(M=>e.shouldIncludeMessage?.(M)??!0);if(Ce!==r)return {conversationId:X,messages:F,stale:!0};let y=G??[];return l=[...F].sort(an),O(),f=F.length===pe||e.loadOlderFromRemote!==void 0,w=e.loadOlderFromRemote!==void 0&&(t||F.length<pe||Te!==null&&e.shouldEstablishRemoteLatest?.({conversationType:Te,conversationId:X},F)===!0),C=!1,v=!0,b=void 0,G=null,he(y,!1),x("start"),{conversationId:X,messages:l,stale:!1}}finally{Ce===r&&(G=null);}},async openAt(de,{anchorSortKey:pe,limit:X,seedMessages:Te,seedHasNewer:Ce,seedHasOlder:ke,seedRemotePagination:H}){let F=typeof de=="string"?de:de.conversationId,y=typeof de=="string"?null:de.conversationType,M=s===F&&a===y&&G===null,A=i();s=F,a=y;let R=()=>{c=void 0,g=void 0,f=false,C=false,I=false,D=void 0,w=false,v=true,b=void 0,U=false;};M||(l=[],R()),G=[];try{if(Te!==void 0&&Te.length>0){if(Te.some(W=>!ne(W,F,y)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${F}\uFF09`);let h=br(Te).map(Lt).filter(W=>e.shouldIncludeMessage?.(W)??!0).sort(an);if(!h.some(W=>W.sortKey===pe))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${F}\uFF09`);let k=G??[];return R(),l=t&&H===void 0?h.filter(W=>W.sortKey===pe):h,O(),f=ke??e.loadOlderFromRemote!==void 0,C=t&&H===void 0?e.loadNewerFromRemote!==void 0:Ce??h.length===X,v=!C,b=H?.newerCursor,U=t||H!==void 0,G=null,he(k,!1),z(pe),{conversationId:F,messages:l,stale:A!==r}}if(e.storage===void 0)return l=[],R(),{conversationId:F,messages:[],stale:A!==r};let[B,P]=await Promise.all([E(se(F,y),{beforeSortKey:pe,limit:X}),E(se(F,y),{afterSortKey:pe,limit:X})]),V=ee(B,F,y).map(Lt).filter(h=>e.shouldIncludeMessage?.(h)??!0),K=ee(P,F,y).map(Lt).filter(h=>e.shouldIncludeMessage?.(h)??!0);if(A!==r)return {conversationId:F,messages:br(V,K).map(Lt),stale:!0};let fe=br(V,K).sort(an);if(t&&!fe.some(h=>h.sortKey===pe))return {conversationId:F,messages:[...l],stale:!1};let p=G??[];return R(),l=t?fe.filter(h=>h.sortKey===pe):fe,O(),U=t,f=V.length===X||e.loadOlderFromRemote!==void 0,C=t?e.loadNewerFromRemote!==void 0:K.length===X,v=!C,b=void 0,G=null,he(p,!1),z(pe),{conversationId:F,messages:l,stale:!1}}finally{if(A===r){let B=G;G=null,M&&B!==null&&he(B);}}},async loadOlder({limit:de,establishLatestOnly:pe=false}){let X=s,Te=a;if(X===null||!f)return {conversationId:X??"",messages:[],stale:false};let Ce=r,ke=e.storage===void 0||D!==void 0||U||w?[]:await E(se(X,Te),{beforeSortKey:c?.sortKey,limit:de}),H=ee(ke,X,Te).map(Lt).filter(K=>e.shouldIncludeMessage?.(K)??true);if(Ce!==r||s!==X||a!==Te)return {conversationId:X,messages:H,stale:true};let F=H.length===de,y=[...H],M=false;if(H.length>0&&(D=void 0),!F&&e.loadOlderFromRemote!==void 0&&!I){if(Te===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:Te,conversationId:X},signal:o.signal,oldestLoaded:H[0]??c,...D===void 0?{}:{cursor:D},intent:w?"establish-latest":"older",limit:de});if(Ce!==r||s!==X||a!==Te)return {conversationId:X,messages:[],stale:true};w=false,I=K.exhausted,D=K.nextCursor;let fe=ee(K.messages,X,Te),p=fe.map(Lt).filter(h=>e.shouldIncludeMessage?.(h)??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=${Te}, conversationId=${X}\uFF09`);let h=new Set(l.map(re=>re.id)),k=br(p).sort(an),W=k.at(-1)?.sortKey,Q=W===void 0?l:l.filter(re=>re.sortKey>W);l=br(k,Q).sort(an),O(),U=t,f=!I;let Ne=k.filter(re=>!h.has(re.id));if(x("start"),t&&f&&!pe){let re=await Ge.loadOlder({limit:de});return {...re,messages:br(Ne,re.messages).sort(an)}}return {conversationId:X,messages:Ne,stale:false}}M=fe.length>0&&p.length===0,M&&(I=true,D=void 0),y.push(...p);}let A=new Set(l.map(K=>K.id)),R=new Set,B=y.filter(K=>A.has(K.id)||R.has(K.id)?false:(R.add(K.id),true)).sort(an);B.length>0&&(l=[...B,...l].sort(an));let P=[...y].sort(an),V=P[0];return V!==void 0&&(c===void 0||V.sortKey<c.sortKey)&&(c=V),g??=P.at(-1),f=F||e.loadOlderFromRemote!==void 0&&!I&&!M,f||(c=l[0]),x("end"),{conversationId:X,messages:B,stale:false}},async loadNewer({limit:de}){let pe=s,X=a;if(pe===null||!C)return {conversationId:pe??"",messages:[],stale:false};let Te=r,Ce=g,ke=Ce?.sortKey,H=e.storage===void 0||ke===void 0||U?[]:await E(se(pe,X),{afterSortKey:ke,limit:de+1}),F=ee(H,pe,X).map(Lt).filter(fe=>e.shouldIncludeMessage?.(fe)??true);if(Te!==r||s!==pe||a!==X)return {conversationId:pe,messages:[],stale:true};let y=F.filter(fe=>ke===void 0||fe.sortKey>ke).slice(0,de),M=y.length===de,A=[...y];if(y.length>0&&(b=void 0),!M&&e.loadNewerFromRemote!==void 0&&!v){if(X===null)throw new Error("\u8FDC\u7AEF\u5411\u65B0\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let fe=await e.loadNewerFromRemote({conversation:{conversationType:X,conversationId:pe},signal:o.signal,newestLoaded:y.at(-1)??Ce,...b===void 0?{}:{cursor:b},limit:de});if(Te!==r||s!==pe||a!==X)return {conversationId:pe,messages:[],stale:true};v=fe.exhausted,b=fe.nextCursor,A.push(...ee(fe.messages,pe,X).filter(p=>e.shouldIncludeMessage?.(p)??true));}let R=new Set(l.map(fe=>fe.id)),B=new Set,P=A.filter(fe=>ke!==void 0&&fe.sortKey<=ke||R.has(fe.id)||B.has(fe.id)?false:(B.add(fe.id),true)).sort(an);P.length>0&&(l=[...l,...P].sort(an));let V=[...A].sort(an),K=V.at(-1);return K!==void 0&&(g===void 0||K.sortKey>g.sortKey)&&(g=K),c??=V[0],C=M||e.loadNewerFromRemote!==void 0&&!v,C||(g=l.at(-1)),x("start"),{conversationId:pe,messages:P,stale:false}},applyIncoming:he,removeMessage(de,pe){if(s!==de.conversationId||a!==de.conversationType)return false;let X=l.findIndex(Te=>Te.id===pe);return X<0?false:(i(),l.splice(X,1),J(),D=void 0,b=void 0,G=null,true)},clearConversation(de){return s!==de.conversationId||a!==de.conversationType?false:(i(),l=[],O(),f=false,C=false,I=false,D=void 0,w=false,v=true,b=void 0,U=false,G=null,true)},list(){return [...l]},info(){return {conversationId:s,...s===null||a===null?{}:{conversation:{conversationType:a,conversationId:s}},hasMore:f,hasNewer:C,...t?{remotePagination:true}:{}}},getPaginationKey(){return JSON.stringify([c?.sortKey,g?.sortKey,D,b,f,C])},getRevision(){return r},reset(){i(),s=null,a=null,l=[],O(),f=false,C=false,I=false,D=void 0,w=false,v=true,b=void 0,U=false,G=null;}};return Ge}function dl(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)=>dl(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)&&dl(t[s],r[s]))}function up(){let e=new Map;function n(t){if(typeof t!="string")return ue(t);let r=[...e.keys()].filter(o=>At(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=ue(Pt(t)),o=e.get(r);return o!==void 0&&dl(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 gp(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:ue(r)}function t(r){if(typeof r!="string"){let i=ue(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:")&&At(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 cl(){let e=new Map;function n(t){if(typeof t!="string")return ue(t);let r=[...e.keys()].filter(o=>At(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(ue(An(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function mp(e){return e==="direct"||e==="robot"?"local":"server"}function fp(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 JR=50,ll="im:deleted-conversations",ul="im:terminated-conversations",gl="im:membership-reset-sort-keys",ml="im:pending-message-reactions",fl="im:transfer-status-records",YR=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function pp(e,n){return e===n?true:e===void 0||n===void 0?false:YR.every(t=>e[t]===n[t])}function yp(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 oi(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&Zc(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.lastMessageReceipt===n.lastMessageReceipt&&e.readCursor===n.readCursor&&e.groupState===n.groupState&&e.channelState===n.channelState&&pp(e.channelPermissions,n.channelPermissions)&&yp(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function XR(e){let n=cp({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=cl(),i=cl(),s=gp(),a=dp(),l=up(),c=new Map,g=new Map,f=0;function C(d){g.set(d,++f);}let E=1,I=new Set,D=new Set,w=new Map,{storage:v}=e,b=Promise.resolve(),U=new Map,G=new Map,O=new Map,J=0,me=e.unreadMode??mp,x=new Set;function z(d={}){let u=lp({storage:v,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:te,normalizeStoredUpload:fi,...d});return x.add(u),u}let ne=z();function ee(d={}){let u=z(d),m=false;return {window:u,dispose(){m||(m=true,u.reset(),x.delete(u));}}}function se(d,u){let m;for(let S of x){let N=S.list().find(_=>_.id===d&&_.conversationId===u);if(N!==void 0){if(m!==void 0&&m.conversationType!==N.conversationType)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6D88\u606F\u6B67\u4E49\uFF1A${u}`);m=N;}}return m}function he(d,u){let m=n.get(u,d);if(m?.conversationId===d.conversationId&&m.conversationType===d.conversationType)return m;for(let S of x){let N=S.list().find(_=>_.id===u&&_.conversationId===d.conversationId&&_.conversationType===d.conversationType);if(N!==void 0)return N}}function Ge(d,u){let m=he(Ke(d),d.id);m!==void 0&&!n.has(d.id,d)&&n.upsert(m);let S=n.upsert(d,u);return {...S,previous:m,changed:m===void 0?S.changed:!tr(m,S.message)}}function de(d){let u=new Map(n.getByConversation(d).map(m=>[m.id,m]));for(let m of x)if(pe(m,d))for(let S of m.list())S.conversationType===d.conversationType&&S.conversationId===d.conversationId&&!u.has(S.id)&&u.set(S.id,S);return [...u.values()].sort((m,S)=>m.sortKey.localeCompare(S.sortKey))}function pe(d,u){let m=d.info();return m.conversation===void 0?m.conversationId===u.conversationId:ue(m.conversation)===ue(u)}let X=false;function Te(d){return `${ue(d.conversation)}\0${d.parentMessageId}`}function Ce(){if(v===void 0||X)return;let d=[...t.values()].flat();ye(()=>v.setMeta(ml,d)).catch(u=>oe("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",u));}async function ke(){if(v===void 0)return;let d=[...r.values()],u=b.then(()=>v.setMeta(fl,d));It(u),b=u.catch(()=>{});try{await u;}catch(m){throw oe("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",m),m}}function H(d,u){if(d===void 0||d.status===0&&u.status!==0)return u;if(u.status===0&&d.status!==0)return d;let m=d.occurredTime??0,S=u.occurredTime??0;return m!==S?S>m?u:d:u.status>d.status?u:d}function F(d){let u=d.body.transfer;if(d.contentType!=="transfer"||u===void 0)return d;let m=r.get(u.serialNumber);if(m===void 0||u.status!==0&&m.status===0)return d;let S={...u,status:m.status,...m.status===1&&m.occurredTime!==void 0?{receiveTime:m.occurredTime}:{},...m.status===2||m.status===3?{returnTime:m.occurredTime??u.returnTime}:{}};return u.status===S.status&&u.receiveTime===S.receiveTime&&u.returnTime===S.returnTime&&u.isRead===S.isRead?d:{...d,body:{transfer:Ba(u,S)}}}function y(d,u){let m=`${ue(d)}\0${u}`;return t.delete(m)?(Ce(),true):false}function M(d){let u=`${ue(d)}\0`,m=false;for(let S of t.keys())S.startsWith(u)&&(t.delete(S),m=true);return m&&Ce(),m}function A(d,u){let m=he(d.conversation,d.parentMessageId);if(m===void 0){let N=Te(d),_=t.get(N)??[];return _.some(Y=>Y.id===d.id)?"duplicate":(t.set(N,[..._,d]),Ce(),"pending")}if(Zt(m),m.recalled!==void 0||m.deletedForEveryone!==void 0)return "duplicate";let S=Sc(m.reactions,d,e.getSelfId?.()??"");return S===m.reactions?"duplicate":(Pn([{...m,reactions:S}],u),"applied")}function R(d,u,m){let S=he(d,u);if(S===void 0){let Y=`${ue(d)}\0${u}`,q=t.get(Y);if(q===void 0)return false;let ge=q.filter(ie=>ie.id!==m);return ge.length===q.length?false:(ge.length===0?t.delete(Y):t.set(Y,ge),Ce(),true)}let N=hc(S.reactions,m,e.getSelfId?.()??"");if(N===S.reactions)return false;let _={...S};return N===void 0?delete _.reactions:_.reactions=N,Pn([_],"live"),true}function B(d,u){let m=Ke(d),S=`${ue(m)}\0${d.id}`,N=t.get(S);if(N!==void 0){t.delete(S),Ce();for(let _ of N)A(_,u);}}function P(d){for(let u of [...t.values()]){let m=u[0];if(m===void 0)continue;let S=he(m.conversation,m.parentMessageId);S!==void 0&&(S.recalled!==void 0||S.deletedForEveryone!==void 0?y(m.conversation,m.parentMessageId):B(S,d));}}let V=0,K=new Map,fe=new Map,p=new Map,h=new Map,k=new Map;function W(d){return ue(d)}function Q(d){return Ne(d)||I.has(W(d))||I.has(d.conversationId)}function Ne(d){return D.has(W(d))||D.has(d.conversationId)}function re(d){let u=I.delete(W(d)),m=I.delete(d.conversationId);return u||m}function T(d){let u=re(d),m=D.delete(W(d)),S=D.delete(d.conversationId);return {deleted:u,terminal:m||S}}function Z(d,u){if(u===""||d.contentType!=="system")return false;let m=d.body.system;return m?.targetUserIds?.includes(u)!==true?false:d.conversationType==="group"?m.eventType==="group_member_joined"||m.eventType==="group_member_invited":d.conversationType==="channel"&&(m.eventType==="channel_member_joined"||m.eventType==="channel_member_invited"||m.eventType==="channel_created")}function te(d){let u=Ke(d);if(Ne(u)||Q(u)&&i.get(u)===void 0)return false;if(u.conversationType!=="group")return true;let m=w.get(ue(u));return m===void 0||d.sortKey>=m}function le(d){let u=new Map;if(w.size===0)return u;for(let m of Mt(d,e.getSelfId?.()??"")){if(m.conversationType!=="group")continue;let S=Ke(m),N=ue(S),_=w.get(N);if(_===void 0)continue;let Y=he(S,m.id);if(Y===void 0||Y.sortKey!==_)continue;let q=hr(Y,m,e.getSelfId?.()??"");q.sortKey!==_&&(w.set(N,q.sortKey),u.set(N,q.id));}return u.size>0&&qe(),u}function Re(d){let u=ue(d),m=(fe.get(u)??0)+1;return fe.set(u,m),m}function Xe(d,u){let m={...d},S=ue(m),N=V,_=u?.forceRefresh!==true&&(h.has(S)||p.has(S))?void 0:Re(m);_!==void 0&&u?.forceRefresh===true&&p.set(S,_);let Y=()=>{N===V&&_!==void 0&&p.get(S)===_&&p.delete(S);};return Object.assign(ge=>{try{if(_===void 0||ge.id!==m.conversationId||N!==V)return;ui(m,ge.title,ge.avatar??"",void 0,_);}finally{Y();}},{finish:Y})}function He(d){let u=ue(d),m=(K.get(u)??0)+1;return K.set(u,m),m}function oe(d,u){e.emitter.emit({type:"error",error:{scope:"storage",message:d,cause:u}});}function nn(d){e.emitter.emit({type:"session:updated",session:d,conversation:An(d)});}let tn=new Set,De=new Set,yn=new Map,kn=new Map,Kn=0,dn=Promise.resolve(),Ln=0,Je=Promise.resolve(),yt=0,$=new Map,Cn;function Zt(d){let u=ue(Ke(d));Cn?.keys.has(u)&&Cn.messages.set(`${u}\0${d.id}`,d);}function Sn(d){let u=ue(d);$.set(u,($.get(u)??0)+1);}function It(d){return Cn?.writes.push(d),Cn!==void 0&&d.catch(()=>{}),d}async function Zn(d){let m=(await Promise.allSettled(d)).find(S=>S.status==="rejected");if(m!==void 0)throw m.reason}function En(d){let u=Je.then(d);return Je=u.then(()=>{},()=>{}),u}async function Qt(){for(;;){let d=Je,u=dn;if(await Promise.all([d,u,...tn]),d===Je&&u===dn&&tn.size===0)return}}function Qn(d,u){let m=yt,S=d.map(N=>[ue(N),$.get(ue(N))??0]);return ()=>m===yt&&u()&&S.every(([N,_])=>($.get(N)??0)===_)}function ye(d){let m=Ln===0?(()=>{try{return d()}catch(N){return Promise.reject(N)}})():dn.then(d),S=m.then(()=>{},()=>{});tn.add(S),S.finally(()=>tn.delete(S));for(let N of De)N.writes.push(m);return It(m)}function xe(d){Ln+=1;let u=Promise.all([...tn]),m=dn.then(()=>u).then(d);return dn=m.then(()=>{},()=>{}),dn.finally(()=>{Ln-=1;}),It(m)}function Ie(d){let u=d.body.system;if(u?.pinnedMessageAction===void 0)return d;let{pinnedMessageAction:m,...S}=u;return {...d,body:{...d.body,system:S}}}function _e(d){if(!(v===void 0||X||d.length===0)){for(let u of De)for(let m of d)u.messages.add(`${ue(Ke(m))}\0${m.id}`);ye(()=>v.saveMessages(d.map(Ie))).catch(u=>oe("\u6D88\u606F\u843D\u76D8\u5931\u8D25",u));}}function Ze(d,u,m,S){if(v===void 0){for(let _ of S?.events??[])S.apply(_);Pn(d,u,m);return}let N={writes:[],messages:new Set,sessions:new Set,reads:new Set,metadata:new Set};De.add(N);try{let _=(S?.events??[]).filter(ie=>S.apply(ie)!=="ignored");Pn(d,u,m);let Y=_.flatMap(ie=>{let j=he(ie.conversation,ie.parentMessageId);return j===void 0?[]:[j]});_.length>0&&Ce();let q=new Map,ge=[];for(let ie of [...d,...Y]){let j=Ke(ie),ce=ue(j),Me=he(j,ie.id);Me!==void 0&&(q.set(ce,j),N.messages.has(`${ce}\0${Me.id}`)||ge.push(Me));}_e(ge);for(let[ie,j]of q){let ce=o.get(j),Me=s.get(j);ce!==void 0&&!N.sessions.has(ie)&&wn(ce),Me!==void 0&&!N.reads.has(ie)&&Ye(Me);}for(let[ie,j]of yn)N.metadata.has(ie)||j.persist();}finally{De.delete(N);}return Zn(N.writes)}function cn(d,u,m,S){let N=Qn(d,m);return En(async()=>{if(!N())return false;if(v===void 0)throw new Error("CHANNEL \u4E25\u683C\u540C\u6B65\u63D0\u4EA4\u9700\u8981 storage");let _={writes:[],messages:new Map,keys:new Set(d.map(ue)),current:N};Cn=_;let Y;try{let j=u();if(j instanceof Promise)throw j.catch(()=>{}),new Error("CHANNEL \u9875 mutation \u5FC5\u987B\u540C\u6B65\u6267\u884C")}catch(j){Y={cause:j};}finally{Cn=void 0;}if(await Zn(_.writes),Y!==void 0)throw Y.cause;if(!N())return false;let q=[..._.messages.values()].flatMap(j=>{let ce=he(Ke(j),j.id);return ce===void 0?[]:[Ie(ce)]}),ge=[];q.length>0&&ge.push(ye(()=>v.saveMessages(q)));for(let j of d){let ce=o.get(j),Me=s.get(j),Ae=l.get(j);ce!==void 0&&ge.push(ye(()=>v.saveSessions([ze(ce)]))),Me!==void 0&&ge.push(ye(()=>v.saveReadState(Me))),ge.push(ye(()=>Ae===void 0?v.removePinnedMessage(j):v.savePinnedMessage(Ae)));}let ie=[[ml,[...t.values()].flat()],[fl,[...r.values()]],[ll,[...I]],[ul,[...D]],[gl,[...w.entries()]]];for(let[j,ce]of ie)ge.push(ye(()=>v.setMeta(j,ce)));return S!==void 0&&ge.push(ye(async()=>{N()&&await S();})),await Zn(ge),N()})}function un(d,u){let m=al(d,d.conversation);if(m===void 0)return Promise.reject(new Error("CHANNEL \u540C\u6B65\u4F4D\u7F6E\u65E0\u6548"));let S=Qn([m.conversation],u);return En(async()=>{if(!S())return false;if(v===void 0)throw new Error("CHANNEL \u540C\u6B65\u4F4D\u7F6E\u4FDD\u5B58\u9700\u8981 storage");let N=false;return await ye(async()=>{S()&&(await v.setMeta(sl(m.conversation),m),N=!0);}),N&&S()})}function ze(d){let{lastMessageSendState:u,manuallyUnread:m,...S}=d;return S}function wn(d){if(!(v===void 0||X)){for(let u of De)u.sessions.add(ue(An(d)));ye(()=>v.saveSessions([ze(d)])).catch(u=>oe("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",u));}}function Ct(d,u,m){if(v===void 0||X)return;let S=++Kn;yn.set(d,{version:S,persist:()=>Ct(d,u,m)});for(let q of De)q.metadata.add(d);let N=kn.get(d),_=ye(()=>N===void 0?v.setMeta(d,u()):N.then(()=>v.setMeta(d,u()))),Y=_.then(()=>{},()=>{});kn.set(d,Y),Y.then(()=>{kn.get(d)===Y&&kn.delete(d);}),_.then(()=>{yn.get(d)?.version===S&&yn.delete(d);},q=>oe(m,q));}function Wt(){Ct(ll,()=>[...I],"\u5220\u9664\u4F1A\u8BDD\u6807\u8BB0\u4FDD\u5B58\u5931\u8D25");}function Dt(){Ct(ul,()=>[...D],"\u6210\u5458\u8D44\u683C\u7EC8\u6B62\u6807\u8BB0\u4FDD\u5B58\u5931\u8D25");}function qe(){Ct(gl,()=>[...w.entries()],"\u91CD\u65B0\u5165\u7FA4\u7684\u5386\u53F2\u8D77\u70B9\u4FDD\u5B58\u5931\u8D25");}function Ye(d){if(!(v===void 0||X)){for(let u of De)d.conversationType!==void 0&&u.reads.add(ue({conversationType:d.conversationType,conversationId:d.conversationId}));ye(()=>v.saveReadState(d)).catch(u=>oe("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",u));}}function xn(d){v===void 0||X||ye(()=>v.savePinnedMessage(d)).catch(u=>oe("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",u));}function Wn(d){v===void 0||X||ye(()=>v.removePinnedMessage(d)).catch(u=>oe("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",u));}function gn(d){if(ue(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 sr(d){return gn(d),Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId})}function Ay(d){return a.get(sr(d))}function My(){let d=[];for(let u of o.getAll()){let m=An(u);d.push({...u,draft:a.get(m)});}return il(d)}function $a(d,u,m){if(gn(d),typeof u.text!="string")throw new TypeError("\u8349\u7A3F text \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(u.attachments!==void 0&&u.attachments.length>0)throw new Error("\u8349\u7A3F\u9644\u4EF6\u5C1A\u672A\u652F\u6301\uFF1Aattachments \u53EA\u63A5\u53D7\u7A7A\u96C6\u5408");if(u.mentions!==void 0&&!Array.isArray(u.mentions))throw new TypeError("\u8349\u7A3F mentions \u5FC5\u987B\u662F\u6570\u7EC4");let S=(u.mentions??[]).map(_=>{if(typeof _.userId!="string"||_.userId.trim()===""||typeof _.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:_.userId,displayName:_.displayName})}),N=Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId});return Object.freeze({ref:N,text:u.text,mentions:Object.freeze(S),...u.replyToMessageId===void 0?{}:{replyToMessageId:u.replyToMessageId},attachments:Object.freeze([]),updatedAt:m})}function Xl(d,u){return d.text===u.text&&d.replyToMessageId===u.replyToMessageId&&d.mentions.length===u.mentions.length&&d.mentions.every((m,S)=>{let N=u.mentions[S];return N!==void 0&&m.userId===N.userId&&m.displayName===N.displayName})}function ed(d,u){gn(d);let m=ue(d),N=(U.get(m)??Promise.resolve()).catch(()=>{}).then(u),_=N.then(()=>{},()=>{});return U.set(m,_),_.finally(()=>{U.get(m)===_&&U.delete(m);}),N}async function Ey(d,u){let m=sr(d),S=ue(m),N=$a(m,u,0),_=J,Y=O.get(S)??0;return await ed(m,async()=>{let q=a.get(m),ge=Math.max(Date.now(),(G.get(S)??q?.updatedAt??0)+1),ie=$a(m,N,ge);if(q!==null&&Xl(q,ie))return q;if(v!==void 0&&await v.saveDraft(ie),_!==J||Y!==(O.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 a.set(ie),G.set(S,ge),e.emitter.emit({type:"draft:updated",conversation:ie.ref,draft:ie}),ie})}async function zl(d,u){let m=sr(d),S=ue(m);if(u!==void 0&&(!Number.isFinite(u)||u<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${u}`);let N=J,_=O.get(S)??0;return await ed(m,async()=>{let Y=a.get(m);if(Y===null||u!==void 0&&Y.updatedAt!==u)return false;if(v!==void 0&&await v.deleteDraft(m),N!==J||_!==(O.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 a.delete(m),e.emitter.emit({type:"draft:cleared",conversation:m}),true})}async function vy(d){await zl(d);}async function Ty(d,u){return await zl(d,u)}function by(d){let u=sr(d),m=ue(u);O.set(m,(O.get(m)??0)+1),a.get(u)!==null&&(a.delete(u),e.emitter.emit({type:"draft:cleared",conversation:u})),ed(u,async()=>{v!==void 0&&await v.deleteDraft(u);}).catch(S=>oe("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",S));}async function Ny(){for(J+=1;U.size>0;)await Promise.all([...U.values()]);}function Dy(d){let u=he(Pt(d),d.messageId);return u===void 0?d:{...d,preview:{state:"ready",message:u}}}function _y(d,u){let m=Dy(d);l.set(m)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:m.conversationId,conversation:{conversationType:m.conversationType,conversationId:m.conversationId},pinnedMessage:m,reason:u}),xn(m));}function Gy(d,u){let m=typeof d=="string"?d:d.conversationId,S=l.get(d);if(!l.clear(d))return;let N=typeof d=="string"?S===void 0?void 0:Pt(S):d;if(N===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${m}`);e.emitter.emit({type:"pinned-message:updated",conversationId:m,conversation:N,pinnedMessage:null,reason:u}),Wn(d);}function ui(d,u,m,S,N){let _=Fn(d);if(_===void 0)return;let Y={..._,...N===void 0||N===fe.get(ue(d))?{title:u,avatar:m??_.avatar}:{},...S!==void 0?{muted:S}:{}};oi(_,Y)||at(Y);}function ql(d,u){let m=e.profile;if(m===void 0)return Promise.resolve(null);let S={conversationType:"direct",conversationId:d},N=ue(S),_=k.get(d);if(u?.forceRefresh!==true&&_!==void 0&&_.revision===K.get(N))return _.promise;let Y=V,q=He(S),ge=Re(S),ie=(async()=>{let j=await m.getUserProfile(d,u);if(j!==null&&j.id===d&&Y===V&&q===K.get(N)){let ce=j.remark?.trim()?j.remark:j.nickname||d;ui(S,ce,j.avatar??"",j.muted,ge);}return j})().finally(()=>{k.get(d)?.promise===ie&&k.delete(d);});return k.set(d,{revision:q,promise:ie}),ie}async function nd(d,u){let{conversationId:m,conversationType:S}=d;if(S==="direct"){try{await ql(m,u?.force===!0?{forceRefresh:!0}:void 0);}catch(Ae){e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:Ae}});}return false}let N=ue(d),_=u?.force===true;if(!_&&(h.has(N)||p.has(N)))return false;let Y=V,q=He(d),ge=Re(d);_&&h.set(N,q);let{profile:ie,channelProfile:j}=e,ce=3,Me=_?{forceRefresh:true}:void 0;try{if(S==="group"){if(ie===void 0)return !1;let Ae=await ie.getGroupProfile(m,Me);if(Y!==V||q!==K.get(N))return !1;Ae!==null&&(ui(d,Ae.name,Ae.avatar??"",Ae.muted,ge),Ae.status===ce&&sd({conversationType:"group",conversationId:m},"group_dismissed"),_&&e.emitter.emit({type:"profile:updated",profileType:"group",id:m}));}else if(S==="channel"){if(j===void 0)return !1;let Ae=await j.getProfile(m,Me);if(Y!==V||q!==K.get(N))return !1;if(Ae!==null){ui(d,Ae.name,Ae.avatar??"",Ae.muted,ge);let Se=Fn(d)?.channelState,Qe=Se==="left"||Se==="removed"||Se==="dismissed",Fe=Ae.channelState==="left"||Ae.channelState==="removed"||Ae.channelState==="dismissed";if(u?.allowChannelRecovery===!0&&Qe&&Se!=="dismissed"&&Ae.channelState==="active")return id(m,"active",void 0,{permissions:Ae.permissions,...Ae.accessSnapshot===void 0?{}:{snapshot:Ae.accessSnapshot}}),_&&e.emitter.emit({type:"channel-profile:updated",channelId:m,conversation:{conversationType:"channel",conversationId:m}}),!0;let ln=Qe&&(!Fe||Se==="dismissed"||Ae.channelState!=="dismissed");if(Fe&&!ln)return sd({conversationType:"channel",conversationId:m},`channel_${Ae.channelState}`),_&&e.emitter.emit({type:"channel-profile:updated",channelId:m,conversation:{conversationType:"channel",conversationId:m}}),!1;if(!ln){let _t=Ae.permissions.sendMessages?void 0:`channel_${Ae.channelState}`;id(m,Ae.channelState,_t,{permissions:Ae.permissions,...Ae.accessSnapshot===void 0?{}:{snapshot:Ae.accessSnapshot}});}_&&e.emitter.emit({type:"channel-profile:updated",channelId:m,conversation:{conversationType:"channel",conversationId:m}});}}return !1}catch(Ae){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:Ae}}),false}finally{_&&Y===V&&h.get(N)===q&&h.delete(N);}}function Uy(d,u){nd({conversationType:u,conversationId:d},{force:true});}function ky(d){return nd({conversationType:"channel",conversationId:d},{force:true,allowChannelRecovery:true})}function wy(d,u){let m=Fn(d);if(m===void 0)return;Re(An(m));let S={...m,...u.title!==void 0?{title:u.title}:{},...u.avatar!==void 0?{avatar:u.avatar}:{}};oi(m,S)||at(S);}function Ur(d){return Yc(d,e.getSelfId?.()??"")}function gi(d){let u=s.get(d);if(u===void 0||u.readCursor==="")return;let m=typeof d=="string"?u.conversationType:d.conversationType;if(m==="channel"){let N={conversationType:m,conversationId:typeof d=="string"?d:d.conversationId};return de(N).find(_=>_.extensions?.historyCursor===u.readCursor)?.sortKey??u.readCursorSortKey}return (typeof d=="string"?n.getByConversation(d).find(N=>N.id===u.readCursor):he(d,u.readCursor))?.sortKey??u.readCursorSortKey}function jl(d,u){let m=0;for(let S of n.getByConversation(d))pt(S)&&Ur(S)&&(u===void 0||S.sortKey>u)&&(m+=1);return m}function mi(d){let u=e.getSelfId?.();if(u===void 0||u===""||d.senderId===u)return false;let{mention:m}=d;return m===void 0?false:m.atAll||m.atUserIds.includes(u)}function xy(d,u){let m=0;for(let S of n.getByConversation(d))S.readBySelf!==true&&mi(S)&&(u===void 0||S.sortKey>u)&&(m+=1);return m}function et(d,u=true){let m=d.conversationType===void 0?o.get(d.conversationId):void 0,S=d.conversationType===void 0&&m!==void 0?{...d,conversationType:m.type}:d,N=S.conversationType===void 0?S.conversationId:{conversationType:S.conversationType,conversationId:S.conversationId},_=s.get(N);if(S.conversationType==="channel"&&C(S.conversationId),s.set(S),u&&Ye(S),_===void 0||_.readCursor!==S.readCursor||_.readCursorSortKey!==S.readCursorSortKey||_.unreadCount!==S.unreadCount||(_.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 $l(d,u){if(d===void 0||d.sortKey===u.sortKey)return;let m=Ke(u),S=s.get(m),N=u.conversationType==="channel"?u.extensions?.historyCursor:void 0,_=u.conversationType==="direct"||u.conversationType==="group"||u.conversationType==="robot";S!==void 0&&(_&&S.readCursor===u.id||typeof N=="string"&&N!==""&&S.readCursor===N||S.readCursorSortKey===d.sortKey)&&et({...S,readCursorSortKey:u.sortKey});let Y=ue(m);u.conversationType==="group"&&w.get(Y)===d.sortKey&&(w.set(Y,u.sortKey),qe());}function td(d){let u=d?.channelAccessSnapshot?.role;return u==="owner"||u==="admin"}function By(d,u){return pt(d)?d.conversationType!=="channel"||d.deletedForEveryone===void 0||td(u):false}function eu(d,u,m,S,N=Fn(d)){let _=S??s.get(d);if(u===void 0){if(N===void 0)return typeof d=="string"||_===void 0||_.unreadCount<=0?void 0:{id:d.conversationId,type:d.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:_.unreadCount,mentionUnreadCount:_.mentionUnreadCount,readCursor:_.readCursor,pinned:false,muted:false};let j={...N,...m==="clear"?{lastMessagePreview:"",timestamp:0}:{},..._===void 0?{}:{unreadCount:_.unreadCount,manuallyUnread:_.manuallyUnread,mentionUnreadCount:_.mentionUnreadCount,readCursor:_.readCursor||N.readCursor}};return m==="clear"&&(delete j.lastMessageSummary,delete j.lastMessageSenderId,delete j.lastMessageSystemEvent,delete j.lastMessageSystemTargetsSelf,delete j.lastMessageMention,delete j.lastMessageRecalled,delete j.lastMessageDeletedForEveryone,delete j.lastMessageSendState,delete j.lastMessageReceipt),j}let Y=_?.unreadCount??N?.unreadCount??0,q=_===void 0?N?.manuallyUnread:_.manuallyUnread,ge=_?.mentionUnreadCount??N?.mentionUnreadCount??0,ie=Qc(u,{unreadCount:Y,mentionUnreadCount:ge,selfId:e.getSelfId?.(),showChannelModerationDeleted:td(N)});return N===void 0?{...ie,...q===void 0?{}:{manuallyUnread:q},readCursor:(_?.readCursor??"")||ie.readCursor}:{...ie,title:N.title||ie.title,avatar:N.avatar??ie.avatar,pinned:N.pinned,muted:N.muted,topTime:N.topTime,...q===void 0?{}:{manuallyUnread:q},readCursor:(_?.readCursor??"")||N.readCursor,groupState:N.groupState,channelState:N.channelState,channelPermissions:N.channelPermissions,channelAccessSnapshot:N.channelAccessSnapshot,sendDisabledReason:N.sendDisabledReason}}function rd(d,u){if(d===void 0)return;let m=o.get({conversationType:d.type,conversationId:d.id});m!==void 0&&oi(m,d)||(o.set(d),i.delete({conversationType:d.type,conversationId:d.id}),nn(d),u&&wn(d),d.title===""&&nd({conversationType:d.type,conversationId:d.id}));}function ar(d,u,m="preserve",S=Fn(d)){let N=u.findLast(q=>By(q,S)),_=typeof d=="string"?S?.type:d.conversationType,Y=N===void 0&&_==="channel"&&!td(S)&&(u.some(q=>q.deletedForEveryone!==void 0)||S?.lastMessageSummary?.kind==="channel-moderation-deleted"||S?.lastMessageDeletedForEveryone!==void 0);return eu(d,N,Y?"clear":m,void 0,S)}function Bn(d,u=false){!u&&o.get(d)===void 0||rd(ar(d,n.getByConversation(d)),true);}function fi(d){if(d.status!=="uploading"&&!(d.status==="failed"&&d.failure?.code===vt))return d;let u=n.get(d.id,d);return u!==void 0&&u.conversationType===d.conversationType&&u.conversationId===d.conversationId?u:Hc(Kt(d))}function nu(d,u=()=>true){let m=[],S=Mt(d,e.getSelfId?.()??"").map(ge=>{let ie=fi(ge),j={...ie,sortKey:lt(ie)};if(j=Kt(j),j.conversationType==="group"&&j.contentType==="text"){let ce=Sr(j.body.text??"",j.mention);ce!==void 0&&(j.mention=ce);}return F(j)}),N=new Map;for(let ge of S){if(ge.contentType!=="transfer"||ge.body.transfer===void 0)continue;let ie=Ke(ge);N.set(ue(ie),ie);}let _=[...N.values()].flatMap(ge=>de(ge)),Y=Jc(_,S),q=new Set(S.map(ge=>ge.id));for(let ge of Y){if(!u())break;let{previous:ie,message:j,isNew:ce,changed:Me}=Ge(ge);if($l(ie,j),ie!==void 0&&Me)for(let Ae of x){if(!u())return m;Ae.list().some(Se=>Se.id===j.id&&Se.conversationType===j.conversationType&&Se.conversationId===j.conversationId)&&Ae.applyIncoming([j]);}if(!u())return m;ce?e.emitter.emit({type:"message:received",message:j,conversation:Ke(j),source:"offline",channelLifecycleEffects:false}):Me&&e.emitter.emit({type:"message:updated",message:j,conversation:Ke(j),source:"offline",channelLifecycleEffects:false}),q.has(j.id)&&m.push(j);}return m}function tu(d){let u=fi(d),m={...u,sortKey:lt(u)};if(m=Kt(m),m.conversationType==="group"&&m.contentType==="text"){let S=Sr(m.body.text??"",m.mention);S!==void 0&&(m.mention=S);}return F(m)}async function Py(d,u,m={}){let S=he(d,u);if(S!==void 0||v===void 0)return S;try{let N=await v.getMessage(d,u);return N===null||ue(Ke(N))!==ue(d)?void 0:tu(N)}catch(N){if(oe("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",N),m.throwOnStorageError===true)throw N;return}}function Pn(d,u,m={}){let S=e.getSelfId?.()??"";if(u==="live"){let ve=false,Oe=false;for(let Pe of d){let rn=Ke(Pe);if(Z(Pe,S)){let vn=T(rn);vn.deleted&&(ve=true),vn.terminal&&(rn.conversationType==="group"?(w.set(ue(rn),Pe.sortKey),qe()):rn.conversationType==="channel"&&w.delete(ue(rn)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:rn,data:{source:u,eventType:Pe.body.system?.eventType,groupHistoryLowerBoundApplied:rn.conversationType==="group"}})),Oe=true);}else (S===""||Pe.senderId!==S||m.newOutgoing===true)&&!Ne(rn)&&re(rn)&&(ve=true);}ve&&Wt(),Oe&&Dt();}let _=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,Y=(ve,Oe)=>{if(_===void 0)return;let Pe=Ke(ve),rn=ue(Pe),vn=_.get(rn)??{ref:Pe,tombstone:0,groupLowerBound:0};Oe==="tombstone"?vn.tombstone+=1:vn.groupLowerBound+=1,_.set(rn,vn);},q=I.size>0||D.size>0?d.filter(ve=>{let Oe=Ke(ve),Pe=!Q(Oe)||m.backfillOnly===true&&i.get(Oe)!==void 0&&!Ne(Oe);return Pe||Y(ve,"tombstone"),Pe}):d,ge=le(q),ie=ve=>ge.get(ue(Ke(ve)))===ve.id,j=w.size>0?q.filter(ve=>{let Oe=ie(ve)||te(ve);return Oe||Y(ve,"groupLowerBound"),Oe}):q,ce=ge.size===0?j:[...j.filter(ie),...j.filter(ve=>!ie(ve))];for(let ve of _?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:ve.ref,data:{source:u,tombstoneDroppedCount:ve.tombstone,groupHistoryLowerBoundDroppedCount:ve.groupLowerBound}}));let Me=new Map,Ae=new Map,Se=new Map,Qe=new Map,Fe=new Map,ln=new Set,_t=Mt(ce,S).map(F),lu=new Map;for(let ve of _t){if(ve.contentType!=="transfer"||ve.body.transfer===void 0)continue;let Oe=Ke(ve);lu.set(ue(Oe),Oe);}let uI=[...lu.values()].flatMap(ve=>de(ve)),gI=Jc(uI,_t),ad=[],dd=[];for(let ve of gI){if(ve.conversationType==="channel"&&Cn?.keys.has(ue(Ke(ve)))&&!Cn.current())continue;let{previous:Oe,message:Pe,isNew:rn,changed:vn}=Ge(ve,{authoritativeFailure:m.authoritativeOutboxFailure===true});if(Zt(Pe),m.backfillOnly===true&&m.refreshSessionSummary===true){let dt=Ke(Pe);Me.set(ue(dt),dt);}if(!rn&&!vn)continue;$l(Oe,Pe);for(let dt of x)dt.applyIncoming([Pe]);rn?e.emitter.emit({type:"message:received",message:Pe,conversation:Ke(Pe),source:u,channelLifecycleEffects:m.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:Pe,conversation:Ke(Pe),source:u,channelLifecycleEffects:m.applyChannelLifecycleEffects===true});let nt=Ke(Pe);if(!rn&&Oe!==void 0&&Oe.readBySelf!==true&&Pe.readBySelf===true){let dt=gi(nt),wr=dt===void 0||Oe.sortKey>dt,dr=ue(nt);wr&&pt(Oe)&&Ur(Oe)&&Oe.recalled===void 0&&Oe.deletedForEveryone===void 0&&Se.set(dr,(Se.get(dr)??0)-1),wr&&mi(Oe)&&Oe.recalled===void 0&&Oe.deletedForEveryone===void 0&&Fe.set(dr,(Fe.get(dr)??0)-1);}Ne(nt)||(ad.push(Pe),Me.set(ue(nt),nt),rn&&m.backfillOnly!==true&&dd.push(Pe));}let cd=new Map;for(let ve of dd){let Oe=Ke(ve),Pe=ue(Oe);Ur(ve)&&ln.add(Pe),cd.has(Pe)||cd.set(Pe,gi(Oe));let rn=cd.get(Pe),vn=rn===void 0||ve.sortKey>rn;if(pt(ve)&&vn&&Ur(ve)&&ve.readBySelf!==true&&ve.recalled===void 0&&ve.deletedForEveryone===void 0){let nt=me(ve.conversationType);(nt==="local"||nt==="server"&&u==="live")&&Ae.set(Pe,(Ae.get(Pe)??0)+1);}vn&&ve.readBySelf!==true&&mi(ve)&&ve.recalled===void 0&&ve.deletedForEveryone===void 0&&Qe.set(Pe,(Qe.get(Pe)??0)+1);}for(let ve of Me.values()){if(m.backfillOnly===true){m.refreshSessionSummary===true&&Bn(ve);continue}let Oe=ue(ve),Pe=Ae.get(Oe)??0,rn=Qe.get(Oe)??0,vn=Se.get(Oe)??0,nt=Fe.get(Oe)??0,dt=ln.has(Oe),wr=s.get(ve),dr=wr!==void 0&&(vn!==0||nt!==0);if(Pe>0||rn>0||dt||dr){let Ht=wr??{...ve,readCursor:"",unreadCount:0},uu={...Ht,unreadCount:Math.max(0,Ht.unreadCount+Pe+vn),mentionUnreadCount:Math.max(0,(Ht.mentionUnreadCount??0)+rn+nt)};dt&&delete uu.manuallyUnread,et(uu);}Bn(ve,dd.some(Ht=>Ht.conversationType===ve.conversationType&&Ht.conversationId===ve.conversationId&&pt(Ht)));}_e(ad.filter(ve=>he(Ke(ve),ve.id)!==void 0));for(let ve of ad)ve.recalled===void 0&&ve.deletedForEveryone===void 0?B(ve,u):y(Ke(ve),ve.id);}function ru(d,u,m=Date.now()){let S={conversationType:"direct",conversationId:d},N=he(S,u),_=n.getByConversation(S).findLast(ge=>ge.body.system?.eventType==="direct_contact_established");if(N!==void 0&&_!==void 0&&ct(_)>=ct(N))return;let Y=`${u}:contact-required`;if(n.get(Y,S)!==void 0)return;let q={id:Y,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[d],action:{type:"request-contact",userId:d}}},createdAt:m,sortKey:Be(m,Y),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Pn([q],"live");}function Fy(d,u,m=Date.now()){let S={conversationType:"direct",conversationId:d},N=`${u}:message-refused`;if(n.get(N,S)!==void 0)return;let _=n.get(u,S),Y=_?.conversationType==="direct"&&_.conversationId===d?ct(_):m,q={id:N,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[d]}},createdAt:Y,sortKey:Be(Y,N),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Pn([q],"live");}function Oy(d,u=Date.now()){let m=Vn(),S={id:m,conversationId:d.conversationId,conversationType:"direct",senderId:d.senderId,contentType:"text",body:{text:d.text},createdAt:u,sortKey:Be(u,m),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 Pn([S],"live"),ru(d.conversationId,m,u+1),S}function Vy(d,u){return `${d.trim()===""?`contact-established:${u}`:d}:contact-established`}function Ky(d,u,m=Date.now(),S=m){let N=Vy(u,S);if(n.get(N,{conversationType:"direct",conversationId:d})!==void 0)return;let _={id:N,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[d]}},createdAt:m,sortKey:Be(m,N),status:"sent",receipt:"unread",encryption:{encrypted:false}};Pn([_],"live");}let kr=new Map,od=0;function Ly(d,u,m=Date.now()){let S=kr.get(d);if(S!==void 0)return S;let N={conversationType:"direct",conversationId:d},_=od,Y=(async()=>{let q=n.getByConversation(N).filter(Fe=>{let ln=Fe.body.system?.eventType;return ln==="direct_contact_required"||ln==="direct_contact_established"}),ge=q.filter(Fe=>Fe.body.system?.eventType==="direct_contact_required"),ie=ge.at(-1)?.createdAt??0,j=q.findLast(Fe=>Fe.body.system?.eventType==="direct_contact_established")?.createdAt??0,ce=j>=ie&&j>0;if(ge.length===0&&ce)return;let Me=gi(N);for(let Fe of ge)try{let ln=await du(N,Fe.id),_t=he(N,Fe.id);!ln&&_t?.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:N,messageId:Fe.id}}});}catch(ln){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:N,messageId:Fe.id,error:ln}}});}if(_!==od)return;let Ae=s.get(N);if(Ae!==void 0&&(et({...Ae,...Ae.readCursorSortKey===void 0&&Me!==void 0?{readCursorSortKey:Me}:{},unreadCount:jl(N,Me)}),Bn(N)),ce)return;let Se=Number.isFinite(m)&&m>0?m:Date.now(),Qe=Math.max(Se,ie+1);Ky(d,u,Qe,Se);})().finally(()=>{kr.get(d)===Y&&kr.delete(d);});return kr.set(d,Y),Y}function Zy(d,u){let m=typeof d=="string"?n.getByConversation(d).find(q=>q.id===u)??se(u,d):he(d,u);if(m===void 0)return;let S=typeof d=="string"?Ke(m):d,N=typeof d=="string"?d:d.conversationId;if(m.conversationId!==N||m.conversationType!==S.conversationType)return;let _=gi(S);if(_!==void 0&&_>=m.sortKey){typeof d!="string"&&ou(d);return}let Y={...S,readCursor:u,readCursorSortKey:m.sortKey,unreadCount:jl(S,m.sortKey),mentionUnreadCount:xy(S,m.sortKey)};return et(Y),Bn(S),Y}function Qy(d){let u=o.get(d);if(u===void 0)return false;let m=s.get(d)??{...d,readCursor:u.readCursor??"",unreadCount:u.unreadCount,mentionUnreadCount:u.mentionUnreadCount};return m.unreadCount>0||m.manuallyUnread===true?false:(et({...m,manuallyUnread:true}),Bn(d),true)}function ou(d){let u=s.get(d);if(u?.manuallyUnread!==true)return false;let m={...u};return delete m.manuallyUnread,et(m),Bn(d),true}function iu(d,u,m,S,N){let _=typeof d=="string"?d:d.conversationId,Y=Fn(d),q=typeof d=="string"?Y===void 0?void 0:An(Y):d;if(Y!==void 0&&me(Y.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${_}, type=${Y.type}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}if(!Number.isFinite(u)){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u6536\u5230\u975E\u6CD5\u672A\u8BFB\u6570\uFF08conversationId=${_}, count=${u}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}q?.conversationType==="channel"&&c.delete(_);let ge=s.get(d),ie=ge?.readCursor??"",j=ge?.readCursorSortKey,ce=m===void 0||m===""?void 0:q===void 0?n.getByConversation(_).find(Me=>Me.id===m)??se(m,_):he(q,m);ce!==void 0&&ce.conversationId===_&&(j===void 0||ce.sortKey>j)&&(ie=ce.id,j=ce.sortKey),S!==void 0&&(ie=S),et({...q===void 0?{conversationId:_}:q,readCursor:ie,readCursorSortKey:j,unreadCount:Math.max(0,Math.floor(u)),...u>0?{}:{manuallyUnread:ge?.manuallyUnread},mentionUnreadCount:u===0||N===false?0:N===true?Math.max(1,ge?.mentionUnreadCount??0):ge?.mentionUnreadCount}),Bn(d,u>0&&q!==void 0&&!Q(q));}function pi(d){let u=c.get(d.conversation.conversationId);return u?.handle.transactionId===d.transactionId?u:void 0}function su(d,u,m,S=false){let N=Fn(d),_=he(d,u);if(N?.type!=="channel"||_?.conversationType!=="channel"||_.conversationId!==d.conversationId||_.extensions?.historyCursor!==m)throw new Error(`CHANNEL \u5DF2\u8BFB\u4F4D\u7F6E\u4E0D\u53EF\u4FE1\uFF08channelId=${d.conversationId}, messageId=${u}\uFF09`);S||c.delete(d.conversationId);let Y=s.get(d),q=Y===void 0?N.mentionUnreadCount:Y.mentionUnreadCount;et({...d,readCursor:m,readCursorSortKey:_.sortKey,unreadCount:Y?.unreadCount??N.unreadCount,...q===void 0?{}:{mentionUnreadCount:q}}),Bn(d);}function Wy(d){let u=d.conversationId,m=Fn(d);if(m===void 0||m.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${u}, type=${m?.type??"missing"}\uFF09`);if(c.has(u))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${u}\uFF09`);let S={conversation:d,transactionId:E++},_=s.get(d)??{conversationId:u,readCursor:m.readCursor??"",unreadCount:m.unreadCount,...m.mentionUnreadCount===void 0?{}:{mentionUnreadCount:m.mentionUnreadCount}};return c.set(u,{handle:S,baseReadState:{..._},steps:[],committedThrough:-1}),C(u),S}function au(d,u,m){let S=d.conversation,N=S.conversationId,_=pi(d);if(_===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${N}\uFF09`);let Y=he(S,u);if(Y===void 0||Y.conversationId!==N||Y.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${N}, messageId=${u}\uFF09`);if(Y.extensions?.historyCursor!==m)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${N}, messageId=${u}\uFF09`);_.steps.at(-1)?.readCursor!==m&&(_.steps.push({readCursor:m,messageId:u,...ni(Y)}),su(S,u,m,true));}function Hy(d,u,m){au(d,u,m);let N=pi(d).steps.at(-1);if(N.clearedCounts!==void 0)return;let _=s.get(d.conversation),Y=de(d.conversation).filter(ie=>ti(ni(ie),N)>0&&Ur(ie)&&pt(ie)&&ie.readBySelf!==true&&ie.recalled===void 0&&ie.deletedForEveryone===void 0),q=Math.min(_.unreadCount,Y.length),ge=Math.min(_.mentionUnreadCount??0,Y.filter(mi).length);N.clearedCounts={unread:_.unreadCount-q,mention:(_.mentionUnreadCount??0)-ge},et({..._,unreadCount:q,mentionUnreadCount:ge}),Bn(d.conversation);}function Jy(d,u){let m=pi(d);if(m===void 0)return false;let S=m.steps.findLastIndex(N=>N.readCursor===u);if(S<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${d.conversation.conversationId}, cursor=${u}\uFF09`);return m.committedThrough=Math.max(m.committedThrough,S),C(d.conversation.conversationId),m.committedThrough===m.steps.length-1&&c.delete(d.conversation.conversationId),true}function Yy(d){let u=pi(d);if(u===void 0)return false;let m=d.conversation,S=m.conversationId,N=s.get(m),_=u.committedThrough>=0?u.steps[u.committedThrough]:void 0,Y=_===void 0?u.baseReadState:void 0,q=N?.unreadCount??Y?.unreadCount??0,ge=N?.mentionUnreadCount??Y?.mentionUnreadCount??0;for(let ce of u.steps.slice(u.committedThrough+1))q+=ce.clearedCounts?.unread??0,ge+=ce.clearedCounts?.mention??0;let ie=Y?.mentionUnreadCount!==void 0||N?.mentionUnreadCount!==void 0,j={conversationId:S,conversationType:"channel",readCursor:_?.readCursor??Y?.readCursor??"",readCursorSortKey:_?.sortKey??Y?.readCursorSortKey,unreadCount:q,...ie?{mentionUnreadCount:ge}:{}};return c.delete(S),et(j),Bn(m),true}function Xy(d,u,m){let N=Fn({conversationType:"group",conversationId:d});if(N===void 0){at({id:d,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:u,sendDisabledReason:m});return}if(N.groupState===u&&N.sendDisabledReason===m)return;let _={...N,groupState:u,sendDisabledReason:m};at(_);}function id(d,u,m,S){let N={conversationType:"channel",conversationId:d},_=ue(N);if(Q(N)&&i.get(N)===void 0)return;let Y=Fn(N);if(Y===void 0){He(N),h.delete(_);let j={id:d,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:u,channelPermissions:S?.permissions,channelAccessSnapshot:S?.snapshot,sendDisabledReason:m};at(j);return}if(Y.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${d} \u7C7B\u578B\u4E3A ${Y.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);He(N),h.delete(_);let q=S?.permissions,ge=S?.snapshot;if(Y.channelState===u&&Y.sendDisabledReason===m&&pp(Y.channelPermissions,q)&&yp(Y.channelAccessSnapshot,ge)){o.get(N)!==void 0&&Bn(N);return}let ie={...Y,channelState:u,channelPermissions:q,channelAccessSnapshot:ge,sendDisabledReason:m};o.get(N)!==void 0?at(ar(N,n.getByConversation(N),"preserve",ie)):at(ie);}function zy(d,u){let m=o.get(d);if(m===void 0||m.pinned===u)return;let S={...m,pinned:u,topTime:u?Date.now():void 0};o.set(S),nn(S),wn(S);}function qy(d,u){let m=Fn(d);if(m===void 0||m.muted===u)return;let S={...m,muted:u};at(S);}async function du(d,u){if(u.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let m=()=>{if(l.isPinnedMessage(d,u))throw Object.assign(new Error("\u7F6E\u9876\u6D88\u606F\u5FC5\u987B\u5148\u53D6\u6D88\u7F6E\u9876\u624D\u80FD\u5220\u9664"),{code:"IM_MESSAGE_PINNED"})};m();let S=he(d,u),N=n.get(u,d),_=N!==void 0&&N.conversationType===d.conversationType&&N.conversationId===d.conversationId,Y=n.getByConversation(d).filter(Se=>Se.id!==u),q=o.get(d)===void 0?void 0:ar(d,Y,"clear"),ge=q===void 0?void 0:ze(q);function ie(Se){return Se!==void 0&&(N===void 0||!tr(N,Se))}let j=v===void 0?{deleted:false,superseded:false}:await xe(async()=>{m();let Se=he(d,u)??S??await v.getMessage(d,u)??void 0;if(m(),ie(n.get(u,d)))return {deleted:false,superseded:true};let Qe=await v.deleteMessage(d,u,ge);if(l.isPinnedMessage(d,u)){let Fe=he(d,u)??Se;Fe!==void 0&&await v.saveMessages([Ie(Fe)]);let ln=o.get(d);return ln!==void 0&&await v.saveSessions([ze(ln)]),m(),{deleted:false,superseded:true}}return {deleted:Qe,superseded:false}});if(j.superseded||ie(n.get(u,d)))return false;let ce=_&&n.delete(d,u),Me=false;for(let Se of x)Me=Se.removeMessage(d,u)||Me;if(!j.deleted&&!ce&&!Me)return false;let Ae=o.get(d)===void 0?void 0:ar(d,n.getByConversation(d),"clear");return rd(Ae,false),Ae!==void 0&&(q===void 0||!oi(q,Ae))&&wn(Ae),y(d,u),e.emitter.emit({type:"message:removed",conversation:{...d},messageId:u,scope:"local-only"}),true}async function jy(d){Sn(d);let u={...d},m=new Map(n.getByConversation(u).map(j=>[j.id,j])),S=o.get(u),N=s.get(u),_=N===void 0&&S===void 0?void 0:{...u,readCursor:N?.readCursor??S?.readCursor??"",...N?.readCursorSortKey===void 0?{}:{readCursorSortKey:N.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},Y=S===void 0?void 0:eu(u,void 0,"clear",_);if(v!==void 0){if(v.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 xe(()=>v.clearConversationHistory(u,Y===void 0?void 0:ze(Y),_));}let q=s.get(u),ge=q?.conversationType===N?.conversationType&&q?.conversationId===N?.conversationId&&q?.readCursor===N?.readCursor&&q?.readCursorSortKey===N?.readCursorSortKey&&q?.unreadCount===N?.unreadCount&&q?.mentionUnreadCount===N?.mentionUnreadCount;_!==void 0&&ge&&et(_,false);for(let[j,ce]of m){let Me=n.get(j,u);Me!==void 0&&tr(ce,Me)&&n.delete(u,j);}let ie=n.getByConversation(u);for(let j of x)j.clearConversation(u)&&j.applyIncoming(ie);M(u),o.get(u)!==void 0&&rd(ar(u,ie,"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:u,scope:"local-only"});}function cu(d,u={}){let m=typeof d=="string"?d:d.conversationId,S=o.get(d),N=l.get(d),_=typeof d=="string"?S!==void 0?{conversationType:S.type,conversationId:m}:N===void 0?void 0:Pt(N):d;if(_===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${m}`);Re(_),p.delete(ue(_)),_.conversationType==="direct"&&(He(_),k.delete(_.conversationId)),Sn(_);let Y=n.getByConversation(_).length;by(_),M(_),o.delete(d),i.delete(d),_.conversationType==="channel"&&(C(_.conversationId),c.delete(_.conversationId)),s.delete(d),n.deleteByConversation(d),l.clear(d);let q=W(_);if(u.terminal===true){D.add(q);let ge=w.delete(q);I.delete(q),I.delete(m),ge&&qe(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:_,data:{reason:u.terminalReason??"membership-terminated",removedMessageCount:Y}}));}else I.add(q);for(let ge of x)pe(ge,_)&&ge.reset();e.emitter.emit({type:"session:removed",conversationId:m,conversation:_}),Wt(),u.terminal===true&&Dt(),v!==void 0&&xe(async()=>{await Zn([v.deleteConversationMessages(_),v.deleteSession(_),v.deleteReadState(_),v.removePinnedMessage(_)]);}).catch(ge=>oe("\u5220\u9664\u4F1A\u8BDD\u6301\u4E45\u6570\u636E\u5931\u8D25",ge));}function $y(d){cu(d);}function sd(d,u){cu(d,{terminal:true,terminalReason:u});}function eI(d){let u=An(d);if(ue(u),u.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let m=o.get(u);if(m!==void 0)return m;let S={...d,id:u.conversationId,type:u.conversationType,...d.channelPermissions===void 0?{}:{channelPermissions:{...d.channelPermissions}},...d.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...d.channelAccessSnapshot}},...d.extensions===void 0?{}:{extensions:{...d.extensions}}},N=T(u);return N.deleted&&Wt(),N.terminal&&Dt(),o.set(S),i.delete(u),nn(S),wn(S),S}function Fn(d){if(typeof d=="string"){let u=[...o.getAll(),...i.getAll()].filter(m=>m.id===d);if(u.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${d}`);return u[0]}return o.get(d)??i.get(d)}function at(d){let u=An(d);o.get(u)!==void 0?(o.set(d),nn(d),wn(d)):(i.set(d),e.emitter.emit({type:"conversation-context:updated",conversation:u}));}function nI(d,u={}){let m=An(d);if(m.conversationType==="supergroup")throw new Error("prepareConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let S=Fn(m);if(S!==void 0){let N=S.title||d.title,_=S.avatar??d.avatar;(N!==S.title||_!==S.avatar)&&at({...S,title:N,avatar:_});return}if(Ne(m)){if(u.membershipConfirmed!==true)throw new Error("\u51C6\u5907\u804A\u5929\u5931\u8D25\uFF1A\u9700\u8981\u91CD\u65B0\u786E\u8BA4\u6210\u5458\u8D44\u683C");D.delete(W(m)),D.delete(m.conversationId),Dt();}at({...d,...d.channelPermissions===void 0?{}:{channelPermissions:{...d.channelPermissions}},...d.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...d.channelAccessSnapshot}}}),(s.get(m)?.unreadCount??0)>0&&!Q(m)&&Bn(m,true);}function tI(d){return fp(o.getAll(),d)}async function rI(d=()=>true){if(!(v===void 0||!d())){X=true;try{let u=await v.getMeta(ll);if(!d())return;if(u!==null)for(let ce of u)I.add(ce);let m=await v.getMeta(ul);if(!d())return;if(m!==null)for(let ce of m)D.add(ce);let S=await v.getMeta(gl);if(!d())return;if(S!==null)for(let[ce,Me]of S)typeof ce=="string"&&typeof Me=="string"&&w.set(ce,Me);let N=await v.getMeta(ml);if(!d())return;if(N!==null)for(let ce of N){let Me=Te(ce);t.set(Me,[...t.get(Me)??[],ce]);}let _=await v.getMeta(fl);if(!d())return;if(Array.isArray(_))for(let ce of _){if(typeof ce!="object"||ce===null)continue;let Me=Reflect.get(ce,"serialNumber"),Ae=Reflect.get(ce,"status"),Se=Reflect.get(ce,"occurredTime");typeof Me!="string"||Me.trim()===""||Ae!==0&&Ae!==1&&Ae!==2&&Ae!==3||Se!==void 0&&(typeof Se!="number"||!Number.isFinite(Se)||Se<=0)||r.set(Me,{serialNumber:Me,status:Ae,...Se===void 0?{}:{occurredTime:Se}});}let Y=await v.getPinnedMessages();if(!d())return;for(let ce of Y){if(!d())return;Q({conversationType:ce.conversationType,conversationId:ce.conversationId})||l.set(ce)&&e.emitter.emit({type:"pinned-message:updated",conversationId:ce.conversationId,conversation:Pt(ce),pinnedMessage:ce,reason:"hydrate"});}let q=(await v.getSessions()).filter(ce=>!Q({conversationType:ce.type,conversationId:ce.id}));if(!d())return;for(let ce of q){if(!d())return;let Me=An(ce),Ae=ar(Me,[],"preserve",ce),Se=An(Ae),Qe=o.get(Se);o.set(Ae),i.delete(Se),(Qe===void 0||!oi(Qe,Ae))&&nn(Ae);}let ge=await v.getReadStates();if(!d())return;for(let ce of ge)ce.conversationType==="channel"&&C(ce.conversationId),s.set(ce);let ie=J,j=await v.getDrafts();if(!d()||ie!==J)return;for(let ce of j){if(!d())return;if(!Number.isFinite(ce.updatedAt)||ce.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${ce.updatedAt}`);let Me=$a(ce.ref,ce,ce.updatedAt);if(Q(Me.ref)){try{if(await v.deleteDraft(Me.ref),!d())return}catch(Qe){if(!d())return;oe("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",Qe);}continue}let Ae=ue(Me.ref);G.set(Ae,Math.max(G.get(Ae)??0,Me.updatedAt));let Se=a.get(Me.ref);Se!==null&&Se.updatedAt===Me.updatedAt&&Xl(Se,Me)||(a.set(Me),e.emitter.emit({type:"draft:updated",conversation:Me.ref,draft:Me}));}for(let ce of q){if(!d())return;let Me=An(ce),Ae=(await v.getMessages(Me,{limit:JR})).filter(Fe=>ue(Ke(Fe))===ue(Me)).filter(te);if(!d())return;let Se=[],Qe=Ae.map(Fe=>{let ln=fi(Kt(Fe));return ln!==Fe&&Se.push(ln),ln});if(nu(Qe,d),!d())return;if(Se.length>0)try{if(await v.saveMessages(Se),!d())return}catch(Fe){if(!d())return;oe("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",Fe);}if(!d())return;Bn(Me);}}catch(u){d()&&oe("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",u);}finally{X=false,d()&&P("offline");}}}async function oI(d,u){if(v===void 0)return [];try{let m=await v.getMessages(d,u),S=typeof d=="string"?m.filter(te):m.filter(Y=>ue(Ke(Y))===ue(d)).filter(te),N=X;X=!0;let _;try{_=nu(S);}finally{X=N;}return X||P("offline"),_.map(Y=>he(Ke(Y),Y.id)??Y)}catch(m){return oe("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",m),[]}}function iI(d,u){let m=u?.match(hi(d));return {message:d,ranges:m?.ranges.map(({start:S,end:N})=>[S,N])??[]}}async function sI(d,u){let m=u.keyword?.trim()??"",S=u.contentTypes;if(m===""&&(S===void 0||S.length===0))return {results:[],exhausted:true};let N=m===""?void 0:await Sd(m),_=Se=>{let Qe=S===void 0||S.includes(Se.contentType),Fe=N===void 0||N.match(hi(Se))!==null;return Qe&&Fe},Y=(Se,Qe)=>Se.sortKey<Qe.sortKey?1:Se.sortKey>Qe.sortKey?-1:0,q=Se=>iI(Se,N),ge=()=>{let Se=n.getByConversation(d).filter(_).sort(Y),Fe=(u.beforeSortKey===void 0?Se:Se.filter(_t=>_t.sortKey<u.beforeSortKey)).slice(0,u.limit),ln=Fe.length<u.limit;return {results:Fe.map(q),exhausted:ln,...ln?{}:{nextBeforeSortKey:Fe.at(-1)?.sortKey}}};if(v===void 0)return ge();let ie;try{ie=await v.searchMessages(d,{...u.keyword!==void 0?{keyword:u.keyword}:{},...S!==void 0?{contentTypes:S}:{},limit:u.limit,...u.beforeSortKey!==void 0?{beforeSortKey:u.beforeSortKey}:{}});}catch(Se){throw oe("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",Se),Se}let j=ie.exhausted?void 0:ie.nextBeforeSortKey,ce=new Map(n.getByConversation(d).map(Se=>[Se.id,Se])),Me=new Map;for(let Se of ie.items){let Qe=tu(Se);ue(Ke(Qe))===ue(d)&&Me.set(Qe.id,ce.get(Qe.id)??Qe);}for(let Se of ce.values()){let Qe=u.beforeSortKey===void 0||Se.sortKey<u.beforeSortKey,Fe=j===void 0||Se.sortKey>=j;Qe&&Fe&&_(Se)&&Me.set(Se.id,Se);}return {results:[...Me.values()].filter(_).sort(Y).map(q),exhausted:ie.exhausted,...ie.exhausted?{}:{nextBeforeSortKey:ie.nextBeforeSortKey}}}function aI(d,u,m){let S=he(d,u);S!==void 0&&Pn([{...S,recalled:m,body:{}}],"live");}function dI(d,u,m){let S=he(d,u);S===void 0||S.conversationType!=="channel"||Pn([{...S,recalled:void 0,deletedForEveryone:m,body:{}}],"live");}function cI(d,u,m,S){let N=he(d,u);if(N===void 0)return;let _={...N,body:m,edited:true};S!==void 0?_.mention=S:delete _.mention,Pn([_],"live");}async function lI(d,u,m){let S=r.get(d),N={serialNumber:d,status:u,...m===void 0?{}:{occurredTime:m}},_=H(S,N);r.set(_.serialNumber,_),await ke();let Y=new Map;for(let q of Pa(n.getAll(),d,_.status,_.occurredTime))Y.set(q.id,q);for(let q of o.getAll()){let ge=de({conversationType:q.type,conversationId:q.id});for(let ie of Pa(ge,d,_.status,_.occurredTime))Y.set(ie.id,ie);}Y.size!==0&&Pn([...Y.values()],"live");}return {upsertMessages:Pn,commitReceivedMessages:Ze,applyReaction:A,rollbackReaction:R,appendDirectContactRequiredNotice:ru,appendDirectMessageRefusedNotice:Fy,appendDirectContactRequiredTextFailure:Oy,reconcileDirectContactEstablishedNotice:Ly,recallMessage:aI,deleteChannelMessageForEveryone:dI,editMessage:cI,applyTransferStatusBySerialNumber:lI,getMessage:d=>n.get(d),getMessagesById:d=>n.getById(d),getConversationMessage:he,getLoadedMessagesByConversation:de,resolveConversationMessage:Py,getMessages:()=>n.getAll(),getMessagesByConversation:d=>n.getByConversation(d),deleteLocalMessage:du,clearLocalConversationHistory:jy,commitChannelSyncPage:cn,saveChannelSyncCheckpoint:un,waitForChannelSyncPersistence:Qt,getSession:d=>o.get(d),getConversationContext:Fn,isMembershipTerminated:Ne,prepareConversation:nI,ensureConversation:eI,getSessions:()=>o.getAll(),getConversationList:My,getReadState:d=>s.get(d),getPinnedMessage:d=>l.get(d),setPinnedMessage:_y,clearPinnedMessage:Gy,isPinnedMessage:(d,u)=>l.isPinnedMessage(d,u),setReadState:d=>{let u=d.conversationType===void 0?o.get(d.conversationId):void 0,m=d.conversationType===void 0&&u!==void 0?{...d,conversationType:u.type}:d;m.conversationType==="channel"&&C(m.conversationId),s.set(m),Ye(m);},markConversationUnread:Qy,clearConversationManualUnread:ou,advanceRead:Zy,applyServerUnread:iu,applyChannelReadPosition:su,getChannelReadRevision:d=>g.get(d.conversationId)??f,hasPendingChannelRead:d=>c.has(d.conversationId),applyChannelReadSummary:(d,u)=>iu(d,u.unreadCount,void 0,u.readCursor,u.hasUnreadMention),beginChannelReadTransaction:Wy,applyChannelReadOptimistically:au,applyChannelConversationReadOptimistically:Hy,commitChannelReadTransaction:Jy,rollbackChannelReadTransaction:Yy,setGroupRestriction:Xy,setChannelRestriction:id,setPinned:zy,setMuted:qy,removeConversation:$y,removeConversationForMembershipTermination:sd,refreshConversationProfile:Uy,readDirectProfile:ql,beginConversationProfileRead:Xe,recoverChannelFromProfile:ky,updateConversationProfile:wy,getTotalUnread:tI,getDraft:Ay,saveDraft:Ey,clearDraft:vy,clearDraftIfUnchanged:Ty,invalidateAndDrainDraftOperations:Ny,clearSession(){yt+=1,V+=1,J+=1,od+=1,kr.clear(),K.clear(),fe.clear(),p.clear(),h.clear(),k.clear(),n.clear(),o.clear(),i.clear(),s.clear(),a.clear(),U.clear(),G.clear(),O.clear(),c.clear(),g.clear(),f+=1,l.clearAll(),I.clear(),D.clear(),w.clear(),yn.clear(),t.clear();for(let d of x)d.reset();},hydrate:rI,loadOlderMessages:oI,searchMessages:sI,messageWindow:ne,createMessageWindow:ee}}var zR=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function qR(e){let n=new Set,t=new Map,r=new Map,o=true;function i(c){let g=c.extensions?.channelSequence,f=typeof g=="string"?g:c.raw?.channelNotify?.sequence;if(f===void 0||!/^\d+$/.test(f))return;let C=BigInt(f);return C>0n?C:void 0}function s(c){return n.has(c)?false:(n.add(c),n.size>2048&&n.delete(n.values().next().value),true)}function a(c,g,f,C){C!==void 0&&r.set(c,C),e.clearChannelKey(c),e.stopChannelHistory(c),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:c},f);}function l(c){let g=e.domainState.getSession(c);e.domainState.setChannelRestriction(c,g?.channelState??"unknown_restricted",g?.channelState===void 0?"channel_access_requires_refresh":g.sendDisabledReason);}return {handleMessage(c,g={source:"live"}){if(!o||c.conversationType!=="channel"||c.contentType!=="system"||c.body.system===void 0||g.source!=="live"&&g.applyLifecycleEffects!==true||!s(c.id))return;let f=c.conversationId,C=c.body.system,E=C.targetUserIds?.includes(e.getSelfId())??false,I=C.targetUserIds===void 0||C.targetUserIds.length===0,D=i(c),w=t.get(f);if(D!==void 0){if(w!==void 0&&D<=w)return;t.set(f,D);}switch(C.eventType){case "channel_member_left":E?a(f,"left","channel_left",D):e.domainState.refreshConversationProfile(f,"channel");return;case "channel_member_removed":E?a(f,"removed","channel_removed",D):e.domainState.refreshConversationProfile(f,"channel");return;case "channel_dismissed":a(f,"dismissed","channel_dismissed",D);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!E){e.domainState.refreshConversationProfile(f,"channel");return}let v=e.domainState.getSession(f)?.channelState;if(v==="dismissed")return;if(v==="left"||v==="removed"){let b=r.get(f);if(!(D!==void 0&&b!==void 0&&D>b)){e.domainState.recoverChannelFromProfile(f).then(G=>{!o||!G||(r.delete(f),e.clearConversationTermination?.({conversationType:"channel",conversationId:f}),e.prepareChannelKey(f));});return}r.delete(f);}if(!o)return;e.domainState.setChannelRestriction(f,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:f}),e.prepareChannelKey(f),e.domainState.refreshConversationProfile(f,"channel");return}case "channel_all_muted":case "channel_all_unmuted":l(f),e.domainState.refreshConversationProfile(f,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(E||I)&&l(f),e.domainState.refreshConversationProfile(f,"channel");return;case "channel_admin_added":case "channel_admin_removed":(E||I)&&l(f),e.domainState.refreshConversationProfile(f,"channel");return;case "channel_owner_transferred":(E||I||C.operatorId===e.getSelfId())&&l(f),e.domainState.refreshConversationProfile(f,"channel");return;default:zR.has(C.eventType)&&e.domainState.refreshConversationProfile(f,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function jR(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=Uc(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=kc(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 $R(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 eA(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:Be(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function or(e,n){let t=eA(n),r=e.getConversationMessage(t,n.callId);r?.contentType==="call"&&r.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([t],"live");}var Nr=3e4,Ip=0,Cp=1,Sp=0;function hp(e=0,n=0){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||n<0)throw new Error(`call signaling: invite screen \u5C3A\u5BF8\u975E\u6CD5\uFF08${String(e)}\xD7${String(n)}\uFF09`);return JSON.stringify({screenW:e,screenH:n})}var nA=5,tA=6,Rp=1,Ap=2;function pl(e){return e==="video"?tA:nA}function Mp(e){return e==="audio"?Cp:Ip}function Ep(e){if(e===Cp)return "audio";if(e===Ip)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Ka(e,n,t=Nr){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 vp(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 Tp(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function yl(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function La(e,n,t){if(t)return e===33799||e===33798?"interrupted":"completed";if(e===33792)return "rejected";if(e===33793)return "busy";if(e===33800||e===33795||e===32768||e===0)return n==="outgoing"?"cancelled":"missed";if(e===33799||e===33798)return "interrupted";throw new Error(`call signaling: hangupReasonCode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function Ue(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function hn(e,n){let t=e.trim(),r=n.trim();return t===r?true:t===""||r===""||!/^\d+$/.test(t)||!/^\d+$/.test(r)?false:BigInt(t)===BigInt(r)}function en(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var rA=new Set([33281,33299]);function Dr(e){return {conversationType:"direct",conversationId:e}}function bp(e){return e==="accepted"||e==="connected"}function oA(e){let n,t;function r(){return e.now?.()??Date.now()}function o(){let H=e.getSelfId();if(H.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return H}function i(H){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${H}`);return o()}function s(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function a(){t?.ringTimer!==void 0&&clearTimeout(t.ringTimer),t&&(t.ringTimer=void 0);}function l(H,F){e.emitter.emit({type:"call:hangup",conversation:Dr(H.peerId),callId:H.callId,peerId:H.peerId,outcome:F});}function c(H,F=r(),y=true){if(t===void 0)return;let M=t;return a(),f(M,H,F),t=void 0,y&&l(M,H),M}function g(H,F){return H.connectedAt===void 0?0:Math.max(0,F-H.connectedAt)}function f(H,F,y,M){or(e.domainState,{callId:H.callId,peerId:H.peerId,selfId:o(),callKind:H.callKind,outcome:F,durationMs:g(H,y),outgoing:H.direction==="outgoing",createdAt:y,...M});}function C(H,F){n!==void 0&&f(n,H,F);}function E(H,F=r(),y=true){if(n===void 0)return;let M=n;return s(),C(H,F),n=void 0,y&&l(M,H),t!==void 0&&(n=t,t=void 0),M}function I(H,F,y){let M=H===16387?ho.encode(ho.create({sUserId:F,sMsgId:y})):H===16391?Ao.encode(Ao.create({sUserId:F,sMsgId:y})):H===16399?Eo.encode(Eo.create({sUserId:F,sMsgId:y})):H===16403?To.encode(To.create({sUserId:F,sMsgId:y})):Mo.encode(Mo.create({sUserId:F,sMsgId:y}));e.sendFrame(ae({command:H,body:M}));}function D(H){return setTimeout(H,Nr)}function w(){return we(Vn())}function v(H,F,y,M){let A=So.encode(So.create({sInviteId:Ue(F,"peerId"),sFromId:Ue(H,"selfId"),sMsgId:w(),msgTime:BigInt(r()),encrypt:Sp,sContent:hp(),callType:Mp(M),scallId:y}));e.sendFrame(ae({command:16385,body:A}));}function b(H,F,y,M){let A=Ro.encode(Ro.create({sToId:Ue(F,"peerId"),sFromId:Ue(H,"selfId"),sMsgId:w(),msgTime:BigInt(r()),errcode:Tp(M),scallId:y}));e.sendFrame(ae({command:16389,body:A}));}function U(H,F,y,M){let A=yr.encode(yr.create({sToId:Ue(F,"peerId"),sFromId:Ue(H,"selfId"),sMsgId:w(),msgTime:BigInt(r()),scallId:y,hangupReasonCode:yl(M)}));e.sendFrame(ae({command:16397,body:A}));}function G(H,F){let y=en(H.callId);if(Ue(H.peerId,"peerId"),n===void 0||n.callId!==y||n.peerId!==H.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${F}`);return n}function O(H){let F=i("\u53D1\u8D77\u901A\u8BDD"),y=H.callKind??"audio",M=String(Ue(H.peerId,"peerId"));if(M===F)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let A=en(H.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let R=r();return n={callId:A,peerId:M,callKind:y,direction:"outgoing",phase:"outgoing-ringing",startedAt:R},v(F,M,A,y),n.ringTimer=D(()=>{n?.callId!==A||n.phase!=="outgoing-ringing"||(U(F,M,A,"no-answer"),E("cancelled"));}),{callId:A,conversation:Dr(M)}}function J(H){let F=i("\u63A5\u542C"),y=en(H.callId);if(Ue(H.peerId,"peerId"),t!==void 0&&t.callId===y&&t.peerId===H.peerId){if(n!==void 0)throw new Error("call signaling: \u8BF7\u5148\u7ED3\u675F\u5F53\u524D\u901A\u8BDD\u518D\u63A5\u542C\u7B49\u5F85\u6765\u7535");n=t,t=void 0;}let M=G(H,"\u63A5\u542C");if(M.direction!=="incoming"||M.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");s(),b(F,M.peerId,M.callId,"accept"),M.phase="accepted";}function me(H){let F=i("\u62D2\u7EDD"),y=en(H.callId);if(Ue(H.peerId,"peerId"),t!==void 0&&t.callId===y&&t.peerId===H.peerId){b(F,t.peerId,t.callId,"reject"),c("rejected");return}let M=G(H,"\u62D2\u7EDD");if(M.direction!=="incoming"||M.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");b(F,M.peerId,M.callId,"reject"),E("rejected");}function x(H){let F=i("\u56DE\u5FD9"),y=en(H.callId),M=String(Ue(H.peerId,"peerId"));if(b(F,M,y,"busy"),n?.callId===y){E("busy");return}if(t?.callId===y){c("busy");return}or(e.domainState,{callId:y,peerId:M,selfId:F,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:r()});}function z(H){let F=i("\u6302\u65AD"),y=G(H,"\u6302\u65AD");U(F,y.peerId,y.callId,H.reason);let M=y.phase==="connected",A=La(yl(H.reason),y.direction,M);E(A);}function ne(H,F){let y=F==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",M=i(y),A=G(H,y);if(A.callKind!==F)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${F==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(A.phase!=="accepted"&&A.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let R=vo.encode(vo.create({sToId:Ue(A.peerId,"peerId"),sFromId:Ue(M,"selfId"),sMsgId:w(),msgTime:BigInt(r()),notifyType:pl(F),notifyValue:H.role==="caller"?Rp:Ap,scallId:A.callId}));e.sendFrame(ae({command:16401,body:R}));}function ee(H){ne(H,"audio");}function se(H){ne(H,"video");}function he(H){let F=Ds.decode(H);if(F.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let y=o();I(16387,Ue(y,"selfId"),F.sMsgId);let M=en(F.scallId),A=F.sFromId.toString();if(F.sFromId<=0n||F.sInviteId.toString()!==y)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(A===y)return;let R=Number(F.msgTime),B=Ep(F.callType),P=Ka(R,r()),V=Dr(A);if(P){or(e.domainState,{callId:M,peerId:A,selfId:y,callKind:B,outcome:"missed",durationMs:0,outgoing:false,createdAt:R}),e.emitter.emit({type:"call:incoming",conversation:V,callId:M,peerId:A,callKind:B,createdAt:R,expired:true});return}if(n?.callId===M||t?.callId===M)return;if(n!==void 0&&!bp(n.phase)){b(y,A,M,"busy"),or(e.domainState,{callId:M,peerId:A,selfId:y,callKind:B,outcome:"busy",durationMs:0,outgoing:false,createdAt:R});return}if(n!==void 0&&n.peerId===A){b(y,A,M,"busy"),or(e.domainState,{callId:M,peerId:A,selfId:y,callKind:B,outcome:"busy",durationMs:0,outgoing:false,createdAt:R});return}if(t!==void 0){b(y,A,M,"busy"),or(e.domainState,{callId:M,peerId:A,selfId:y,callKind:B,outcome:"busy",durationMs:0,outgoing:false,createdAt:R});return}let K={callId:M,peerId:A,callKind:B,direction:"incoming",phase:"incoming-ringing",startedAt:R};if(K.ringTimer=D(()=>{if(t?.callId===M&&t.phase==="incoming-ringing"){c("missed");return}n?.callId!==M||n.phase!=="incoming-ringing"||E("missed",R);}),n!==void 0&&bp(n.phase)){t=K,e.emitter.emit({type:"call:incoming",conversation:V,callId:M,peerId:A,callKind:B,createdAt:R,expired:false});return}n=K,e.emitter.emit({type:"call:incoming",conversation:V,callId:M,peerId:A,callKind:B,createdAt:R,expired:false});}function Ge(H){let F=Ns.decode(H);if(n===void 0||n.direction!=="outgoing"||F.errcode===32768)return;let y=F.errcode===33794?"peer-offline":"ack-error",M=n,A=r();s(),n=void 0,rA.has(F.errcode)?(f(M,"cancelled",A,{status:"failed",failure:{code:F.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(M.peerId,M.callId,A+1)):f(M,"cancelled",A),e.emitter.emit({type:"call:failed",conversation:Dr(M.peerId),callId:M.callId,peerId:M.peerId,reason:y});}function de(H,F){F!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${H} ACK \u5931\u8D25`,cause:{errcode:F}}});}function pe(H){let F=Gs.decode(H);if(F.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let y=o();I(16391,Ue(y,"selfId"),F.sMsgId);let M=en(F.scallId);if(n===void 0||n.callId!==M||n.direction!=="outgoing")return;let A=vp(F.errcode);if(e.emitter.emit({type:"call:answered",conversation:Dr(n.peerId),callId:M,peerId:n.peerId,result:A}),A==="accept"){s(),n.phase="accepted";return}E(A==="reject"?"rejected":A==="busy"?"busy":"cancelled");}function X(H){let F=yr.decode(H);if(F.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let y=o();I(16399,Ue(y,"selfId"),F.sMsgId);let M=en(F.scallId);if(t!==void 0&&t.callId===M){let R=La(F.hangupReasonCode,t.direction,false);c(R);return}if(n===void 0||n.callId!==M)return;let A=La(F.hangupReasonCode,n.direction,n.phase==="connected");E(A);}function Te(H){let F=xs.decode(H);if(F.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let y=o();if(I(16403,Ue(y,"selfId"),F.sMsgId),n===void 0||F.notifyType!==pl(n.callKind))return;let M=en(F.scallId);n.callId===M&&(n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=r()),n.phase="connected",e.emitter.emit({type:n.callKind==="video"?"call:peer-video-begin":"call:peer-audio-begin",conversation:Dr(n.peerId),callId:M,peerId:n.peerId})));}function Ce(H){let F=Us.decode(H);if(F.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");I(16395,Ue(o(),"selfId"),F.sMsgId);}return {handlers:[{command:16388,handler:(H,F)=>he(F)},{command:16386,handler:(H,F)=>Ge(F)},{command:16392,handler:(H,F)=>pe(F)},{command:16390,handler:(H,F)=>de("answer",_s.decode(F).errcode)},{command:16400,handler:(H,F)=>X(F)},{command:16398,handler:(H,F)=>de("hangup",ks.decode(F).errcode)},{command:16404,handler:(H,F)=>Te(F)},{command:16402,handler:(H,F)=>de("state-notify",ws.decode(F).errcode)},{command:16396,handler:(H,F)=>Ce(F)}],invite:O,accept:J,reject:me,busy:x,hangup:z,notifyPeerAudioBegin:ee,notifyPeerVideoBegin:se,dispose(){s(),a(),n=void 0,t=void 0;}}}var iA={started:"group_call_started",ended:"group_call_ended",missed:"group_call_missed"};function sA(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n=Math.imul(n,16777619);return n>>>0}function Np(e,n){let t=`group-call-notice:${n}:${e.trim()}`,r=[0,1,2,3].map(o=>sA(`${t}:${o}`).toString(16).padStart(8,"0")).join("");return be(r)}function aA(e){let n=Np(e.callId,e.kind),t=e.operatorId?.trim()??"";return {id:n,conversationId:e.groupId,conversationType:"group",senderId:Da,contentType:"system",body:{system:{eventType:iA[e.kind],...t===""?{}:{operatorId:t},payload:{callId:e.callId}}},createdAt:e.createdAt,sortKey:Be(e.createdAt,n),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function Dp(e,n){let t=Np(n.callId,n.kind),r=aA(n);e.getConversationMessage(r,t)===void 0&&e.upsertMessages([r],"live");}var Il=9;function dA(e){if(e<0n)throw new Error("group call: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7Fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function _p(e,n,t){if(t.length===0)return e;if(n<=0||n>=16)throw new Error(`group call: \u975E\u6CD5 protobuf field ${n}`);let r=n<<3,o=[e],i=0;for(let l of t){let c=dA(l),g=new Uint8Array(1+c.length);g[0]=r,g.set(c,1),o.push(g),i+=g.length;}let s=new Uint8Array(e.length+i),a=0;for(let l of o)s.set(l,a),a+=l.length;return s}function Mn(e){return {conversationType:"group",conversationId:e}}function cA(e){return {groupId:e.groupId,callId:e.callId,inviterId:e.inviterId,createdAt:e.createdAt,members:e.members.map(n=>({userId:n.userId,status:n.status}))}}function lA(e){return e.members.filter(n=>n.status==="in-call").length}function Za(e){return e.filter(n=>n.status==="in-call").length<=1}function uA(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function i(A,R,B,P,V){Dp(e.domainState,{kind:A,groupId:R,callId:B,createdAt:P,...V===void 0?{}:{operatorId:V}});}function s(){let A=e.getSelfId();if(A.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return A}function a(A){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${A}`);return s()}function l(){return we(Vn())}function c(A){if(A.trim()===""||t.has(A))return false;if(t.add(A),r.push(A),r.length>256){let R=r.shift();R!==void 0&&t.delete(R);}return true}function g(A){let R=n.get(A);return R===void 0?null:cA(R)}function f(A){A.incomingRingTimer!==void 0&&clearTimeout(A.incomingRingTimer),A.incomingRingTimer=void 0;}function C(A,R,B){let P=A.members.find(V=>V.userId===R);if(P!==void 0){P.status=B;return}A.members.push({userId:R,status:B});}function E(A,R){A.members=A.members.filter(B=>B.userId!==R);}function I(A){let R=n.get(A.groupId);R!==void 0&&f(R);let B=[];for(let V of A.inCallIds)B.some(K=>K.userId===V)||B.push({userId:V,status:"in-call"});for(let V of A.ringingIds)B.some(K=>K.userId===V)||B.push({userId:V,status:"ringing"});let P={groupId:A.groupId,callId:A.callId,inviterId:A.inviterId,createdAt:A.createdAt,members:B};return n.set(A.groupId,P),P}function D(A,R){let B=n.get(A);if(B!==void 0&&!(R!==void 0&&B.callId!==R))return f(B),n.delete(A),B}function w(A,R){for(let B of n.values())if(B.groupId!==R&&B.members.some(P=>hn(P.userId,A)))return true;return false}function v(A,R,B){let P=No.encode(No.create({userId:R,msgId:B}));e.sendFrame(ae({command:A,body:P}));}function b(A,R,B,P){let V=P.map(fe=>Ue(fe,"inviteId")),K=_p(bo.encode(bo.create({groupId:Ue(R,"groupId"),userId:Ue(A,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:B,inviteIds:V})),6,V);e.sendFrame(ae({command:16641,body:K}));}function U(A,R,B,P,V){let K=P.map(p=>Ue(p,"inviteId")),fe=_p(_o.encode(_o.create({groupId:Ue(R,"groupId"),userId:Ue(A,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:B,joinType:V?1:0,inviteIds:K})),5,K);e.sendFrame(ae({command:16649,body:fe}));}function G(A,R,B,P){let V=Do.encode(Do.create({groupId:Ue(R,"groupId"),userId:Ue(A,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:B,ansType:P?1:0}));e.sendFrame(ae({command:16645,body:V}));}function O(A,R,B){let P=Go.encode(Go.create({groupId:Ue(R,"groupId"),userId:Ue(A,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:B}));e.sendFrame(ae({command:16653,body:P}));}function J(A,R,B){let P=Uo.encode(Uo.create({groupId:Ue(R,"groupId"),userId:Ue(A,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:B}));e.sendFrame(ae({command:16657,body:P}));}function me(A,R,B){let P=a("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),V=en(R),K=[...new Set(B.map(p=>p.trim()).filter(p=>p!==""&&!hn(p,P)))];if(K.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(K.length+1>Il)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${Il}`);let fe=n.get(A);if(fe!==void 0&&lA(fe)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");b(P,A,V,K),I({groupId:A,callId:V,inviterId:P,createdAt:o(),inCallIds:[P],ringingIds:K}),i("started",A,V,o(),P);}function x(A,R,B,P){let V=a("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),K=en(R),fe=[...new Set(B.map(h=>h.trim()).filter(h=>h!==""&&!hn(h,V)))];U(V,A,K,fe,P);let p=n.get(A);if(p!==void 0&&p.callId===K&&(C(p,V,"in-call"),P))for(let h of fe)C(p,h,"ringing");}function z(A,R,B){let P=a("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),V=en(R),K=n.get(A);if(K!==void 0&&K.callId===V&&f(K),G(P,A,V,B),!(K===void 0||K.callId!==V)){if(B){C(K,P,"in-call");return}E(K,P),e.emitter.emit({type:"group-call:answered",conversation:Mn(A),callId:V,groupId:A,userId:P,agreed:false});}}function ne(A,R){let B=a("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),P=en(R),V=n.get(A);if(V!==void 0&&V.callId===P&&Za(V.members)){J(B,A,P),D(A,P),i("ended",A,P,o()),e.emitter.emit({type:"group-call:finished",conversation:Mn(A),callId:P,groupId:A,userId:B});return}O(B,A,P),V!==void 0&&V.callId===P&&(f(V),E(V,B)),e.emitter.emit({type:"group-call:left",conversation:Mn(A),callId:P,groupId:A,userId:B});}function ee(A,R){let B=a("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),P=en(R);J(B,A,P),D(A,P),i("ended",A,P,o()),e.emitter.emit({type:"group-call:finished",conversation:Mn(A),callId:P,groupId:A,userId:B});}function se(A,R,B,P){let V=a("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),K=ko.encode(ko.create({groupId:Ue(A,"groupId"),userId:Ue(V,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:en(R),statusType:B?1:0,status:P?1:0}));e.sendFrame(ae({command:16661,body:K}));}function he(A,R,B){let P=a("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),V=wo.encode(wo.create({groupId:Ue(A,"groupId"),userId:Ue(P,"selfId"),msgId:l(),msgTime:BigInt(o()),callId:en(R),hintUser:Ue(B,"hintUserId")}));e.sendFrame(ae({command:16669,body:V}));let K=n.get(A);K!==void 0&&K.callId===R&&E(K,P);}function Ge(A){let R=Ps.decode(A);if(R.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let B=s();if(v(16643,Ue(B,"selfId"),R.msgId),!c(R.msgId))return;let P=R.groupId.toString(),V=R.userId.toString(),K=en(R.callId),fe=R.inviteIds.map(T=>T.toString()).filter(T=>T!=="0"),p=Number(R.msgTime),h=Ka(p,o(),Nr),k=Mn(P),W=hn(V,B),Q=fe.some(T=>hn(T,B))||fe.length===0&&!W;if(W){I({groupId:P,callId:K,inviterId:V,createdAt:p,inCallIds:[B],ringingIds:fe.filter(T=>!hn(T,B))});return}let Ne=n.get(P);if(Ne!==void 0&&Ne.callId!==K&&Ne.members.some(T=>hn(T.userId,B)&&T.status==="in-call")){J(B,P,K),i("ended",P,K,Number.isFinite(p)?p:o());return}if(I({groupId:P,callId:K,inviterId:V,createdAt:p,inCallIds:[V],ringingIds:Q?[...new Set([B,...fe.filter(T=>!hn(T,V))])]:fe.filter(T=>!hn(T,V))}),i("started",P,K,Number.isFinite(p)?p:o(),V),!Q)return;if(h){e.emitter.emit({type:"group-call:incoming",conversation:k,callId:K,groupId:P,inviterId:V,inviteIds:fe,createdAt:p,expired:true});return}if(w(B,P)){he(P,K,V);return}let re=n.get(P);re!==void 0&&(re.incomingRingTimer=setTimeout(()=>{let T=n.get(P);if(T===void 0||T.callId!==K)return;let Z=T.members.find(te=>hn(te.userId,B));if(!(Z===void 0||Z.status!=="ringing")){try{z(P,K,!1);}catch{E(T,B);}i("missed",P,K,o());}},Nr)),e.emitter.emit({type:"group-call:incoming",conversation:k,callId:K,groupId:P,inviterId:V,inviteIds:fe,createdAt:p,expired:false});}function de(A){let R=Os.decode(A);if(R.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let B=s();if(v(16647,Ue(B,"selfId"),R.msgId),!c(R.msgId))return;let P=R.groupId.toString(),V=R.userId.toString(),K=en(R.callId),fe=R.ansType===1,p=n.get(P);p===void 0||p.callId!==K||(fe?C(p,V,"in-call"):E(p,V),e.emitter.emit({type:"group-call:answered",conversation:Mn(P),callId:K,groupId:P,userId:V,agreed:fe}));}function pe(A){let R=Ks.decode(A);if(R.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let B=s();if(v(16651,Ue(B,"selfId"),R.msgId),!c(R.msgId))return;let P=R.groupId.toString(),V=R.userId.toString(),K=en(R.callId),fe=R.inviteIds.map(W=>W.toString()).filter(W=>W!=="0"&&W!==V),p=n.get(P);if(p===void 0||p.callId!==K)p=I({groupId:P,callId:K,inviterId:V,createdAt:Number(R.msgTime),inCallIds:[V],ringingIds:fe});else if(C(p,V,"in-call"),R.joinType===1)for(let W of fe)C(p,W,"ringing");e.emitter.emit({type:"group-call:joined",conversation:Mn(P),callId:K,groupId:P,userId:V,inviteIds:fe,isInvite:R.joinType===1});let h=fe.some(W=>hn(W,B))||fe.length===0&&R.joinType===1&&!hn(V,B),k=p.members.find(W=>hn(W.userId,B));h&&R.joinType===1&&!hn(V,B)&&k?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:Mn(P),callId:K,groupId:P,inviterId:V,inviteIds:fe,createdAt:Number(R.msgTime),expired:false});}function X(A){let R=Zs.decode(A);if(R.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let B=s();if(v(16655,Ue(B,"selfId"),R.msgId),!c(R.msgId))return;let P=R.groupId.toString(),V=R.userId.toString(),K=en(R.callId),fe=n.get(P);fe===void 0||fe.callId!==K||(E(fe,V),e.emitter.emit({type:"group-call:left",conversation:Mn(P),callId:K,groupId:P,userId:V}),Za(fe.members)&&(D(P,K),i("ended",P,K,o()),e.emitter.emit({type:"group-call:finished",conversation:Mn(P),callId:K,groupId:P,userId:V})));}function Te(A){let R=Ws.decode(A);if(R.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let B=s();if(v(16659,Ue(B,"selfId"),R.msgId),!c(R.msgId))return;let P=R.groupId.toString(),V=R.userId.toString(),K=en(R.callId);D(P,K),i("ended",P,K,Number(R.msgTime)||o()),e.emitter.emit({type:"group-call:finished",conversation:Mn(P),callId:K,groupId:P,userId:V});}function Ce(A){let R=zs.decode(A);if(R.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let B=s();if(v(16671,Ue(B,"selfId"),R.msgId),!c(R.msgId))return;let P=R.groupId.toString(),V=R.userId.toString(),K=en(R.callId),fe=n.get(P);fe!==void 0&&fe.callId===K&&E(fe,V),e.emitter.emit({type:"group-call:busy",conversation:Mn(P),callId:K,groupId:P,userId:V,hintUserId:R.hintUser.toString()});}function ke(A){let R=Ys.decode(A);if(R.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let B=s();if(v(16667,Ue(B,"selfId"),R.msgId),!c(R.msgId))return;let P=R.groupId.toString(),V=en(R.callId),K=n.get(P);if(!(K===void 0||K.callId!==V)){for(let fe of R.users){let p=fe.toString();E(K,p),e.emitter.emit({type:"group-call:left",conversation:Mn(P),callId:V,groupId:P,userId:p});}Za(K.members)&&(D(P,V),i("ended",P,V,o()),e.emitter.emit({type:"group-call:finished",conversation:Mn(P),callId:V,groupId:P,userId:R.userId.toString()}));}}function H(A){let R=Js.decode(A);if(R.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");v(16663,Ue(s(),"selfId"),R.msgId);}function F(A){let R=Bs.decode(A);if(R.errCode===32768)return;let B=s();for(let P of n.values()){if(!hn(P.inviterId,B))continue;let V=D(P.groupId,P.callId);if(V!==void 0){e.emitter.emit({type:"group-call:failed",conversation:Mn(V.groupId),callId:V.callId,groupId:V.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:R.errCode}}});}function y(A,R){R!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${A} ACK \u5931\u8D25`,cause:{errCode:R}}});}return {commandHandlers:[{command:16644,handler:(A,R)=>Ge(R)},{command:16642,handler:(A,R)=>F(R)},{command:16648,handler:(A,R)=>de(R)},{command:16646,handler:(A,R)=>y("answer",Fs.decode(R).errCode)},{command:16652,handler:(A,R)=>pe(R)},{command:16650,handler:(A,R)=>y("join",Vs.decode(R).errCode)},{command:16656,handler:(A,R)=>X(R)},{command:16654,handler:(A,R)=>y("hangup",Ls.decode(R).errCode)},{command:16660,handler:(A,R)=>Te(R)},{command:16658,handler:(A,R)=>y("finish",Qs.decode(R).errCode)},{command:16672,handler:(A,R)=>Ce(R)},{command:16670,handler:(A,R)=>y("busy",Xs.decode(R).errCode)},{command:16668,handler:(A,R)=>ke(R)},{command:16664,handler:(A,R)=>H(R)},{command:16662,handler:(A,R)=>y("status",Hs.decode(R).errCode)}],createRoom:me,joinRoom:x,answer:z,hangup:ne,finish:ee,setStatus:se,busy:he,inspectMeeting:g,dispose(){for(let A of n.values())f(A);n.clear();}}}function _r(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 Cl(e){return [{command:4646,handler:(n,t)=>{let r=Xi.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=qi.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=bs.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var Gp=9;function gA(){return {encrypted:true}}function mA(e,n){if(e.length===0)return "empty-input";if(e.length>Gp)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function fA(e){return "body"in e&&"contentType"in e&&"sortKey"in e}var pA={"not-media-album":"type-not-allowed","item-not-found":"album-item-not-found","item-not-ready":"media-not-ready"};function Sl(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=mA(n.targets,e.sendStrategies);if(i!==void 0){for(let a of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let l of n.messages)r.push({ok:false,sourceMessageId:l.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:i});return {results:r,skippedSourceIds:[]}}let s=[];for(let a of n.messages){let l=e.resolveCurrentMessage===void 0?fA(a)?a:void 0:e.resolveCurrentMessage(a);if(l===void 0||l.id!==a.id||l.conversationId!==a.conversationId||l.conversationType!==a.conversationType){o.push(a.id);continue}if(!(a.itemIndex===void 0?tl(l):Oa(l))){o.push(a.id);continue}s.push(a.itemIndex===void 0?{message:l}:{message:l,itemIndex:a.itemIndex});}for(let a of n.targets)for(let{message:l,itemIndex:c}of s)try{let g=c===void 0?void 0:op(l,c);if(g!==void 0&&!g.ok){r.push({ok:!1,sourceMessageId:l.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:pA[g.reason]});continue}let f=g?.ok===!0?g.contentType:l.contentType,C=ei(f);if(C===void 0){r.push({ok:!1,sourceMessageId:l.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"type-not-allowed"});continue}let E=g?.ok===!0?g.body:C.cloneBody(l),I=gA(),D=C.enqueue({outbox:e.outbox,target:a,source:l,body:E,encryption:I,now:t,contentType:f});r.push({ok:!0,sourceMessageId:l.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,newMessageId:D});}catch{r.push({ok:false,sourceMessageId:l.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}function Up(e,n){if(n.conversationType==="channel")throw new Error("sendGift: CHANNEL \u4E0D\u53D1\u9001\u793C\u7269");if(!Ai(n.gift))throw new Error("sendGift: \u793C\u7269\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:"gift",body:{gift:n.gift},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function kp(e,n){if(!gr(n.liveRoom))throw new Error("sendLiveRoom: \u76F4\u64AD\u95F4\u5206\u4EAB\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:"liveRoom",body:{liveRoom:n.liveRoom},encryption:{encrypted:n.encrypted??false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var wp=1,yA=2,hl=3,IA=3,CA=1440*60*1e3,xp=5,Bp=3,Pp=6,SA=16*1024*1024,hA=1e3;function Rl(e){return Number.isFinite(e)&&e>0}var RA=320,AA=12*1024,Fp=20*1024,MA=.9,EA=.72,vA=320,TA=10*1024,bl=16*1024,bA=.84,NA=.68,DA=bl;function Al(e,n){if(!(n!=="video"&&n!=="image"||e===void 0)&&!(!Rl(e.width)||!Rl(e.height)||n==="video"&&e.duration!==void 0&&!Rl(e.duration)||n==="video"&&e.posterData!==void 0&&(!(e.posterData instanceof Uint8Array)||e.posterData.length===0||e.posterData.length>DA)))return {width:e.width,height:e.height,...n==="video"&&e.duration!==void 0?{duration:e.duration}:{},...n==="video"&&e.posterData!==void 0?{thumbData:new Uint8Array(e.posterData)}:{}}}function Qa(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 Ml={contentType:"image",uploadKind:"image",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r),i=await t.imageThumbnail(e,{mimeType:n,maxSize:RA,targetBytes:AA,maxBytes:Fp,quality:MA,minQuality:EA},r);return {width:o.width,height:o.height,...i.data.byteLength<=Fp?{thumbData:i.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}:{}}}}},ii={contentType:"video",uploadKind:"video",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.videoPoster(e,{mimeType:n,maxSize:vA,targetBytes:TA,maxBytes:bl,quality:bA,minQuality:NA},r);return {width:o.width,height:o.height,...o.data.byteLength<=bl?{thumbData:o.data}:{},duration:o.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,sizeUnit:"bytes"}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},_A={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}:{}}}}},GA={contentType:"sticker",uploadKind:"sticker",encryptMode:"none",async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r);return {width:o.width,height:o.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 UA(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function kA(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 ai={contentType:"file",uploadKind:"file",encryptMode:"simple",streamUpload:true,buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){let i=o.filename??"",s=UA(i),a=kA(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}:{}}}}},El={...ai,contentType:"filesAlbum",buildBody(e,n){let t=ai.buildBody(e,n).file;return {filesAlbum:{...n.caption?.trim()?{caption:n.caption}:{},items:[{...t,extension:t.extension??"",fileType:t.fileType??0,...["zip","rar","torrent"].includes(t.extension??"")?{fileType:5}:{},...e.md5===void 0?{}:{md5:e.md5}}]}}}};function Ja(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 "paused":throw new Error("\u6682\u505C\u4E0D\u662F\u5931\u8D25\u72B6\u6001\uFF0C\u4E0D\u5E94\u751F\u6210\u5931\u8D25\u6587\u6848");case "invalid-duration":return "media.invalidDuration";case "content-too-large":return "media.contentTooLarge"}}function Op(e,n){return e==="video"||n===void 0||n>SA?"large":"small"}function Ha(){return new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError")}function si(e){return e.kind==="album"?e.items.flatMap(n=>n.resume===void 0||n.uploaded!==void 0?[]:[{resume:n.resume,kind:n.uploadKind}]):e.resume===void 0?[]:[{resume:e.resume,kind:e.spec.uploadKind}]}function Wa(e){if(e.kind==="album")return {code:vt,reason:"unknown",displayCode:Ja(e.failureReason),retryable:false};let n=e.spec.contentType==="video"||e.spec.contentType==="file"||e.spec.contentType==="filesAlbum";return {code:vt,reason:"unknown",displayCode:n?"media.uploadInterrupted":Ja(e.failureReason),mediaKind:e.spec.uploadKind,retryable:false}}function wA(e){return typeof e=="function"}function xA(e){return typeof Blob<"u"&&e instanceof Blob}function BA(e){let n=0,t=0,r=[];function o(a){return n<e.total&&(a!=="large"||t<e.largeFiles)}function i(a){n+=1,a==="large"&&(t+=1);let l=false;return ()=>{l||(l=true,n-=1,a==="large"&&(t-=1),s());}}function s(){let a=0;for(;a<r.length;){let l=r[a];if(l.signal.aborted){r.splice(a,1),l.signal.removeEventListener("abort",l.onAbort),l.reject(Ha());continue}if(!o(l.tier)){a+=1;continue}r.splice(a,1),l.signal.removeEventListener("abort",l.onAbort),l.resolve(i(l.tier));}}return {acquire(a,l){return l.aborted?Promise.reject(Ha()):new Promise((c,g)=>{let f={tier:a,signal:l,resolve:c,reject:g,onAbort:()=>{let C=r.indexOf(f);C>=0&&r.splice(C,1),g(Ha());}};r.push(f),l.addEventListener("abort",f.onAbort,{once:true}),s();})}}}function vl(e,n){if(!Number.isInteger(e)||e<1||e>Pp)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${Pp} \u7684\u6574\u6570\uFF08${n}\uFF09`)}function PA(e){if(e===void 0)return {total:xp,largeFiles:Bp};if(typeof e=="number")return vl(e,"\u603B\u6570"),{total:e,largeFiles:e};let n=e.total??xp;vl(n,"total");let t=e.largeFiles??Math.min(Bp,n);if(vl(t,"largeFiles"),t>n)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5927\u6587\u4EF6\u6863\u5E76\u53D1\u6570 ${t} \u4E0D\u80FD\u8D85\u8FC7\u603B\u5E76\u53D1\u6570 ${n}`);return {total:n,largeFiles:t}}function Nl(e){let n=BA(PA(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,s=false,a=new Map,l=new Map,c=new Set,g=new Map,f=new Map;function C(p,h){let k=g.get(p)??new Set;g.set(p,k),k.add(h),c.add(h),h.finally(()=>{k.delete(h),c.delete(h),k.size===0&&g.get(p)===k&&g.delete(p),Te(p);});}function E(p){return [...g.get(p)??[]]}let I=new Map,D=new Set,w=new Map,v=new Map,b=new Map,U=new Map,G=new Map,O=new Map,J=true,me=0,x=0;function z(p){return {conversationType:p.conversationType,conversationId:p.conversationId}}function ne(p,h,k,W){e.mediaTransfer.abandonUpload(p).catch(Q=>{e.onMediaTransferError?.({stage:"upload",kind:h,messageId:k,conversation:W,cause:Q});});}function ee(p,h,k){let W=e.recoveryPort;if(W===void 0)return;let Q=E(p),Ne=Promise.all(Q).then(()=>W.remove(z(h),p)).catch(re=>{e.onMediaTransferError?.({stage:"upload",kind:k,messageId:p,conversation:z(h),cause:re});});C(p,Ne);}function se(p,h,k,W,Q,Ne){if(!J)return;let re=z(h);w.set(p,{input:z(h),state:k,percent:W,phase:Ne}),e.emitter.emit({type:"media-task:updated",conversation:re,task:{id:`upload:${p}`,messageId:p,ref:re,direction:"upload",state:k,percent:Math.max(0,Math.min(100,Math.round(W))),attempt:i.get(p)?.attempt??1,maxAttempts:3,...b.get(p),...v.has(p)?{items:Object.freeze(v.get(p).map(T=>Object.freeze({...T,state:T.state==="completed"?"completed":k==="canceled"||k==="failed"?k:T.state})))}:{},...l.get(p),...Ne===void 0?{}:{phase:Ne},...Q===void 0?{}:{failure:Q}}});}function he(p,h){X(),G.delete(p),O.delete(p),G.set(p,h),pe();}function Ge(p){let h=i.get(p);if(t.has(p)||I.has(p)||E(p).length>0||h!==void 0&&(h.settled!==true||h.waiting!==void 0))return false;let k=w.get(p)?.state;return k==="failed"||k==="canceled"||k==="paused"&&h?.pauseReason==="manual"}function de(p,h){let k=z(h.input),W=si(h),Q=h.kind==="media"?h.spec.uploadKind:"image",Ne={...Wa(h),displayCode:"media.uploadInterrupted",retryable:false};G.delete(p),O.delete(p),i.delete(p),U.delete(p),b.delete(p),v.delete(p),l.delete(p),a.delete(p),w.delete(p),o.delete(p);for(let T of W)ne(T.resume,T.kind,p,k);if(ee(p,k,Q),!J)return;let re=e.domainState.getConversationMessage?.(k,p)??h.message;re.status!=="sent"&&(e.domainState.upsertMessages([{...re,status:"failed",failure:Ne}],"live"),se(p,k,"failed",0,Ne));}function pe(){if(J)for(let[p,h]of G){if(G.size<=IA)break;Ge(p)&&de(p,h);}}function X(){if(!J)return;let p=Date.now();for(let[h,k]of G){let W=O.get(h);W!==void 0&&p-W>=CA&&Ge(h)&&de(h,k);}}function Te(p){J&&(G.has(p)&&Ge(p)&&!O.has(p)&&O.set(p,Date.now()),pe());}async function Ce(p,h,k,W,Q,Ne,re=false){let T=me,Z=()=>J&&T===me;if(!Z())return Ne!==void 0&&k!==void 0&&ne(Ne,p.uploadKind,k,z(h)),{ok:false,reason:"cancelled"};let te=x,le=Q,Re=Ne,Xe,He=Promise.resolve(void 0),oe,nn=new Set,tn=wA(h.data),De=xA(h.data)?h.data:void 0,yn=tn||De!==void 0?void 0:h.data,kn=tn||De!==void 0,Kn=p.streamUpload===true&&De!==void 0,dn=Ze=>{if(De!==void 0)return De;if(Ze===void 0)throw new Error("\u5A92\u4F53\u9884\u89C8\u7F3A\u5C11\u5185\u5BB9\uFF1A\u975E Blob \u8F93\u5165\u5FC5\u987B\u5148\u8BFB\u51FA\u5B57\u8282");return new Blob([Ze],h.mimeType===void 0?void 0:{type:h.mimeType})};if(yn?.length===0||De?.size===0)return {ok:false,reason:"empty"};let Ln=h.encrypted??true;if(Ln&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let Je=Al(h.localPreviewMetadata,p.contentType);if((p.contentType==="video"||p.contentType==="image")&&h.localPreviewMetadata!==void 0&&Je===void 0)return {ok:false,reason:"preview-failed"};let yt=k===void 0||W===void 0?e.outbox.allocateMessageIdentity({conversationId:h.conversationId,conversationType:h.conversationType}):{id:k,createdAt:W},{id:$,createdAt:Cn}=yt,Zt=e.getSelfId(),Sn=Je??{width:0,height:0};if(!kn)try{Sn=Qa(await p.buildPreview(dn(yn),h.mimeType,e.mediaPreview),Je);}catch{}if(!Z())return Re!==void 0&&ne(Re,p.uploadKind,$,z(h)),{ok:false,reason:"cancelled"};let It=De?.size??yn?.byteLength,Zn={url:h.localPreviewUrl??"",...It===void 0?{}:{size:It}},En={id:$,conversationId:h.conversationId,conversationType:h.conversationType,senderId:Zt,contentType:p.contentType,body:p.buildBody({...Zn,meta:Sn},h),createdAt:Cn,sortKey:Be(Cn,$),status:"uploading",receipt:"unread",encryption:{encrypted:Ln},...h.refMessageId!==void 0?{refMessageId:h.refMessageId}:{}};e.domainState.upsertMessages([En],"live",{newOutgoing:true});let Qt=re?0:U.get($)??0;re&&b.delete($),U.set($,Qt),se($,h,"queued",Qt,void 0,"waiting-upload-slot");let Qn=(Ze,cn=false)=>{let un={code:vt,reason:"unknown",displayCode:Xe==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":Xe==="resume-unavailable"?"media.resumeUnavailable":Xe==="timeout"?"media.uploadTimeout":Ja(Ze),mediaKind:p.uploadKind,retryable:cn};if(!Z())return {ok:false,reason:Ze};let ze=i.get($);return ze?.stopped==="paused"?(se($,h,"paused",U.get($)??0),{ok:false,reason:Ze}):ze!==void 0&&ze.stopped===void 0&&ze.attempt<3&&(ze.failure==="network"||ze.failure==="timeout"||ze.failure==="credentials-expired"||Ze==="offline"&&e.waitUntilOnline!==void 0)?(se($,h,"queued",U.get($)??0,void 0,"waiting-retry"),{ok:false,reason:Ze}):ze?.stopped==="cancelled"||ze!==void 0&&ze.attempt>=3&&(ze.failure==="network"||ze.failure==="timeout"||ze.failure==="credentials-expired")?{ok:false,reason:Ze}:(e.domainState.upsertMessages([{...En,status:"failed",failure:un}],"live"),se($,h,Ze==="cancelled"?"canceled":"failed",U.get($)??0,un),{ok:false,reason:Ze})},ye=async()=>{if(Re!==void 0)try{await e.mediaTransfer.abandonUpload(Re),Re=void 0;}catch(Ze){throw Xe="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:p.uploadKind,messageId:$,conversation:z(h),cause:Ze}),Ze}},xe=async Ze=>{if(await He,await Promise.all([...nn]),Ze==="cancelled"&&i.get($)?.stopped!=="paused"&&i.get($)?.retainCheckpoint!==true&&Xe!=="cleanup-unconfirmed")try{await ye();}catch{}return Ze==="cancelled"&&i.get($)?.stopped!=="paused"&&i.get($)?.retainCheckpoint!==true&&e.recoveryPort!==void 0&&(await Promise.all([...nn]),await e.recoveryPort.remove(z(h),$).catch(cn=>e.onMediaTransferError?.({stage:"upload",kind:p.uploadKind,messageId:$,conversation:z(h),cause:cn}))),Z()?(he($,{kind:"media",spec:p,input:h,createdAt:Cn,message:En,failureReason:Ze,...i.get($)?.retainCheckpoint===true?{retainCheckpoint:true}:{},...Xe==="cleanup-unconfirmed"||Xe==="resume-unavailable"?{restartRequired:true}:{},...le===void 0?{}:{teaKey:le},...Re===void 0?{}:{resume:Re}}),Qn(Ze,true)):{ok:false,reason:"cancelled"}},Ie=new AbortController;t.set($,Ie),r.set($,z(h));let _e=i.get($)?.stopped;_e!==void 0&&Ie.abort(_e==="cancelled"&&i.get($)?.retainCheckpoint?"cancelled-preserve":_e),e.isOnline?.()===false&&A($,"offline");try{if(re&&(await ye(),!Z()))return {ok:!1,reason:"cancelled"};if(De!==void 0&&!(p.contentType==="video"&&Je?.thumbData!==void 0)){try{Sn=Qa(await p.buildPreview(De,h.mimeType,e.mediaPreview,Ie.signal),Je);}catch{}if(!Z())return {ok:!1,reason:"cancelled"};En={...En,body:p.buildBody({url:h.localPreviewUrl??"",meta:Sn,size:De.size},h)},e.domainState.upsertMessages([En],"live");}let Ze=await n.acquire(Op(p.contentType,De?.size??yn?.byteLength),Ie.signal);try{se($,h,"running",U.get($)??0);let cn;try{Kn||(cn=tn?await h.data():De!==void 0?new Uint8Array(await De.arrayBuffer()):yn);}catch{return Qn("upload-failed",!0)}let un=Kn?De.size:cn.length;if(un===0)return Qn("empty");if(tn&&!(p.contentType==="video"&&Je?.thumbData!==void 0)){try{Sn=Qa(await p.buildPreview(dn(cn),h.mimeType,e.mediaPreview,Ie.signal),Je);}catch{}if(!Z())return {ok:!1,reason:"cancelled"};En={...En,body:p.buildBody({url:h.localPreviewUrl??"",meta:Sn,size:un},h)},e.domainState.upsertMessages([En],"live");}if(Ie.signal.throwIfAborted(),(p.contentType==="video"||p.contentType==="file"||p.contentType==="filesAlbum")&&e.recoveryPort!==void 0&&e.shouldPersistUpload?.(p.uploadKind,un)===!0){oe=new AbortController,f.set($,oe);let qe=oe.signal;l.set($,{recovery:"session-only",recoveryReason:"fingerprint-pending"}),He=Promise.resolve().then(()=>e.recoveryPort.fingerprint(Kn?De:cn,qe)).catch(Ye=>{!qe.aborted&&Z()&&(l.set($,{recovery:"session-only",recoveryReason:"unavailable"}),e.onMediaTransferError?.({stage:"upload",kind:p.uploadKind,messageId:$,conversation:z(h),cause:Ye}));}),Kn||await He;}if(Ie.signal.aborted)throw Ha();let ze=Kn?De:cn,wn,Ct=wp;if(Ln&&e.crypto!==void 0&&p.encryptMode!=="none"){let qe=e.crypto;try{le??=qe.randomTeaKey();let Ye=le;p.encryptMode==="simple"?(ze=Kn?new Blob([new Uint8Array(qe.encryptFileSimple({teaKey:Ye,plain:new Uint8Array(await De.slice(0,32).arrayBuffer())})),De.slice(32)]):qe.encryptFileSimple({teaKey:Ye,plain:cn}),Ct=yA):Kn?(wn=xn=>qe.encryptSymmetricChunked({teaKey:Ye,plain:xn,signal:Ie.signal}),Ct=hl):(ze=qe.encryptSymmetric({teaKey:Ye,plain:cn}),Ct=hl);}catch{return Qn("encrypt-failed")}}let Wt;try{e.isOnline?.()===!1&&A($,"offline"),await e.waitUntilOnline?.(Ie.signal),Ie.signal.throwIfAborted(),Wt=(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:i.get($)?.refreshCredentials===!0,data:ze,...wn===void 0?{}:{transformPart:wn},kind:p.uploadKind,conversationType:h.conversationType,signal:Ie.signal,...Re===void 0?{}:{resume:Re},onFailure:Ye=>{if(Z()&&t.get($)===Ie){Xe=Ye;let xn=i.get($);xn!==void 0&&(xn.failure=Ye);}},onResumeInvalidated:()=>{Z()&&t.get($)===Ie&&(Re=void 0);},onResumable:Ye=>{if(!(!Z()||t.get($)!==Ie)&&(Re=Ye,(i.get($)?.stopped!=="cancelled"||i.get($)?.retainCheckpoint===!0)&&oe!==void 0&&e.recoveryPort!==void 0&&(p.contentType==="video"||p.contentType==="file"||p.contentType==="filesAlbum"))){let xn=a.get($)??Date.now();a.set($,xn);let Wn=He.then(async gn=>{gn===void 0||oe?.signal.aborted||!Z()&&!s||t.get($)!==Ie||i.get($)?.stopped==="cancelled"&&i.get($)?.retainCheckpoint!==!0&&!s||(await e.recoveryPort.save({version:1,ref:z(h),messageId:$,kind:p.contentType==="video"?"video":"file",createdAt:Cn,savedAt:xn,source:{...gn,...h.filename===void 0?{}:{filename:h.filename},...h.mimeType===void 0?{}:{mimeType:h.mimeType}},encrypted:Ln,...le===void 0?{}:{teaKey:le},resume:Ye,...h.caption===void 0?{}:{caption:h.caption},...h.filesAlbum===void 0?{}:{filesAlbum:h.filesAlbum},...h.refMessageId===void 0?{}:{refMessageId:h.refMessageId},...p.contentType==="video"?{preview:Sn}:{}}),t.get($)===Ie&&!oe?.signal.aborted&&l.set($,{recovery:"available"}));}).catch(gn=>{let sr=typeof gn=="object"&&gn!==null&&"reason"in gn?String(gn.reason):"storage";(t.get($)===Ie||G.has($))&&l.set($,{recovery:"session-only",recoveryReason:sr}),e.onMediaTransferError?.({stage:"upload",kind:p.uploadKind,messageId:$,conversation:z(h),cause:gn});});nn.add(Wn),C($,Wn),Wn.finally(()=>{nn.delete(Wn);let gn=w.get($);J&&gn!==void 0&&(gn.state==="running"||gn.state==="paused"||gn.state==="queued")&&se($,gn.input,gn.state,gn.percent,void 0,gn.phase);});}},...h.filename!==void 0?{filename:h.filename}:{},...h.mimeType!==void 0?{mimeType:h.mimeType}:{},onProgress:Ye=>{if(!Z()||Ie.signal.aborted||t.get($)!==Ie)return;let xn=Number.isFinite(Ye.percent)?Math.max(0,Math.min(100,Math.round(Ye.percent))):0,Wn=Math.max(U.get($)??0,xn);b.set($,{bytesTransferred:Ye.bytesTransferred,bytesTotal:Ye.bytesTotal}),U.set($,Wn),e.emitter.emit({type:"media:progress",conversation:z(h),messageId:$,percent:Wn}),!Ie.signal.aborted&&t.get($)===Ie&&se($,h,"running",Wn,void 0,Ye.phase);}})).url;}catch(qe){if((!Ie.signal.aborted||!(qe instanceof Error&&qe.name==="AbortError"))&&e.onMediaTransferError?.({stage:"upload",kind:p.uploadKind,messageId:$,conversation:z(h),cause:qe}),!Z())return {ok:!1,reason:"cancelled"};let Ye=Ie.signal.aborted?o.get($)??"cancelled":"upload-failed";return await xe(Ye)}if(!Z())return {ok:!1,reason:"cancelled"};if(Ie.signal.aborted){let qe=o.get($)??"cancelled";return await xe(qe)}if(te===x&&(p.contentType==="image"||p.contentType==="video")&&e.mediaAssetCache!==void 0){let qe=p.contentType,Ye=De??new Blob([cn],h.mimeType===void 0?void 0:{type:h.mimeType}),xn=Ye.size;e.mediaAssetCache.put({kind:qe,messageId:$,resourceVersion:jo(Wt,{conversation:z(h)}),blob:Ye,...h.mimeType===void 0?{}:{mimeType:h.mimeType}}).catch(Wn=>{e.onMediaAssetCacheError?.({operation:"put",kind:qe,messageId:$,byteLength:xn,cause:Wn});});}let Dt=p.contentType==="filesAlbum"?await e.mediaPreview.fileMd5?.(dn(cn),Ie.signal):void 0;if(!Z())return {ok:!1,reason:"cancelled"};if(Ie.signal.throwIfAborted(),p.contentType==="filesAlbum"&&Dt===void 0)throw new Error("FILES_ALBUM requires fileMd5");return await He,await Promise.all([...nn]),Z()?(Ie.signal.throwIfAborted(),e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:$,conversationId:h.conversationId,conversationType:h.conversationType,contentType:p.contentType,body:p.buildBody({url:Wt,meta:Sn,size:un,...Dt===void 0?{}:{md5:Dt},...p.encryptMode==="none"?{}:{teaKey:le,fileEncryptType:Ct}},h),encryption:{encrypted:Ln},createdAt:Cn,...h.refMessageId!==void 0?{refMessageId:h.refMessageId}:{}}),await Promise.all([...nn]),e.recoveryPort!==void 0&&await e.recoveryPort.remove(z(h),$).catch(qe=>e.onMediaTransferError?.({stage:"upload",kind:p.uploadKind,messageId:$,conversation:z(h),cause:qe})),se($,h,"completed",100),{ok:!0,messageId:$}):{ok:!1,reason:"cancelled"}}finally{Ze();}}catch{if(!Z())return {ok:false,reason:"cancelled"};let Ze=Ie.signal.aborted?o.get($)??"cancelled":"upload-failed";return await xe(Ze)}finally{await He,await Promise.all([...nn]),f.get($)===oe&&f.delete($),!Z()&&s&&await Promise.all([...nn]),!Z()&&Re!==void 0&&!(s&&l.get($)?.recovery==="available")&&ne(Re,p.uploadKind,$,z(h)),t.get($)===Ie&&(t.delete($),r.delete($),G.has($)||U.delete($),o.delete($));}}async function ke(p){let{conversation:h,encryptWith:k,isCurrentAttempt:W,item:Q,onBytesUploaded:Ne,onPreviewReady:re,onSlotAcquired:T,signal:Z,state:te}=p,le=Q.kind==="video"?ii:Ml,Re=Al(Q.localPreviewMetadata,Q.kind),Xe=Re??{width:0,height:0};if(!(Q.kind==="video"&&Re?.thumbData!==void 0))try{Xe=Qa(await le.buildPreview(Q.data,Q.mimeType,e.mediaPreview,Z),Re);}catch{}Xe.thumbData===void 0&&te.preview?.thumbData!==void 0&&(Xe=te.preview),te.preview=Xe,re();let He=await n.acquire(Op(Q.kind,Q.data.size),Z);try{T();let oe,nn=wp;if(k!==void 0){te.teaKey??=k.randomTeaKey();let De=te.teaKey;oe=yn=>k.encryptSymmetricChunked({teaKey:De,plain:yn,signal:Z}),nn=hl;}return {url:(await e.mediaTransfer.upload({recoveryManaged:!0,forceRefreshCredentials:p.forceRefreshCredentials,data:Q.data,...oe===void 0?{}:{transformPart:oe},kind:le.uploadKind,conversationType:h.conversationType,signal:Z,...te.resume===void 0?{}:{resume:te.resume},onFailure:De=>{W()&&p.onFailure(De);},onResumeInvalidated:()=>{W()&&delete te.resume;},onResumable:De=>{!J||!W()||(te.resume=De);},...Q.filename!==void 0?{filename:Q.filename}:{},...Q.mimeType!==void 0?{mimeType:Q.mimeType}:{},onProgress:De=>{!J||Z.aborted||!W()||Ne(De.bytesTransferred);}})).url,meta:Xe,size:Q.data.size,...te.teaKey===void 0?{}:{teaKey:te.teaKey},fileEncryptType:nn}}finally{He();}}function H(p,h,k){let W=h.uploaded,Q=W?.meta??h.preview??Al(p.localPreviewMetadata,p.kind)??{width:0,height:0};return {kind:p.kind,url:W?.url??p.localPreviewUrl??"",width:Q.width,height:Q.height,...p.kind==="video"&&Q.duration!==void 0&&Q.duration>0?{durationMs:Math.max(1,Math.round(Q.duration*1e3))}:{},...Q.thumbData===void 0?{}:{thumbData:Q.thumbData},size:W?.size??p.data.size,...W?.teaKey===void 0?{}:{teaKey:W.teaKey},...W===void 0?{}:{fileEncryptType:W.fileEncryptType},...k===void 0?{}:{hd:k}}}async function F(p,h,k,W,Q=false){let Ne=me,re=()=>J&&Ne===me,T=z(p),Z=(ye,xe)=>{for(let Ie of xe)Ie.resume!==void 0&&ne(Ie.resume,Ie.uploadKind,ye,T);};if(!re())return h!==void 0&&W!==void 0&&Z(h,W),{ok:false,reason:"cancelled"};if(p.items.length===0)return {ok:false,reason:"empty"};if(p.items.length>ur)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u6700\u591A ${ur} \u9879\uFF0C\u6536\u5230 ${p.items.length} \u9879`);let te=p.caption!==void 0&&p.caption.trim()!==""?p.caption:void 0;if(te!==void 0&&Array.from(te).length>Hn)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u6700\u957F ${Hn} \u5B57\u7B26\uFF0C\u6536\u5230 ${Array.from(te).length}`);if(p.items.some(ye=>ye.data.size===0))return {ok:false,reason:"empty"};if(W===void 0&&md(p)!=="mediaAlbum"){let ye=p.items[0];return Ce(ye.kind==="video"?ii:Ml,{conversationId:p.conversationId,conversationType:p.conversationType,data:ye.data,...ye.mimeType!==void 0?{mimeType:ye.mimeType}:{},...ye.filename!==void 0?{filename:ye.filename}:{},...ye.localPreviewUrl!==void 0?{localPreviewUrl:ye.localPreviewUrl}:{},...ye.localPreviewMetadata!==void 0?{localPreviewMetadata:ye.localPreviewMetadata}:{},...p.encrypted!==void 0?{encrypted:p.encrypted}:{},...p.refMessageId!==void 0?{refMessageId:p.refMessageId}:{}},h,k)}let le=p.encrypted??true;if(le&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let Re=le?e.crypto:void 0,Xe=x,He=h===void 0||k===void 0?e.outbox.allocateMessageIdentity(T):{id:h,createdAt:k},{id:oe,createdAt:nn}=He,tn=p.items.map((ye,xe)=>{let Ie=W?.[xe];return {uploadKind:ye.kind,...Ie?.uploaded===void 0?{}:{uploaded:Ie.uploaded},...Ie?.preview===void 0?{}:{preview:Ie.preview},...Ie?.teaKey===void 0?{}:{teaKey:Ie.teaKey},...Ie?.resume===void 0?{}:{resume:Ie.resume}}}),De=tn.map((ye,xe)=>{let Ie=p.items[xe].data.size,_e=ye.uploaded!==void 0?Ie:Q?0:ye.resume?.bytesUploaded??0;return {itemIndex:xe,bytesTransferred:_e,bytesTotal:Ie,percent:ye.uploaded!==void 0?100:Math.min(99,Math.floor(_e/Ie*100)),state:ye.uploaded!==void 0?"completed":"queued"}});v.set(oe,De);let yn=()=>({...te===void 0?{}:{caption:te},items:p.items.map((ye,xe)=>H(ye,tn[xe],p.hd))}),kn={id:oe,conversationId:p.conversationId,conversationType:p.conversationType,senderId:e.getSelfId(),contentType:"mediaAlbum",body:{mediaAlbum:yn()},createdAt:nn,sortKey:Be(nn,oe),status:"uploading",receipt:"unread",encryption:{encrypted:le},...p.refMessageId!==void 0?{refMessageId:p.refMessageId}:{}};e.domainState.upsertMessages([kn],"live",{newOutgoing:true});let Kn=Q?0:U.get(oe)??0;Q&&b.delete(oe),U.set(oe,Kn),se(oe,p,"queued",Kn,void 0,"waiting-upload-slot");let dn,Ln=(ye,xe)=>{let Ie={code:vt,reason:"unknown",displayCode:dn==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":dn==="resume-unavailable"?"media.resumeUnavailable":dn==="timeout"?"media.uploadTimeout":Ja(ye),retryable:xe};if(!re())return {ok:false,reason:ye};let _e=i.get(oe);return _e?.stopped==="paused"?(se(oe,p,"paused",U.get(oe)??0),{ok:false,reason:ye}):_e!==void 0&&_e.stopped===void 0&&_e.attempt<3&&(_e.failure==="network"||_e.failure==="timeout"||_e.failure==="credentials-expired"||ye==="offline"&&e.waitUntilOnline!==void 0)?(se(oe,p,"queued",U.get(oe)??0,void 0,"waiting-retry"),{ok:false,reason:ye}):_e?.stopped==="cancelled"||_e!==void 0&&_e.attempt>=3&&(_e.failure==="network"||_e.failure==="timeout"||_e.failure==="credentials-expired")?{ok:false,reason:ye}:(e.domainState.upsertMessages([{...kn,status:"failed",failure:Ie}],"live"),se(oe,p,ye==="cancelled"?"canceled":"failed",U.get(oe)??0,Ie),{ok:false,reason:ye})},Je=new AbortController;t.set(oe,Je),r.set(oe,T);let yt=i.get(oe)?.stopped;yt!==void 0&&Je.abort(yt==="cancelled"&&i.get(oe)?.retainCheckpoint?"cancelled-preserve":yt),e.isOnline?.()===false&&A(oe,"offline");let $=()=>re()&&t.get(oe)===Je,Cn=()=>{!re()||!$()||(kn={...kn,body:{mediaAlbum:yn()}},e.domainState.upsertMessages([kn],"live"));},Zt=p.items.reduce((ye,xe)=>ye+xe.data.size,0),Sn=tn.map((ye,xe)=>ye.uploaded!==void 0?p.items[xe].data.size:ye.resume?.bytesUploaded??0),It=()=>{if(!re()||!$()||Je.signal.aborted)return;let ye=Sn.reduce((Ie,_e)=>Ie+_e,0),xe=Math.min(99,Math.max(U.get(oe)??0,Math.floor(ye/Zt*100)));b.set(oe,{bytesTransferred:ye,bytesTotal:Zt}),U.set(oe,xe),e.emitter.emit({type:"media:progress",conversation:T,messageId:oe,percent:xe}),!Je.signal.aborted&&$()&&se(oe,p,"running",xe,void 0,"transferring");},Zn,En=(ye,xe)=>{Zn===void 0&&(Zn=Je.signal.aborted?o.get(oe)??"cancelled":"upload-failed",Zn==="upload-failed"&&e.onMediaTransferError?.({stage:"upload",kind:ye,messageId:oe,conversation:T,cause:xe}),Je.abort("offline"));},Qt=async()=>{let ye=true;return await Promise.all(tn.map(async xe=>{if(xe.resume!==void 0)try{await e.mediaTransfer.abandonUpload(xe.resume),delete xe.resume;}catch(Ie){ye=false,dn="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:xe.uploadKind,messageId:oe,conversation:T,cause:Ie});}})),ye},Qn=ye=>(he(oe,{kind:"album",input:p,createdAt:nn,message:kn,failureReason:ye,items:tn,...i.get(oe)?.retainCheckpoint===true?{retainCheckpoint:true}:{},...dn==="cleanup-unconfirmed"||dn==="resume-unavailable"?{restartRequired:true}:{}}),Ln(ye,true));try{if(Q){let Ie=await Qt();if(!re())return {ok:!1,reason:"cancelled"};if(!Ie)return Qn(o.get(oe)==="cancelled"?"cancelled":"upload-failed");for(let _e=0;_e<tn.length;_e+=1)tn[_e].uploaded===void 0&&(Sn[_e]=0);}if(await Promise.all(p.items.map(async(Ie,_e)=>{let Ze=tn[_e];if(Ze.uploaded===void 0)try{e.isOnline?.()===!1&&A(oe,"offline"),await e.waitUntilOnline?.(Je.signal),Je.signal.throwIfAborted();let cn=await ke({item:Ie,state:Ze,conversation:T,encryptWith:Re,signal:Je.signal,isCurrentAttempt:$,onPreviewReady:Cn,onSlotAcquired:()=>{!re()||!$()||Je.signal.aborted||(De[_e]={...De[_e],state:"running"},se(oe,p,"running",U.get(oe)??0));},forceRefreshCredentials:i.get(oe)?.refreshCredentials===!0,onFailure:un=>{let ze=un==="cleanup-unconfirmed"||un==="resume-unavailable";if(Je.signal.aborted&&!ze)return;(un==="cleanup-unconfirmed"||dn!=="cleanup-unconfirmed"&&(un==="resume-unavailable"||dn!=="resume-unavailable"))&&(dn=un);let wn=i.get(oe);wn!==void 0&&(wn.failure=dn);},onBytesUploaded:un=>{Sn[_e]=un,De[_e]={...De[_e],bytesTransferred:un,percent:Math.min(99,Math.floor(un/Ie.data.size*100)),state:"running"},It();}});if(!$())return;Ze.uploaded=cn,De[_e]={...De[_e],bytesTransferred:Ie.data.size,percent:100,state:"completed"},Sn[_e]=Ie.data.size,It();}catch(cn){$()&&!Je.signal.aborted&&(De[_e]={...De[_e],state:"failed"}),En(Ie.kind,cn);}})),!re())return {ok:!1,reason:"cancelled"};if(!$())return {ok:!1,reason:"cancelled"};if(o.get(oe)==="cancelled")return dn!=="cleanup-unconfirmed"&&i.get(oe)?.retainCheckpoint!==!0&&await Qt(),re()?Qn("cancelled"):{ok:!1,reason:"cancelled"};if(Zn!==void 0)return Qn(Zn);if(Je.signal.aborted){let Ie=o.get(oe)??"cancelled";return Qn(Ie)}let ye=yn(),xe;try{xe=Ci(xr(ye).content);}catch(Ie){return e.onMediaAlbumContentSize?.({messageId:oe,conversation:T,itemCount:ye.items.length,outcome:"rejected",cause:Ie}),Ln("content-too-large",!1)}if(xe>=fd&&e.onMediaAlbumContentSize?.({messageId:oe,conversation:T,itemCount:ye.items.length,contentBytes:xe,outcome:"warn"}),Xe===x&&e.mediaAssetCache!==void 0){let Ie=e.mediaAssetCache;p.items.forEach((_e,Ze)=>{let cn=tn[Ze].uploaded;cn!==void 0&&Ie.put({kind:_e.kind,messageId:oe,resourceVersion:jo(cn.url,{conversation:T,itemIndex:Ze}),blob:_e.data,..._e.mimeType===void 0?{}:{mimeType:_e.mimeType}}).catch(un=>{e.onMediaAssetCacheError?.({operation:"put",kind:_e.kind,messageId:oe,byteLength:_e.data.size,cause:un});});});}return e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:oe,conversationId:p.conversationId,conversationType:p.conversationType,contentType:"mediaAlbum",body:{mediaAlbum:ye},encryption:{encrypted:le},createdAt:nn,...p.refMessageId!==void 0?{refMessageId:p.refMessageId}:{}}),se(oe,p,"completed",100),{ok:!0,messageId:oe}}finally{re()||Z(oe,tn),t.get(oe)===Je&&(t.delete(oe),r.delete(oe),G.has(oe)||U.delete(oe),o.delete(oe));}}function y(p,h,k,W=1){let{id:Q,createdAt:Ne}=k??e.outbox.allocateMessageIdentity(z(p)),re={attempt:W};O.delete(Q),i.set(Q,re);let T,Z,te=new Promise((le,Re)=>{T=le,Z=Re;});return re.done=te,(async()=>{let le=await h(Q,Ne);for(;i.get(Q)===re&&re.stopped===void 0&&re.attempt<3;){let He=G.get(Q);if(!J||le.ok||He===void 0||He.restartRequired||!(re.failure==="network"||re.failure==="timeout"||re.failure==="credentials-expired"||!le.ok&&le.reason==="offline"&&e.waitUntilOnline!==void 0))break;let oe=new AbortController;if(re.waiting=oe,await e.waitUntilOnline?.(oe.signal).catch(()=>{}),await new Promise(nn=>{let tn=setTimeout(De,re.attempt===1?1e3:3e3);function De(){clearTimeout(tn),oe.signal.removeEventListener("abort",De),nn();}oe.signal.addEventListener("abort",De,{once:true}),oe.signal.aborted&&De();}),await e.waitUntilOnline?.(oe.signal).catch(()=>{}),delete re.waiting,!J||re.stopped!==void 0||i.get(Q)!==re)break;re.attempt+=1,re.refreshCredentials=re.failure==="credentials-expired",delete re.failure,G.delete(Q),O.delete(Q),le=await M(Q,He,false);}let Re=G.get(Q),Xe=re.stopped!=="cancelled"&&re.attempt>=3&&(re.failure==="network"||re.failure==="timeout"||re.failure==="credentials-expired");if(J&&i.get(Q)===re&&Re!==void 0&&Xe&&e.retainFailedUploads===true){re.stopped="cancelled",re.retainCheckpoint=true,Re.retainCheckpoint=true;let He={...Wa(Re),displayCode:re.failure==="timeout"?"media.uploadTimeout":"media.uploadFailed",retryable:true};e.domainState.upsertMessages([{...Re.message,status:"failed",failure:He}],"live"),se(Q,Re.input,"failed",U.get(Q)??0,He);}else if(J&&i.get(Q)===re&&Re!==void 0&&(re.stopped==="cancelled"||Xe)){re.stopped="cancelled";let He={...Wa(Re),displayCode:re.failure==="timeout"?"media.uploadTimeout":"media.cancelled",retryable:re.retainCheckpoint===true&&!Xe};(re.retainCheckpoint!==true||Xe)&&await P(Q,Re),J&&i.get(Q)===re&&(e.domainState.upsertMessages([{...Re.message,status:"failed",failure:He}],"live"),se(Q,Re.input,"canceled",U.get(Q)??0,He)),le={ok:false,reason:"cancelled"};}return re.stopped==="paused"?{ok:false,reason:"paused"}:le})().then(le=>{re.settled=true,Te(Q),T(le);},le=>{re.settled=true,Te(Q),Z(le);}),te.then(()=>{i.get(Q)===re&&re.stopped!=="paused"&&(i.delete(Q),G.has(Q)||(U.delete(Q),b.delete(Q),v.delete(Q),l.delete(Q),a.delete(Q),w.delete(Q)));},()=>{i.get(Q)===re&&i.delete(Q);}),te}function M(p,h,k){return h.kind==="album"?F(h.input,p,h.createdAt,h.items,k):Ce(h.spec,h.input,p,h.createdAt,h.teaKey,h.resume,k)}function A(p,h){let k=i.get(p);if(!J||k===void 0||k.stopped==="cancelled")return;if(k.stopped==="paused"){h==="pagehide"&&k.pauseReason==="offline"&&(k.pauseReason="pagehide");return}k.stopped="paused",k.pauseReason=h;let W=t.get(p);k.waiting?.abort(),W?.abort("paused");let Q=w.get(p);Q!==void 0&&i.get(p)===k&&k.stopped==="paused"&&se(p,Q.input,"paused",U.get(p)??Q.percent);}async function R(p,h="manual"){let k=i.get(p);if(!J||k===void 0||k.stopped==="cancelled")return false;if(k.stopped==="paused")return (h==="manual"||h==="pagehide"&&k.pauseReason==="offline")&&(k.pauseReason=h),await k.done,Te(p),J&&i.get(p)===k&&G.has(p);A(p,h),await k.done,await Promise.all(E(p));let W=G.get(p);return !J||i.get(p)!==k||k.stopped!=="paused"||W===void 0?false:(se(p,W.input,"paused",U.get(p)??0),true)}function B(p){X();let h=i.get(p),k=G.get(p);if(!J||h?.stopped!=="paused"||h.settled!==true||k===void 0||t.has(p))return false;G.delete(p),O.delete(p);let W=me;return y(k.input,()=>M(p,k,false),{id:p,createdAt:k.createdAt},h.attempt).catch(Q=>{J&&W===me&&e.onMediaTransferError?.({stage:"upload",kind:k.kind==="media"?k.spec.uploadKind:"image",messageId:p,conversation:z(k.input),cause:Q});}),true}async function P(p,h){G.delete(p),O.delete(p),l.delete(p),a.delete(p),b.delete(p),v.delete(p),D.add(p);try{await Promise.all(E(p)),await e.recoveryPort?.remove(z(h.input),p).catch(k=>{e.onMediaTransferError?.({stage:"upload",kind:h.kind==="media"?h.spec.uploadKind:"image",messageId:p,conversation:z(h.input),cause:k});}),await Promise.all(si(h).map(async k=>{try{await e.mediaTransfer.abandonUpload(k.resume);}catch(W){e.onMediaTransferError?.({stage:"upload",kind:k.kind,messageId:p,conversation:z(h.input),cause:W});}}));}catch(k){e.onMediaTransferError?.({stage:"upload",kind:h.kind==="media"?h.spec.uploadKind:"image",messageId:p,conversation:z(h.input),cause:k});}finally{D.delete(p),l.delete(p),a.delete(p),b.delete(p);}}function V(p,h){if(e.recoveryPort===void 0)return;let k=E(p),W=e.domainState.getConversationMessage?.(h,p)?.contentType==="video"?"video":"file",Q=Promise.all(k).then(()=>e.recoveryPort.remove(h,p)).catch(Ne=>{e.onMediaTransferError?.({stage:"upload",kind:W,messageId:p,conversation:h,cause:Ne});});C(p,Q);}function K(p,h){if(X(),!J)return false;let k=i.get(p),W=t.get(p);if(h?.retainCheckpoint!==true&&f.get(p)?.abort(),k!==void 0&&(k.stopped="cancelled",k.retainCheckpoint=h?.retainCheckpoint===true,k.waiting?.abort()),W!==void 0){let re=r.get(p);return re!==void 0&&h?.retainCheckpoint!==true&&V(p,re),o.set(p,"cancelled"),W.abort(h?.retainCheckpoint===true?"cancelled-preserve":"cancelled"),true}let Q=G.get(p);if(Q===void 0||k===void 0)return k!==void 0&&w.get(p)?.state==="queued";if(h?.retainCheckpoint===true)Q.retainCheckpoint=true,Q.failureReason="cancelled";else {let re=P(p,Q);C(p,re);}let Ne={...Wa(Q),displayCode:"media.cancelled",retryable:h?.retainCheckpoint===true};return e.domainState.upsertMessages([{...Q.message,status:"failed",failure:Ne}],"live"),se(p,Q.input,"canceled",U.get(p)??0,Ne),i.get(p)===k&&i.delete(p),Te(p),h?.retainCheckpoint!==true&&(U.delete(p),v.delete(p),w.delete(p)),true}async function fe(p,h,k,W){X();let Q=me,Ne=E(h);return Ne.length>0&&await Promise.all(Ne),!J||Q!==me?{ok:false,reason:"cancelled"}:(a.delete(h),y(W,()=>Ce(p,W,h,k,void 0,void 0,true),{id:h,createdAt:k}))}return {sendImage:p=>y(p,(h,k)=>Ce(Ml,p,h,k)),sendVideo:p=>y(p,(h,k)=>Ce(ii,p,h,k)),replaceVideo:(p,h,k)=>fe(ii,p,h,k),sendVoice:p=>{let h=p.durationMs;return h===void 0||!Number.isFinite(h)||h<hA?Promise.resolve({ok:false,reason:"invalid-duration"}):y(p,(k,W)=>Ce(_A,p,k,W))},sendFile:p=>p.caption!==void 0&&Array.from(p.caption).length>Hn?Promise.resolve({ok:false,reason:"content-too-large"}):y(p,(h,k)=>Ce(p.filesAlbum||p.caption?.trim()?El:ai,p,h,k)),sendGif:p=>y(p,(h,k)=>Ce(GA,{...p,encrypted:false},h,k)),sendMediaAlbum:p=>y(p,(h,k)=>F(p,h,k)),replaceFile:(p,h,k)=>k.caption!==void 0&&Array.from(k.caption).length>Hn?Promise.resolve({ok:false,reason:"content-too-large"}):fe(k.filesAlbum||k.caption?.trim()?El:ai,p,h,k),cancel:K,pause:R,async pauseAll(p="pagehide"){for(let{controller:h}of I.values())h.abort();await Promise.all([...i.keys()].map(h=>R(h,p)));},async resumePaused(p,h){await Promise.all([...i.entries()].map(async([k,W])=>{if(h?.aborted||W.stopped!=="paused"||W.pauseReason==="manual"||p===void 0&&W.pauseReason!=="offline")return;let Q=w.get(k)?.input;if(p!==void 0&&(Q?.conversationType!==p.conversationType||Q.conversationId!==p.conversationId))return;await W.done;let Ne=G.get(k);h?.aborted||i.get(k)!==W||Ne===void 0||p===void 0&&W.pauseReason!=="offline"||p!==void 0&&(Ne.input.conversationType!==p.conversationType||Ne.input.conversationId!==p.conversationId)||B(k);}));},resume:B,cancelConversation(p,h="offline"){for(let k of I.values())k.ref.conversationType===p.conversationType&&k.ref.conversationId===p.conversationId&&k.controller.abort();for(let[k,W]of G)if(W.input.conversationType===p.conversationType&&W.input.conversationId===p.conversationId){if(i.has(k))K(k);else {for(let Q of si(W))ne(Q.resume,Q.kind,k,z(W.input));e.recoveryPort?.remove(z(W.input),k).catch(Q=>e.onMediaTransferError?.({stage:"upload",kind:W.kind==="media"?W.spec.uploadKind:"image",messageId:k,conversation:p,cause:Q}));}G.delete(k),O.delete(k),v.delete(k),b.delete(k),U.delete(k),w.delete(k);}if(J)for(let[k,W]of r){if(W.conversationType!==p.conversationType||W.conversationId!==p.conversationId)continue;let Q=t.get(k);if(Q===void 0)continue;let Ne=i.get(k);Ne!==void 0&&(Ne.stopped="cancelled"),o.set(k,h),f.get(k)?.abort(),Q.abort(h);}},cancelAll(p="offline"){if(J){if(p==="offline"){let h=me;for(let k of i.keys()){let W=w.get(k)?.input;R(k,"offline").catch(Q=>{J&&h===me&&W!==void 0&&e.onMediaTransferError?.({stage:"upload",kind:e.domainState.getConversationMessage?.(W,k)?.contentType==="video"?"video":"file",messageId:k,conversation:W,cause:Q});});}return}if(p==="session-ended"){for(let{controller:h}of I.values())h.abort();for(let h of i.values())h.stopped="cancelled",h.waiting?.abort();me+=1,x+=1;}for(let h of f.values())h.abort(p);for(let h of t.values())h.abort(p);}},retry(p,h){if(X(),D.has(p)||!J)return false;let k=G.get(p);if(k===void 0||i.get(p)?.retainCheckpoint===true&&i.get(p)?.settled!==true||k.restartRequired&&h?.restartUpload!==true)return false;let W=h?.restartUpload===true||k.failureReason==="cancelled"&&k.retainCheckpoint!==true;return G.delete(p),O.delete(p),y(k.input,()=>M(p,k,W),{id:p,createdAt:k.createdAt}),true},expireRetainedUploads:X,invalidateAssetCacheWrites(){x+=1;},async dispose(p){if(!J)return;s=p?.preserveRecovery===true;for(let{controller:k}of I.values())k.abort();let h=[...i.values()].flatMap(k=>k.done===void 0?[]:[k.done]);for(let k of i.values())k.stopped="cancelled",k.waiting?.abort();if(J=false,x+=1,!s)for(let k of f.values())k.abort();for(let k of t.values())k.abort(s?"page-preserve":"cancelled");for(let[k,W]of G)if(!(s&&l.get(k)?.recovery==="available"))for(let Q of si(W))ne(Q.resume,Q.kind,k,z(W.input));G.clear(),O.clear(),await Promise.allSettled(h),await Promise.all([...c]),t.clear(),U.clear(),o.clear();for(let[k,W]of G)if(!(s&&l.get(k)?.recovery==="available"))for(let Q of si(W))ne(Q.resume,Q.kind,k,z(W.input));G.clear(),O.clear(),i.clear(),b.clear(),v.clear(),l.clear(),a.clear(),w.clear(),await e.recoveryPort?.drain();},async recoverUpload(p,h,k){X();let W=e.recoveryPort;if(!J||W===void 0)throw new Error("IM_MEDIA_RECOVERY_UNAVAILABLE");if(i.has(h)||I.has(h))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let Q=new AbortController;I.set(h,{controller:Q,ref:p});let Ne=()=>{if(!J||Q.signal.aborted||I.get(h)?.controller!==Q)throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE")},re=(Z,te)=>{if(Z===void 0||Z.senderId!==e.getSelfId()||Z.recalled!==void 0||Z.deletedForEveryone!==void 0||Z.failure?.displayCode==="media.cancelled"&&Z.failure.retryable!==true||Z.failure?.displayCode==="media.uploadTimeout"&&Z.failure.retryable===false||Z.status!=="failed"&&Z.status!=="uploading")return false;let le=Z.contentType==="video",Re=Z.contentType==="file"||Z.contentType==="filesAlbum"&&Z.body.filesAlbum?.items.length===1;return (le||Re)&&(te===void 0||Z.contentType===te)},T;try{T=await W.acquireLease(Q.signal),Ne();let Z=e.domainState.getConversationMessage?.(p,h);if(!re(Z))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let te=await W.get(p,h);if(Ne(),te===void 0)throw new Error("IM_MEDIA_RECOVERY_NOT_FOUND");let le=te.kind==="video"?"video":te.filesAlbum||te.caption?.trim()?"filesAlbum":"file";if(!re(Z,le))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let Re=await W.fingerprint(k,Q.signal);if(Ne(),Re.size!==te.source.size||Re.sha256!==te.source.sha256)throw new Error("IM_MEDIA_RECOVERY_FILE_MISMATCH");let Xe=e.domainState.getConversationMessage?.(p,h);if(i.has(h)||!re(Xe,le))throw new Error("IM_MEDIA_RECOVERY_INVALID_STATE");let He={conversationId:p.conversationId,conversationType:p.conversationType,data:k,encrypted:te.encrypted,filename:te.source.filename,mimeType:te.source.mimeType,caption:te.caption,filesAlbum:te.filesAlbum,refMessageId:te.refMessageId,...te.preview===void 0?{}:{localPreviewMetadata:{width:te.preview.width,height:te.preview.height,duration:te.preview.duration,posterData:te.preview.thumbData}}};return a.set(h,te.savedAt),await y(He,()=>Ce(te.kind==="video"?ii:te.filesAlbum||te.caption?.trim()?El:ai,He,h,te.createdAt,te.teaKey,te.resume),{id:h,createdAt:te.createdAt})}finally{I.get(h)?.controller===Q&&I.delete(h),Te(h),T?.release();}}}}function Vp(e,n){if(!mr(n.miniProgram))throw new Error("sendMiniProgram: \u5C0F\u7A0B\u5E8F\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"miniProgram",body:{miniProgram:n.miniProgram},encryption:{encrypted:n.encrypted??false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function FA(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 OA(e,n){return Ir.encode(Ir.create({emoji:e,action:n}))}function VA(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(g,f){let C=BigInt(e.getSelfId()),E=BigInt(g.conversation.conversationId),I=OA(g.emoji,g.action),D=we(g.id),w=Un(g.parentMessageId);switch(g.conversation.conversationType){case "direct":{let v=f===4651?Pi:Bi,b=v.create({sToId:E,sFromId:C,sMsgId:D,msgType:1,msgTime:BigInt(g.createdAt),encrypt:0,sContent:I,parentMsgId:w});return ae({command:f??4650,body:v.encode(b)})}case "group":{let v=io.create({sGrpId:E,sToId:E,sFromId:C,sMsgId:D,msgType:5,msgTime:BigInt(g.createdAt),encrypt:0,sContent:I,parentMsgId:w});return ae({command:8978,body:io.encode(v)})}case "channel":{let v=mo.create({sRadioId:E,sFromId:C,sMsgId:D,msgTime:BigInt(g.createdAt),encrypt:0,sContent:I,parentMsgId:w});return ae({command:12817,body:mo.encode(v)})}}}function s(g,f,C){clearTimeout(g.timer),n.delete(g.event.id),e.domainState.rollbackReaction(g.event.conversation,g.event.parentMessageId,g.event.id),g.resolve({ok:false,reason:f,...C===void 0?{}:{errcode:C}});}function a(g){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let f=e.domainState.getConversationMessage(g.conversation,g.parentMessageId);if(f===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!rl(f))return Promise.resolve({ok:false,reason:"unsupported-message"});if(g.action===0&&g.conversation.conversationType==="channel"){let E=e.domainState.getConversationContext(g.conversation),I=ol({channelState:E?.type==="channel"?E.channelState??"unknown_restricted":"unknown_restricted",snapshot:E?.type==="channel"?E.channelAccessSnapshot:void 0,permissions:E?.type==="channel"?E.channelPermissions:void 0,nowMs:t()});if(I.channelState!=="active"||!I.permissions.sendMessages)return Promise.resolve({ok:false,reason:"restricted"})}if(!Qo(g.emoji)||Wo(g.emoji)||e.isEmojiSupported?.(g.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let C=Object.freeze({id:Vn(),conversation:Object.freeze({...g.conversation}),parentMessageId:g.parentMessageId,senderId:e.getSelfId(),emoji:g.emoji,action:g.action,createdAt:t()});return e.domainState.applyReaction(C,"live"),new Promise(E=>{let I=setTimeout(()=>{let D=n.get(C.id);D!==void 0&&s(D,"timeout");},r);n.set(C.id,{event:C,resolve:E,timer:I});try{e.sendFrame(i(C));}catch(D){e.logger?.("reaction-send-frame-failed",{eventId:C.id,cause:D});let w=n.get(C.id);w!==void 0&&s(w,"failed");}})}function l(g){let C=e.domainState.getConversationMessage(g.conversation,g.parentMessageId)?.reactions?.currentUserEmoji===g.emoji?1:0;return a({...g,action:C})}function c(g){let f=n.get(g.eventId);if(f!==void 0){if(g.errcode!==32768&&g.errcode!==0){s(f,"failed",g.errcode);return}if(clearTimeout(f.timer),n.delete(f.event.id),f.event.conversation.conversationType==="direct")try{e.sendFrame(i(f.event,4651));}catch(C){e.logger?.("reaction-opposite-end-send-failed",{eventId:f.event.id,cause:C});}f.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(f.event.emoji).catch(C=>e.logger?.("reaction-report-failed",{emoji:f.event.emoji,cause:C})),f.resolve({ok:true,event:f.event});}}return {set:a,toggle:l,onAck:c,ingest:(g,f="live")=>!FA(g)||!Qo(g.emoji)||Wo(g.emoji)||e.isEmojiSupported?.(g.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:g.id,parentMessageId:g.parentMessageId,emoji:g.emoji}),"ignored"):e.domainState.applyReaction(g,f),dispose(){o=true;for(let g of [...n.values()])s(g,"disconnected");}}}function KA(e){return [{command:4652,handler:(n,t)=>{let r=Fi.decode(t);e.manager.onAck({eventId:be(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=Jo(Oi.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=is.decode(t);e.manager.onAck({eventId:be(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=Yo(ss.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=fs.decode(t);e.manager.onAck({eventId:be(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=Mc(ps.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function LA(e){return [{command:12806,handler:(n,t)=>{let r=Es.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=vs.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 ZA(e){let n=new Map,t=new Map,r=new Map,o=0;function i(b,U){let G={conversationType:"channel",conversationId:b},O=e.domainState.getConversationContext(G);if(O===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${b}\uFF09`);if(O.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${O.type}\uFF08channelId=${b}\uFF09`);if(U.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${b}\uFF09`);let J=e.domainState.getConversationMessage(G,U),me=e.domainState.getLoadedMessagesByConversation(G).find(ne=>ne.extensions?.historyCursor===U),z=(J===void 0?void 0:di(J))??(me===void 0?void 0:di(me));if(z===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${b}, cursor=${U}\uFF09`);return z}function s(b){let U={conversationType:"channel",conversationId:b},G=e.domainState.getReadState(U);if(G?.readCursor!==void 0&&G.readCursor!==""){let O=e.domainState.getLoadedMessagesByConversation(U).find(J=>J.extensions?.historyCursor===G.readCursor);if(O!==void 0){let J=di(O);if(J!==void 0)return J}}return G?.readCursorSortKey===void 0?void 0:{sortKey:G.readCursorSortKey}}function a(b,U){return ti(b,U)}function l(b,U){let G=r.get(b),O=G===void 0?s(b):G.committed;return O!==void 0&&a(O,U)>=0}function c(b,U){let G=r.get(b),O=U.settleConversation===true?e.domainState.applyChannelConversationReadOptimistically:e.domainState.applyChannelReadOptimistically;if(G!==void 0){let x=a(G.optimistic,U);if(x>0){if(U.settleConversation===true)throw new Error(`CHANNEL \u6574\u4F1A\u8BDD\u76EE\u6807\u65E9\u4E8E\u6B63\u5728\u7ED3\u7B97\u7684\u4F4D\u7F6E\uFF08channelId=${b}\uFF09`);return}if(x===0&&(U.settleConversation!==true||G.optimistic.settleConversation===true))return;O(G.transaction,U.messageId,U.cursor),G.optimistic=U,x===0?G.steps[G.steps.length-1]=U:G.steps.push(U);return}let J=s(b),me=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:b});O(me,U.messageId,U.cursor),r.set(b,{transaction:me,committed:J,optimistic:U,steps:[U]});}function g(b,U){let G=n.get(b);(G===void 0||a(U,G)>0||a(U,G)===0&&U.settleConversation===true)&&n.set(b,U);}function f(b,U){if(e.syncRead!==void 0)try{let G=Co.encode(Co.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(b),lastReadIndex:U}));e.syncRead.sendFrame(ae({command:12805,body:G}));}catch(G){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${b}\uFF09`,cause:G}});}}function C(b,U){try{e.onReadCommitted?.({channelId:b,readCursor:U});}catch(G){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u6821\u51C6\u672A\u542F\u52A8\uFF08channelId=${b}\uFF09`,cause:G}});}}async function E(b,U){let G;try{for(;;){if(U!==o)return;let O=n.get(b);if(O===void 0)return;if(n.delete(b),l(b,O)){let x=r.get(b);O.settleConversation===!0&&x!==void 0&&(e.domainState.commitChannelReadTransaction(x.transaction,O.cursor),a(x.optimistic,O)===0&&r.delete(b));continue}try{await e.updateReadIndex({channelId:b,readCursor:O.cursor});}catch(x){if(U!==o)return;let z=r.get(b);throw z!==void 0&&(e.domainState.rollbackChannelReadTransaction(z.transaction),r.delete(b)),g(b,O),x}if(U!==o)return;if(l(b,O))continue;let J=r.get(b);J!==void 0&&e.domainState.commitChannelReadTransaction(J.transaction,O.cursor)||e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:b},O.messageId,O.cursor),J!==void 0&&(J.committed=O,a(J.optimistic,O)===0&&r.delete(b)),e.logger?.("channel-read-index",{channelId:b,cursor:O.cursor}),f(b,O.cursor),G=O.cursor;}}finally{if(U===o){G!==void 0&&C(b,G);try{e.onReadSettled?.({channelId:b});}catch(O){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u7B49\u5F85\u672A\u89E3\u9664\uFF08channelId=${b}\uFF09`,cause:O}});}}}}function I(b,U){let G=Promise.resolve().then(()=>E(b,U)).then(()=>{if(t.get(b)===G&&(t.delete(b),U===o&&n.has(b)))return I(b,U)},O=>{throw t.get(b)===G&&t.delete(b),O});return t.set(b,G),G}function D(b,U){let G;try{if(G=i(b.conversationId,b.readCursor),U&&(G.settleConversation=!0),!U&&l(b.conversationId,G))return Promise.resolve();let J=s(b.conversationId);if(U&&J!==void 0&&a(J,G)>0)throw new Error(`CHANNEL \u6574\u4F1A\u8BDD\u76EE\u6807\u65E9\u4E8E\u5F53\u524D\u5DF2\u8BFB\u4F4D\u7F6E\uFF08channelId=${b.conversationId}\uFF09`);let me=n.get(b.conversationId);if(me!==void 0&&!r.has(b.conversationId)){let x=a(me,G);x===0&&me.settleConversation===!0&&(G=me),x<0&&!l(b.conversationId,me)&&c(b.conversationId,me),c(b.conversationId,G),x>0&&c(b.conversationId,me);}else c(b.conversationId,G);}catch(J){return Promise.reject(J)}g(b.conversationId,G);let O=t.get(b.conversationId);return O!==void 0?O:I(b.conversationId,o)}function w(b){let U=i(b.conversationId,b.readCursor);if(l(b.conversationId,U))return;let G=r.get(b.conversationId);if(G!==void 0&&G.steps.some(O=>O.settleConversation===true)&&a(U,G.optimistic)<0){e.domainState.rollbackChannelReadTransaction(G.transaction),r.delete(b.conversationId),e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:b.conversationId},U.messageId,U.cursor);for(let O of G.steps)a(O,U)>0&&c(b.conversationId,O);C(b.conversationId,U.cursor);return}e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:b.conversationId},U.messageId,U.cursor),r.delete(b.conversationId),C(b.conversationId,U.cursor);}function v(){o+=1;for(let b of r.values())e.domainState.rollbackChannelReadTransaction(b.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:b=>D(b,false),settleConversationRead:b=>D(b,true),applyRemoteRead:w,reset:v}}function QA(e){return e===void 0?void 0:di(e)?.cursor}function di(e){let n=e.extensions?.historyCursor;if(!(typeof n!="string"||n.trim()===""))return {cursor:n,messageId:e.id,...ni(e)}}function WA(e){let n;for(let t of e){let r=di(t);r!==void 0&&(n===void 0||ti(r,n)>0)&&(n=r);}return n?.cursor}var Ya=50;function Kp(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function HA(e){if(e.contentType==="voice"||e.contentType==="video")return false;let n=e.body.system?.eventType;return e.conversationType==="direct"&&(n==="direct_contact_established"||n==="direct_contact_required"||n==="direct_message_refused")?false:Gn(e.id)}function JA(e,n,t,r){let o=Kp(e,n,r);if(o===void 0)return;let i=Kp(e,n,t),s=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(a=>HA(a)&&a.senderId!==s&&a.sortKey<=o&&(i===void 0||a.sortKey>i)).map(a=>a.id)}function Dl(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 c of a)Gn(c)||a.delete(c);if(a.size===0){r.delete(s);return}let l=[...a];for(let c=0;c<l.length;c+=Ya){let g=l.slice(c,c+Ya);try{let f=$t.encode($t.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:g.map(we)}));e.sendFrame(ae({command:4117,body:f}));for(let C of g)a.delete(C);}catch(f){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:f}});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 l=JA(e,s,t.get(s),a);if(l===void 0)return;if(l.length===0){t.set(s,a);return}let c,g=true;for(let f=0;f<l.length;f+=Ya){let C=l.slice(f,f+Ya),E=C.map(we);try{let I=$t.encode($t.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:E}));e.sendFrame(ae({command:4117,body:I})),c=C.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:s,count:E.length,offset:f});}catch(I){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:I}}),g=false;break}}g?t.set(s,a):c!==void 0&&t.set(s,c);}return {report(s){n.add(s),i(s);},reportConsumedMedia(s,a){let l=e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},a);if(l===void 0||l.senderId===e.getSelfId()||l.contentType!=="voice"&&l.contentType!=="video")return;n.add(s);let c=r.get(s);c===void 0&&(c=new Set,r.set(s,c)),c.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:l}){if(s!==e.getSelfId())return;let g=l.map(f=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},be(f))).filter(f=>f!==void 0).sort((f,C)=>f.sortKey<C.sortKey?-1:f.sortKey>C.sortKey?1:0).at(-1);g!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:a},g.id);},onAuthenticated(){for(let s of n)i(s),o(s);},reset(){}}}function YA(e){let n=e.body?.system?.eventType;return n==="group_call_started"||n==="group_call_ended"||n==="group_call_missed"?false:Gn(e.id)}var _l=50;function XA(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function s(l,c){let{syncRead:g}=e;if(g===void 0||!i())return;let f=g.getSelfId(),C=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:l}),E=C.find(G=>G.id===c);if(E===void 0)return;let I=o.get(l),D=I===void 0?void 0:C.find(G=>G.id===I)?.sortKey,w=C.filter(G=>YA(G)&&G.senderId!==f&&G.sortKey<=E.sortKey&&(D===void 0||G.sortKey>D));if(w.length===0){o.set(l,c);return}let v=w.map(G=>we(G.id)),b,U=true;for(let G=0;G<v.length;G+=_l){let O=v.slice(G,G+_l);try{let J=so.encode(so.create({sUserId:BigInt(f),msgIdList:O,groupId:BigInt(l)}));g.sendFrame(ae({command:8967,body:J})),b=w[Math.min(G+_l,w.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:l,count:O.length,offset:G});}catch(J){e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x2307)\u53D1\u9001\u5931\u8D25\uFF08groupId=${l}\uFF09`,cause:J}}),U=false;break}}U?o.set(l,c):b!==void 0&&o.set(l,b);}async function a(l){if(!(t.has(l)||!i())){t.add(l);try{for(;i();){let c=n.get(l);if(c===void 0)return;if(n.delete(l),r.get(l)!==c){s(l,c);try{await e.markGroupReadAll(l),r.set(l,c);}catch(g){if(!i()){n.has(l)||n.set(l,c);return}n.get(l)===c&&n.delete(l),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${l}\uFF09`,cause:g}});return}}}}finally{t.delete(l),i()&&n.has(l)&&a(l);}}}return {conversationType:"group",markRead({conversationId:l,readCursor:c}){e.domainState.applyServerUnread({conversationType:"group",conversationId:l},0,c),e.logger?.("grp-read-all",{groupId:l}),n.set(l,c),a(l);},onAuthenticated(){for(let l of n.keys())a(l);}}}function zA(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 qA(e){return {conversationType:"robot",markRead:({conversationId:n,readCursor:t})=>{e.domainState.advanceRead({conversationType:"robot",conversationId:n},t);}}}function Lp(e){let n=jr.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:we(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return ae({command:4107,body:jr.encode(n)})}function Zp(e){let n=eo.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:we(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return ae({command:8197,body:eo.encode(n)})}function Qp(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:we(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function Wp(e){let n=po.create(Qp(e));return ae({command:12297,body:po.encode(n)})}function Hp(e){let n=fo.create(Qp(e));return ae({command:12293,body:fo.encode(n)})}var jA=15e3;function Gl(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(e.domainState.getPinnedMessage(o)?.messageId===o.messageId)return Promise.resolve({ok:false,reason:"pinned"});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=we(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let a=t.get(s);if(a!==void 0)return a.promise;let l,c=new Promise(f=>{l=f;}),g={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:l,promise:c};return t.set(s,g),e.resolveProfile(i.conversationId).then(f=>{if(t.get(s)===g){if(f===null||f.role!=="admin"&&f.role!=="owner"){r(s,{ok:false,reason:"forbidden"});return}if(e.domainState.getPinnedMessage(o)?.messageId===o.messageId){r(s,{ok:false,reason:"pinned"});return}g.timer=setTimeout(()=>r(s,{ok:false,reason:"timeout"}),jA),e.sendFrame(Hp({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>{t.get(s)===g&&r(s,{ok:false,reason:"failed"});}),c},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 Gr=300*1e3;function Jp(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 Yp(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>Gr)return "expired"}function Xp(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:Gr,prepare(e,n,t){let r=Yp(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Lp({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function zp(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:Gr,prepare(e,n,t){let r=Yp(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Zp({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function $A(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:Gr,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>Gr)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:Wp({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function Ul(){return Jp([Xp(),zp()])}var qp=15e3;function kl(e){let n=e.now??(()=>Date.now()),t=e.strategies??Ul(),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((i.conversationType==="group"||i.conversationType==="channel")&&e.domainState.getPinnedMessage(i)?.messageId===i.messageId)return Promise.resolve({ok:false,reason:"pinned"});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 l=e.getSelfId();if(a.ownMessageOnly===true&&s.senderId!==l)return Promise.resolve({ok:false,reason:"not-own"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let c=n();if(a.recallWindowMs!==void 0&&c-(s.serverTime??s.createdAt)>a.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let g=we(i.messageId),f=r.get(g);if(f!==void 0)return f.promise;let C=a.prepare(i,s,{selfId:l,now:c});function E(v){if(!v.ok)return Promise.resolve(v);let b,U=new Promise(O=>{b=O;}),G=setTimeout(()=>o(g,{ok:false,reason:"timeout"}),qp);return r.set(g,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:v.recalledAt,resolve:b,timer:G,promise:U}),e.sendFrame(v.frame),U}if(!(C instanceof Promise))return E(C);let I,D=new Promise(v=>{I=v;}),w={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:c,resolve:I,promise:D};return r.set(g,w),C.then(v=>{if(r.get(g)===w){if(!v.ok){o(g,v);return}if((i.conversationType==="group"||i.conversationType==="channel")&&e.domainState.getPinnedMessage(i)?.messageId===i.messageId){o(g,{ok:false,reason:"pinned"});return}w.cancelTime=v.recalledAt,w.timer=setTimeout(()=>o(g,{ok:false,reason:"timeout"}),qp),e.sendFrame(v.frame);}}).catch(()=>{r.get(g)===w&&o(g,{ok:false,reason:"failed"});}),D},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 l=s===33284?"server-expired":"failed";o(i,a.conversationType==="channel"?{ok:false,reason:l,errcode:s}:{ok:false,reason:l});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function wl(e){function n(r){let o=Hi.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([Tc(o,e.getSelfId())],"live");let i=$r.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(ae({command:4109,body:$r.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let s=(o?Cs:Rs).decode(r);if(s.sFromId<=0n||s.sRadioId<=0n||s.sMsgId.trim()==="")return;let a=o?Is:hs,l=o?12295:12299,c=a.create({sFromId:s.sFromId,sRadioId:s.sRadioId,sMsgId:s.sMsgId,sIndex:s.sIndex});e.sendFrame(ae({command:l,body:a.encode(c)})),e.domainState.upsertMessages([o?Nc(s):bc(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=Wi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=Ji.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=Ss.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=ys.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 xl(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function eM(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 nM(e){let n=xl(e.sFromId,"applicant"),t=xl(e.sToId,"recipient"),r=xl(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 tM(e){function n(t){let r=As.decode(t),o=eM(e),i=nM(r),s=yo.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(ae({command:12547,body:yo.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 rM(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 oM(e){function n(i){let s=Io.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(ae({command:12803,body:Io.encode(s)}));}function t(i,s,a,l="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${l}\uFF08channelId=${s.sRadioId.toString()}, messageId=${s.sMsgId}\uFF09`,cause:a}});}function r(i){if(i.encrypt===0)return Ee.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 l=e.decrypt.resolveUserPrivateKey?.()??null;if(l===null)throw new Error("CHANNEL \u901A\u77E5 Web \u79C1\u94A5\u7F3A\u5931");let c=We.decode(i.sContent);if(c.secretKey.length===0||c.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return Ee.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:c.secretKey,cipherData:c.cipherData,privateKey:l}))}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=We.decode(i.sContent);if(a.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return Ee.decode(e.decrypt.crypto.decryptSymmetric({teaKey:s,cipherData:a.cipherData}))}function o(i,s){let a=Ms.decode(s);rM(a);try{n(a);}catch(c){t("transport",a,c,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let l;try{l=r(a);}catch(c){t(a.encrypt===0?"protocol":"crypto",a,c);let g=wt(a,Ee.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:a.encrypt!==0});e.domainState.upsertMessages([g],"live"),(a.encrypt===1||a.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:g.conversationId},messageId:g.id,wireEncrypt:a.encrypt,sContent:a.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let c=Zo({channelId:a.sRadioId,messageId:a.sMsgId,occurredAt:a.msgTime,notifyType:l.type,operatorId:l.oprUserId,targetUserIds:l.mnpledUserId,content:l.content,historyCursor:a.sId,sequence:a.nIncrId,encrypted:a.encrypt!==0,extend:a.extend},{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([c],"live"),e.logger?.("channel-notify-deliver",{channelId:a.sRadioId.toString(),messageId:a.sMsgId,notifyType:l.type});}catch(c){t("protocol",a,c);}}return [{command:12804,handler:(i,s)=>o(i,s)}]}function iM(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 sM(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 jp(e,n=true){if(e.sFromId<=0n&&e.botId.trim()==="")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 aM(e){function n(c){let g=gs.decode(c),f={...g.sIndex===""?{}:{historyCursor:g.sIndex},...g.nIncrId===0n?{}:{channelSequence:g.nIncrId.toString()}},C=iM(g.errcode);e.outbox.onChatAck({id:be(g.sMsgId),serverTime:Number(g.msgTime),errcode:g.errcode,...Object.keys(f).length===0?{}:{extensions:f},...C===void 0?{}:{failure:C}});let E=sM(g.errcode);E!==void 0&&g.sRadioId>0n&&e.domainState.setChannelRestriction(g.sRadioId.toString(),E.state,E.reason),e.logger?.("channel-chat-ack",{messageId:g.sMsgId,channelId:g.sRadioId.toString(),errcode:g.errcode});}function t(c){let g=go.create({sFromId:c.sFromId,sRadioId:c.sRadioId,sMsgId:c.sMsgId,sIndex:c.sId});e.sendFrame(ae({command:12291,body:go.encode(g)}));}function r(c,g,f){let C=c.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:g,messageId:c.sMsgId,channelId:C,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=${C}\uFF09`,...f.cause===void 0?{}:{cause:f.cause}}});}function o(c,g){let f;if(c.encrypt===0)try{f=Ee.decode(c.sContent);}catch(C){e.emitter.emit({type:"error",error:{scope:"protocol",message:`CHANNEL \u5B9E\u65F6\u660E\u6587 BMessage \u89E3\u7801\u5931\u8D25\uFF08channelId=${c.sRadioId.toString()}\uFF09`,cause:C}});return}else if(c.encrypt===1&&e.decrypt!==void 0){let C=e.decrypt.resolveUserPrivateKey?.()??null;if(C===null){r(c,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let E;try{if(E=We.decode(c.sContent),E.secretKey.length===0||E.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(D){r(c,g,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:D});return}let I;try{I=e.decrypt.crypto.decryptEndToEnd({secretKey:E.secretKey,cipherData:E.cipherData,privateKey:C});}catch(D){r(c,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:E.cipherData.length,cause:D});return}try{f=Ee.decode(I);}catch(D){r(c,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:E.cipherData.length,decryptedByteLength:I.length,cause:D});return}}else if(c.encrypt===2&&e.decrypt!==void 0){let C=e.decrypt.resolveChannelKey(c.sRadioId.toString());if(C===null||C.length!==16){r(c,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:C?.length??0,keySource:C===null?"miss":"cache"});return}let E;try{let D=We.decode(c.sContent);if(D.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");E=D.cipherData;}catch(D){r(c,g,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:C.length,keySource:"cache",cause:D});return}let I;try{I=e.decrypt.crypto.decryptSymmetric({teaKey:C,cipherData:E});}catch(D){r(c,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:C.length,keySource:"cache",cipherDataByteLength:E.length,cause:D});return}try{f=Ee.decode(I);}catch(D){r(c,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:C.length,keySource:"cache",cipherDataByteLength:E.length,decryptedByteLength:I.length,cause:D});return}}else {r(c,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return f}function i(c){let g=e.domainState.commitReceivedMessages===void 0?e.domainState.upsertMessages(c,"live"):e.domainState.commitReceivedMessages(c,"live");g instanceof Promise&&g.catch(f=>e.emitter.emit({type:"error",error:{scope:"storage",message:"CHANNEL \u5DF2\u786E\u8BA4\u7684\u6D88\u606F\u4FDD\u5B58\u5931\u8D25",cause:f}}));}function s(c,g){let f=wt(c,Ee.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:g,keepRaw:e.keepRaw,decryptFailed:true});i([f]),(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:g,source:"live",createdAt:Date.now()});}function a(c,g){let f=ms.decode(g);jp(f),t(f);let C=o(f,"live-deliver");if(C===void 0){s(f,c);return}let E=Xo({channelId:f.sRadioId,senderId:f.sFromId,msgTime:f.msgTime,encrypt:f.encrypt},C);if(E!==null){i([E]),e.logger?.("channel-operation-notify-deliver",{messageId:f.sMsgId,targetMessageId:E.id,channelId:f.sRadioId.toString(),operation:E.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:c});return}let I=wt(f,C,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw});i([I]),e.logger?.("channel-chat-deliver",{messageId:f.sMsgId,channelId:f.sRadioId.toString(),encrypt:f.encrypt,command:c});}function l(c,g){let f=Rt.decode(g);if(jp(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 C=be(f.oldMsgId),E=o(f,"live-edit");if(E===void 0){let D={conversationType:"channel",conversationId:f.sRadioId.toString()};if(e.domainState.getConversationMessage(D,C)===void 0){let w=wt(f,Ee.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,decryptFailed:true,edited:true});i([{...w,id:C}]);}e.decrypt?.onDecryptRecovery?.({conversation:D,messageId:C,wireEncrypt:2,sContent:f.sContent.slice(),cmdId:c,source:"live",createdAt:Date.now()});return}let I=wt(f,E,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,edited:true});if(I.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:I.conversationId},C,I.body,I.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:I.conversationId},C)===void 0&&i([{...I,id:C,edited:true,extensions:{...I.extensions,editOperationMessageId:I.id,previousMessageId:C}}]);}return [{command:12290,handler:(c,g)=>n(g)},{command:12292,handler:(c,g)=>a(c,g)},{command:12816,handler:(c,g)=>a(c,g)},{command:12808,handler:(c,g)=>l(c,g)}]}function Bl(){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 dM(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 cM(e){return [{command:4360,handler:(n,t)=>{let r=Qi.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(ae({command:4359,body:qr.encode(qr.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||dM(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 lM(e){return [{command:4356,handler:(n,t)=>{let r=Zi.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(ae({command:4355,body:zr.encode(zr.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 Pl(e){function n(E){let I=kt.create({sFromId:E.sFromId,sToId:E.sToId,sMsgId:E.sMsgId,msgTime:E.msgTime});e.sendFrame(ae({command:4099,body:kt.encode(I)}));}function t(E){let I=xc(Gi.decode(E));e.logger?.("chat-ack",{id:I.id,errcode:I.errcode,serverTime:I.serverTime}),e.outbox.onChatAck(I);}function r(E,I,D){let w=Er(E,Ee.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:I,keepRaw:e.keepRaw,decryptFailed:true,edited:D});e.domainState.upsertMessages([w],"live"),E.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:w.conversationId},messageId:w.id,wireEncrypt:1,sContent:E.sContent.slice(),...E.encryptVersion===""?{}:{encryptVersion:E.encryptVersion},cmdId:I,source:"live",createdAt:Date.now()});}function o(E,I,D=false){let w=Ui.decode(I),v;if(w.encrypt===0)v=Ee.decode(w.sContent);else if(w.encrypt===1&&e.decrypt!==void 0){let O=e.decrypt.resolvePrivateKey({msgType:w.msgType,encrypt:w.encrypt,encryptVersion:w.encryptVersion});if(O===null){e.decrypt.onDecryptError?.({msgId:w.sMsgId,fromId:String(w.sFromId),toId:String(w.sToId),msgType:w.msgType,cmdId:E,encrypt:w.encrypt,encryptVersion:w.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${w.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(w,E,D);return}try{let J=We.decode(w.sContent);if(J.secretKey.length===0||J.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${J.secretKey.length}B cipherData=${J.cipherData.length}B`);let me=e.decrypt.crypto.decryptEndToEnd({secretKey:J.secretKey,cipherData:J.cipherData,privateKey:O});v=Ee.decode(me);}catch(J){e.decrypt.onDecryptError?.({msgId:w.sMsgId,fromId:String(w.sFromId),toId:String(w.sToId),msgType:w.msgType,cmdId:E,encrypt:w.encrypt,encryptVersion:w.encryptVersion,reason:"decrypt-failed",cause:J}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${w.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:J}}),r(w,E,D);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${w.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(w,E,D);return}let b=Er(w,v,{selfId:e.getSelfId(),cmdId:E,keepRaw:e.keepRaw,edited:D}),U=e.getSelfId(),G=e.domainState.commitReceivedMessages===void 0?e.domainState.upsertMessages([b],"live"):e.domainState.commitReceivedMessages([b],"live");G instanceof Promise?G.then(()=>{e.isActive?.()!==false&&e.getSelfId()===U&&n(w);}).catch(O=>e.emitter.emit({type:"error",error:{scope:"storage",message:"\u63A5\u6536\u6D88\u606F\u4FDD\u5B58\u5931\u8D25\uFF0C\u672A\u786E\u8BA4\u6295\u9012",cause:O}})):n(w),e.logger?.("chat-deliver",{sMsgId:w.sMsgId,sFromId:String(w.sFromId),sToId:String(w.sToId),encrypt:w.encrypt});}function i(E){let I=no.create({sUserId:E.sToId,sMsgId:E.sMsgId});e.sendFrame(ae({command:4101,body:no.encode(I)})),e.logger?.("delivered-notif-ack",{sUserId:String(I.sUserId),sMsgId:I.sMsgId});}function s(E,I){let D=ji.decode(I);if(e.logger?.("delivered-notif",{sMsgId:D.sMsgId,sFromId:String(D.sFromId),sToId:String(D.sToId)}),D.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(D),e.emitter.emit({type:"notification",cmdId:E,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function a(E){let I=ro.create({sUserId:E.sToId,sMsgId:E.sMsgId});e.sendFrame(ae({command:4105,body:ro.encode(I)})),e.logger?.("read-deliver-ack",{sUserId:String(I.sUserId),sMsgId:I.sMsgId});}function l(E,I){let D=e.getSelfId(),w=[];for(let v of I){let b=e.domainState.getConversationMessage({conversationType:"direct",conversationId:E},be(v.sMsgId));b!==void 0&&b.senderId===D&&b.receipt!=="read"&&w.push({...b,receipt:"read"});}w.length>0&&e.domainState.upsertMessages(w,"live");}function c(E,I){let D=es.decode(I);if(e.logger?.("read-deliver",{sMsgId:D.sMsgId,sFromId:String(D.sFromId),sToId:String(D.sToId),readResults:D.readResults.length,readReceiptOff:D.readReceiptOff}),D.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(D),D.readReceiptOff!==1){let w=e.getSelfId(),v=D.sFromId.toString(),b=D.sToId.toString();l(v===w?b:v,D.readResults);}e.emitter.emit({type:"notification",cmdId:E,name:"MES_CHAT_READ_DELIVER"});}function g(E){let I=$i.decode(E);e.logger?.("read-report-ack",{notifyId:I.sMsgId,sUserId:String(I.sUserId),errcode:I.errcode}),e.onReadAck?.({notifyId:I.sMsgId,errcode:I.errcode});}function f(E){let I=ns.decode(E);e.logger?.("direct-sync-read-ack",{errcode:I.errcode}),e.onSyncReadAck?.({errcode:I.errcode});}function C(E,I){let D=ts.decode(I),w=D.sUserId.toString(),v=D.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:w,peerId:v,msgIds:D.msgIdList.length}),e.onSyncReadDeliver?.({userId:w,peerId:v,msgIdList:D.msgIdList}),e.emitter.emit({type:"notification",cmdId:E,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(E,I)=>t(I)},{command:4100,handler:(E,I)=>o(E,I)},{command:4644,handler:(E,I)=>o(E,I,true)},{command:4102,handler:(E,I)=>s(E,I)},{command:4106,handler:(E,I)=>c(E,I)},{command:4104,handler:(E,I)=>g(I)},{command:4118,handler:(E,I)=>f(I)},{command:4119,handler:(E,I)=>C(E,I)}]}function uM(e){function n(t){let r=Vi.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=Yr.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(ae({command:4632,body:Yr.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(l=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:i,error:l}}});}),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 gM(e){function n(i,s){let a=er.decode(s),l=e.getSelfId(),c=qo(a,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([c],"live");let g=ao.create({sUserId:BigInt(l),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(ae({command:8707,body:ao.encode(g)})),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=cs.decode(s),l=co.create({sUserId:BigInt(e.getSelfId()),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(ae({command:8451,body:co.encode(l)})),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=ls.decode(i),a=lo.create({sFromId:BigInt(e.getSelfId()),sToId:s.sFromId,sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(ae({command:8963,body:lo.encode(a)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:s.sMsgId});}function o(i){let s=us.decode(i),a=uo.create({sUserId:BigInt(e.getSelfId()),sMsgId:s.sMsgId});e.sendFrame(ae({command:8965,body:uo.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 mM(e){let n=new Map;function t(I){let D=rs.decode(I),w={id:be(D.sMsgId),serverTime:Number(D.sendtime),errcode:D.errcode};e.logger?.("grp-chat-ack",{id:w.id,errcode:w.errcode,serverTime:w.serverTime}),e.outbox.onChatAck(w);}function r(I){let D=oo.create({sFromId:BigInt(e.getSelfId()),sGrpId:I.sGrpId,sMsgId:I.sMsgId});e.sendFrame(ae({command:8195,body:oo.encode(D)}));}function o(){return e.isActive?.()??true}function i(I,D,w,v,b=false){let U=I.sGrpId.toString(),G=xt(I,Ee.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:D,keepRaw:e.keepRaw,decryptFailed:true,edited:b});e.domainState.upsertMessages([G],"live"),I.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:U},messageId:G.id,wireEncrypt:1,sContent:I.sContent.slice(),...I.encryptVersion===""?{}:{encryptVersion:I.encryptVersion},cmdId:D,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:I.sMsgId,groupId:U,fromId:String(I.sFromId),msgType:I.msgType,cmdId:D,encrypt:I.encrypt,encryptVersion:I.encryptVersion,reason:w,...v===void 0?{}:{cause:v}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:w==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${I.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=${I.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...v===void 0?{}:{cause:v}}});}function s(I,D,w,v){let b=xt(I,w,{selfId:e.getSelfId(),cmdId:D,keepRaw:e.keepRaw,edited:v}),U=e.getSelfId(),G=e.domainState.commitReceivedMessages===void 0?e.domainState.upsertMessages([b],"live"):e.domainState.commitReceivedMessages([b],"live");G instanceof Promise?G.then(()=>{e.isActive?.()!==false&&e.getSelfId()===U&&r(I);}).catch(O=>e.emitter.emit({type:"error",error:{scope:"storage",message:"\u63A5\u6536\u6D88\u606F\u4FDD\u5B58\u5931\u8D25\uFF0C\u672A\u786E\u8BA4\u6295\u9012",cause:O}})):r(I),e.logger?.("grp-chat-deliver",{sMsgId:I.sMsgId,sGrpId:String(I.sGrpId),sFromId:String(I.sFromId),encrypt:I.encrypt});}function a(I,D){let w=We.decode(I.sContent);if(w.secretKey.length===0||w.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${w.secretKey.length}B cipherData=${w.cipherData.length}B`);let v=e.decrypt.crypto.decryptEndToEnd({secretKey:w.secretKey,cipherData:w.cipherData,privateKey:D});return Ee.decode(v)}async function l(I,D,w){if(!o())return;if(I.encrypt===0){try{s(I,D,Ee.decode(I.sContent),w);}catch(O){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:O}});}return}if(I.encrypt!==1||e.decrypt===void 0){i(I,D,"no-key",void 0,w);return}let b={groupId:I.sGrpId.toString(),msgType:I.msgType,encrypt:I.encrypt,encryptVersion:I.encryptVersion},U;try{U=e.decrypt.resolvePrivateKey(b),U===null&&e.decrypt.preparePrivateKey!==void 0&&(U=await e.decrypt.preparePrivateKey(b));}catch(O){if(!o()||O instanceof Error&&O.name==="AbortError")return;if(mt(O)){e.emitter.emit({type:"error",error:{scope:"crypto",message:"\u7FA4\u5BC6\u94A5\u8BA1\u7B97\u6267\u884C\u5931\u8D25\uFF0C\u672A\u786E\u8BA4\u6295\u9012",cause:O}});return}i(I,D,"no-key",O,w);return}if(!o())return;if(U===null){i(I,D,"no-key",void 0,w);return}let G;try{G=a(I,U);}catch(O){i(I,D,"decrypt-failed",O,w);return}if(o())try{s(I,D,G,w);}catch(O){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:O}});}}function c(I,D,w){let v=I.sGrpId.toString(),U=(n.get(v)??Promise.resolve()).then(()=>l(I,D,w));n.set(v,U),U.finally(()=>{n.get(v)===U&&n.delete(v);});}function g(I,D,w=false){let v=os.decode(D),b=v.sGrpId.toString();if(n.has(b)){c(v,I,w);return}if(v.encrypt===0){s(v,I,Ee.decode(v.sContent),w);return}if(v.encrypt!==1||e.decrypt===void 0){i(v,I,"no-key",void 0,w);return}let U={groupId:b,msgType:v.msgType,encrypt:v.encrypt,encryptVersion:v.encryptVersion},G=e.decrypt.resolvePrivateKey(U);if(G===null){if(e.decrypt.preparePrivateKey!==void 0){c(v,I,w);return}i(v,I,"no-key",void 0,w);return}let O;try{O=a(v,G);}catch(J){i(v,I,"decrypt-failed",J,w);return}s(v,I,O,w);}function f(I){let D=as.decode(I);e.logger?.("grp-sync-read-ack",{errcode:D.errcode});}function C(I,D){for(let w=D.length-1;w>=0;w-=1){let v=D[w];if(v===void 0||v==="")continue;let b=be(v),U=e.domainState.getConversationMessage({conversationType:"group",conversationId:I},b);if(U!==void 0&&U.conversationId===I)return b}}function E(I,D){let w=ds.decode(D),v=w.groupId.toString();if(w.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:v,sUserId:String(w.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:v,sUserId:String(w.sUserId),msgIds:w.msgIdList.length});let b=C(v,w.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:v},0,b),e.emitter.emit({type:"notification",cmdId:I,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(I,D)=>t(D)},{command:8196,handler:(I,D)=>g(I,D)},{command:8976,handler:(I,D)=>g(I,D,true)},{command:8968,handler:(I,D)=>f(D)},{command:8969,handler:(I,D)=>E(I,D)}]}function fM(e){function n(o){let i=Kc(ki.decode(o));e.logger?.("robot-ack",{id:i.id,errcode:i.errcode}),e.outbox.onChatAck(i);}function t(o,i){let s=wi.decode(i),a=Vc(s,{selfId:e.getSelfId(),cmdId:o,keepRaw:e.keepRaw}),l=kt.create({sFromId:BigInt(s.robotId),sToId:s.userId,sMsgId:s.sMsgId,msgTime:s.msgTime}),c=ae({command:4099,body:kt.encode(l)}),g=e.getSelfId(),f=e.domainState.commitReceivedMessages===void 0?e.domainState.upsertMessages([a],"live"):e.domainState.commitReceivedMessages([a],"live");f instanceof Promise?f.then(()=>{e.isActive?.()!==false&&e.getSelfId()===g&&e.sendFrame(c);}).catch(C=>e.emitter.emit({type:"error",error:{scope:"storage",message:"\u673A\u5668\u4EBA\u56DE\u590D\u4FDD\u5B58\u5931\u8D25\uFF0C\u672A\u786E\u8BA4\u6295\u9012",cause:C}})):e.sendFrame(c);}function r(o){let i=xi.decode(o);if(i.robotId.trim()==="")throw new Error("robot delete: robotId \u7F3A\u5931");e.domainState.removeConversation({conversationType:"robot",conversationId:i.robotId}),e.emitter.emit({type:"notification",cmdId:24579,name:"BOT_MSG_ROBOT_DELETE_SEND"});}return [{command:4648,handler:(o,i)=>n(i)},{command:4649,handler:(o,i)=>t(o,i)},{command:24579,handler:(o,i)=>r(i)}]}function pM(e){function n(t){let r=Ki.decode(t);if(r.userId<=0n)throw new Error("session favorite notify: user id \u7F3A\u5931\u6216\u975E\u6CD5");e.getSelfId()===r.userId.toString()&&e.emitter.emit({type:"session-favorites:changed"});}return [{command:4633,handler:(t,r)=>n(r)}]}function yM(e){function n(t){let r=Li.decode(t),o=()=>e.sendFrame(ae({command:4628,body:Xr.encode(Xr.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=nc.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(l=>{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:l}});});return}o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}return [{command:4627,handler:(t,r)=>n(r)}]}function IM(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.robot===void 0&&e.game===void 0&&e.transfer===void 0&&e.unknown===void 0}function CM(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&IM(n.body)&&n.encryption.encrypted===false,o=Vo({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return Bf(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 Pf(o,i,a)})()}}}function $p(e,n){return $o({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Fl(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=$p(t,r);if(o.encrypt!==1)return Of(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=$p(t,r);if(o.encrypt!==1)return Vf(o);let{crypto:i,resolveEncryptionKey:s}=r,{resolveOwnKey:a}=e;if(i===void 0||s===void 0||a===void 0)throw new Error("direct encrypt=1 \u591A\u7AEF\u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey / resolveOwnKey\uFF09");return (async()=>{let[l,c]=await Promise.all([s(t.conversationId),a(r.selfId)]);if(l===null||l==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);if(c===null||c.publicKey.trim()==="")throw new Error("direct encrypt=1 \u53D6\u5F53\u524D\u8D26\u53F7\u591A\u7AEF\u540C\u6B65\u516C\u94A5\u5931\u8D25");return Kf(o,i,l,c.publicKey,c.version)})()}}}function SM(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=Ko({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 Jf(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 Yf(r,o,s.publicKey,s.version)})()}}}function ey(e){let n=Jr.encode(Jr.create({userId:e.userId,robotId:e.robotId,content:e.content,msgTime:e.msgTime,sMsgId:e.sMsgId}));return ae({command:4647,body:n})}function hM(){return {conversationType:"robot",buildOutgoingFrame(e,n){return ey(Lc({id:e.id,conversationId:e.conversationId,body:e.body,createdAt:e.createdAt,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId}))}}}function ny(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 ci(){return ny([Fl()])}function ty(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!Ia(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}})}function ir(e){return typeof e=="string"?e:e==null?"":String(e)}function Xa(e){let n=typeof e=="number"?e:Number(ir(e).trim());return Number.isFinite(n)?n:0}function ry(e){if(typeof e!="string")return "";let n=e.trim();return n.startsWith("data:image/")?n:n.includes("://")||n.length<32?"":`data:image/jpeg;base64,${n}`}function oy(...e){for(let n of e){let t=ir(n).trim();if(/^https?:\/\//i.test(t))return t}return ""}function za(e){return e.thumbDataUrl!==""?e.thumbDataUrl:e.thumbUrl.startsWith("data:image/")||/^https?:\/\//i.test(e.thumbUrl)&&e.thumbUrl!==e.url?e.thumbUrl:""}function RM(e){return e.url!==""||za(e)!==""}function iy(e){let n=e.items;return Array.isArray(n)?n.flatMap(t=>{if(typeof t!="object"||t===null)return [];let r=t,o=Xa(r.mediaType??r.media_type),i=ir(r.kind).trim(),s={kind:o===2||i==="video"?"video":"image",width:Xa(r.width),height:Xa(r.height),url:ir(r.url).trim(),thumbUrl:ir(r.thumbUrl??r.thumb_url).trim(),thumbDataUrl:ry(r.thumbData??r.thumb_data),durationMs:Xa(r.duration??r.durationMs),hd:r.hd===true||r.hd===1||r.hd==="1"};return RM(s)?[s]:[]}):[]}function AM(e){return e.kind!=="mediaAlbum"?"":e.text.trim()||ir(e.body.caption).trim()}function sy(e){return za({url:oy(e.imageURL,e.imageUrl,e.videoURL,e.videoUrl,e.url),thumbUrl:ir(e.thumbUrl??e.thumb_url).trim(),thumbDataUrl:ry(e.thumbData??e.thumb_data??e.thumbBase64)})}function MM(e,n){if(e==="mediaAlbum"){let t=iy(n)[0];return t===void 0?"":za(t)}return e==="image"||e==="video"?sy(n):e==="liveRoom"?oy(n.liveCover):""}function ay(e){return Array.isArray(e.items)?e.items.flatMap((n,t)=>{if(typeof n!="object"||n===null)return [];let r=n,o=r.fileName??r.fielName,i=r.fileSize??r.fileLength;return typeof o!="string"||o.trim()===""||typeof r.url!="string"||!/^https?:\/\//i.test(r.url)||typeof i!="number"||!Number.isSafeInteger(i)||i<0?[]:[Object.freeze({itemIndex:t,url:r.url,fileName:o,size:i,extension:typeof r.extension=="string"?r.extension:""})]}):[]}function EM(e){let n=new Map(ay(e).map(t=>[t.itemIndex,t]));return Object.freeze({contentType:"29",...typeof e.caption=="string"?{caption:e.caption}:{},items:Object.freeze((Array.isArray(e.items)?e.items:[]).map((t,r)=>{let o=n.get(r);return o===void 0?null:Object.freeze({url:o.url,fileName:o.fileName,fileSize:o.size,extension:o.extension})}))})}var vM=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,TM=/^[a-z0-9][a-z0-9._-]{0,63}$/,bM=new Set(["durable","rebuildable","ephemeral"]);function cy(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!vM.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 dy(e,n){if(!TM.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 NM(e){let n=cy(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(!bM.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return dy(i,"domain"),dy(s,"resource"),o==="durable"&&i==="storage"&&s==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${s}`}}}}}function DM(e){return e===32768||e===0}function _M(e,n){if(DM(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",...n===void 0||n<=0?{}:{lastLoginTime:n}}};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 GM(e){return e===""?"(empty)":`...${e.slice(-6)}(len=${e.length})`}function UM(e){let n=Wr.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return ae({command:257,body:Wr.encode(n)})}function ly(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(a,l){if(o===void 0||o.generation!==a)return;clearTimeout(o.timer);let{resolve:c}=o;o=void 0,c(l);}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 l;try{l=await e.authProvider.getLoginContext();}catch(g){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:g}}}if(a!==r)return {type:"canceled"};if(l===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let c;try{c=UM(l);}catch(g){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:g}}}return new Promise(g=>{let f=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:g,timer:f,selfId:l.userId},e.logger?.("connection:login-frame-sent",{userId:l.userId,deviceToken:GM(l.deviceToken),clientType:l.clientType,channelType:l.channelType,tokenLength:l.token.length,generation:a}),e.sendFrame(c);})},onLoginAck(a){if(o===void 0)return;let{generation:l,selfId:c}=o,g;try{let f=_i.decode(a),C=Number(f.nErr);e.logger?.("connection:login-ack-received",{ackUserId:String(f.sUserId),requestUserId:c,errCode:`0x${C.toString(16)}`,isKickedOut:C===33040,lastLoginTime:String(f.nLastLoginTime)}),g=_M(C,Number(f.nLastLoginTime)),g.type==="success"&&(g={type:"success",selfId:c});}catch(f){g={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:f}};}i(l,g);},cancel(){r+=1,s();},get awaitingAck(){return o!==void 0}}}var uy=4294967295,kM=2,wM=2.2,xM=2880;function BM(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function gy(e,n){if(!Number.isSafeInteger(e)||e<=0||e>uy)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${uy} \u7684\u6574\u6570`);return e}function PM(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>wM&&t>xM?kM:0}function Ol(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 FM(e,n){return e===void 0?void 0:Ol(e,n)}function OM(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 VM(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=gy(e.width,"asset.width"),r=gy(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?Ol(e.resourceId,"asset.resourceId"):FM(e.resourceId,"asset.resourceId"),s=e.kind==="sticker"?Ol(e.packageId,"asset.packageId"):void 0;return {sticker:{url:OM(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:PM(t,r),...i===void 0?{}:{contentId:i},...s===void 0?{}:{packageName:s},...e.size===void 0?{}:{size:BM(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function my(e,n){let t=VM(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 KM(){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 fy(e,n=KM){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 LM(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:fy(3,n)+1};if(e==="dice")return {gameType:e,value:fy(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function py(e,n){let t=LM(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 yy=new Set([32768,0]),Kl=new Set([33281,33299]),Ll=33298,ZM=new Set([...Kl,Ll]),qa=-2,QM=-1,ja=-3,Vl=-4;function pn(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>pn(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=pn(r);return n}return e}function Nt(e){return pn(e)}function li(e){return pn(e)}function Zl(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??ci(),s=new Map,a=new Map,l=new Map,c=new Map,g=0,f=new Set,C=new Map,E=new Set,I=new Set,D=new Set,w=new Map;function v(y){return ue(y)}function b(y,M){return y.createdAt!==M.createdAt?y.createdAt-M.createdAt:y.id<M.id?-1:y.id>M.id?1:0}function U(y){let M=v(y),A=a.get(M);if(A!==void 0)return A;let R=0;for(let B of e.domainState.getMessagesByConversation({conversationType:y.conversationType,conversationId:y.conversationId}))R=Math.max(R,ct(B));for(let B of s.values())v(B)===M&&(R=Math.max(R,B.createdAt));return a.set(M,R),R}function G(y,M){let A=v(y),R=a.get(A)??U(y);M>R&&a.set(A,M);}function O(y){let M=U(y),A=Math.max(o(),M+1);return a.set(v(y),A),{id:Vn(),createdAt:A}}function J(y,M){e.onUpdated?.({messageId:y.id,conversation:{conversationType:y.conversationType,conversationId:y.conversationId},state:M,...y.lastError===void 0?{}:{failure:{reason:y.lastError.reason,retryable:y.lastError.retryable}}});}function me(y){e.storage!==void 0&&e.storage.saveOutboxMessage(Nt(y)).catch(M=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",M));}function x(y){e.storage!==void 0&&e.storage.removeOutboxMessage(y).catch(M=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",M));}function z(y){let M=l.get(y);M!==void 0&&(clearTimeout(M),l.delete(y));}function ne(y,M,A){let R=A?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,B=A?.entry??s.get(y);if(B===void 0)return;let P=e.domainState.getConversationMessage(B,y);if(P!==void 0){e.domainState.upsertMessages([{...P,...M}],"live",R);return}let K={...{id:B.id,conversationId:B.conversationId,conversationType:B.conversationType,senderId:e.getSelfId(),contentType:B.contentType,body:li(B.body),createdAt:B.createdAt,sortKey:Be(B.createdAt,B.id),status:B.status,receipt:"unread",encryption:pn(B.encryption),failure:B.lastError===void 0?void 0:pn(B.lastError),...B.mention!==void 0?{mention:pn(B.mention)}:{},...B.refMessageId!==void 0?{refMessageId:B.refMessageId}:{}},...M};e.domainState.upsertMessages([{...K,sortKey:lt(K)}],"live",R);}function ee(y){if(!ZM.has(y.errcode))return;let M=e.getSelfId(),A=e.domainState.getMessagesById(y.id).filter(K=>K.conversationType==="direct"&&K.senderId===M);if(A.length>1)throw new Error(`DIRECT \u7EC8\u6001 ACK \u6D88\u606F ID \u5B58\u5728\u591A\u4F1A\u8BDD\u6B67\u4E49\uFF1A${y.id}`);let R=A[0];if(R===void 0)return;let B=Kl.has(y.errcode),P=y.errcode===Ll,V=y.failure??ka(y.errcode);B?V={...V,displayCode:"contactRequired",retryable:false}:P&&(V={...V,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...R,status:"failed",failure:V}],"live",{authoritativeOutboxFailure:true}),B?e.domainState.appendDirectContactRequiredNotice(R.conversationId,R.id):P&&e.domainState.appendDirectMessageRefusedNotice(R.conversationId,R.id);}function se(y,M){z(y);let A=s.get(y);A!==void 0&&(A.status="failed",A.lastError=M,ne(y,{status:"failed",failure:M}),me(A),J(A,"failed"),Ge(y));}async function he(y){if(c.has(y.id))return;if(f.has(v(y))){se(y.id,{code:Vl,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}let M=Symbol("outbox-dispatch");c.set(y.id,M);let A=g;try{let R=i.resolve(y.conversationType);if(R===void 0){se(y.id,{code:ja,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:_r(y.conversationType,"outbox.dispatch"),retryable:!1});return}let B;try{let P={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},V=R.buildOutgoingFrames===void 0?R.buildOutgoingFrame(y,P):R.buildOutgoingFrames(y,P);if(V instanceof Uint8Array)B=[V];else if(Array.isArray(V))B=V;else {let K=await V;B=K instanceof Uint8Array?[K]:K;}if(A!==g)return;if(B.length===0||B.some(K=>!(K instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${y.conversationType}\uFF09`)}catch{if(A!==g)return;y.attempts+=1,se(y.id,{code:qa,reason:"unknown"});return}if(f.has(v(y))){se(y.id,{code:Vl,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()){y.status="pending",ne(y.id,{status:"pending"}),me(y),J(y,"queued");return}y.status="sending",y.attempts+=1,ne(y.id,{status:"sending"}),me(y),J(y,"sending");for(let P of B)e.sendFrame(P);z(y.id),l.set(y.id,setTimeout(()=>se(y.id,{code:QM,reason:"timeout"}),t));}finally{c.get(y.id)===M&&c.delete(y.id);}}function Ge(y){let M=w.get(y);M!==void 0&&(w.delete(y),M());}function de(y){let M=s.get(y);return M===void 0||M.status!=="sending"?Promise.resolve():new Promise(A=>w.set(y,A))}function pe(y){return (y.status==="pending"||y.status==="failed")&&!(y.status==="failed"&&y.lastError?.retryable===false)&&y.resumePolicy!=="manual"&&(y.attempts<r||I.has(y.id))&&i.resolve(y.conversationType)!==void 0}function X(y,M){let A;for(let R of s.values())M.has(R.id)||v(R)!==y||!pe(R)||(A===void 0||b(R,A)<0)&&(A=R);return A}function Te(y,M=false){let A=v(y);if(M&&D.add(A),C.has(A)){E.add(A);return}ke(A);}function Ce(){let y=new Set;for(let M of s.values())pe(M)&&y.add(v(M));for(let M of y)H(M,true);}async function ke(y){let M=Symbol("outbox-drain"),A=g;C.set(y,M);try{do{E.delete(y);let R=new Set;for(;A===g&&e.isAuthenticated();){let B=X(y,R);if(B===void 0)break;if(R.add(B.id),I.delete(B.id),await he(B),A!==g)return;D.has(y)&&await de(B.id);}}while(A===g&&E.has(y)&&e.isAuthenticated())}finally{C.get(y)===M&&(C.delete(y),D.delete(y));}}function H(y,M=false){if(M&&D.add(y),C.has(y)){E.add(y);return}ke(y);}function F(y){let M={code:qa,reason:"unknown",displayCode:"sendCanceled",retryable:false};y.lastError=M,ne(y.id,{status:"failed",failure:M}),I.delete(y.id),s.delete(y.id),x(y.id),J(y,"canceled"),Ge(y.id);}return {allocateMessageIdentity:O,enqueueText(y){let{id:M,createdAt:A}=O(y),R={encrypted:y.encrypted??false},B=i.resolve(y.conversationType)!==void 0,P=B&&e.isAuthenticated(),V={id:M,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:y.text},createdAt:A,sortKey:Be(A,M),status:"pending",receipt:"unread",encryption:pn(R),...y.mention!==void 0?{mention:pn(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},K={id:M,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"text",body:{text:y.text},encryption:pn(R),status:"pending",attempts:0,createdAt:A,...y.mention!==void 0?{mention:pn(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return s.set(M,K),me(K),J(K,"queued"),e.domainState.upsertMessages([V],"live",{newOutgoing:true}),B?(P&&Te(K),Nt(K)):(se(M,{code:ja,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:_r(y.conversationType,"outbox.enqueueText"),retryable:false}),Nt(K))},enqueueContact(y){let M=y.contact.targetId.trim(),A=y.contact.displayName.trim();if(M==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(A==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(y.contact.kind!=="individual"&&y.contact.kind!=="group"&&y.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(y.contact.kind)} \u540D\u7247`);let{id:R,createdAt:B}=O(y),P={encrypted:y.encrypted??false},V=i.resolve(y.conversationType)!==void 0,K=V&&e.isAuthenticated(),fe={contact:{...y.contact,targetId:M,displayName:A}},p={id:R,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"contact",body:li(fe),createdAt:B,sortKey:Be(B,R),status:"pending",receipt:"unread",encryption:pn(P),...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}},h={id:R,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"contact",body:li(fe),encryption:pn(P),status:"pending",attempts:0,createdAt:B,...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}};return s.set(R,h),me(h),J(h,"queued"),e.domainState.upsertMessages([p],"live",{newOutgoing:true}),V?(K&&Te(h),Nt(h)):(se(R,{code:ja,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:_r(y.conversationType,"outbox.enqueueContact"),retryable:false}),Nt(h))},enqueueMedia(y){let{id:M,createdAt:A}=y,R=li(y.body);gc(y.contentType,R,"outbox.enqueueMedia"),G(y,A);let B=i.resolve(y.conversationType)!==void 0,P=B&&e.isAuthenticated(),V={id:M,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:y.contentType,body:li(R),createdAt:A,sortKey:Be(A,M),status:"pending",receipt:"unread",encryption:pn(y.encryption),...y.mention!==void 0?{mention:pn(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},K={id:M,conversationId:y.conversationId,conversationType:y.conversationType,contentType:y.contentType,body:R,encryption:pn(y.encryption),status:"pending",attempts:0,createdAt:A,...y.mention!==void 0?{mention:pn(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return s.set(M,K),me(K),J(K,"queued"),e.domainState.upsertMessages([V],"live",{newOutgoing:y.optimisticAlreadyCreated!==true}),B?(P&&Te(K),Nt(K)):(se(M,{code:ja,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:_r(y.conversationType,"outbox.enqueueMedia"),retryable:false}),Te(K,true),Nt(K))},onChatAck(y){z(y.id);let M=s.get(y.id);if(M===void 0){yy.has(y.errcode)||ee(y);return}if(yy.has(y.errcode))s.delete(y.id),x(y.id),ne(y.id,{status:"sent",serverTime:y.serverTime>0?y.serverTime:void 0,...y.extensions===void 0?{}:{extensions:{...e.domainState.getConversationMessage(M,y.id)?.extensions,...y.extensions}}},{entry:M}),J(M,"sent"),Ge(y.id);else {M.status="failed",M.lastError=y.failure??ka(y.errcode);let A=M.conversationType==="direct"&&Kl.has(y.errcode),R=M.conversationType==="direct"&&y.errcode===Ll;A?M.lastError={...M.lastError,displayCode:"contactRequired",retryable:false}:R&&(M.lastError={...M.lastError,displayCode:"messageRefused",retryable:false}),ne(y.id,{status:"failed",failure:M.lastError},{authoritativeFailure:true}),A?e.domainState.appendDirectContactRequiredNotice(M.conversationId,M.id):R&&e.domainState.appendDirectMessageRefusedNotice(M.conversationId,M.id),me(M),J(M,"failed"),Ge(y.id);}},onAuthenticated(){Ce();},retry(y){let M=s.get(y);return M===void 0?{accepted:false,reason:"not-found"}:M.status==="sending"||c.has(y)?{accepted:false,reason:"in-flight"}:M.status==="failed"&&M.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:M.status!=="failed"&&!(M.status==="pending"&&M.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(M.resumePolicy==="manual"&&(M.resumePolicy="automatic",me(M)),I.add(M.id),Te(M),{accepted:true})},cancel(y){let M=s.get(y);return M===void 0?{accepted:false,reason:"not-found"}:M.status==="sending"||c.has(y)?{accepted:false,reason:"in-flight"}:M.status!=="pending"?{accepted:false,reason:"invalid-state"}:M.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(F(M),{accepted:true})},markConversationTerminated(y,M){let A=v(y);f.add(A);for(let R of [...s.values()])if(v(R)===A){if(R.status==="pending"&&R.attempts===0&&!c.has(R.id)){F(R);continue}se(R.id,{code:Vl,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${M}`,retryable:false});}},clearConversationTerminated(y){let M=v(y);f.delete(M),H(M);},markForLogout(y){for(let M of s.values())if(!(M.status!=="pending"&&M.status!=="sending"&&M.status!=="failed")){if(z(M.id),M.resumePolicy="manual",y.policy==="fail"){let A={code:qa,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};M.status="failed",M.lastError=A,ne(M.id,{status:"failed",failure:A}),J(M,"failed");}me(M),Ge(M.id);}},getPending(){return [...s.values()].map(Nt)},reset(y){y?.discardInFlight&&(g+=1,c.clear(),C.clear(),E.clear(),D.clear());for(let M of [...l.keys()])z(M);for(let M of s.values())M.status==="sending"&&(M.status="pending",ne(M.id,{status:"pending"}),me(M),J(M,"queued"),Ge(M.id));},async hydrate(y=()=>true){if(!(e.storage===void 0||!y()))try{let M=await e.storage.getOutbox();if(!y())return;for(let A of M){if(!y())return;let R=Nt(A);if(R.status==="sent"){x(R.id);continue}try{gc(R.contentType,R.body,`outbox.hydrate(${R.id})`),R.body.video!==void 0&&(R.body={...R.body,video:Ca(R.body.video)});}catch(V){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${R.id}\uFF09`,V),!y())return;if(x(R.id),e.domainState.getConversationMessage(R,R.id)!==void 0){let K={code:qa,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};ne(R.id,{status:"failed",failure:K},{authoritativeFailure:!0,entry:R});}continue}let B=R.status==="sending"?"pending":R.status,P={...R,status:B};if(s.set(R.id,P),G(P,P.createdAt),J(P,B==="pending"?"queued":B),!y())return;e.domainState.getConversationMessage(R,R.id)!==void 0&&ne(R.id,{status:B,failure:R.lastError===void 0?void 0:pn(R.lastError)});}}catch(M){y()&&e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",M);}}}}function Iy(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=Bl(),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,isActive:e.isActive};for(let{command:o,handler:i}of Pl(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,s){let a=t.resolve(o);if(a===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return a(o,i,s),!0}catch(l){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,l),false}}}}var WM=new Set([32768,0]);function Ql(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,l=new Map,c=new Set,g=new Map,f=new Map,C=new Map;function E(x,z){let ne=C.get(x);ne===void 0&&(ne=new Set,C.set(x,ne));for(let ee of z)ne.add(ee);}function I(x,z){let ne=e.domainState.getConversationMessage({conversationType:"direct",conversationId:x},z);return ne?.conversationType==="direct"&&ne.conversationId===x&&w(ne.senderId)&&Gn(ne.id)?ne:void 0}function D(x,z,ne){c.add(x);let ee=new Map;for(let he of z){let Ge=I(x,he);Ge!==void 0&&!C.get(x)?.has(he)&&(ne?Ge.contentType==="voice"||Ge.contentType==="video":v(Ge))&&ee.set(he,Ge.sortKey);}if(e.canSendReadReceipt?.(x)===false){E(x,ee.keys()),O(x);return}let se=f.get(x);se===void 0&&(se=new Map,f.set(x,se));for(let[he,Ge]of ee)se.set(he,Ge);}function w(x){return x!==e.getSelfId()}function v(x){let z=x.body.system?.eventType;return x.contentType==="voice"||x.contentType==="video"?false:!(x.conversationType==="direct"&&(z==="direct_contact_established"||z==="direct_contact_required"||z==="direct_message_refused"))}function b(x,z){if(z!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:x},z)?.sortKey}function U(x,z){let ne=b(x,l.get(x)??""),ee=new Set;for(let se of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:x}))v(se)&&w(se.senderId)&&Gn(se.id)&&!C.get(x)?.has(se.id)&&se.sortKey<=z&&(ne===void 0||se.sortKey>ne)&&ee.add(se.id);return [...ee].sort((se,he)=>{let Ge=b(x,se)??"",de=b(x,he)??"";return Ge<de?-1:Ge>de?1:0})}function G(x){let z=a.get(x);z!==void 0&&(clearTimeout(z.timer),a.delete(x));}function O(x){let z=s.get(x);z!==void 0&&(clearTimeout(z),s.delete(x));let ne=g.get(x),ee=ne===void 0?void 0:b(x,ne);ee!==void 0&&E(x,U(x,ee)),E(x,a.get(x)?.messageIds??[]),G(x),E(x,f.get(x)?.keys()??[]),f.delete(x),g.delete(x);let se=e.domainState.getReadState(x)?.readCursor??"";se!==""&&l.set(x,se);}function J(x,z){let ne=a.get(x);if(ne===void 0)return;clearTimeout(ne.timer);let ee=e.canSendReadReceipt?.(x);if(ee===false){O(x);return}if(ee===void 0&&e.canSendReadReceipt!==void 0){a.delete(x);return}if(ne.attempts<o&&e.isAuthenticated()){ne.attempts+=1,e.sendFrame(ne.frame),ne.timer=setTimeout(()=>J(x,"timeout"),r);return}a.delete(x),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${z}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}function me(x){if(a.has(x))return;let z=g.get(x),ne=z===void 0?void 0:b(x,z),ee=ne===void 0?[]:U(x,ne);z!==void 0&&ne!==void 0&&ee.length===0&&(l.set(x,z),g.delete(x));let se=f.get(x),he=[...se?.keys()??[]],Ge=[...new Set([...ee,...he])].sort((F,y)=>{let M=se?.get(F)??b(x,F)??"",A=se?.get(y)??b(x,y)??"";return M<A?-1:M>A?1:0});if(Ge.length===0)return;let de=e.canSendReadReceipt?.(x);if(de===false){O(x);return}if(de===void 0&&e.canSendReadReceipt!==void 0||!e.isAuthenticated())return;let pe=Ge.slice(0,i),X=new Set(ee),Te=pe.filter(F=>X.has(F)),Ce=Te.length===0?void 0:Te.length===ee.length?z:Te[Te.length-1],ke=Vn(),H;try{H=ae({command:4103,body:to.encode(to.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(x),sMsgId:ke,readResults:pe.map(F=>({sMsgId:we(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(H),e.logger?.("read-report",{conversationId:x,notifyId:ke,count:pe.length,remaining:Ge.length-pe.length}),a.set(x,{conversationId:x,cursor:Ce,notifyId:ke,frame:H,messageIds:pe,attempts:1,timer:setTimeout(()=>J(x,"timeout"),r)});}return {report(x){c.add(x);let z=e.domainState.getReadState(x)?.readCursor;z&&g.set(x,z);let ne=s.get(x);if(ne!==void 0&&clearTimeout(ne),e.canSendReadReceipt?.(x)===false){O(x);return}s.set(x,setTimeout(()=>{s.delete(x),me(x);},t));},reportVisible(x,z){D(x,z,false);let ne=s.get(x);ne!==void 0&&clearTimeout(ne),s.set(x,setTimeout(()=>{s.delete(x),me(x);},t));},reportConsumedMedia(x,z){D(x,[z],true),me(x);},onReadAck({notifyId:x,errcode:z}){let ne;for(let ee of a.values())if(ee.notifyId===x){ne=ee;break}if(ne!==void 0)if(e.logger?.("read-report-ack",{conversationId:ne.conversationId,notifyId:x,errcode:z}),WM.has(z)){clearTimeout(ne.timer),a.delete(ne.conversationId),ne.cursor!==void 0&&l.set(ne.conversationId,ne.cursor),E(ne.conversationId,ne.messageIds);let ee=f.get(ne.conversationId);for(let se of ne.messageIds)ee?.delete(se);ee?.size===0&&f.delete(ne.conversationId),me(ne.conversationId);}else J(ne.conversationId,"rejected");},onAuthenticated(){for(let x of c)me(x);},suppress(x){if(x!==void 0){O(x);return}let z=new Set([...c,...s.keys(),...a.keys()]);for(let ne of z)O(ne);},resume(x){if(!c.has(x))return;let z=s.get(x);z!==void 0&&clearTimeout(z),s.set(x,setTimeout(()=>{s.delete(x),me(x);},t));},reset(){for(let x of s.values())clearTimeout(x);s.clear();for(let x of [...a.keys()])G(x);}}}function Cy(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 Sy(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,s,a=false,l=0;function c(){s!==void 0&&(clearTimeout(s),s=void 0);}function g(){i!==void 0&&(clearInterval(i),i=void 0),c(),a=false,l=0;}function f(){if(l>=r){g(),e.onUnhealthy();return}e.sendPing(),l+=1;}return {start(){i===void 0&&(l=0,i=setInterval(f,t));},stop:g,onAck(){c(),a=false,l=0;},probe(){i!==void 0&&(a||(a=true,e.sendPing(),l=1,clearInterval(i),i=setInterval(f,t),o!==void 0&&(s=setTimeout(()=>{s=void 0,g(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return l}}}function HM(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function JM(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 YM(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function XM(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,s=n.heartbeatIntervalMs??1e4,a=n.heartbeatMaxMissed??3,l=n.foregroundProbeTimeoutMs??5e3,c=n.loginTimeoutMs??n.readTimeoutMs??3e4,g={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},f="idle",C=true,E=0,I,D=false,w=new Uint8Array(0),v=false,b=0,U="";function G(T){f!==T&&(e.logger?.("connection:state-transition",{from:f,to:T,selfId:U}),f=T,i.emit({type:"connection:changed",state:T}));}function O(T){i.emit({type:"error",error:T});}function J(T,Z){let te=b;T?.catch(le=>{te===b&&O({scope:"unknown",message:Z,cause:le});});}function me(T){t.send(HM(T)).catch(Z=>{O({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:Z});});}let x=Sy({sendPing:()=>me(ae({command:1})),onUnhealthy:()=>{e.logger?.("connection:heartbeat-unhealthy",{stateBefore:f,selfId:U}),O({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),V();}},{intervalMs:s,maxMissed:a,probeTimeoutMs:l}),z=ly({authProvider:r,sendFrame:me,logger:e.logger},{timeoutMs:c}),ne=e.sendStrategies??ci(),ee=e.domainState?Zl({domainState:e.domainState,sendFrame:me,getSelfId:()=>U,isAuthenticated:()=>f==="authenticated",sendStrategies:ne,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(T,Z)=>O({scope:"storage",message:T,cause:Z}),onUpdated:T=>e.emitter.emit({type:"outbox:updated",conversation:T.conversation,item:T})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,se=e.domainState?Ql({domainState:e.domainState,sendFrame:me,getSelfId:()=>U,isAuthenticated:()=>f==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,he=e.domainState?Dl({domainState:e.domainState,sendFrame:me,getSelfId:()=>U,isAuthenticated:()=>f==="authenticated",emitter:i,logger:e.logger}):void 0,Ge=e.domainState?kl({domainState:e.domainState,sendFrame:me,getSelfId:()=>U,isAuthenticated:()=>f==="authenticated",strategies:e.recallStrategies}):void 0,de=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?Gl({domainState:e.domainState,sendFrame:me,getSelfId:()=>U,isAuthenticated:()=>f==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,pe=e.domainState!==void 0&&Ge!==void 0?wl({domainState:e.domainState,sendFrame:me,getSelfId:()=>U,onRecallAck:Ge.onRecallAck,onChannelMessageDeletionAck:T=>de?.onDeleteAck(T),logger:e.logger}):[],X=e.domainState?nl({getSelfId:()=>U,sendFrame:me,isAuthenticated:()=>f==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,Te=e.domainState!==void 0&&X!==void 0?Cl({onEditAck:X.onEditAck}):[],Ce=e.domainState!==void 0&&ee!==void 0&&e.media!==void 0?Nl({getSelfId:()=>U,domainState:e.domainState,outbox:ee,mediaTransfer:e.media.transfer,mediaPreview:e.media.preview,mediaAssetCache:e.media.assetCache,onMediaAssetCacheError:e.media.onAssetCacheError,onMediaTransferError:e.media.onTransferError,onMediaAlbumContentSize:e.media.onAlbumContentSize,emitter:i,crypto:e.encryptSend?.crypto,maxConcurrentUploads:e.media.maxConcurrentUploads,recoveryPort:e.media.recoveryPort,retainFailedUploads:e.media.retainFailedUploads,shouldPersistUpload:e.media.shouldPersistUpload,waitUntilOnline:e.media.waitUntilOnline,isOnline:e.isOnline}):void 0;function ke(T,Z){return Ce===void 0?Promise.reject(new Error(`${T} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):U===""?Promise.reject(new Error(`${T} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):Z(Ce)}function H(T,Z,te,le){let Re=e.domainState?.getConversationMessage({conversationId:te.conversationId,conversationType:te.conversationType},Z);if(Re===void 0||Re.conversationId!==te.conversationId||Re.conversationType!==te.conversationType||Re.contentType!==le&&!(le==="file"&&Re.contentType==="filesAlbum"&&Re.body.filesAlbum?.items.length===1)||Re.status!=="failed"||Re.recalled!==void 0||Re.deletedForEveryone!==void 0||Re.senderId!==U||!(Re.failure?.displayCode==="media.uploadInterrupted"||Re.failure?.displayCode==="media.cancelled"||Re.failure?.displayCode==="media.uploadTimeout"&&Re.failure.retryable===false))throw new Error(`${T} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u6E90\u6587\u4EF6\u5DF2\u91CA\u653E\u7684${le==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return Re}let F=e.domainState&&ee?Iy({isActive:()=>C&&f==="authenticated",domainState:e.domainState,outbox:ee,onReadAck:se?.onReadAck,onSyncReadAck:he?.onAck,onSyncReadDeliver:he?.onDeliver,sendFrame:me,getSelfId:()=>U,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...pe,...Te]}):void 0;function y(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function M(){I!==void 0&&(clearTimeout(I),I=void 0);}function A(T){return T!==null&&T.userId.trim()!==""&&T.token.trim()!==""}async function R(){try{return A(await r.getLoginContext())?"available":"missing"}catch(T){return O({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:T}),"unavailable"}}function B(T,Z){O({scope:"transport",message:T,cause:Z}),x.stop(),G("disconnected");}function P(){if(I!==void 0)return;let T=Cy(E,g);E+=1,I=setTimeout(()=>{I=void 0,W();},T);}function V(){if(f==="reconnecting"||f==="suspended")return;let T=++b;x.stop(),z.cancel(),ee?.reset(),se?.reset(),Ge?.reset(),de?.reset(),X?.reset(),G("reconnecting"),y(),R().then(Z=>{if(!(f!=="reconnecting"||T!==b)){if(Z==="missing"){p({code:0,reason:"token_expired"});return}P();}});}function K(T="offline"){let Z=f==="idle"||f==="disconnected"||f==="disconnecting";if(T==="offline"&&(Z||f==="suspended")){J(Ce?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25");return}M(),b+=1,T==="offline"&&J(Ce?.pauseAll(),"\u9875\u9762\u79BB\u5F00\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),x.stop(),z.cancel(),T==="session-ended"&&Ce?.cancelAll("session-ended"),ee?.reset({discardInFlight:T==="session-ended"}),se?.reset(),Ge?.reset(),de?.reset(),X?.reset(),Z||G("suspended"),y();}function fe(){if(!(f!=="suspended"||!C)){if(e.isOnline?.()===false){G("offline");return}E=0,W();}}function p(T){f==="idle"||f==="disconnected"||(e.logger?.("connection:auth-invalid-terminal",{reason:T.reason,code:`0x${T.code.toString(16)}`,stateBefore:f,selfId:U}),M(),b+=1,x.stop(),z.cancel(),G("disconnected"),y(),Ce?.cancelAll("session-ended"),ee?.reset({discardInFlight:true}),se?.reset(),Ge?.reset(),de?.reset(),X?.reset(),i.emit({type:"auth:invalid",issue:T}),Promise.resolve().then(()=>r.onAuthInvalid?.(T)).catch(Z=>O({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:Z})));}function h(T){switch(T.type){case "success":E=0,v=false,T.selfId&&(U=T.selfId),G("authenticated"),x.start(),ee?.onAuthenticated(),J(Ce?.resumePaused(),"\u7F51\u7EDC\u6062\u590D\u540E\u7EE7\u7EED\u4E0A\u4F20\u5931\u8D25"),se?.onAuthenticated(),he?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(T.issue.reason==="token_expired"&&T.issue.code!==0&&!v){v=true,O({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),V();return}p(T.issue);break;case "retry":O(T.error),V();break;}}async function k(){let T=await z.login();T.type!=="canceled"&&f==="authenticating"&&h(T);}async function W(){if(!C){M(),G("suspended");return}if(e.isOnline?.()===false){M(),x.stop(),J(Ce?.pauseAll("offline"),"\u79BB\u7EBF\u63A2\u9488\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),G("offline");return}let T=++b;G("connecting"),D=false,w=new Uint8Array(0);let Z=await R();if(T!==b)return;if(Z==="missing"){p({code:0,reason:"token_expired"});return}if(Z==="unavailable"){V();return}let te;try{te=await o.getEndpoints();}catch(Re){if(T!==b)return;B("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",Re);return}if(T!==b)return;let le=te[0];if(le===void 0){B("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!YM(le.url)){B(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${le.url}`);return}try{await t.connect([le]);}catch(Re){if(T!==b)return;O({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:Re}),V();return}T!==b&&y();}function Q(T,Z,te){switch(T){case 258:z.onLoginAck(Z);break;case 2:x.onAck();break;case 264:if(e.logger!==void 0)try{let le=ec.decode(Z);e.logger("connection:kickout-received",{kickedUserId:String(le.sUserId),selfId:U,matchesSelf:String(le.sUserId)===U,entryIp:le.ip,entryPort:le.port,stateBefore:f});}catch(le){e.logger("connection:kickout-decode-failed",{message:le?.message,stateBefore:f});}p({code:33040,reason:"kicked"});break;default:F?.route(T,Z,{msgSeq:te});break}}function Ne(){return f==="authenticating"||f==="authenticated"}function re(T){if(!Ne())return;let Z=b;w=JM(w,new Uint8Array(T));let te;try{let le=ic(w);te=le.frames,w=le.remainder;}catch(le){O({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:le}),V();return}for(let le of te){if(!Ne()||Z!==b)return;Q(le.header.command,le.body,le.header.msgSeq);}}return t.on("open",()=>{f==="connecting"&&(G("authenticating"),k());}),t.on("message",({data:T})=>re(T)),t.on("error",({error:T})=>{O({scope:"transport",message:"transport \u9519\u8BEF",cause:T});}),t.on("close",({code:T,reason:Z,wasClean:te})=>{if(x.stop(),e.logger?.("connection:transport-closed",{code:T,reason:Z,wasClean:te,stateBefore:f,intentionalClose:D,nextPath:D||f==="disconnecting"?"disconnected":f==="idle"||f==="disconnected"||f==="reconnecting"||f==="suspended"||f==="offline"?"ignored":"reconnect"}),D||f==="disconnecting"){D=false,G("disconnected");return}f==="idle"||f==="disconnected"||f==="reconnecting"||f==="suspended"||f==="offline"||V();}),{get state(){return f},setConnectionAllowed(T){C!==T&&(C=T,T||K("session-ended"));},async connect(){f==="connecting"||f==="authenticating"||f==="authenticated"||(M(),E=0,await W());},disconnect(){if(M(),b+=1,x.stop(),z.cancel(),ee?.reset(),se?.reset(),Ge?.reset(),de?.reset(),X?.reset(),D=true,f==="idle"||f==="disconnected"){G("disconnected");return}G("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&G("disconnected");},notifyOnline(){if(f==="offline"){E=0,W();return}f==="reconnecting"&&(M(),W());},notifyOffline(){J(Ce?.pauseAll("offline"),"\u7F51\u7EDC\u79BB\u7EBF\u65F6\u6682\u505C\u4E0A\u4F20\u5931\u8D25"),!(f==="idle"||f==="disconnected"||f==="disconnecting"||f==="suspended"||f==="offline")&&(M(),b+=1,x.stop(),z.cancel(),ee?.reset(),se?.reset(),Ge?.reset(),de?.reset(),X?.reset(),G("offline"),y());},notifyVisible(){if(f==="suspended"){fe();return}if(f==="offline"&&e.isOnline?.()===true){E=0,W();return}if(f==="reconnecting"){M(),W();return}if(f==="authenticated"){let T=b;R().then(Z=>{if(!(f!=="authenticated"||T!==b)){if(Z==="missing"){p({code:0,reason:"token_expired"});return}x.probe();}});}},suspendForPageLifecycle:K,resumeFromPageLifecycle:fe,suppressDirectReadReceipts(T){se?.suppress(T);},resumeDirectReadReceipts(T){se?.resume(T);},reportDirectMediaConsumed(T,Z){se?.reportConsumedMedia(T,Z),he?.reportConsumedMedia?.(T,Z);},sendText(T){if(ee===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 ee.enqueueText(T)},sendContact(T){if(ee===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 ee.enqueueContact(T)},forwardMessages(T){if(ee===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let Z=e.domainState;if(Z===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 Sl({outbox:ee,sendStrategies:ne,resolveCurrentMessage:te=>Z.getConversationMessage(te,te.id)},T)},recallMessage(T){return Ge===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):Ge.recall(T)},deleteChannelMessageForEveryone(T){return de===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):de.deleteForEveryone(T)},editMessage(T){return X===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):X.edit(T)},sendImage(T){return ke("sendImage",Z=>Z.sendImage(T))},sendVideo(T){return ke("sendVideo",Z=>Z.sendVideo(T))},sendVoice(T){return ke("sendVoice",Z=>Z.sendVoice(T))},sendFile(T){return ke("sendFile",Z=>Z.sendFile(T))},sendGif(T){return ke("sendGif",Z=>Z.sendGif(T))},sendMediaAlbum(T){return ke("sendMediaAlbum",Z=>Z.sendMediaAlbum(T))},sendExpression(T){if(ee===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 my({outbox:ee},T)},sendGame(T){if(ee===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 py({outbox:ee,randomUint32:e.randomUint32},T)},sendMiniProgram(T){if(ee===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 Vp({outbox:ee},T)},sendTransfer(T){if(ee===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 ty({outbox:ee},T)},sendGift(T){if(ee===void 0)throw new Error("sendGift \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")throw new Error("sendGift \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Up({outbox:ee},T)},sendLiveRoom(T){if(ee===void 0)throw new Error("sendLiveRoom \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(U==="")throw new Error("sendLiveRoom \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return kp({outbox:ee},T)},replaceInterruptedVideo(T,Z){return ke("replaceInterruptedVideo",te=>{let le=H("replaceInterruptedVideo",T,Z,"video");return te.replaceVideo(T,le.createdAt,{...Z,...Z.caption===void 0&&le.body.video?.describe!==void 0?{caption:le.body.video.describe}:{},...Z.refMessageId===void 0&&le.refMessageId!==void 0?{refMessageId:le.refMessageId}:{}})})},replaceInterruptedFile(T,Z){return ke("replaceInterruptedFile",te=>{let le=H("replaceInterruptedFile",T,Z,"file");return te.replaceFile(T,le.createdAt,{...Z,...le.contentType==="filesAlbum"?{filesAlbum:true,caption:le.body.filesAlbum?.caption}:{},...Z.refMessageId===void 0&&le.refMessageId!==void 0?{refMessageId:le.refMessageId}:{}})})},cancelMedia(T){Ce?.cancel(T);},cancelMediaUpload(T,Z){return Ce?.cancel(T,Z)??false},pauseMediaUpload(T){return Ce?.pause(T)??Promise.resolve(false)},resumeMediaUpload(T){return Ce?.resume(T)??false},resumePausedMediaUploads(T,Z){return Ce?.resumePaused(T,Z)??Promise.resolve()},retryMediaUpload(T,Z){return Ce?.retry(T,Z)??false},expireRetainedUploads(){Ce?.expireRetainedUploads();},invalidateMediaAssetCacheWrites(){Ce?.invalidateAssetCacheWrites();},async disposeMediaTasks(T){await Ce?.dispose(T);},recoverMediaUpload(T,Z,te){return Ce===void 0?Promise.reject(new Error("IM_MEDIA_RECOVERY_UNAVAILABLE")):ke("recoverMediaUpload",le=>le.recoverUpload(T,Z,te))},retryMessage(T){Ce?.retry(T)!==true&&ee?.retry(T);},retryOutboxMessage(T){return ee?.retry(T)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(T){return ee?.cancel(T)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(T,Z){ee?.markConversationTerminated(T,Z);},clearOutboxConversationTerminated(T){ee?.clearConversationTerminated(T);},terminateConversationSending(T,Z){Ce?.cancelConversation(T),ee?.markConversationTerminated(T,Z);},settleConversationRead(T,Z){if(e.domainState===void 0)throw new Error("\u4F1A\u8BDD\u5DF2\u8BFB\u4E0D\u53EF\u7528\uFF1A\u672A\u6CE8\u5165 domainState");if(T.conversationType==="direct"){e.domainState.advanceRead(T,Z),he?.report(T.conversationId);return}let te=e.readStrategies?.resolve(T.conversationType);if(te===void 0)throw new Error(`\u4F1A\u8BDD\u5DF2\u8BFB\u672A\u652F\u6301\u7C7B\u578B\uFF1A${T.conversationType}`);let le={conversationId:T.conversationId,readCursor:Z};if(T.conversationType==="channel"){if(te.settleConversationRead===void 0)throw new Error("CHANNEL \u6574\u4F1A\u8BDD\u5DF2\u8BFB\u5C1A\u672A\u88C5\u914D");return te.settleConversationRead(le)}return te.markRead(le)},reportVisibleMessages(T,Z){if(!(T.conversationType==="group"||T.conversationType==="channel")){if(T.conversationType!=="direct")throw new Error(`\u53EF\u89C1\u6D88\u606F\u56DE\u6267\u672A\u652F\u6301\u7C7B\u578B\uFF1A${T.conversationType}`);if(se===void 0)throw new Error("\u53EF\u89C1\u6D88\u606F\u56DE\u6267\u4E0D\u53EF\u7528\uFF1A\u672A\u6CE8\u5165 domainState");se.reportVisible(T.conversationId,Z);}},markRead(T,Z,te){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 le=te??e.domainState.getSession(T)?.type;if(le===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${T}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(le==="direct"){if(se===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(T,Z),se.report(T),he?.report(T);return}let Re=e.readStrategies?.resolve(le);if(Re===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${le}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return Re.markRead({conversationId:T,readCursor:Z})},sendFrame(T){me(T);},onChatAck(T){ee?.onChatAck(T);},getPendingOutbox(){return ee?.getPending()??[]},async hydrateOutbox(T){await ee?.hydrate(T);},markOutboxForLogout(T){ee?.markForLogout({policy:T});}}}var hy={error:0,warn:1,info:2,debug:3,trace:4},zM=8,Wl=50,Hl=100,qM="[REDACTED]",jM="[REDACTED_PRIVATE_KEY]",$M="[SIGNED_URL_REDACTED]",eE=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,nE=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,tE=/(["'])(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,rE=/\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,oE=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function iE(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function sE(e){let n=iE(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 aE(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 dE(e){return e.replace(eE,n=>aE(n)?$M:n)}function Jl(e){return dE(e).replace(oE,jM).replace(nE,"$1$2[REDACTED]").replace(tE,"$1$2$1$3[REDACTED]").replace(rE,"$1$2[REDACTED]")}function cE(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 Yl(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&sE(i))return qM;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return Jl(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=zM)return "[MAX_DEPTH]";let s=cE(r);if(s!==void 0)return s;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let c=r;return {name:c.name,message:Jl(c.message),...c.code===void 0?{}:{code:c.code},...c.category===void 0?{}:{category:c.category},...c.retryable===void 0?{}:{retryable:c.retryable},...c.stack===void 0?{}:{stack:Jl(c.stack)},...c.data===void 0?{}:{data:t(c.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 c=r.slice(0,Wl).map(g=>t(g,o+1));return r.length>Wl&&c.push({omittedItems:r.length-Wl}),c}let a=Object.entries(r),l={};for(let[c,g]of a.slice(0,Hl))l[c]=t(g,o+1,c);return a.length>Hl&&(l.omittedKeys=a.length-Hl),l}return t(e,0)}function lE(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function s(l,c){return e.enabled&&o!==void 0&&hy[l]<=hy[e.level]&&n.has(c)}function a(l){if(i||e.fallbackSink===void 0)return;i=true;let c={message:"diagnostic-sink-failed"};try{c={message:"diagnostic-sink-failed",data:Yl(l)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:c}));}catch{}}return {isEnabled:s,record(l,c,g,f,C){if(!s(l,g))return;let E;try{E={...e.getRuntimeContext?.(),...C?.()};}catch(v){E={error:{message:"diagnostic-payload-factory-failed",data:v}};}let I;try{I=t();}catch{I=Date.now();}let D=++r,w;try{w=Yl({timestamp:I,sequence:D,level:l,layer:c,category:g,event:f,...E});}catch{w={timestamp:I,sequence:D,level:l,layer:c,category:g,event:f,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(w));}catch(v){o=void 0,a(v);}}}}function uE(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 gE(){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 Ry(e={}){let n=e.defaultTimeoutMs??3e4,t=new Map,r=0;function o(i){let s=t.get(i);if(s!==void 0)return clearTimeout(s.timer),t.delete(i),s}return {nextSeq(){return r=r>=4294967295?1:r+1,r},track(i,s){if(t.has(i))throw new Error(`\u91CD\u590D\u767B\u8BB0\u5728\u9014\u8BF7\u6C42 msgSeq=${i}\uFF08\u5E94\u7531 nextSeq() \u4FDD\u8BC1\u552F\u4E00\uFF09`);return new Promise((a,l)=>{let c=setTimeout(()=>{t.delete(i),l(new Error(`\u8BF7\u6C42\u8D85\u65F6\uFF1AmsgSeq=${i}\uFF0C\u7B49\u5F85 ${s??n}ms \u65E0\u54CD\u5E94`));},s??n);t.set(i,{resolve:a,reject:l,timer:c});})},resolve(i,s){let a=o(i);return a?.resolve(s),a!==void 0},reject(i,s){let a=o(i);return a?.reject(s),a!==void 0},rejectAll(i){for(let s of [...t.values()])clearTimeout(s.timer),s.reject(i);t.clear();},get pendingCount(){return t.size}}}function mE(e){let n=false,t=false,r=false,o,i,s=Ry(),a,l,c={status:"idle"},g=new Set;function f(v){try{v({...c});}catch{e.onListenerError();}}function C(v){c=v;for(let b of [...g])f(b);}function E(){l&&clearTimeout(l.timer),l=void 0;}function I(v,b){E(),r=v!=="server-rejected";let U={status:"error",error:v,requiresReconnect:r,...b===void 0?{}:{serverCode:b}};o=r?U:void 0,C(i?U:{status:"idle"});}function D(){if(t||r||l||!i)return;if(!n){C({status:"pending"});return}if(i.token===a?.token){C(a.snapshot);return}let v=i,b=s.nextSeq(),U=ae({command:261,msgSeq:b,body:Hr.encode(Hr.create({sUserId:BigInt(v.userId),nPushType:20,nPushTokenType:0,sPushToken:v.token}))}),G={...v,msgSeq:b,timer:setTimeout(()=>I("timeout"),e.timeoutMs??3e4)};if(l=G,C({status:"syncing"}),!(l!==G||t||!n)){if(!i){E();return}try{e.sendFrame(U);}catch{l===G&&I("send-failed");}}}return {api:{setWebSubscription({userId:v,subscription:b}){if(t)throw new Error("\u63A8\u9001\u7ED1\u5B9A\u5DF2\u9500\u6BC1");if(!/^[1-9]\d*$/.test(v)||v!==e.getSelfId())throw new Error("\u63A8\u9001\u8BA2\u9605\u8D26\u53F7\u4E0E\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let{endpoint:U,keys:G,expirationTime:O}=b;if(!U||!G?.p256dh||!G.auth)throw new Error("Web Push \u8BA2\u9605\u7F3A\u5C11 endpoint \u6216\u52A0\u5BC6\u5BC6\u94A5");let J=new URL(U);if(J.protocol!=="https:"||J.username||J.password)throw new Error("Web Push endpoint \u5FC5\u987B\u662F HTTPS \u5730\u5740");if(O!=null&&(!Number.isFinite(O)||O<=Date.now()))throw new Error("Web Push \u8BA2\u9605\u5DF2\u8FC7\u671F");let me=JSON.stringify({endpoint:U,expirationTime:O??null,keys:{p256dh:G.p256dh,auth:G.auth}});i={userId:v,token:me},o?C(o):l&&C({status:"syncing"}),D();},clear(){t||(i=void 0,a=void 0,C({status:"idle"}));},snapshot:()=>({...c}),subscribe(v){return t||g.add(v),f(v),()=>{g.delete(v);}}},commandHandlers:[{command:262,handler(v,b,U){if(!l||!n||t||r||U?.msgSeq!==l.msgSeq)return;let G;try{G=Di.decode(b);}catch{I("invalid-ack");return}let O=G.nErr===0&&(String(G.sUserId)===l.userId||String(G.sUserId)==="0");if(!O&&String(G.sUserId)!==l.userId)return;let J=l;if(E(),!O&&G.nErr!==32768){I("server-rejected",Number(G.nErr));return}if(a={token:J.token,snapshot:O?{status:"unconfirmed",serverCode:Number(G.nErr)}:{status:"synced"}},!i){C({status:"idle"});return}D();}}],setAuthenticated(v){t||n===v||(n=v,E(),a=void 0,r=false,o=void 0,i&&D());},dispose(){t||(t=true,E(),i=void 0,a=void 0,C({status:"disposed"}),g.clear());}}}var fE=200,pE=20;function yE(e){return e instanceof Ar&&e.status>=500}function IE(e){let n=e.maxBatchesPerEndpoint??fE,t=e.reducedBatchLimit??pE,r=e.yieldToEventLoop??(()=>Promise.resolve()),o=false,i=false,s;async function a(g,f){let C=[],E="",I=0,D;async function w(){try{return await g.pullBatch({deliveredMsgInfos:C,...D===void 0?{}:{limit:D}})}catch(v){if(D!==void 0||!yE(v))throw v;return D=t,e.logger?.("sync-batch-reduced",{endpoint:g.endpoint,limit:D,status:v.status}),await g.pullBatch({deliveredMsgInfos:C,limit:D})}}for(let v=1;;v++){if(v>n)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${g.endpoint}' \u9012\u5F52\u8D85\u8FC7 ${n} \u6279\u4FDD\u62A4\u4E0A\u9650\uFF08\u7591\u5F02\u5E38/\u672A\u7EC8\u6B62\uFF09`);let b=await w();if(b.commit!==void 0)await b.commit();else if(e.commitBatch!==void 0)await e.commitBatch(b.messages,b.reactions);else if((b.reactions?.length??0)>0)throw new Error("\u79BB\u7EBF\u6279\u6B21\u5305\u542B\u5F85\u63D0\u4EA4 Reaction\uFF0C\u4F46\u6CA1\u6709\u914D\u7F6E commitBatch");if(b.messages.length>0){b.commit===void 0&&e.commitBatch===void 0&&e.domainState.upsertMessages(b.messages,"offline"),I+=b.messages.length;for(let O of b.messages){let J={conversationType:O.conversationType,conversationId:O.conversationId};f.set(ue(J),J);}}Fc(b);let U=b.batchSize>0;if(e.logger?.("sync-batch",{endpoint:g.endpoint,batchNo:v,fetched:b.batchSize,newMessages:b.messages.length,responseBytes:b.responseBytes,endpointTotal:I,hasMore:U}),!U)break;let G=b.deliveredMsgInfos.at(-1)?.msgId??"";if(G!==""&&G===E)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${g.endpoint}' \u7EED\u70B9\u672A\u524D\u8FDB\uFF08\u670D\u52A1\u7AEF\u7591\u91CD\u590D\u8FD4\u56DE\u540C\u6279 msgId=${G}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);E=G,C=b.deliveredMsgInfos,await r();}return I}async function l(){let g=new Map,f=0,C=[];for(let E of e.pullers)try{f+=await a(E,g);}catch(I){C.push(I),e.emitter.emit({type:"error",error:{scope:"sync",message:`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${E.endpoint}' \u5931\u8D25`,cause:I}});}return C.length>0||(e.logger?.("sync-done",{totalMessages:f,conversations:g.size,done:true}),e.emitter.emit({type:"sync:complete",conversations:[...g.values()]})),C}function c(g){if(g.length>0)throw new AggregateError(g,"\u79BB\u7EBF\u6D88\u606F\u540C\u6B65\u672A\u5B8C\u6210")}return {async sync(g){if(o){i=true,g?.rejectOnFailure===true&&c(await s);return}o=true;let f;s=new Promise(E=>{f=E;});let C=[];try{do{i=!1;try{C=await l();}catch(E){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:E}}),C=[E];}}while(i)}finally{o=false,f(C),s=void 0;}g?.rejectOnFailure===true&&c(C);}}}
2
- export{mt as $,il as $a,Aa as A,cR as Aa,pM as Ab,SS as B,hi as Ba,yM as Bb,Uc as C,AI as Ca,CM as Cb,uA as D,Sd as Da,Fl as Db,Ma as E,pt as Ea,SM as Eb,hS as F,hR as Fa,hM as Fb,af as G,AR as Ga,ny as Gb,Zo as H,Kt as Ha,XM as Hb,Ke as I,EI as Ia,lE as Ib,An as J,Yc as Ja,uE as Jb,Pt as K,$f as Ka,gE as Kb,ue as L,ep as La,mE as Lb,hr as M,np as Ma,za as Mb,tr as N,DR as Na,iy as Nb,XS as O,tp as Oa,AM as Ob,Ft as P,WR as Pa,MM as Pb,nh as Q,Oa as Qa,ay as Qb,ff as R,ip as Ra,EM as Rb,th as S,tl as Sa,IE as Sb,rh as T,sp as Ta,pf as U,rl as Ua,oh as V,Va,ih as W,ol as Wa,sh as X,qR as Xa,ah as Y,sl as Ya,dh as Z,al as Za,gt as _,ri as _a,Rn as a,Ar as aa,fp as ab,cy as b,Cf as ba,XR as bb,NM as c,jo as ca,jR as cb,Ee as d,mh as da,$R as db,We as e,fh as ea,VA as eb,xo as f,Ch as fa,KA as fb,fC as g,Sh as ga,LA as gb,pC as h,hh as ha,ZA as hb,Po as i,Rh as ia,QA as ib,Gn as j,Ah as ja,WA as jb,Vn as k,Mh as ka,XA as kb,be as l,Eh as la,zA as lb,ct as m,vh as ma,qA as mb,lt as n,Th as na,Jp as nb,an as o,bh as oa,Xp as ob,oA as p,Nh as pa,zp as pb,Hn as q,Dh as qa,$A as qb,ur as r,Uh as ra,tM as rb,md as s,Fc as sa,oM as sb,yu as t,wh as ta,aM as tb,Ai as u,Bh as ua,cM as ub,gr as v,Ph as va,lM as vb,jI as w,Fh as wa,uM as wb,mr as x,Oh as xa,gM as xb,yd as y,jh as ya,mM as yb,Ia as z,dR as za,fM as zb};