Skip to main content

FILE_DESCRIPTOR_SET

Constant FILE_DESCRIPTOR_SET 

Source
pub const FILE_DESCRIPTOR_SET: &'static [u8] = b"\n\xcd\x0c\n message_contents/signature.proto\x12\x15xmtp.message_contents\"\xdd\x02\n\tSignature\x12T\n\recdsa_compact\x18\x01 \x01(\x0b2-.xmtp.message_contents.Signature.ECDSACompactH\x00R\x0cecdsaCompact\x12g\n\x14wallet_ecdsa_compact\x18\x02 \x01(\x0b23.xmtp.message_contents.Signature.WalletECDSACompactH\x00R\x12walletEcdsaCompact\x1a@\n\x0cECDSACompact\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytes\x12\x1a\n\x08recovery\x18\x02 \x01(\rR\x08recovery\x1aF\n\x12WalletECDSACompact\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytes\x12\x1a\n\x08recovery\x18\x02 \x01(\rR\x08recoveryB\x07\n\x05unionBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xd8\x08\n\x06\x12\x04\x01\x00\x1c\x01\nG\n\x01\x0c\x12\x03\x01\x00\x12\x1a= Signature is a generic structure for public key signatures.\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\x08\n\x01\x08\x12\x03\x05\x00C\n\t\n\x02\x08\x0b\x12\x03\x05\x00C\n\x08\n\x01\x08\x12\x03\x06\x008\n\t\n\x02\x08\x01\x12\x03\x06\x008\n\x86\x01\n\x02\x04\x00\x12\x04\n\x00\x1c\x01\x1az Signature represents a generalized public key signature,\n defined as a union to support cryptographic algorithm agility.\n\n\n\n\x03\x04\x00\x01\x12\x03\n\x08\x11\n:\n\x04\x04\x00\x03\x00\x12\x04\x0c\x02\x0f\x03\x1a, ECDSA signature bytes and the recovery bit\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x0c\n\x16\n<\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\r\x04\x14\"- compact representation [ R || S ], 64 bytes\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\r\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\r\n\x0f\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\r\x12\x13\n\x1d\n\x06\x04\x00\x03\x00\x02\x01\x12\x03\x0e\x04\x18\"\x0e recovery bit\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x05\x12\x03\x0e\x04\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x01\x12\x03\x0e\x0b\x13\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x03\x12\x03\x0e\x16\x17\n\xdf\x01\n\x04\x04\x00\x03\x01\x12\x04\x14\x02\x17\x03\x1a\xd0\x01 ECDSA signature bytes and the recovery bit\n produced by xmtp-js::PublicKey.signWithWallet function, i.e.\n EIP-191 signature of a \"Create Identity\" message with the key embedded.\n Used to sign identity keys.\n\n\x0c\n\x05\x04\x00\x03\x01\x01\x12\x03\x14\n\x1c\n<\n\x06\x04\x00\x03\x01\x02\x00\x12\x03\x15\x04\x14\"- compact representation [ R || S ], 64 bytes\n\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x05\x12\x03\x15\x04\t\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x01\x12\x03\x15\n\x0f\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x03\x12\x03\x15\x12\x13\n\x1d\n\x06\x04\x00\x03\x01\x02\x01\x12\x03\x16\x04\x18\"\x0e recovery bit\n\n\x0e\n\x07\x04\x00\x03\x01\x02\x01\x05\x12\x03\x16\x04\n\n\x0e\n\x07\x04\x00\x03\x01\x02\x01\x01\x12\x03\x16\x0b\x13\n\x0e\n\x07\x04\x00\x03\x01\x02\x01\x03\x12\x03\x16\x16\x17\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\x18\x02\x1b\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x18\x08\r\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x19\x04#\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x19\x04\x10\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x19\x11\x1e\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x19!\"\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x1a\x040\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x1a\x04\x16\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x1a\x17+\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x1a./b\x06proto3\n\x99\x19\n!message_contents/public_key.proto\x12\x15xmtp.message_contents\x1a message_contents/signature.proto\"\xe3\x01\n\x11UnsignedPublicKey\x12\x1d\n\ncreated_ns\x18\x01 \x01(\x04R\tcreatedNs\x12w\n\x16secp256k1_uncompressed\x18\x03 \x01(\x0b2>.xmtp.message_contents.UnsignedPublicKey.Secp256k1UncompressedH\x00R\x15secp256k1Uncompressed\x1a-\n\x15Secp256k1Uncompressed\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytesB\x07\n\x05union\"n\n\x0fSignedPublicKey\x12\x1b\n\tkey_bytes\x18\x01 \x01(\x0cR\x08keyBytes\x12>\n\tsignature\x18\x02 \x01(\x0b2 .xmtp.message_contents.SignatureR\tsignature\"\xa3\x01\n\x15SignedPublicKeyBundle\x12I\n\x0cidentity_key\x18\x01 \x01(\x0b2&.xmtp.message_contents.SignedPublicKeyR\x0bidentityKey\x12?\n\x07pre_key\x18\x02 \x01(\x0b2&.xmtp.message_contents.SignedPublicKeyR\x06preKey\"\xa5\x02\n\tPublicKey\x12\x1c\n\ttimestamp\x18\x01 \x01(\x04R\ttimestamp\x12C\n\tsignature\x18\x02 \x01(\x0b2 .xmtp.message_contents.SignatureH\x01R\tsignature\x88\x01\x01\x12o\n\x16secp256k1_uncompressed\x18\x03 \x01(\x0b26.xmtp.message_contents.PublicKey.Secp256k1UncompressedH\x00R\x15secp256k1Uncompressed\x1a-\n\x15Secp256k1Uncompressed\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytesB\x07\n\x05unionB\x0c\n\n_signature\"\x91\x01\n\x0fPublicKeyBundle\x12C\n\x0cidentity_key\x18\x01 \x01(\x0b2 .xmtp.message_contents.PublicKeyR\x0bidentityKey\x129\n\x07pre_key\x18\x02 \x01(\x0b2 .xmtp.message_contents.PublicKeyR\x06preKeyBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xa9\x10\n\x06\x12\x04\x02\x00B\x01\n{\n\x01\x0c\x12\x03\x02\x00\x12\x1aq Structure for representing public keys of different types,\n including signatures used to authenticate the keys.\n\n\x08\n\x01\x02\x12\x03\x04\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x06\x00*\n\x08\n\x01\x08\x12\x03\x08\x00C\n\t\n\x02\x08\x0b\x12\x03\x08\x00C\n\x08\n\x01\x08\x12\x03\t\x008\n\t\n\x02\x08\x01\x12\x03\t\x008\n\x84\x01\n\x02\x04\x00\x12\x04\r\x00\x1a\x01\x1ax UnsignedPublicKey represents a generalized public key,\n defined as a union to support cryptographic algorithm agility.\n\n\n\n\x03\x04\x00\x01\x12\x03\r\x08\x19\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0e\x02\x18\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0e\t\x13\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0e\x16\x17\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\x0f\x02\x11\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x0f\x08\r\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x10\x045\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x10\x04\x19\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x10\x1a0\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x1034\n4\n\x04\x04\x00\x03\x00\x12\x04\x16\x02\x19\x03\x1a\x0f EC: SECP256k1\n2\x15 Supported key types\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x16\n\x1f\nP\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\x18\x04\x14\x1aA uncompressed point with prefix (0x04) [ P || X || Y ], 65 bytes\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\x18\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\x18\n\x0f\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\x18\x12\x13\n\x1d\n\x02\x04\x01\x12\x04\x1d\x00 \x01\x1a\x11 SignedPublicKey\n\n\n\n\x03\x04\x01\x01\x12\x03\x1d\x08\x17\n*\n\x04\x04\x01\x02\x00\x12\x03\x1e\x02\x16\"\x1d embeds an UnsignedPublicKey\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x1e\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x1e\x08\x11\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x1e\x14\x15\n\x1e\n\x04\x04\x01\x02\x01\x12\x03\x1f\x02\x1a\"\x11 signs key_bytes\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x1f\x02\x0b\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1f\x0c\x15\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1f\x18\x19\nW\n\x02\x04\x02\x12\x04#\x00(\x01\x1aK PublicKeyBundle packages the cryptographic keys associated with a wallet.\n\n\n\n\x03\x04\x02\x01\x12\x03#\x08\x1d\n9\n\x04\x04\x02\x02\x00\x12\x03%\x02#\x1a, Identity key MUST be signed by the wallet.\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03%\x02\x11\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03%\x12\x1e\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03%!\"\n:\n\x04\x04\x02\x02\x01\x12\x03\'\x02\x1e\x1a- Pre-key MUST be signed by the identity key.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03\'\x02\x11\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\'\x12\x19\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\'\x1c\x1d\n\x86\x01\n\x02\x04\x03\x12\x04.\x009\x01\x1ap PublicKey represents a generalized public key,\n defined as a union to support cryptographic algorithm agility.\n2\x08 LEGACY\n\n\n\n\x03\x04\x03\x01\x12\x03.\x08\x11\n\x1d\n\x04\x04\x03\x03\x00\x12\x040\x023\x03\x1a\x0f The key bytes\n\n\x0c\n\x05\x04\x03\x03\x00\x01\x12\x030\n\x1f\nP\n\x06\x04\x03\x03\x00\x02\x00\x12\x032\x04\x14\x1aA uncompressed point with prefix (0x04) [ P || X || Y ], 65 bytes\n\n\x0e\n\x07\x04\x03\x03\x00\x02\x00\x05\x12\x032\x04\t\n\x0e\n\x07\x04\x03\x03\x00\x02\x00\x01\x12\x032\n\x0f\n\x0e\n\x07\x04\x03\x03\x00\x02\x00\x03\x12\x032\x12\x13\n\x0b\n\x04\x04\x03\x02\x00\x12\x034\x02\x17\n\x0c\n\x05\x04\x03\x02\x00\x05\x12\x034\x02\x08\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x034\t\x12\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x034\x15\x16\n\x0b\n\x04\x04\x03\x02\x01\x12\x035\x02#\n\x0c\n\x05\x04\x03\x02\x01\x04\x12\x035\x02\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x035\x0b\x14\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x035\x15\x1e\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x035!\"\n\x0c\n\x04\x04\x03\x08\x00\x12\x046\x028\x03\n\x0c\n\x05\x04\x03\x08\x00\x01\x12\x036\x08\r\n\x0b\n\x04\x04\x03\x02\x02\x12\x037\x045\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x037\x04\x19\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x037\x1a0\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03734\n\x9a\x01\n\x02\x04\x04\x12\x04=\x00B\x01\x1a\x8d\x01 PublicKeyBundle packages the cryptographic keys associated with a wallet,\n both senders and recipients are identified by their key bundles.\n\n\n\n\x03\x04\x04\x01\x12\x03=\x08\x17\n9\n\x04\x04\x04\x02\x00\x12\x03?\x02\x1d\x1a, Identity key MUST be signed by the wallet.\n\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03?\x02\x0b\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03?\x0c\x18\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03?\x1b\x1c\n:\n\x04\x04\x04\x02\x01\x12\x03A\x02\x18\x1a- Pre-key MUST be signed by the identity key.\n\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03A\x02\x0b\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03A\x0c\x13\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03A\x16\x17b\x06proto3\n\x8e\x1d\n%identity/associations/signature.proto\x12\x1axmtp.identity.associations\x1a!message_contents/public_key.proto\"1\n\x19RecoverableEcdsaSignature\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytes\"R\n\x1bRecoverableEd25519Signature\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytes\x12\x1d\n\npublic_key\x18\x02 \x01(\x0cR\tpublicKey\"~\n\x1cSmartContractWalletSignature\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12!\n\x0cblock_number\x18\x02 \x01(\x04R\x0bblockNumber\x12\x1c\n\tsignature\x18\x03 \x01(\x0cR\tsignature\"\xb3\x01\n\x1bRecoverablePasskeySignature\x12\x1d\n\npublic_key\x18\x01 \x01(\x0cR\tpublicKey\x12\x1c\n\tsignature\x18\x02 \x01(\x0cR\tsignature\x12-\n\x12authenticator_data\x18\x03 \x01(\x0cR\x11authenticatorData\x12(\n\x10client_data_json\x18\x04 \x01(\x0cR\x0eclientDataJson\"\xbc\x01\n\x18LegacyDelegatedSignature\x12K\n\rdelegated_key\x18\x01 \x01(\x0b2&.xmtp.message_contents.SignedPublicKeyR\x0cdelegatedKey\x12S\n\tsignature\x18\x02 \x01(\x0b25.xmtp.identity.associations.RecoverableEcdsaSignatureR\tsignature\"\xe0\x03\n\tSignature\x12P\n\x07erc_191\x18\x01 \x01(\x0b25.xmtp.identity.associations.RecoverableEcdsaSignatureH\x00R\x06erc191\x12U\n\x08erc_6492\x18\x02 \x01(\x0b28.xmtp.identity.associations.SmartContractWalletSignatureH\x00R\x07erc6492\x12d\n\x10installation_key\x18\x03 \x01(\x0b27.xmtp.identity.associations.RecoverableEd25519SignatureH\x00R\x0finstallationKey\x12b\n\x11delegated_erc_191\x18\x04 \x01(\x0b24.xmtp.identity.associations.LegacyDelegatedSignatureH\x00R\x0fdelegatedErc191\x12S\n\x07passkey\x18\x05 \x01(\x0b27.xmtp.identity.associations.RecoverablePasskeySignatureH\x00R\x07passkeyB\x0b\n\tsignatureBY\n$org.xmtp.proto.identity.associationsZ1github.com/xmtp/proto/v3/go/identity/associationsJ\xe3\x12\n\x06\x12\x04\x01\x00D\x01\n5\n\x01\x0c\x12\x03\x01\x00\x12\x1a+ Signing methods for identity associations\n\n\x08\n\x01\x02\x12\x03\x03\x00#\n\t\n\x02\x03\x00\x12\x03\x05\x00+\n\x08\n\x01\x08\x12\x03\x07\x00H\n\t\n\x02\x08\x0b\x12\x03\x07\x00H\n\x08\n\x01\x08\x12\x03\x08\x00=\n\t\n\x02\x08\x01\x12\x03\x08\x00=\nE\n\x02\x04\x00\x12\x04\x0b\x00\x0e\x01\x1a9 RecoverableEcdsaSignature for EIP-191 and V2 signatures\n\n\n\n\x03\x04\x00\x01\x12\x03\x0b\x08!\nJ\n\x04\x04\x00\x02\x00\x12\x03\r\x02\x12\x1a= 65-bytes [ R || S || V ], with recovery id as the last byte\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\r\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\r\x08\r\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\r\x10\x11\n\'\n\x02\x04\x01\x12\x04\x11\x00\x16\x01\x1a\x1b EdDSA signature for 25519\n\n\n\n\x03\x04\x01\x01\x12\x03\x11\x08#\n4\n\x04\x04\x01\x02\x00\x12\x03\x13\x02\x12\x1a\' 64 bytes [R(32 bytes) || S(32 bytes)]\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x13\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x13\x08\r\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x13\x10\x11\n\x17\n\x04\x04\x01\x02\x01\x12\x03\x15\x02\x17\x1a\n 32 bytes\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x15\x02\x07\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x15\x08\x12\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x15\x15\x16\n-\n\x02\x04\x02\x12\x04\x19\x00!\x01\x1a! Smart Contract Wallet signature\n\n\n\n\x03\x04\x02\x01\x12\x03\x19\x08$\n`\n\x04\x04\x02\x02\x00\x12\x03\x1c\x02\x18\x1aS CAIP-10 string\n https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-10.md\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03\x1c\x02\x08\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03\x1c\t\x13\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03\x1c\x16\x17\nG\n\x04\x04\x02\x02\x01\x12\x03\x1e\x02\x1a\x1a: Specify the block number to verify the signature against\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03\x1e\x02\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x1e\t\x15\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\x1e\x18\x19\n)\n\x04\x04\x02\x02\x02\x12\x03 \x02\x16\x1a\x1c The actual signature bytes\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03 \x02\x07\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03 \x08\x11\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03 \x14\x15\n\x1f\n\x02\x04\x03\x12\x04$\x00)\x01\x1a\x13 Passkey signature\n\n\n\n\x03\x04\x03\x01\x12\x03$\x08#\n\x0b\n\x04\x04\x03\x02\x00\x12\x03%\x02\x17\n\x0c\n\x05\x04\x03\x02\x00\x05\x12\x03%\x02\x07\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03%\x08\x12\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03%\x15\x16\n\x0b\n\x04\x04\x03\x02\x01\x12\x03&\x02\x16\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x03&\x02\x07\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03&\x08\x11\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03&\x14\x15\n\x0b\n\x04\x04\x03\x02\x02\x12\x03\'\x02\x1f\n\x0c\n\x05\x04\x03\x02\x02\x05\x12\x03\'\x02\x07\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x03\'\x08\x1a\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03\'\x1d\x1e\n\x0b\n\x04\x04\x03\x02\x03\x12\x03(\x02\x1d\n\x0c\n\x05\x04\x03\x02\x03\x05\x12\x03(\x02\x07\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x03(\x08\x18\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x03(\x1b\x1c\n\x95\x03\n\x02\x04\x04\x12\x041\x004\x01\x1a\x88\x03 An existing address on xmtpv2 may have already signed a legacy identity key\n of type SignedPublicKey via the \'Create Identity\' signature.\n For migration to xmtpv3, the legacy key is permitted to sign on behalf of the\n address to create a matching xmtpv3 installation key.\n This signature type can ONLY be used for CreateXid and AddAssociation\n payloads, and can only be used once in xmtpv3.\n\n\n\n\x03\x04\x04\x01\x12\x031\x08 \n\x0b\n\x04\x04\x04\x02\x00\x12\x032\x02:\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x032\x02\'\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x032(5\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03289\n\x0b\n\x04\x04\x04\x02\x01\x12\x033\x02*\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x033\x02\x1b\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x033\x1c%\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x033()\n8\n\x02\x04\x05\x12\x047\x00D\x01\x1a, A wrapper for all possible signature types\n\n\n\n\x03\x04\x05\x01\x12\x037\x08\x11\n\xb0\x02\n\x04\x04\x05\x08\x00\x12\x04=\x02C\x03\x1a\xa1\x02 Must have two properties:\n 1. An identifier (address or public key) for the signer must either be\n    recoverable, or specified as a field.\n 2. The signer certifies that the signing payload is correct. The payload\n    must be inferred from the context in which the signature is provided.\n\n\x0c\n\x05\x04\x05\x08\x00\x01\x12\x03=\x08\x11\n\x0b\n\x04\x04\x05\x02\x00\x12\x03>\x04*\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03>\x04\x1d\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03>\x1e%\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03>()\n\x0b\n\x04\x04\x05\x02\x01\x12\x03?\x04.\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03?\x04 \n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03?!)\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03?,-\n\x0b\n\x04\x04\x05\x02\x02\x12\x03@\x045\n\x0c\n\x05\x04\x05\x02\x02\x06\x12\x03@\x04\x1f\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03@ 0\n\x0c\n\x05\x04\x05\x02\x02\x03\x12\x03@34\n\x0b\n\x04\x04\x05\x02\x03\x12\x03A\x043\n\x0c\n\x05\x04\x05\x02\x03\x06\x12\x03A\x04\x1c\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03A\x1d.\n\x0c\n\x05\x04\x05\x02\x03\x03\x12\x03A12\n\x0b\n\x04\x04\x05\x02\x04\x12\x03B\x04,\n\x0c\n\x05\x04\x05\x02\x04\x06\x12\x03B\x04\x1f\n\x0c\n\x05\x04\x05\x02\x04\x01\x12\x03B \'\n\x0c\n\x05\x04\x05\x02\x04\x03\x12\x03B*+b\x06proto3\n\xc3A\n\'identity/associations/association.proto\x12\x1axmtp.identity.associations\x1a%identity/associations/signature.proto\"\xc2\x01\n\x10MemberIdentifier\x12+\n\x10ethereum_address\x18\x01 \x01(\tH\x00R\x0fethereumAddress\x128\n\x17installation_public_key\x18\x02 \x01(\x0cH\x00R\x15installationPublicKey\x12?\n\x07passkey\x18\x03 \x01(\x0b2#.xmtp.identity.associations.PasskeyH\x00R\x07passkeyB\x06\n\x04kind\"W\n\x07Passkey\x12\x10\n\x03key\x18\x01 \x01(\x0cR\x03key\x12(\n\rrelying_party\x18\x02 \x01(\tH\x00R\x0crelyingParty\x88\x01\x01B\x10\n\x0e_relying_party\"\xd8\x02\n\x06Member\x12L\n\nidentifier\x18\x01 \x01(\x0b2,.xmtp.identity.associations.MemberIdentifierR\nidentifier\x12Y\n\x0fadded_by_entity\x18\x02 \x01(\x0b2,.xmtp.identity.associations.MemberIdentifierH\x00R\raddedByEntity\x88\x01\x01\x123\n\x13client_timestamp_ns\x18\x03 \x01(\x04H\x01R\x11clientTimestampNs\x88\x01\x01\x12.\n\x11added_on_chain_id\x18\x04 \x01(\x04H\x02R\x0eaddedOnChainId\x88\x01\x01B\x12\n\x10_added_by_entityB\x16\n\x14_client_timestamp_nsB\x14\n\x12_added_on_chain_id\"\xdb\x02\n\x0bCreateInbox\x12-\n\x12initial_identifier\x18\x01 \x01(\tR\x11initialIdentifier\x12\x14\n\x05nonce\x18\x02 \x01(\x04R\x05nonce\x12g\n\x1cinitial_identifier_signature\x18\x03 \x01(\x0b2%.xmtp.identity.associations.SignatureR\x1ainitialIdentifierSignature\x12b\n\x17initial_identifier_kind\x18\x04 \x01(\x0e2*.xmtp.identity.associations.IdentifierKindR\x15initialIdentifierKind\x12(\n\rrelying_party\x18\x05 \x01(\tH\x00R\x0crelyingParty\x88\x01\x01B\x10\n\x0e_relying_party\"\xea\x02\n\x0eAddAssociation\x12`\n\x15new_member_identifier\x18\x01 \x01(\x0b2,.xmtp.identity.associations.MemberIdentifierR\x13newMemberIdentifier\x12a\n\x19existing_member_signature\x18\x02 \x01(\x0b2%.xmtp.identity.associations.SignatureR\x17existingMemberSignature\x12W\n\x14new_member_signature\x18\x03 \x01(\x0b2%.xmtp.identity.associations.SignatureR\x12newMemberSignature\x12(\n\rrelying_party\x18\x04 \x01(\tH\x00R\x0crelyingParty\x88\x01\x01B\x10\n\x0e_relying_party\"\xd6\x01\n\x11RevokeAssociation\x12V\n\x10member_to_revoke\x18\x01 \x01(\x0b2,.xmtp.identity.associations.MemberIdentifierR\x0ememberToRevoke\x12i\n\x1drecovery_identifier_signature\x18\x02 \x01(\x0b2%.xmtp.identity.associations.SignatureR\x1brecoveryIdentifierSignature\"\xf4\x02\n\x15ChangeRecoveryAddress\x126\n\x17new_recovery_identifier\x18\x01 \x01(\tR\x15newRecoveryIdentifier\x12z\n&existing_recovery_identifier_signature\x18\x02 \x01(\x0b2%.xmtp.identity.associations.SignatureR#existingRecoveryIdentifierSignature\x12k\n\x1cnew_recovery_identifier_kind\x18\x03 \x01(\x0e2*.xmtp.identity.associations.IdentifierKindR\x19newRecoveryIdentifierKind\x12(\n\rrelying_party\x18\x04 \x01(\tH\x00R\x0crelyingParty\x88\x01\x01B\x10\n\x0e_relying_party\"\xdc\x02\n\x0eIdentityAction\x12L\n\x0ccreate_inbox\x18\x01 \x01(\x0b2\'.xmtp.identity.associations.CreateInboxH\x00R\x0bcreateInbox\x12>\n\x03add\x18\x02 \x01(\x0b2*.xmtp.identity.associations.AddAssociationH\x00R\x03add\x12G\n\x06revoke\x18\x03 \x01(\x0b2-.xmtp.identity.associations.RevokeAssociationH\x00R\x06revoke\x12k\n\x17change_recovery_address\x18\x04 \x01(\x0b21.xmtp.identity.associations.ChangeRecoveryAddressH\x00R\x15changeRecoveryAddressB\x06\n\x04kind\"\xa1\x01\n\x0eIdentityUpdate\x12D\n\x07actions\x18\x01 \x03(\x0b2*.xmtp.identity.associations.IdentityActionR\x07actions\x12.\n\x13client_timestamp_ns\x18\x02 \x01(\x04R\x11clientTimestampNs\x12\x19\n\x08inbox_id\x18\x03 \x01(\tR\x07inboxId\"\x85\x01\n\tMemberMap\x12>\n\x03key\x18\x01 \x01(\x0b2,.xmtp.identity.associations.MemberIdentifierR\x03key\x128\n\x05value\x18\x02 \x01(\x0b2\".xmtp.identity.associations.MemberR\x05value\"\xea\x02\n\x10AssociationState\x12\x19\n\x08inbox_id\x18\x01 \x01(\tR\x07inboxId\x12?\n\x07members\x18\x02 \x03(\x0b2%.xmtp.identity.associations.MemberMapR\x07members\x12/\n\x13recovery_identifier\x18\x03 \x01(\tR\x12recoveryIdentifier\x12\'\n\x0fseen_signatures\x18\x04 \x03(\x0cR\x0eseenSignatures\x12d\n\x18recovery_identifier_kind\x18\x05 \x01(\x0e2*.xmtp.identity.associations.IdentifierKindR\x16recoveryIdentifierKind\x12(\n\rrelying_party\x18\x06 \x01(\tH\x00R\x0crelyingParty\x88\x01\x01B\x10\n\x0e_relying_party\"\xbc\x01\n\x14AssociationStateDiff\x12M\n\x0bnew_members\x18\x01 \x03(\x0b2,.xmtp.identity.associations.MemberIdentifierR\nnewMembers\x12U\n\x0fremoved_members\x18\x02 \x03(\x0b2,.xmtp.identity.associations.MemberIdentifierR\x0eremovedMembers*l\n\x0eIdentifierKind\x12\x1f\n\x1bIDENTIFIER_KIND_UNSPECIFIED\x10\x00\x12\x1c\n\x18IDENTIFIER_KIND_ETHEREUM\x10\x01\x12\x1b\n\x17IDENTIFIER_KIND_PASSKEY\x10\x02BY\n$org.xmtp.proto.identity.associationsZ1github.com/xmtp/proto/v3/go/identity/associationsJ\xb8&\n\x06\x12\x04\x01\x00~\x01\n;\n\x01\x0c\x12\x03\x01\x00\x12\x1a1 Payloads to be signed for identity associations\n\n\x08\n\x01\x02\x12\x03\x03\x00#\n\t\n\x02\x03\x00\x12\x03\x05\x00/\n\x08\n\x01\x08\x12\x03\x07\x00H\n\t\n\x02\x08\x0b\x12\x03\x07\x00H\n\x08\n\x01\x08\x12\x03\x08\x00=\n\t\n\x02\x08\x01\x12\x03\x08\x00=\n3\n\x02\x04\x00\x12\x04\x0b\x00\x11\x01\x1a\' The identifier for a member of an XID\n\n\n\n\x03\x04\x00\x01\x12\x03\x0b\x08\x18\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\x0c\x02\x10\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x0c\x08\x0c\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\r\x04 \n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\r\x04\n\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\r\x0b\x1b\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\r\x1e\x1f\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x0e\x04&\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x0e\x04\t\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0e\n!\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0e$%\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x0f\x04\x18\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03\x0f\x04\x0b\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0f\x0c\x13\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0f\x16\x17\n \n\x02\x04\x01\x12\x04\x14\x00\x17\x01\x1a\x14 Passkey identifier\n\n\n\n\x03\x04\x01\x01\x12\x03\x14\x08\x0f\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x15\x02\x10\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x15\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x15\x08\x0b\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x15\x0e\x0f\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x16\x02$\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03\x16\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x16\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x16\x12\x1f\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x16\"#\n$\n\x02\x05\x00\x12\x04\x1a\x00\x1e\x01\x1a\x18 List of identity kinds\n\n\n\n\x03\x05\x00\x01\x12\x03\x1a\x05\x13\n&\n\x04\x05\x00\x02\x00\x12\x03\x1b\x02\"\"\x19 Ethereum on old clients\n\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x1b\x02\x1d\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x1b !\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x1c\x02\x1f\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x1c\x02\x1a\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x1c\x1d\x1e\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x1d\x02\x1e\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x1d\x02\x19\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x1d\x1c\x1d\nP\n\x02\x04\x02\x12\x04!\x00&\x01\x1aD single member that optionally indicates the member that added them\n\n\n\n\x03\x04\x02\x01\x12\x03!\x08\x0e\n\x0b\n\x04\x04\x02\x02\x00\x12\x03\"\x02\"\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03\"\x02\x12\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03\"\x13\x1d\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03\" !\n\x0b\n\x04\x04\x02\x02\x01\x12\x03#\x020\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03#\x02\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03#\x0b\x1b\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03#\x1c+\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03#./\n\x0b\n\x04\x04\x02\x02\x02\x12\x03$\x02*\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03$\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03$\x0b\x11\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03$\x12%\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03$()\n\x0b\n\x04\x04\x02\x02\x03\x12\x03%\x02(\n\x0c\n\x05\x04\x02\x02\x03\x04\x12\x03%\x02\n\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03%\x0b\x11\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03%\x12#\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03%&\'\n\xf8\x01\n\x02\x04\x03\x12\x04,\x003\x01\x1a\xeb\x01 The first entry of any XID log. The XID must be deterministically derivable\n from the address and nonce.\n The recovery address defaults to the initial associated_address unless\n there is a subsequent ChangeRecoveryAddress in the log.\n\n\n\n\x03\x04\x03\x01\x12\x03,\x08\x13\n\x0b\n\x04\x04\x03\x02\x00\x12\x03-\x02 \n\x0c\n\x05\x04\x03\x02\x00\x05\x12\x03-\x02\x08\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03-\t\x1b\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03-\x1e\x1f\n\x0b\n\x04\x04\x03\x02\x01\x12\x03.\x02\x13\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x03.\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03.\t\x0e\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03.\x11\x12\n,\n\x04\x04\x03\x02\x02\x12\x03/\x02-\"\x1f Must be an addressable member\n\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03/\x02\x0b\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x03/\x0c(\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03/+,\n\x0b\n\x04\x04\x03\x02\x03\x12\x030\x02-\n\x0c\n\x05\x04\x03\x02\x03\x06\x12\x030\x02\x10\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x030\x11(\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x030+,\n?\n\x04\x04\x03\x02\x04\x12\x032\x02$\x1a2 Should be provided if identifier kind is passkey\n\n\x0c\n\x05\x04\x03\x02\x04\x04\x12\x032\x02\n\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\x032\x0b\x11\n\x0c\n\x05\x04\x03\x02\x04\x01\x12\x032\x12\x1f\n\x0c\n\x05\x04\x03\x02\x04\x03\x12\x032\"#\n\x82\x02\n\x02\x04\x04\x12\x049\x00?\x01\x1a\xf5\x01 Adds a new member for an XID - either an addressable member such as a\n wallet, or an installation acting on behalf of an address.\n A key-pair that has been associated with one role MUST not be permitted to be\n associated with a different role.\n\n\n\n\x03\x04\x04\x01\x12\x039\x08\x16\n\x0b\n\x04\x04\x04\x02\x00\x12\x03:\x02-\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03:\x02\x12\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03:\x13(\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03:+,\n\x0b\n\x04\x04\x04\x02\x01\x12\x03;\x02*\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03;\x02\x0b\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03;\x0c%\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03;()\n\x0b\n\x04\x04\x04\x02\x02\x12\x03<\x02%\n\x0c\n\x05\x04\x04\x02\x02\x06\x12\x03<\x02\x0b\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03<\x0c \n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03<#$\n?\n\x04\x04\x04\x02\x03\x12\x03>\x02$\x1a2 Should be provided if identifier kind is passkey\n\n\x0c\n\x05\x04\x04\x02\x03\x04\x12\x03>\x02\n\n\x0c\n\x05\x04\x04\x02\x03\x05\x12\x03>\x0b\x11\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03>\x12\x1f\n\x0c\n\x05\x04\x04\x02\x03\x03\x12\x03>\"#\nZ\n\x02\x04\x05\x12\x04B\x00E\x01\x1aN Revokes a member from an XID. The recovery address must sign the revocation.\n\n\n\n\x03\x04\x05\x01\x12\x03B\x08\x19\n\x0b\n\x04\x04\x05\x02\x00\x12\x03C\x02(\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03C\x02\x12\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03C\x13#\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03C&\'\n\x0b\n\x04\x04\x05\x02\x01\x12\x03D\x02.\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03D\x02\x0b\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03D\x0c)\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03D,-\n\xda\x01\n\x02\x04\x06\x12\x04J\x00P\x01\x1a\xcd\x01 Changes the recovery identifier for an XID. The recovery identifier is not required\n to be a member of the XID. In addition to being able to add members, the\n recovery identifier can also revoke members.\n\n\n\n\x03\x04\x06\x01\x12\x03J\x08\x1d\n\x0b\n\x04\x04\x06\x02\x00\x12\x03K\x02%\n\x0c\n\x05\x04\x06\x02\x00\x05\x12\x03K\x02\x08\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03K\t \n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03K#$\n\x0b\n\x04\x04\x06\x02\x01\x12\x03L\x027\n\x0c\n\x05\x04\x06\x02\x01\x06\x12\x03L\x02\x0b\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03L\x0c2\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03L56\n\x0b\n\x04\x04\x06\x02\x02\x12\x03M\x022\n\x0c\n\x05\x04\x06\x02\x02\x06\x12\x03M\x02\x10\n\x0c\n\x05\x04\x06\x02\x02\x01\x12\x03M\x11-\n\x0c\n\x05\x04\x06\x02\x02\x03\x12\x03M01\n?\n\x04\x04\x06\x02\x03\x12\x03O\x02$\x1a2 Should be provided if identifier kind is passkey\n\n\x0c\n\x05\x04\x06\x02\x03\x04\x12\x03O\x02\n\n\x0c\n\x05\x04\x06\x02\x03\x05\x12\x03O\x0b\x11\n\x0c\n\x05\x04\x06\x02\x03\x01\x12\x03O\x12\x1f\n\x0c\n\x05\x04\x06\x02\x03\x03\x12\x03O\"#\n)\n\x02\x04\x07\x12\x04S\x00Z\x01\x1a\x1d A single identity operation\n\n\n\n\x03\x04\x07\x01\x12\x03S\x08\x16\n\x0c\n\x04\x04\x07\x08\x00\x12\x04T\x02Y\x03\n\x0c\n\x05\x04\x07\x08\x00\x01\x12\x03T\x08\x0c\n\x0b\n\x04\x04\x07\x02\x00\x12\x03U\x04!\n\x0c\n\x05\x04\x07\x02\x00\x06\x12\x03U\x04\x0f\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03U\x10\x1c\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03U\x1f \n\x0b\n\x04\x04\x07\x02\x01\x12\x03V\x04\x1b\n\x0c\n\x05\x04\x07\x02\x01\x06\x12\x03V\x04\x12\n\x0c\n\x05\x04\x07\x02\x01\x01\x12\x03V\x13\x16\n\x0c\n\x05\x04\x07\x02\x01\x03\x12\x03V\x19\x1a\n\x0b\n\x04\x04\x07\x02\x02\x12\x03W\x04!\n\x0c\n\x05\x04\x07\x02\x02\x06\x12\x03W\x04\x15\n\x0c\n\x05\x04\x07\x02\x02\x01\x12\x03W\x16\x1c\n\x0c\n\x05\x04\x07\x02\x02\x03\x12\x03W\x1f \n\x0b\n\x04\x04\x07\x02\x03\x12\x03X\x046\n\x0c\n\x05\x04\x07\x02\x03\x06\x12\x03X\x04\x19\n\x0c\n\x05\x04\x07\x02\x03\x01\x12\x03X\x1a1\n\x0c\n\x05\x04\x07\x02\x03\x03\x12\x03X45\n\xd5\x03\n\x02\x04\x08\x12\x04c\x00g\x01\x1a\xc8\x03 One or more identity actions that were signed together.\n Example: [CreateXid, AddAssociation, ChangeRecoveryAddress]\n 1. The batched signature text is created by concatenating the signature text\n    of each association together with a separator, \'\\n\\n\\n\'.\n 2. The user signs this concatenated result.\n 3. The resulting signature is added to each association proto where relevant.\n    The same signature may be used for multiple associations in the array.\n\n\n\n\x03\x04\x08\x01\x12\x03c\x08\x16\n\x0b\n\x04\x04\x08\x02\x00\x12\x03d\x02&\n\x0c\n\x05\x04\x08\x02\x00\x04\x12\x03d\x02\n\n\x0c\n\x05\x04\x08\x02\x00\x06\x12\x03d\x0b\x19\n\x0c\n\x05\x04\x08\x02\x00\x01\x12\x03d\x1a!\n\x0c\n\x05\x04\x08\x02\x00\x03\x12\x03d$%\n\x0b\n\x04\x04\x08\x02\x01\x12\x03e\x02!\n\x0c\n\x05\x04\x08\x02\x01\x05\x12\x03e\x02\x08\n\x0c\n\x05\x04\x08\x02\x01\x01\x12\x03e\t\x1c\n\x0c\n\x05\x04\x08\x02\x01\x03\x12\x03e\x1f \n\x0b\n\x04\x04\x08\x02\x02\x12\x03f\x02\x16\n\x0c\n\x05\x04\x08\x02\x02\x05\x12\x03f\x02\x08\n\x0c\n\x05\x04\x08\x02\x02\x01\x12\x03f\t\x11\n\x0c\n\x05\x04\x08\x02\x02\x03\x12\x03f\x14\x15\n5\n\x02\x04\t\x12\x04j\x00m\x01\x1a) Map of members belonging to an inbox_id\n\n\n\n\x03\x04\t\x01\x12\x03j\x08\x11\n\x0b\n\x04\x04\t\x02\x00\x12\x03k\x02\x1b\n\x0c\n\x05\x04\t\x02\x00\x06\x12\x03k\x02\x12\n\x0c\n\x05\x04\t\x02\x00\x01\x12\x03k\x13\x16\n\x0c\n\x05\x04\t\x02\x00\x03\x12\x03k\x19\x1a\n\x0b\n\x04\x04\t\x02\x01\x12\x03l\x02\x13\n\x0c\n\x05\x04\t\x02\x01\x06\x12\x03l\x02\x08\n\x0c\n\x05\x04\t\x02\x01\x01\x12\x03l\t\x0e\n\x0c\n\x05\x04\t\x02\x01\x03\x12\x03l\x11\x12\nQ\n\x02\x04\n\x12\x04p\x00x\x01\x1aE A final association state resulting from multiple `IdentityUpdates`\n\n\n\n\x03\x04\n\x01\x12\x03p\x08\x18\n\x0b\n\x04\x04\n\x02\x00\x12\x03q\x02\x16\n\x0c\n\x05\x04\n\x02\x00\x05\x12\x03q\x02\x08\n\x0c\n\x05\x04\n\x02\x00\x01\x12\x03q\t\x11\n\x0c\n\x05\x04\n\x02\x00\x03\x12\x03q\x14\x15\n\x0b\n\x04\x04\n\x02\x01\x12\x03r\x02!\n\x0c\n\x05\x04\n\x02\x01\x04\x12\x03r\x02\n\n\x0c\n\x05\x04\n\x02\x01\x06\x12\x03r\x0b\x14\n\x0c\n\x05\x04\n\x02\x01\x01\x12\x03r\x15\x1c\n\x0c\n\x05\x04\n\x02\x01\x03\x12\x03r\x1f \n\x0b\n\x04\x04\n\x02\x02\x12\x03s\x02!\n\x0c\n\x05\x04\n\x02\x02\x05\x12\x03s\x02\x08\n\x0c\n\x05\x04\n\x02\x02\x01\x12\x03s\t\x1c\n\x0c\n\x05\x04\n\x02\x02\x03\x12\x03s\x1f \n\x0b\n\x04\x04\n\x02\x03\x12\x03t\x02%\n\x0c\n\x05\x04\n\x02\x03\x04\x12\x03t\x02\n\n\x0c\n\x05\x04\n\x02\x03\x05\x12\x03t\x0b\x10\n\x0c\n\x05\x04\n\x02\x03\x01\x12\x03t\x11 \n\x0c\n\x05\x04\n\x02\x03\x03\x12\x03t#$\n\x0b\n\x04\x04\n\x02\x04\x12\x03u\x02.\n\x0c\n\x05\x04\n\x02\x04\x06\x12\x03u\x02\x10\n\x0c\n\x05\x04\n\x02\x04\x01\x12\x03u\x11)\n\x0c\n\x05\x04\n\x02\x04\x03\x12\x03u,-\n?\n\x04\x04\n\x02\x05\x12\x03w\x02$\x1a2 Should be provided if identifier kind is passkey\n\n\x0c\n\x05\x04\n\x02\x05\x04\x12\x03w\x02\n\n\x0c\n\x05\x04\n\x02\x05\x05\x12\x03w\x0b\x11\n\x0c\n\x05\x04\n\x02\x05\x01\x12\x03w\x12\x1f\n\x0c\n\x05\x04\n\x02\x05\x03\x12\x03w\"#\n=\n\x02\x04\x0b\x12\x04{\x00~\x01\x1a1/ state diff between two final AssociationStates\n\n\n\n\x03\x04\x0b\x01\x12\x03{\x08\x1c\n\x0b\n\x04\x04\x0b\x02\x00\x12\x03|\x02,\n\x0c\n\x05\x04\x0b\x02\x00\x04\x12\x03|\x02\n\n\x0c\n\x05\x04\x0b\x02\x00\x06\x12\x03|\x0b\x1b\n\x0c\n\x05\x04\x0b\x02\x00\x01\x12\x03|\x1c\'\n\x0c\n\x05\x04\x0b\x02\x00\x03\x12\x03|*+\n\x0b\n\x04\x04\x0b\x02\x01\x12\x03}\x020\n\x0c\n\x05\x04\x0b\x02\x01\x04\x12\x03}\x02\n\n\x0c\n\x05\x04\x0b\x02\x01\x06\x12\x03}\x0b\x1b\n\x0c\n\x05\x04\x0b\x02\x01\x01\x12\x03}\x1c+\n\x0c\n\x05\x04\x0b\x02\x01\x03\x12\x03}./b\x06proto3\n\x93\x16\n*mls/message_contents/welcome_pointer.proto\x12\x19xmtp.mls.message_contents\"\x94\x03\n\x0eWelcomePointer\x12j\n\x12welcome_v1_pointer\x18\x01 \x01(\x0b2:.xmtp.mls.message_contents.WelcomePointer.WelcomeV1PointerH\x00R\x10welcomeV1Pointer\x1a\x8a\x02\n\x10WelcomeV1Pointer\x12 \n\x0bdestination\x18\x01 \x01(\x0cR\x0bdestination\x12X\n\taead_type\x18\x02 \x01(\x0e2;.xmtp.mls.message_contents.WelcomePointeeEncryptionAeadTypeR\x08aeadType\x12%\n\x0eencryption_key\x18\x03 \x01(\x0cR\rencryptionKey\x12\x1d\n\ndata_nonce\x18\x04 \x01(\x0cR\tdataNonce\x124\n\x16welcome_metadata_nonce\x18\x05 \x01(\x0cR\x14welcomeMetadataNonceB\t\n\x07version\"\x9b\x01\n*WelcomePointeeEncryptionAeadTypesExtension\x12m\n\x14supported_aead_types\x18\x01 \x03(\x0e2;.xmtp.mls.message_contents.WelcomePointeeEncryptionAeadTypeR\x12supportedAeadTypes*\x94\x01\n WelcomePointeeEncryptionAeadType\x124\n0WELCOME_POINTEE_ENCRYPTION_AEAD_TYPE_UNSPECIFIED\x10\x00\x12:\n6WELCOME_POINTEE_ENCRYPTION_AEAD_TYPE_CHACHA20_POLY1305\x10\x03*\x92\x01\n\x1eWelcomePointerWrapperAlgorithm\x121\n-WELCOME_POINTER_WRAPPER_ALGORITHM_UNSPECIFIED\x10\x00\x12=\n9WELCOME_POINTER_WRAPPER_ALGORITHM_XWING_MLKEM_768_DRAFT_6\x10\x02BW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\x87\x0e\n\x06\x12\x04\x01\x00,\x01\nu\n\x01\x0c\x12\x03\x01\x00\x12\x1ak WelcomePointer is used to point to the welcome message for several installations at once to save overhead\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\ny\n\x02\x04\x00\x12\x04\t\x00\x1b\x01\x1am A WelcomePointer is used to point to the welcome message for several installations at once to save overhead\n\n\n\n\x03\x04\x00\x01\x12\x03\t\x08\x16\n-\n\x04\x04\x00\x03\x00\x12\x04\x0b\x02\x16\x03\x1a\x1f Points to a V1 WelcomeMessage\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x0b\n\x1a\n\x99\x01\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\r\x04\x1a\x1a\x89\x01 The topic of the welcome message. For V1, this means that it will be the first message in the topic, so no other identifier is required\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\r\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\r\n\x15\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\r\x18\x19\nB\n\x06\x04\x00\x03\x00\x02\x01\x12\x03\x0f\x043\x1a3 The algorithm used to encrypt the welcome pointer\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x06\x12\x03\x0f\x04$\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x01\x12\x03\x0f%.\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x03\x12\x03\x0f12\nk\n\x06\x04\x00\x03\x00\x02\x02\x12\x03\x11\x04\x1d\x1a\\ The encryption key of the welcome message. Must match key size specified by the aead_type.\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x02\x05\x12\x03\x11\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x02\x01\x12\x03\x11\n\x18\n\x0e\n\x07\x04\x00\x03\x00\x02\x02\x03\x12\x03\x11\x1b\x1c\nh\n\x06\x04\x00\x03\x00\x02\x03\x12\x03\x13\x04\x19\x1aY Nonce used to encrypt the data field. Must match nonce size specified by the aead_type.\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x03\x05\x12\x03\x13\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x03\x01\x12\x03\x13\n\x14\n\x0e\n\x07\x04\x00\x03\x00\x02\x03\x03\x12\x03\x13\x17\x18\nt\n\x06\x04\x00\x03\x00\x02\x04\x12\x03\x15\x04%\x1ae Nonce used to encrypt the welcome_metadata field. Must match nonce size specified by the aead_type.\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x04\x05\x12\x03\x15\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x04\x01\x12\x03\x15\n \n\x0e\n\x07\x04\x00\x03\x00\x02\x04\x03\x12\x03\x15#$\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\x18\x02\x1a\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x18\x08\x0f\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x19\x04,\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x19\x04\x14\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x19\x15\'\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x19*+\n\n\n\x02\x05\x00\x12\x04\x1d\x00!\x01\n\n\n\x03\x05\x00\x01\x12\x03\x1d\x05%\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x1e\x027\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x1e\x022\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x1e56\n5\n\x04\x05\x00\x02\x01\x12\x03 \x02=\x1a( Use same encoding as openmls::AeadType\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03 \x028\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03 ;<\n}\n\x02\x05\x01\x12\x04$\x00\'\x01\x1aq MUST match the WelcomeWrapperAlgorithm enum values without 25519 so that the i32 transformations are compatible\n\n\n\n\x03\x05\x01\x01\x12\x03$\x05#\n\x0b\n\x04\x05\x01\x02\x00\x12\x03%\x024\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03%\x02/\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03%23\n\x0b\n\x04\x05\x01\x02\x01\x12\x03&\x02@\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03&\x02;\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03&>?\n\\\n\x02\x04\x01\x12\x04*\x00,\x01\x1aP Extension message that indicates the types of encryption supported by a client\n\n\n\n\x03\x04\x01\x01\x12\x03*\x082\n\x0b\n\x04\x04\x01\x02\x00\x12\x03+\x02E\n\x0c\n\x05\x04\x01\x02\x00\x04\x12\x03+\x02\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03+\x0b+\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03+,@\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03+CDb\x06proto3\n\xf8\x08\n-mls/message_contents/wrapper_encryption.proto\x12\x19xmtp.mls.message_contents\"\x85\x01\n\x18WelcomeWrapperEncryption\x12\x17\n\x07pub_key\x18\x01 \x01(\x0cR\x06pubKey\x12P\n\talgorithm\x18\x02 \x01(\x0e22.xmtp.mls.message_contents.WelcomeWrapperAlgorithmR\talgorithm*\xd2\x01\n\x17WelcomeWrapperAlgorithm\x12)\n%WELCOME_WRAPPER_ALGORITHM_UNSPECIFIED\x10\x00\x12(\n$WELCOME_WRAPPER_ALGORITHM_CURVE25519\x10\x01\x125\n1WELCOME_WRAPPER_ALGORITHM_XWING_MLKEM_768_DRAFT_6\x10\x02\x12+\n\'WELCOME_WRAPPER_ALGORITHM_SYMMETRIC_KEY\x10\x03BW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xed\x04\n\x06\x12\x04\x01\x00\x15\x01\n9\n\x01\x0c\x12\x03\x01\x00\x12\x1a/ Encryption algorithms for the Welcome Wrapper\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\nI\n\x02\x05\x00\x12\x04\t\x00\x0f\x01\x1a= Describes the algorithm used to encrypt the Welcome Wrapper\n\n\n\n\x03\x05\x00\x01\x12\x03\t\x05\x1c\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\n\x02,\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\n\x02\'\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\n*+\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x0b\x02+\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x0b\x02&\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x0b)*\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x0c\x028\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x0c\x023\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x0c67\n-\n\x04\x05\x00\x02\x03\x12\x03\x0e\x02.\x1a  Only used for WelcomePointee\'s\n\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x0e\x02)\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x0e,-\n]\n\x02\x04\x00\x12\x04\x12\x00\x15\x01\x1aQ The KeyPackageExtension that stores the PubKey and the WelcomeWrapperEncryption\n\n\n\n\x03\x04\x00\x01\x12\x03\x12\x08 \n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x13\x02\x14\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x13\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x13\x08\x0f\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x13\x12\x13\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x14\x02(\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x14\x02\x19\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x14\x1a#\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x14&\'b\x06proto3\n\xe6\x8d\x02\n\x18backend/v1/backend.proto\x12\x0fxmtp.backend.v1\x1a\'identity/associations/association.proto\x1a%identity/associations/signature.proto\x1a*mls/message_contents/welcome_pointer.proto\x1a-mls/message_contents/wrapper_encryption.proto\")\n\x06Cursor\x12\x1f\n\x0bsequence_id\x18\x01 \x01(\x04R\nsequenceId\"\x1d\n\x05Topic\x12\x14\n\x05topic\x18\x01 \x01(\x0cR\x05topic\"/\n\x0bMessageHash\x12\x18\n\x06sha256\x18\x01 \x01(\x0cH\x00R\x06sha256B\x06\n\x04hash\"k\n\nTopicQuery\x12,\n\x05topic\x18\x01 \x01(\x0b2\x16.xmtp.backend.v1.TopicR\x05topic\x12/\n\x06cursor\x18\x02 \x01(\x0b2\x17.xmtp.backend.v1.CursorR\x06cursor\"\x9b\x02\n\x0cEnvelopeMeta\x12/\n\x06cursor\x18\x01 \x01(\x0b2\x17.xmtp.backend.v1.CursorR\x06cursor\x12\x1b\n\tserver_ns\x18\x02 \x01(\x04R\x08serverNs\x12?\n\x0cmessage_hash\x18\x03 \x01(\x0b2\x1c.xmtp.backend.v1.MessageHashR\x0bmessageHash\x12,\n\x05topic\x18\x04 \x01(\x0b2\x16.xmtp.backend.v1.TopicR\x05topic\x12\x1b\n\texpiry_ns\x18\x05 \x01(\x04R\x08expiryNs\x121\n\x15is_commit_or_proposal\x18\x06 \x01(\x08R\x12isCommitOrProposal\"d\n\x0cGroupMessage\x12\x12\n\x04data\x18\x01 \x01(\x0cR\x04data\x12\x1f\n\x0bsender_hmac\x18\x02 \x01(\x0cR\nsenderHmac\x12\x1f\n\x0bshould_push\x18\x03 \x01(\x08R\nshouldPush\"\x9d\x05\n\x0eWelcomeMessage\x124\n\x02v1\x18\x01 \x01(\x0b2\".xmtp.backend.v1.WelcomeMessage.V1H\x00R\x02v1\x12Y\n\x0fwelcome_pointer\x18\x02 \x01(\x0b2..xmtp.backend.v1.WelcomeMessage.WelcomePointerH\x00R\x0ewelcomePointer\x1a\xf7\x01\n\x02V1\x12)\n\x10installation_key\x18\x01 \x01(\x0cR\x0finstallationKey\x12\x12\n\x04data\x18\x02 \x01(\x0cR\x04data\x12&\n\x0fhpke_public_key\x18\x03 \x01(\x0cR\rhpkePublicKey\x12_\n\x11wrapper_algorithm\x18\x04 \x01(\x0e22.xmtp.mls.message_contents.WelcomeWrapperAlgorithmR\x10wrapperAlgorithm\x12)\n\x10welcome_metadata\x18\x05 \x01(\x0cR\x0fwelcomeMetadata\x1a\xf4\x01\n\x0eWelcomePointer\x12)\n\x10installation_key\x18\x01 \x01(\x0cR\x0finstallationKey\x12\'\n\x0fwelcome_pointer\x18\x02 \x01(\x0cR\x0ewelcomePointer\x12&\n\x0fhpke_public_key\x18\x03 \x01(\x0cR\rhpkePublicKey\x12f\n\x11wrapper_algorithm\x18\x04 \x01(\x0e29.xmtp.mls.message_contents.WelcomePointerWrapperAlgorithmR\x10wrapperAlgorithmB\t\n\x07version\"I\n\nKeyPackage\x12;\n\x1akey_package_tls_serialized\x18\x01 \x01(\x0cR\x17keyPackageTlsSerialized\"\xa6\x01\n\x0eCommitLogEntry\x12=\n\x1bserialized_commit_log_entry\x18\x01 \x01(\x0cR\x18serializedCommitLogEntry\x12U\n\tsignature\x18\x02 \x01(\x0b27.xmtp.identity.associations.RecoverableEd25519SignatureR\tsignature\"\x91\x03\n\x0eClientEnvelope\x12D\n\rgroup_message\x18\x01 \x01(\x0b2\x1d.xmtp.backend.v1.GroupMessageH\x00R\x0cgroupMessage\x12J\n\x0fwelcome_message\x18\x02 \x01(\x0b2\x1f.xmtp.backend.v1.WelcomeMessageH\x00R\x0ewelcomeMessage\x12>\n\x0bkey_package\x18\x03 \x01(\x0b2\x1b.xmtp.backend.v1.KeyPackageH\x00R\nkeyPackage\x12U\n\x0fidentity_update\x18\x04 \x01(\x0b2*.xmtp.identity.associations.IdentityUpdateH\x00R\x0eidentityUpdate\x12K\n\x10commit_log_entry\x18\x05 \x01(\x0b2\x1f.xmtp.backend.v1.CommitLogEntryH\x00R\x0ecommitLogEntryB\t\n\x07payload\"\x80\x01\n\x0eServerEnvelope\x121\n\x04meta\x18\x01 \x01(\x0b2\x1d.xmtp.backend.v1.EnvelopeMetaR\x04meta\x12;\n\x08envelope\x18\x02 \x01(\x0b2\x1f.xmtp.backend.v1.ClientEnvelopeR\x08envelope\"[\n\x0cQueryRequest\x125\n\x07queries\x18\x01 \x03(\x0b2\x1b.xmtp.backend.v1.TopicQueryR\x07queries\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\"\x91\x01\n\rQueryResponse\x12=\n\tenvelopes\x18\x01 \x03(\x0b2\x1f.xmtp.backend.v1.ServerEnvelopeR\tenvelopes\x12A\n\x0ccontinuation\x18\x02 \x01(\x0b2\x1d.xmtp.backend.v1.ContinuationR\x0ccontinuation\")\n\x0cContinuation\x12\x19\n\x08has_more\x18\x01 \x01(\x08R\x07hasMore\"x\n\x12QueryNewestRequest\x12.\n\x06topics\x18\x01 \x03(\x0b2\x16.xmtp.backend.v1.TopicR\x06topics\x122\n\x15include_full_envelope\x18\x02 \x01(\x08R\x13includeFullEnvelope\"\x85\x02\n\x13QueryNewestResponse\x12E\n\x07results\x18\x01 \x03(\x0b2+.xmtp.backend.v1.QueryNewestResponse.ResultR\x07results\x1a\xa6\x01\n\x06Result\x12,\n\x05topic\x18\x01 \x01(\x0b2\x16.xmtp.backend.v1.TopicR\x05topic\x121\n\x04meta\x18\x02 \x01(\x0b2\x1d.xmtp.backend.v1.EnvelopeMetaR\x04meta\x12;\n\x08envelope\x18\x03 \x01(\x0b2\x1f.xmtp.backend.v1.ClientEnvelopeR\x08envelope\"O\n\x0ePublishRequest\x12=\n\tenvelopes\x18\x01 \x03(\x0b2\x1f.xmtp.backend.v1.ClientEnvelopeR\tenvelopes\"W\n\x0fPublishResponse\x12D\n\x0eenvelope_metas\x18\x01 \x03(\x0b2\x1d.xmtp.backend.v1.EnvelopeMetaR\renvelopeMetas\"\xc4\x02\n\x0cPublishError\x12\x19\n\x05index\x18\x01 \x01(\rH\x00R\x05index\x88\x01\x01\x12<\n\x06reason\x18\x02 \x01(\x0e2$.xmtp.backend.v1.PublishError.ReasonR\x06reason\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\"\xb6\x01\n\x06Reason\x12\x16\n\x12REASON_UNSPECIFIED\x10\x00\x12\x1c\n\x18REASON_MALFORMED_PAYLOAD\x10\x01\x12\x1e\n\x1aREASON_INVALID_KEY_PACKAGE\x10\x02\x12\"\n\x1eREASON_INVALID_IDENTITY_UPDATE\x10\x03\x12\x1c\n\x18REASON_INVALID_SIGNATURE\x10\x04\x12\x14\n\x10REASON_TOO_LARGE\x10\x05B\x08\n\x06_index\"m\n\rCatchupTarget\x12,\n\x05topic\x18\x01 \x01(\x0b2\x16.xmtp.backend.v1.TopicR\x05topic\x12.\n\x13through_sequence_id\x18\x02 \x01(\x04R\x11throughSequenceId\"\xb8\x02\n\x10SubscribeRequest\x12B\n\x06update\x18\x01 \x01(\x0b2(.xmtp.backend.v1.SubscribeRequest.UpdateH\x00R\x06update\x12+\n\x04ping\x18\x02 \x01(\x0b2\x15.xmtp.backend.v1.PingH\x00R\x04ping\x12+\n\x04pong\x18\x03 \x01(\x0b2\x15.xmtp.backend.v1.PongH\x00R\x04pong\x1a{\n\x06Update\x12\x0e\n\x02id\x18\x01 \x01(\x04R\x02id\x12/\n\x04adds\x18\x02 \x03(\x0b2\x1b.xmtp.backend.v1.TopicQueryR\x04adds\x120\n\x07removes\x18\x03 \x03(\x0b2\x16.xmtp.backend.v1.TopicR\x07removesB\t\n\x07request\"\xbe\x04\n\x11SubscribeResponse\x12F\n\x07started\x18\x01 \x01(\x0b2*.xmtp.backend.v1.SubscribeResponse.StartedH\x00R\x07started\x12F\n\x07applied\x18\x02 \x01(\x0b2*.xmtp.backend.v1.SubscribeResponse.AppliedH\x00R\x07applied\x12I\n\x08messages\x18\x03 \x01(\x0b2+.xmtp.backend.v1.SubscribeResponse.MessagesH\x00R\x08messages\x12+\n\x04ping\x18\x04 \x01(\x0b2\x15.xmtp.backend.v1.PingH\x00R\x04ping\x12+\n\x04pong\x18\x05 \x01(\x0b2\x15.xmtp.backend.v1.PongH\x00R\x04pong\x1a=\n\x07Started\x122\n\x15keepalive_interval_ms\x18\x01 \x01(\rR\x13keepaliveIntervalMs\x1a^\n\x07Applied\x12\x0e\n\x02id\x18\x01 \x01(\x04R\x02id\x12C\n\radded_targets\x18\x02 \x03(\x0b2\x1e.xmtp.backend.v1.CatchupTargetR\x0caddedTargets\x1aI\n\x08Messages\x12=\n\tenvelopes\x18\x01 \x03(\x0b2\x1f.xmtp.backend.v1.ServerEnvelopeR\tenvelopesB\n\n\x08response\"\x1c\n\x04Ping\x12\x14\n\x05nonce\x18\x01 \x01(\x04R\x05nonce\"\x1c\n\x04Pong\x12\x14\n\x05nonce\x18\x01 \x01(\x04R\x05nonce\"M\n\x16SubscribeStaticRequest\x123\n\x06topics\x18\x01 \x03(\x0b2\x1b.xmtp.backend.v1.TopicQueryR\x06topics\"\xe9\x03\n\x17SubscribeStaticResponse\x12L\n\x07started\x18\x01 \x01(\x0b20.xmtp.backend.v1.SubscribeStaticResponse.StartedH\x00R\x07started\x12O\n\x08messages\x18\x02 \x01(\x0b21.xmtp.backend.v1.SubscribeStaticResponse.MessagesH\x00R\x08messages\x12R\n\tkeepalive\x18\x03 \x01(\x0b22.xmtp.backend.v1.SubscribeStaticResponse.KeepaliveH\x00R\tkeepalive\x1aw\n\x07Started\x122\n\x15keepalive_interval_ms\x18\x01 \x01(\rR\x13keepaliveIntervalMs\x128\n\x07targets\x18\x02 \x03(\x0b2\x1e.xmtp.backend.v1.CatchupTargetR\x07targets\x1aI\n\x08Messages\x12=\n\tenvelopes\x18\x01 \x03(\x0b2\x1f.xmtp.backend.v1.ServerEnvelopeR\tenvelopes\x1a\x0b\n\tKeepaliveB\n\n\x08response\"\xdd\x01\n\x12GetInboxIdsRequest\x12G\n\x08requests\x18\x01 \x03(\x0b2+.xmtp.backend.v1.GetInboxIdsRequest.RequestR\x08requests\x1a~\n\x07Request\x12\x1e\n\nidentifier\x18\x01 \x01(\tR\nidentifier\x12S\n\x0fidentifier_kind\x18\x02 \x01(\x0e2*.xmtp.identity.associations.IdentifierKindR\x0eidentifierKind\"\x91\x02\n\x13GetInboxIdsResponse\x12K\n\tresponses\x18\x01 \x03(\x0b2-.xmtp.backend.v1.GetInboxIdsResponse.ResponseR\tresponses\x1a\xac\x01\n\x08Response\x12\x1e\n\nidentifier\x18\x01 \x01(\tR\nidentifier\x12S\n\x0fidentifier_kind\x18\x02 \x01(\x0e2*.xmtp.identity.associations.IdentifierKindR\x0eidentifierKind\x12\x1e\n\x08inbox_id\x18\x03 \x01(\tH\x00R\x07inboxId\x88\x01\x01B\x0b\n\t_inbox_id\"\xab\x02\n*VerifySmartContractWalletSignaturesRequest\x12e\n\nsignatures\x18\x01 \x03(\x0b2E.xmtp.backend.v1.VerifySmartContractWalletSignaturesRequest.SignatureR\nsignatures\x1a\x95\x01\n\tSignature\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12&\n\x0cblock_number\x18\x02 \x01(\x04H\x00R\x0bblockNumber\x88\x01\x01\x12\x12\n\x04hash\x18\x03 \x01(\x0cR\x04hash\x12\x1c\n\tsignature\x18\x04 \x01(\x0cR\tsignatureB\x0f\n\r_block_number\"\x98\x02\n+VerifySmartContractWalletSignaturesResponse\x12c\n\tresponses\x18\x01 \x03(\x0b2E.xmtp.backend.v1.VerifySmartContractWalletSignaturesResponse.ResponseR\tresponses\x1a\x83\x01\n\x08Response\x12\x19\n\x08is_valid\x18\x01 \x01(\x08R\x07isValid\x12&\n\x0cblock_number\x18\x02 \x01(\x04H\x00R\x0bblockNumber\x88\x01\x01\x12\x19\n\x05error\x18\x03 \x01(\tH\x01R\x05error\x88\x01\x01B\x0f\n\r_block_numberB\x08\n\x06_error\"\x19\n\x17GetConfigurationRequest\"\x83\x02\n\x11AuthConfiguration\x12\x18\n\x07enabled\x18\x01 \x01(\x08R\x07enabled\x12A\n\x04keys\x18\x02 \x03(\x0b2-.xmtp.backend.v1.AuthConfiguration.SigningKeyR\x04keys\x12\x1c\n\taudiences\x18\x03 \x03(\tR\taudiences\x12\x18\n\x07issuers\x18\x04 \x03(\tR\x07issuers\x12\'\n\x0frequired_scopes\x18\x05 \x03(\tR\x0erequiredScopes\x1a0\n\nSigningKey\x12\x10\n\x03kid\x18\x01 \x01(\tR\x03kid\x12\x10\n\x03alg\x18\x02 \x01(\tR\x03alg\"\xa5\x01\n\x16RetentionConfiguration\x122\n\x15group_message_seconds\x18\x01 \x01(\x04R\x13groupMessageSeconds\x12\'\n\x0fwelcome_seconds\x18\x02 \x01(\x04R\x0ewelcomeSeconds\x12.\n\x13key_package_seconds\x18\x03 \x01(\x04R\x11keyPackageSeconds\"\xcf\x07\n\x13LimitsConfiguration\x12,\n\x12max_envelope_bytes\x18\x01 \x01(\x04R\x10maxEnvelopeBytes\x12*\n\x11max_request_bytes\x18\x02 \x01(\x04R\x0fmaxRequestBytes\x12,\n\x12max_response_bytes\x18\x03 \x01(\x04R\x10maxResponseBytes\x12,\n\x12max_publish_topics\x18\x04 \x01(\rR\x10maxPublishTopics\x12(\n\x10max_query_topics\x18\x05 \x01(\rR\x0emaxQueryTopics\x12&\n\x0fmax_query_limit\x18\x06 \x01(\rR\rmaxQueryLimit\x12.\n\x13default_query_limit\x18\x07 \x01(\rR\x11defaultQueryLimit\x12;\n\x1amax_newest_metadata_topics\x18\x08 \x01(\rR\x17maxNewestMetadataTopics\x123\n\x16max_newest_full_topics\x18\t \x01(\rR\x13maxNewestFullTopics\x12&\n\x0fmax_update_adds\x18\n \x01(\rR\rmaxUpdateAdds\x12,\n\x12max_update_removes\x18\x0b \x01(\rR\x10maxUpdateRemoves\x12*\n\x11max_stream_topics\x18\x0c \x01(\rR\x0fmaxStreamTopics\x12*\n\x11max_static_topics\x18\r \x01(\rR\x0fmaxStaticTopics\x124\n\x16max_lookup_identifiers\x18\x0e \x01(\rR\x14maxLookupIdentifiers\x12,\n\x12max_scw_signatures\x18\x0f \x01(\rR\x10maxScwSignatures\x120\n\x14max_identity_entries\x18\x10 \x01(\rR\x12maxIdentityEntries\x12>\n\x1cmax_update_frames_per_second\x18\x11 \x01(\rR\x18maxUpdateFramesPerSecond\x12(\n\x10max_update_burst\x18\x12 \x01(\rR\x0emaxUpdateBurst\x12:\n\x1amax_ping_frames_per_second\x18\x13 \x01(\rR\x16maxPingFramesPerSecond\x12$\n\x0emax_ping_burst\x18\x14 \x01(\rR\x0cmaxPingBurst\"\xc7\x01\n\x10MlsConfiguration\x12*\n\x11max_group_members\x18\x01 \x01(\rR\x0fmaxGroupMembers\x12=\n\x1bmax_installations_per_inbox\x18\x02 \x01(\rR\x18maxInstallationsPerInbox\x121\n\x12commit_log_enabled\x18\x03 \x01(\x08H\x00R\x10commitLogEnabled\x88\x01\x01B\x15\n\x13_commit_log_enabled\"\xc4\x03\n\x18GetConfigurationResponse\x12\x1e\n\nidentifier\x18\x01 \x01(\tR\nidentifier\x12%\n\x0eserver_version\x18\x02 \x01(\tR\rserverVersion\x12.\n\x13min_libxmtp_version\x18\x03 \x01(\tR\x11minLibxmtpVersion\x126\n\x04auth\x18\x04 \x01(\x0b2\".xmtp.backend.v1.AuthConfigurationR\x04auth\x12E\n\tretention\x18\x05 \x01(\x0b2\'.xmtp.backend.v1.RetentionConfigurationR\tretention\x12<\n\x06limits\x18\x06 \x01(\x0b2$.xmtp.backend.v1.LimitsConfigurationR\x06limits\x123\n\x03mls\x18\x07 \x01(\x0b2!.xmtp.backend.v1.MlsConfigurationR\x03mls\x12?\n\x1csmart_contract_wallet_chains\x18\x08 \x03(\tR\x19smartContractWalletChains\"$\n\x0cApnsDelivery\x12\x14\n\x05token\x18\x01 \x01(\tR\x05token\"#\n\x0bFcmDelivery\x12\x14\n\x05token\x18\x01 \x01(\tR\x05token\"A\n\x0cHttpDelivery\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x1f\n\x0bsigning_key\x18\x02 \x01(\x0cR\nsigningKey\"\x97\x02\n\x0fRegisterRequest\x12!\n\x0crecipient_id\x18\x01 \x01(\x0cR\x0brecipientId\x12)\n\x10recipient_secret\x18\x02 \x01(\x0cR\x0frecipientSecret\x123\n\x04apns\x18\x03 \x01(\x0b2\x1d.xmtp.backend.v1.ApnsDeliveryH\x00R\x04apns\x120\n\x03fcm\x18\x04 \x01(\x0b2\x1c.xmtp.backend.v1.FcmDeliveryH\x00R\x03fcm\x123\n\x04http\x18\x05 \x01(\x0b2\x1d.xmtp.backend.v1.HttpDeliveryH\x00R\x04httpB\n\n\x08deliveryJ\x04\x08\x06\x10\x07R\x08metadata\"a\n\x11UnregisterRequest\x12!\n\x0crecipient_id\x18\x01 \x01(\x0cR\x0brecipientId\x12)\n\x10recipient_secret\x18\x02 \x01(\x0cR\x0frecipientSecret\"\x14\n\x12UnregisterResponse\"\xb7\x01\n\x1aUpdateSubscriptionsRequest\x12!\n\x0crecipient_id\x18\x01 \x01(\x0cR\x0brecipientId\x12)\n\x10recipient_secret\x18\x02 \x01(\x0cR\x0frecipientSecret\x121\n\x04adds\x18\x03 \x03(\x0b2\x1d.xmtp.backend.v1.SubscriptionR\x04adds\x12\x18\n\x07removes\x18\x04 \x03(\x0cR\x07removes\"\x92\x01\n\x0cSubscription\x12\x14\n\x05topic\x18\x01 \x01(\x0cR\x05topic\x12&\n\x0fhmac_epoch_base\x18\x02 \x01(\x03R\rhmacEpochBase\x12\x1b\n\thmac_keys\x18\x03 \x03(\x0cR\x08hmacKeys\x12\'\n\x0finclude_commits\x18\x04 \x01(\x08R\x0eincludeCommits\"\x89\x01\n\x0eRecipientState\x12\x1f\n\x0btopic_count\x18\x01 \x01(\x04R\ntopicCount\x122\n\x07channel\x18\x02 \x01(\x0e2\x18.xmtp.backend.v1.ChannelR\x07channel\x12\"\n\rexpires_at_ns\x18\x03 \x01(\x03R\x0bexpiresAtNs*W\n\x07Channel\x12\x17\n\x13CHANNEL_UNSPECIFIED\x10\x00\x12\x10\n\x0cCHANNEL_APNS\x10\x01\x12\x0f\n\x0bCHANNEL_FCM\x10\x02\x12\x10\n\x0cCHANNEL_HTTP\x10\x032\x81\x01\n\x14ConfigurationService\x12i\n\x10GetConfiguration\x12(.xmtp.backend.v1.GetConfigurationRequest\x1a).xmtp.backend.v1.GetConfigurationResponse\"\x002\xb4\x01\n\x0cQueryService\x12H\n\x05Query\x12\x1d.xmtp.backend.v1.QueryRequest\x1a\x1e.xmtp.backend.v1.QueryResponse\"\x00\x12Z\n\x0bQueryNewest\x12#.xmtp.backend.v1.QueryNewestRequest\x1a$.xmtp.backend.v1.QueryNewestResponse\"\x002`\n\x0ePublishService\x12N\n\x07Publish\x12\x1f.xmtp.backend.v1.PublishRequest\x1a .xmtp.backend.v1.PublishResponse\"\x002\xd9\x01\n\x13SubscriptionService\x12X\n\tSubscribe\x12!.xmtp.backend.v1.SubscribeRequest\x1a\".xmtp.backend.v1.SubscribeResponse\"\x00(\x010\x01\x12h\n\x0fSubscribeStatic\x12\'.xmtp.backend.v1.SubscribeStaticRequest\x1a(.xmtp.backend.v1.SubscribeStaticResponse\"\x000\x012\x92\x02\n\x0fIdentityService\x12Z\n\x0bGetInboxIds\x12#.xmtp.backend.v1.GetInboxIdsRequest\x1a$.xmtp.backend.v1.GetInboxIdsResponse\"\x00\x12\xa2\x01\n#VerifySmartContractWalletSignatures\x12;.xmtp.backend.v1.VerifySmartContractWalletSignaturesRequest\x1a<.xmtp.backend.v1.VerifySmartContractWalletSignaturesResponse\"\x002\xa6\x02\n\x13NotificationService\x12O\n\x08Register\x12 .xmtp.backend.v1.RegisterRequest\x1a\x1f.xmtp.backend.v1.RecipientState\"\x00\x12W\n\nUnregister\x12\".xmtp.backend.v1.UnregisterRequest\x1a#.xmtp.backend.v1.UnregisterResponse\"\x00\x12e\n\x13UpdateSubscriptions\x12+.xmtp.backend.v1.UpdateSubscriptionsRequest\x1a\x1f.xmtp.backend.v1.RecipientState\"\x00J\x87\xbb\x01\n\x07\x12\x05\x13\x00\xd0\x04\x01\n\x9d\x07\n\x01\x0c\x12\x03\x13\x00\x12\x1a\x92\x07 XMTP self-hosted backend API.\n\n Public wire schema. The package name is the\n version: there is no `oneof version` wrapper on frames or payloads. A\n breaking change is a new package.\n\n Ordering model. `Cursor.sequence_id` is unique across all topics (one\n Postgres sequence) but ordered only within a topic: an envelope is visible\n only when every lower sequence_id ON ITS TOPIC has committed or aborted.\n Across topics, order is not defined and a client must never infer from a\n sequence_id on topic A that anything on topic B has been delivered. Gaps\n are normal. Identity updates are additionally serialized across all\n inboxes by one server-side sentinel lock, so among identity updates\n sequence_id order equals commit order.\n\n Envelopes are unsigned. The transport is trusted; a later phase\n authenticates the caller, not the envelope.\n\n The backend also serves the standard `grpc.health.v1.Health` service.\n\n\x08\n\x01\x02\x12\x03\x15\x00\x18\n\t\n\x02\x03\x00\x12\x03\x17\x001\n\t\n\x02\x03\x01\x12\x03\x18\x00/\n\t\n\x02\x03\x02\x12\x03\x19\x004\n\t\n\x02\x03\x03\x12\x03\x1a\x007\n\xd1\x02\n\x02\x04\x00\x12\x04#\x00%\x01\x1a\x9b\x01 Position on one topic. `sequence_id` 0 means \"from the beginning\". Values\n never exceed INT64_MAX (Postgres bigint); a larger value is\n INVALID_ARGUMENT.\n2\xa6\x01 ---------------------------------------------------------------------------\n Core types\n ---------------------------------------------------------------------------\n\n\n\n\x03\x04\x00\x01\x12\x03#\x08\x0e\n\x0b\n\x04\x04\x00\x02\x00\x12\x03$\x02\x19\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03$\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03$\t\x14\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03$\x17\x18\n\x99\x04\n\x02\x04\x01\x12\x040\x002\x01\x1a\x8c\x04 Topic = 1 kind byte + identifier bytes (XIP-49 layout). The server derives\n the topic from the payload; a client never sends a topic on publish.\n\n   kind | payload          | identifier\n   0x00 | group_message    | 16-byte group_id (decoded from the MLS message)\n   0x01 | welcome_message  | 32-byte installation_key\n   0x02 | identity_update  | 32-byte hex-decoded inbox_id\n   0x03 | key_package      | 32-byte installation key (from the key package)\n   0x04 | commit_log_entry | 16-byte group_id (decoded from the entry)\n\n\n\n\x03\x04\x01\x01\x12\x030\x08\r\n\x0b\n\x04\x04\x01\x02\x00\x12\x031\x02\x12\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x031\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x031\x08\r\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x031\x10\x11\n\x9e\x01\n\x02\x04\x02\x12\x046\x00:\x01\x1a\x91\x01 Idempotency key, unique with the topic. `sha256` is the SHA-256 of the\n stored ClientEnvelope bytes (canonical protobuf encoding, field order).\n\n\n\n\x03\x04\x02\x01\x12\x036\x08\x13\n\x0c\n\x04\x04\x02\x08\x00\x12\x047\x029\x03\n\x0c\n\x05\x04\x02\x08\x00\x01\x12\x037\x08\x0c\n\x0b\n\x04\x04\x02\x02\x00\x12\x038\x04\x15\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x038\x04\t\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x038\n\x10\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x038\x13\x14\n6\n\x02\x04\x03\x12\x04=\x00A\x01\x1a* One topic and the position to read from.\n\n\n\n\x03\x04\x03\x01\x12\x03=\x08\x12\n\x0b\n\x04\x04\x03\x02\x00\x12\x03>\x02\x12\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03>\x02\x07\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03>\x08\r\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03>\x10\x11\nF\n\x04\x04\x03\x02\x01\x12\x03@\x02\x14\x1a9 Return envelopes with sequence_id > cursor. Absent = 0.\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03@\x02\x08\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03@\t\x0f\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03@\x12\x13\n?\n\x02\x04\x04\x12\x04D\x00U\x01\x1a3 Server-assigned metadata for one stored envelope.\n\n\n\n\x03\x04\x04\x01\x12\x03D\x08\x14\n\x0b\n\x04\x04\x04\x02\x00\x12\x03E\x02\x14\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03E\x02\x08\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03E\t\x0f\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03E\x12\x13\n\xc3\x01\n\x04\x04\x04\x02\x01\x12\x03I\x02\x17\x1a\xb5\x01 Assigned by Postgres inside the insert, from the database clock.\n Equal values and backwards clock steps are allowed. The client uses\n this as the created time, never as a cursor.\n\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03I\x02\x08\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03I\t\x12\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03I\x15\x16\n\x0b\n\x04\x04\x04\x02\x02\x12\x03J\x02\x1f\n\x0c\n\x05\x04\x04\x02\x02\x06\x12\x03J\x02\r\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03J\x0e\x1a\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03J\x1d\x1e\n\x0b\n\x04\x04\x04\x02\x03\x12\x03K\x02\x12\n\x0c\n\x05\x04\x04\x02\x03\x06\x12\x03K\x02\x07\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03K\x08\r\n\x0c\n\x05\x04\x04\x02\x03\x03\x12\x03K\x10\x11\n\xde\x02\n\x04\x04\x04\x02\x04\x12\x03Q\x02\x17\x1a\xd0\x02 Earliest deletion eligibility: server_ns plus the retention duration.\n Group application messages, welcomes, and key packages default to\n 90 days. Identity updates, commit-log entries, and group commits or\n proposals never expire (0). No pruning or expiry filtering before\n Phase 5. Disappearing messages remain a client-side feature.\n\n\x0c\n\x05\x04\x04\x02\x04\x05\x12\x03Q\x02\x08\n\x0c\n\x05\x04\x04\x02\x04\x01\x12\x03Q\t\x12\n\x0c\n\x05\x04\x04\x02\x04\x03\x12\x03Q\x15\x16\n\x9c\x01\n\x04\x04\x04\x02\x05\x12\x03T\x02!\x1a\x8e\x01 Group messages only: the parsed content type is a commit or proposal.\n False for other payload kinds. This does not authenticate the sender.\n\n\x0c\n\x05\x04\x04\x02\x05\x05\x12\x03T\x02\x06\n\x0c\n\x05\x04\x04\x02\x05\x01\x12\x03T\x07\x1c\n\x0c\n\x05\x04\x04\x02\x05\x03\x12\x03T\x1f \n\x8c\x03\n\x02\x04\x05\x12\x04^\x00c\x01\x1a\xd8\x01 Serialized MLS protocol message for a group. The server parses it to derive\n the group_id and to set `is_commit_or_proposal`. It does not check membership.\n Trailing bytes remain accepted and are returned verbatim.\n2\xa4\x01 ---------------------------------------------------------------------------\n Payloads\n ---------------------------------------------------------------------------\n\n\n\n\x03\x04\x05\x01\x12\x03^\x08\x14\n-\n\x04\x04\x05\x02\x00\x12\x03`\x02\x11\x1a  Serialized MlsProtocolMessage.\n\n\x0c\n\x05\x04\x05\x02\x00\x05\x12\x03`\x02\x07\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03`\x08\x0c\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03`\x0f\x10\n\x0b\n\x04\x04\x05\x02\x01\x12\x03a\x02\x18\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03a\x02\x07\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03a\x08\x13\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03a\x16\x17\n\x0b\n\x04\x04\x05\x02\x02\x12\x03b\x02\x17\n\x0c\n\x05\x04\x05\x02\x02\x05\x12\x03b\x02\x06\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03b\x07\x12\n\x0c\n\x05\x04\x05\x02\x02\x03\x12\x03b\x15\x16\n?\n\x02\x04\x06\x12\x04f\x00\x7f\x01\x1a3 An MLS Welcome, either inline (v1) or by pointer.\n\n\n\n\x03\x04\x06\x01\x12\x03f\x08\x16\n\x0c\n\x04\x04\x06\x03\x00\x12\x04g\x02p\x03\n\x0c\n\x05\x04\x06\x03\x00\x01\x12\x03g\n\x0c\n#\n\x06\x04\x06\x03\x00\x02\x00\x12\x03i\x04\x1f\x1a\x14 Derives the topic.\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x05\x12\x03i\x04\t\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x01\x12\x03i\n\x1a\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x03\x12\x03i\x1d\x1e\n\'\n\x06\x04\x06\x03\x00\x02\x01\x12\x03k\x04\x13\x1a\x18 Encrypted MLS Welcome.\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x05\x12\x03k\x04\t\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x01\x12\x03k\n\x0e\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x03\x12\x03k\x11\x12\nL\n\x06\x04\x06\x03\x00\x02\x02\x12\x03m\x04\x1e\x1a= Unset when this message is the pointee of a WelcomePointer.\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x05\x12\x03m\x04\t\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x01\x12\x03m\n\x19\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x03\x12\x03m\x1c\x1d\n\r\n\x06\x04\x06\x03\x00\x02\x03\x12\x03n\x04L\n\x0e\n\x07\x04\x06\x03\x00\x02\x03\x06\x12\x03n\x045\n\x0e\n\x07\x04\x06\x03\x00\x02\x03\x01\x12\x03n6G\n\x0e\n\x07\x04\x06\x03\x00\x02\x03\x03\x12\x03nJK\n\r\n\x06\x04\x06\x03\x00\x02\x04\x12\x03o\x04\x1f\n\x0e\n\x07\x04\x06\x03\x00\x02\x04\x05\x12\x03o\x04\t\n\x0e\n\x07\x04\x06\x03\x00\x02\x04\x01\x12\x03o\n\x1a\n\x0e\n\x07\x04\x06\x03\x00\x02\x04\x03\x12\x03o\x1d\x1e\n\x0c\n\x04\x04\x06\x03\x01\x12\x04r\x02y\x03\n\x0c\n\x05\x04\x06\x03\x01\x01\x12\x03r\n\x18\n#\n\x06\x04\x06\x03\x01\x02\x00\x12\x03t\x04\x1f\x1a\x14 Derives the topic.\n\n\x0e\n\x07\x04\x06\x03\x01\x02\x00\x05\x12\x03t\x04\t\n\x0e\n\x07\x04\x06\x03\x01\x02\x00\x01\x12\x03t\n\x1a\n\x0e\n\x07\x04\x06\x03\x01\x02\x00\x03\x12\x03t\x1d\x1e\n*\n\x06\x04\x06\x03\x01\x02\x01\x12\x03v\x04\x1e\x1a\x1b Encrypted WelcomePointer.\n\n\x0e\n\x07\x04\x06\x03\x01\x02\x01\x05\x12\x03v\x04\t\n\x0e\n\x07\x04\x06\x03\x01\x02\x01\x01\x12\x03v\n\x19\n\x0e\n\x07\x04\x06\x03\x01\x02\x01\x03\x12\x03v\x1c\x1d\n\r\n\x06\x04\x06\x03\x01\x02\x02\x12\x03w\x04\x1e\n\x0e\n\x07\x04\x06\x03\x01\x02\x02\x05\x12\x03w\x04\t\n\x0e\n\x07\x04\x06\x03\x01\x02\x02\x01\x12\x03w\n\x19\n\x0e\n\x07\x04\x06\x03\x01\x02\x02\x03\x12\x03w\x1c\x1d\n\r\n\x06\x04\x06\x03\x01\x02\x03\x12\x03x\x04S\n\x0e\n\x07\x04\x06\x03\x01\x02\x03\x06\x12\x03x\x04<\n\x0e\n\x07\x04\x06\x03\x01\x02\x03\x01\x12\x03x=N\n\x0e\n\x07\x04\x06\x03\x01\x02\x03\x03\x12\x03xQR\n\x0c\n\x04\x04\x06\x08\x00\x12\x04{\x02~\x03\n\x0c\n\x05\x04\x06\x08\x00\x01\x12\x03{\x08\x0f\n\x0b\n\x04\x04\x06\x02\x00\x12\x03|\x04\x0e\n\x0c\n\x05\x04\x06\x02\x00\x06\x12\x03|\x04\x06\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03|\x07\t\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03|\x0c\r\n\x0b\n\x04\x04\x06\x02\x01\x12\x03}\x04\'\n\x0c\n\x05\x04\x06\x02\x01\x06\x12\x03}\x04\x12\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03}\x13\"\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03}%&\n\x93\x02\n\x02\x04\x07\x12\x06\x85\x01\x00\x87\x01\x01\x1a\x84\x02 Last-resort key package for one installation. The server validates it and\n derives the topic from its installation key. Every upload is kept; the\n newest per installation is served by QueryNewest. Query with a cursor on a\n key-package topic is not supported.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\x85\x01\x08\x12\n\x0c\n\x04\x04\x07\x02\x00\x12\x04\x86\x01\x02\'\n\r\n\x05\x04\x07\x02\x00\x05\x12\x04\x86\x01\x02\x07\n\r\n\x05\x04\x07\x02\x00\x01\x12\x04\x86\x01\x08\"\n\r\n\x05\x04\x07\x02\x00\x03\x12\x04\x86\x01%&\n\xb5\x02\n\x02\x04\x08\x12\x06\x8d\x01\x00\x91\x01\x01\x1a\xa6\x02 One entry of a group\'s commit log. The server decodes the group_id from the\n entry to derive the topic. The signature is stored and returned, not\n verified: it is made with a per-group key the server does not have. The\n log position is `EnvelopeMeta.cursor`; the entry carries no sequence id.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x8d\x01\x08\x16\n3\n\x04\x04\x08\x02\x00\x12\x04\x8f\x01\x02(\x1a% Serialized PlaintextCommitLogEntry.\n\n\r\n\x05\x04\x08\x02\x00\x05\x12\x04\x8f\x01\x02\x07\n\r\n\x05\x04\x08\x02\x00\x01\x12\x04\x8f\x01\x08#\n\r\n\x05\x04\x08\x02\x00\x03\x12\x04\x8f\x01&\'\n\x0c\n\x04\x04\x08\x02\x01\x12\x04\x90\x01\x02G\n\r\n\x05\x04\x08\x02\x01\x06\x12\x04\x90\x01\x028\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\x90\x019B\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x90\x01EF\n\x90\x01\n\x02\x04\t\x12\x06\x95\x01\x00\x9d\x01\x01\x1a\x81\x01 What a client publishes. The server stores the canonical re-encoding of\n this message and hashes those bytes for `MessageHash`.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x95\x01\x08\x16\n\x0e\n\x04\x04\t\x08\x00\x12\x06\x96\x01\x02\x9c\x01\x03\n\r\n\x05\x04\t\x08\x00\x01\x12\x04\x96\x01\x08\x0f\n\x0c\n\x04\x04\t\x02\x00\x12\x04\x97\x01\x04#\n\r\n\x05\x04\t\x02\x00\x06\x12\x04\x97\x01\x04\x10\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x97\x01\x11\x1e\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x97\x01!\"\n\x0c\n\x04\x04\t\x02\x01\x12\x04\x98\x01\x04\'\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\x98\x01\x04\x12\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x98\x01\x13\"\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x98\x01%&\n\x0c\n\x04\x04\t\x02\x02\x12\x04\x99\x01\x04\x1f\n\r\n\x05\x04\t\x02\x02\x06\x12\x04\x99\x01\x04\x0e\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x99\x01\x0f\x1a\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x99\x01\x1d\x1e\n\x0c\n\x04\x04\t\x02\x03\x12\x04\x9a\x01\x04B\n\r\n\x05\x04\t\x02\x03\x06\x12\x04\x9a\x01\x04-\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\x9a\x01.=\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\x9a\x01@A\n\x0c\n\x04\x04\t\x02\x04\x12\x04\x9b\x01\x04(\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\x9b\x01\x04\x12\n\r\n\x05\x04\t\x02\x04\x01\x12\x04\x9b\x01\x13#\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\x9b\x01&\'\nD\n\x02\x04\n\x12\x06\xa0\x01\x00\xa3\x01\x01\x1a6 A stored envelope with its server-assigned metadata.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xa0\x01\x08\x16\n\x0c\n\x04\x04\n\x02\x00\x12\x04\xa1\x01\x02\x18\n\r\n\x05\x04\n\x02\x00\x06\x12\x04\xa1\x01\x02\x0e\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xa1\x01\x0f\x13\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xa1\x01\x16\x17\n\x0c\n\x04\x04\n\x02\x01\x12\x04\xa2\x01\x02\x1e\n\r\n\x05\x04\n\x02\x01\x06\x12\x04\xa2\x01\x02\x10\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xa2\x01\x11\x19\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xa2\x01\x1c\x1d\n\xb0\x01\n\x02\x04\x0b\x12\x06\xa9\x01\x00\xae\x01\x012\xa1\x01 ---------------------------------------------------------------------------\n Query\n ---------------------------------------------------------------------------\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xa9\x01\x08\x14\nR\n\x04\x04\x0b\x02\x00\x12\x04\xab\x01\x02\"\x1aD Max 1000 before coalescing. Repeated topics use the lowest cursor.\n\n\r\n\x05\x04\x0b\x02\x00\x04\x12\x04\xab\x01\x02\n\n\r\n\x05\x04\x0b\x02\x00\x06\x12\x04\xab\x01\x0b\x15\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xab\x01\x16\x1d\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xab\x01 !\n?\n\x04\x04\x0b\x02\x01\x12\x04\xad\x01\x02\x13\x1a1 Total across all topics. Max 1000, default 100.\n\n\r\n\x05\x04\x0b\x02\x01\x05\x12\x04\xad\x01\x02\x08\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xad\x01\t\x0e\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xad\x01\x11\x12\n\xfa\x03\n\x02\x04\x0c\x12\x06\xb7\x01\x00\xba\x01\x01\x1a\xeb\x03 Up to `limit` matches across the queried topics, ascending within each\n topic. The order across topics carries no meaning. Client rule: for each\n topic that returned rows, set its cursor to that topic\'s highest returned\n sequence_id; leave every other cursor unchanged; if `has_more`, query again.\n Each stored envelope appears once. An oversized encoded response fails\n with a transport size error or RESOURCE_EXHAUSTED from an application check;\n results are not silently omitted to fit.\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xb7\x01\x08\x15\n\x0c\n\x04\x04\x0c\x02\x00\x12\x04\xb8\x01\x02(\n\r\n\x05\x04\x0c\x02\x00\x04\x12\x04\xb8\x01\x02\n\n\r\n\x05\x04\x0c\x02\x00\x06\x12\x04\xb8\x01\x0b\x19\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xb8\x01\x1a#\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xb8\x01&\'\n\x0c\n\x04\x04\x0c\x02\x01\x12\x04\xb9\x01\x02 \n\r\n\x05\x04\x0c\x02\x01\x06\x12\x04\xb9\x01\x02\x0e\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\xb9\x01\x0f\x1b\n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\xb9\x01\x1e\x1f\n}\n\x02\x04\r\x12\x06\xbe\x01\x00\xc2\x01\x01\x1ao Paging state. A message so later fields (a page token, a retained floor)\n can be added without a wire change.\n\n\x0b\n\x03\x04\r\x01\x12\x04\xbe\x01\x08\x14\n\x99\x01\n\x04\x04\r\x02\x00\x12\x04\xc1\x01\x02\x14\x1a\x8a\x01 More rows matched than `limit` allowed. Computed from the same read\n snapshot as the page. No snapshot is held across separate requests.\n\n\r\n\x05\x04\r\x02\x00\x05\x12\x04\xc1\x01\x02\x06\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xc1\x01\x07\x0f\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xc1\x01\x12\x13\n\x0c\n\x02\x04\x0e\x12\x06\xc4\x01\x00\xc9\x01\x01\n\x0b\n\x03\x04\x0e\x01\x12\x04\xc4\x01\x08\x1a\nz\n\x04\x04\x0e\x02\x00\x12\x04\xc7\x01\x02\x1c\x1al Max 1000 with metas only, 100 with full envelopes, before coalescing.\n Repeated topics produce one result.\n\n\r\n\x05\x04\x0e\x02\x00\x04\x12\x04\xc7\x01\x02\n\n\r\n\x05\x04\x0e\x02\x00\x06\x12\x04\xc7\x01\x0b\x10\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\xc7\x01\x11\x17\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\xc7\x01\x1a\x1b\n\x0c\n\x04\x04\x0e\x02\x01\x12\x04\xc8\x01\x02!\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xc8\x01\x02\x06\n\r\n\x05\x04\x0e\x02\x01\x01\x12\x04\xc8\x01\x07\x1c\n\r\n\x05\x04\x0e\x02\x01\x03\x12\x04\xc8\x01\x1f \n\x8e\x02\n\x02\x04\x0f\x12\x06\xcf\x01\x00\xd8\x01\x01\x1a\xff\x01 One result per topic that has an envelope. A topic with no envelope is\n absent from `results`. An oversized response fails with a transport size\n error or RESOURCE_EXHAUSTED from an application check; omission never means\n the byte budget was exhausted.\n\n\x0b\n\x03\x04\x0f\x01\x12\x04\xcf\x01\x08\x1b\n\x0e\n\x04\x04\x0f\x03\x00\x12\x06\xd0\x01\x02\xd5\x01\x03\n\r\n\x05\x04\x0f\x03\x00\x01\x12\x04\xd0\x01\n\x10\n\x0e\n\x06\x04\x0f\x03\x00\x02\x00\x12\x04\xd1\x01\x04\x14\n\x0f\n\x07\x04\x0f\x03\x00\x02\x00\x06\x12\x04\xd1\x01\x04\t\n\x0f\n\x07\x04\x0f\x03\x00\x02\x00\x01\x12\x04\xd1\x01\n\x0f\n\x0f\n\x07\x04\x0f\x03\x00\x02\x00\x03\x12\x04\xd1\x01\x12\x13\n\x0e\n\x06\x04\x0f\x03\x00\x02\x01\x12\x04\xd2\x01\x04\x1a\n\x0f\n\x07\x04\x0f\x03\x00\x02\x01\x06\x12\x04\xd2\x01\x04\x10\n\x0f\n\x07\x04\x0f\x03\x00\x02\x01\x01\x12\x04\xd2\x01\x11\x15\n\x0f\n\x07\x04\x0f\x03\x00\x02\x01\x03\x12\x04\xd2\x01\x18\x19\nA\n\x06\x04\x0f\x03\x00\x02\x02\x12\x04\xd4\x01\x04 \x1a1 Set only when `include_full_envelope` was true.\n\n\x0f\n\x07\x04\x0f\x03\x00\x02\x02\x06\x12\x04\xd4\x01\x04\x12\n\x0f\n\x07\x04\x0f\x03\x00\x02\x02\x01\x12\x04\xd4\x01\x13\x1b\n\x0f\n\x07\x04\x0f\x03\x00\x02\x02\x03\x12\x04\xd4\x01\x1e\x1f\n\x0c\n\x04\x04\x0f\x02\x00\x12\x04\xd7\x01\x02\x1e\n\r\n\x05\x04\x0f\x02\x00\x04\x12\x04\xd7\x01\x02\n\n\r\n\x05\x04\x0f\x02\x00\x06\x12\x04\xd7\x01\x0b\x11\n\r\n\x05\x04\x0f\x02\x00\x01\x12\x04\xd7\x01\x12\x19\n\r\n\x05\x04\x0f\x02\x00\x03\x12\x04\xd7\x01\x1c\x1d\n\x9c\x04\n\x02\x04\x10\x12\x06\xe4\x01\x00\xe6\x01\x01\x1a\xe7\x02 Atomic: every envelope is stored or none is. No envelope count limit; the\n request is at most 25 MiB, each envelope at most 1 MiB, and there are\n at most 1000 distinct topics.\n At most one identity update per inbox per request. A repeat of an envelope\n already stored on its topic (same MessageHash) is not an error: the stored\n meta is returned as success.\n2\xa3\x01 ---------------------------------------------------------------------------\n Publish\n ---------------------------------------------------------------------------\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xe4\x01\x08\x16\n\x0c\n\x04\x04\x10\x02\x00\x12\x04\xe5\x01\x02(\n\r\n\x05\x04\x10\x02\x00\x04\x12\x04\xe5\x01\x02\n\n\r\n\x05\x04\x10\x02\x00\x06\x12\x04\xe5\x01\x0b\x19\n\r\n\x05\x04\x10\x02\x00\x01\x12\x04\xe5\x01\x1a#\n\r\n\x05\x04\x10\x02\x00\x03\x12\x04\xe5\x01&\'\n\xd9\x01\n\x02\x04\x11\x12\x06\xeb\x01\x00\xed\x01\x01\x1a\xca\x01 Same order as the request, including duplicates. An oversized response\n can fail with a size error after commit. Retry exact envelope bytes;\n failure to receive a response does not establish rollback.\n\n\x0b\n\x03\x04\x11\x01\x12\x04\xeb\x01\x08\x17\n\x0c\n\x04\x04\x11\x02\x00\x12\x04\xec\x01\x02+\n\r\n\x05\x04\x11\x02\x00\x04\x12\x04\xec\x01\x02\n\n\r\n\x05\x04\x11\x02\x00\x06\x12\x04\xec\x01\x0b\x17\n\r\n\x05\x04\x11\x02\x00\x01\x12\x04\xec\x01\x18&\n\r\n\x05\x04\x11\x02\x00\x03\x12\x04\xec\x01)*\n\xa1\x01\n\x02\x04\x12\x12\x06\xf1\x01\x00\x80\x02\x01\x1a\x92\x01 Attached as a google.rpc.Status detail on application-generated publish\n INVALID_ARGUMENT. Transport size rejections do not require this detail.\n\n\x0b\n\x03\x04\x12\x01\x12\x04\xf1\x01\x08\x14\n\x0e\n\x04\x04\x12\x04\x00\x12\x06\xf2\x01\x02\xf9\x01\x03\n\r\n\x05\x04\x12\x04\x00\x01\x12\x04\xf2\x01\x07\r\n\x0e\n\x06\x04\x12\x04\x00\x02\x00\x12\x04\xf3\x01\x04\x1b\n\x0f\n\x07\x04\x12\x04\x00\x02\x00\x01\x12\x04\xf3\x01\x04\x16\n\x0f\n\x07\x04\x12\x04\x00\x02\x00\x02\x12\x04\xf3\x01\x19\x1a\n\x0e\n\x06\x04\x12\x04\x00\x02\x01\x12\x04\xf4\x01\x04!\n\x0f\n\x07\x04\x12\x04\x00\x02\x01\x01\x12\x04\xf4\x01\x04\x1c\n\x0f\n\x07\x04\x12\x04\x00\x02\x01\x02\x12\x04\xf4\x01\x1f \n\x0e\n\x06\x04\x12\x04\x00\x02\x02\x12\x04\xf5\x01\x04#\n\x0f\n\x07\x04\x12\x04\x00\x02\x02\x01\x12\x04\xf5\x01\x04\x1e\n\x0f\n\x07\x04\x12\x04\x00\x02\x02\x02\x12\x04\xf5\x01!\"\n\x0e\n\x06\x04\x12\x04\x00\x02\x03\x12\x04\xf6\x01\x04\'\n\x0f\n\x07\x04\x12\x04\x00\x02\x03\x01\x12\x04\xf6\x01\x04\"\n\x0f\n\x07\x04\x12\x04\x00\x02\x03\x02\x12\x04\xf6\x01%&\n\x0e\n\x06\x04\x12\x04\x00\x02\x04\x12\x04\xf7\x01\x04!\n\x0f\n\x07\x04\x12\x04\x00\x02\x04\x01\x12\x04\xf7\x01\x04\x1c\n\x0f\n\x07\x04\x12\x04\x00\x02\x04\x02\x12\x04\xf7\x01\x1f \n\x0e\n\x06\x04\x12\x04\x00\x02\x05\x12\x04\xf8\x01\x04\x19\n\x0f\n\x07\x04\x12\x04\x00\x02\x05\x01\x12\x04\xf8\x01\x04\x14\n\x0f\n\x07\x04\x12\x04\x00\x02\x05\x02\x12\x04\xf8\x01\x17\x18\n\x8a\x01\n\x04\x04\x12\x02\x00\x12\x04\xfd\x01\x02\x1c\x1a| Index of the failing envelope in the request. Absent for request-level\n errors (too many distinct topics, too many bytes).\n\n\r\n\x05\x04\x12\x02\x00\x04\x12\x04\xfd\x01\x02\n\n\r\n\x05\x04\x12\x02\x00\x05\x12\x04\xfd\x01\x0b\x11\n\r\n\x05\x04\x12\x02\x00\x01\x12\x04\xfd\x01\x12\x17\n\r\n\x05\x04\x12\x02\x00\x03\x12\x04\xfd\x01\x1a\x1b\n\x0c\n\x04\x04\x12\x02\x01\x12\x04\xfe\x01\x02\x14\n\r\n\x05\x04\x12\x02\x01\x06\x12\x04\xfe\x01\x02\x08\n\r\n\x05\x04\x12\x02\x01\x01\x12\x04\xfe\x01\t\x0f\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xfe\x01\x12\x13\n\x0c\n\x04\x04\x12\x02\x02\x12\x04\xff\x01\x02\x15\n\r\n\x05\x04\x12\x02\x02\x05\x12\x04\xff\x01\x02\x08\n\r\n\x05\x04\x12\x02\x02\x01\x12\x04\xff\x01\t\x10\n\r\n\x05\x04\x12\x02\x02\x03\x12\x04\xff\x01\x13\x14\n\x95\x02\n\x02\x04\x13\x12\x06\x87\x02\x00\x8c\x02\x01\x1a9 Fixed catch-up boundary for one newly registered topic.\n2\xcb\x01 ---------------------------------------------------------------------------\n Subscribe (single client, one cursor per topic)\n ---------------------------------------------------------------------------\n\n\x0b\n\x03\x04\x13\x01\x12\x04\x87\x02\x08\x15\n\x0c\n\x04\x04\x13\x02\x00\x12\x04\x88\x02\x02\x12\n\r\n\x05\x04\x13\x02\x00\x06\x12\x04\x88\x02\x02\x07\n\r\n\x05\x04\x13\x02\x00\x01\x12\x04\x88\x02\x08\r\n\r\n\x05\x04\x13\x02\x00\x03\x12\x04\x88\x02\x10\x11\ni\n\x04\x04\x13\x02\x01\x12\x04\x8b\x02\x02!\x1a[ Observed head in the serving database. Zero means empty.\n Values do not exceed INT64_MAX.\n\n\r\n\x05\x04\x13\x02\x01\x05\x12\x04\x8b\x02\x02\x08\n\r\n\x05\x04\x13\x02\x01\x01\x12\x04\x8b\x02\t\x1c\n\r\n\x05\x04\x13\x02\x01\x03\x12\x04\x8b\x02\x1f \n\x0c\n\x02\x04\x14\x12\x06\x8e\x02\x00\xa0\x02\x01\n\x0b\n\x03\x04\x14\x01\x12\x04\x8e\x02\x08\x18\n\x0e\n\x04\x04\x14\x03\x00\x12\x06\x8f\x02\x02\x97\x02\x03\n\r\n\x05\x04\x14\x03\x00\x01\x12\x04\x8f\x02\n\x10\nI\n\x06\x04\x14\x03\x00\x02\x00\x12\x04\x91\x02\x04\x12\x1a9 Nonzero and strictly increasing within this connection.\n\n\x0f\n\x07\x04\x14\x03\x00\x02\x00\x05\x12\x04\x91\x02\x04\n\n\x0f\n\x07\x04\x14\x03\x00\x02\x00\x01\x12\x04\x91\x02\x0b\r\n\x0f\n\x07\x04\x14\x03\x00\x02\x00\x03\x12\x04\x91\x02\x10\x11\nM\n\x06\x04\x14\x03\x00\x02\x01\x12\x04\x93\x02\x04!\x1a= Max 100,000. Active topics are no-ops regardless of cursor.\n\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x04\x12\x04\x93\x02\x04\x0c\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x06\x12\x04\x93\x02\r\x17\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x01\x12\x04\x93\x02\x18\x1c\n\x0f\n\x07\x04\x14\x03\x00\x02\x01\x03\x12\x04\x93\x02\x1f \nq\n\x06\x04\x14\x03\x00\x02\x02\x12\x04\x96\x02\x04\x1f\x1aa Max 100,000. Absent topics are no-ops.\n Each topic occurs at most once across adds and removes.\n\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x04\x12\x04\x96\x02\x04\x0c\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x06\x12\x04\x96\x02\r\x12\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x01\x12\x04\x96\x02\x13\x1a\n\x0f\n\x07\x04\x14\x03\x00\x02\x02\x03\x12\x04\x96\x02\x1d\x1e\ny\n\x04\x04\x14\x08\x00\x12\x06\x9b\x02\x02\x9f\x02\x03\x1ai An unset oneof fails with INVALID_ARGUMENT.\n Update and Ping each have a token bucket: 10/s, burst 100.\n\n\r\n\x05\x04\x14\x08\x00\x01\x12\x04\x9b\x02\x08\x0f\n\x0c\n\x04\x04\x14\x02\x00\x12\x04\x9c\x02\x04\x16\n\r\n\x05\x04\x14\x02\x00\x06\x12\x04\x9c\x02\x04\n\n\r\n\x05\x04\x14\x02\x00\x01\x12\x04\x9c\x02\x0b\x11\n\r\n\x05\x04\x14\x02\x00\x03\x12\x04\x9c\x02\x14\x15\n\x0c\n\x04\x04\x14\x02\x01\x12\x04\x9d\x02\x04\x12\n\r\n\x05\x04\x14\x02\x01\x06\x12\x04\x9d\x02\x04\x08\n\r\n\x05\x04\x14\x02\x01\x01\x12\x04\x9d\x02\t\r\n\r\n\x05\x04\x14\x02\x01\x03\x12\x04\x9d\x02\x10\x11\n\x0c\n\x04\x04\x14\x02\x02\x12\x04\x9e\x02\x04\x12\n\r\n\x05\x04\x14\x02\x02\x06\x12\x04\x9e\x02\x04\x08\n\r\n\x05\x04\x14\x02\x02\x01\x12\x04\x9e\x02\t\r\n\r\n\x05\x04\x14\x02\x02\x03\x12\x04\x9e\x02\x10\x11\n\x0c\n\x02\x04\x15\x12\x06\xa2\x02\x00\xbd\x02\x01\n\x0b\n\x03\x04\x15\x01\x12\x04\xa2\x02\x08\x19\n\x0e\n\x04\x04\x15\x03\x00\x12\x06\xa3\x02\x02\xa6\x02\x03\n\r\n\x05\x04\x15\x03\x00\x01\x12\x04\xa3\x02\n\x11\nS\n\x06\x04\x15\x03\x00\x02\x00\x12\x04\xa5\x02\x04%\x1aC Zero means the client uses its default. No topics registered yet.\n\n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x05\x12\x04\xa5\x02\x04\n\n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x01\x12\x04\xa5\x02\x0b \n\x0f\n\x07\x04\x15\x03\x00\x02\x00\x03\x12\x04\xa5\x02#$\n\x0e\n\x04\x04\x15\x03\x01\x12\x06\xa8\x02\x02\xae\x02\x03\n\r\n\x05\x04\x15\x03\x01\x01\x12\x04\xa8\x02\n\x11\nQ\n\x06\x04\x15\x03\x01\x02\x00\x12\x04\xaa\x02\x04\x12\x1aA Echoes every accepted Update, including no-op and removes-only.\n\n\x0f\n\x07\x04\x15\x03\x01\x02\x00\x05\x12\x04\xaa\x02\x04\n\n\x0f\n\x07\x04\x15\x03\x01\x02\x00\x01\x12\x04\xaa\x02\x0b\r\n\x0f\n\x07\x04\x15\x03\x01\x02\x00\x03\x12\x04\xaa\x02\x10\x11\n\x94\x01\n\x06\x04\x15\x03\x01\x02\x01\x12\x04\xad\x02\x04-\x1a\x83\x01 Newly registered topics only, in add order. Includes empty topics.\n These fixed targets do not imply that processing is complete.\n\n\x0f\n\x07\x04\x15\x03\x01\x02\x01\x04\x12\x04\xad\x02\x04\x0c\n\x0f\n\x07\x04\x15\x03\x01\x02\x01\x06\x12\x04\xad\x02\r\x1a\n\x0f\n\x07\x04\x15\x03\x01\x02\x01\x01\x12\x04\xad\x02\x1b(\n\x0f\n\x07\x04\x15\x03\x01\x02\x01\x03\x12\x04\xad\x02+,\n\x0e\n\x04\x04\x15\x03\x02\x12\x06\xb0\x02\x02\xb4\x02\x03\n\r\n\x05\x04\x15\x03\x02\x01\x12\x04\xb0\x02\n\x12\n\x97\x01\n\x06\x04\x15\x03\x02\x02\x00\x12\x04\xb3\x02\x04*\x1a\x86\x01 Increasing sequence ids per topic registration, across all frames.\n No distinction between historical and newly published envelopes.\n\n\x0f\n\x07\x04\x15\x03\x02\x02\x00\x04\x12\x04\xb3\x02\x04\x0c\n\x0f\n\x07\x04\x15\x03\x02\x02\x00\x06\x12\x04\xb3\x02\r\x1b\n\x0f\n\x07\x04\x15\x03\x02\x02\x00\x01\x12\x04\xb3\x02\x1c%\n\x0f\n\x07\x04\x15\x03\x02\x02\x00\x03\x12\x04\xb3\x02()\n\x0e\n\x04\x04\x15\x08\x00\x12\x06\xb6\x02\x02\xbc\x02\x03\n\r\n\x05\x04\x15\x08\x00\x01\x12\x04\xb6\x02\x08\x10\n\x0c\n\x04\x04\x15\x02\x00\x12\x04\xb7\x02\x04\x18\n\r\n\x05\x04\x15\x02\x00\x06\x12\x04\xb7\x02\x04\x0b\n\r\n\x05\x04\x15\x02\x00\x01\x12\x04\xb7\x02\x0c\x13\n\r\n\x05\x04\x15\x02\x00\x03\x12\x04\xb7\x02\x16\x17\n\x0c\n\x04\x04\x15\x02\x01\x12\x04\xb8\x02\x04\x18\n\r\n\x05\x04\x15\x02\x01\x06\x12\x04\xb8\x02\x04\x0b\n\r\n\x05\x04\x15\x02\x01\x01\x12\x04\xb8\x02\x0c\x13\n\r\n\x05\x04\x15\x02\x01\x03\x12\x04\xb8\x02\x16\x17\n\x0c\n\x04\x04\x15\x02\x02\x12\x04\xb9\x02\x04\x1a\n\r\n\x05\x04\x15\x02\x02\x06\x12\x04\xb9\x02\x04\x0c\n\r\n\x05\x04\x15\x02\x02\x01\x12\x04\xb9\x02\r\x15\n\r\n\x05\x04\x15\x02\x02\x03\x12\x04\xb9\x02\x18\x19\n\x0c\n\x04\x04\x15\x02\x03\x12\x04\xba\x02\x04\x12\n\r\n\x05\x04\x15\x02\x03\x06\x12\x04\xba\x02\x04\x08\n\r\n\x05\x04\x15\x02\x03\x01\x12\x04\xba\x02\t\r\n\r\n\x05\x04\x15\x02\x03\x03\x12\x04\xba\x02\x10\x11\n\x0c\n\x04\x04\x15\x02\x04\x12\x04\xbb\x02\x04\x12\n\r\n\x05\x04\x15\x02\x04\x06\x12\x04\xbb\x02\x04\x08\n\r\n\x05\x04\x15\x02\x04\x01\x12\x04\xbb\x02\t\r\n\r\n\x05\x04\x15\x02\x04\x03\x12\x04\xbb\x02\x10\x11\n\x0c\n\x02\x04\x16\x12\x06\xbf\x02\x00\xc1\x02\x01\n\x0b\n\x03\x04\x16\x01\x12\x04\xbf\x02\x08\x0c\n\x0c\n\x04\x04\x16\x02\x00\x12\x04\xc0\x02\x02\x13\n\r\n\x05\x04\x16\x02\x00\x05\x12\x04\xc0\x02\x02\x08\n\r\n\x05\x04\x16\x02\x00\x01\x12\x04\xc0\x02\t\x0e\n\r\n\x05\x04\x16\x02\x00\x03\x12\x04\xc0\x02\x11\x12\n\x0c\n\x02\x04\x17\x12\x06\xc3\x02\x00\xc6\x02\x01\n\x0b\n\x03\x04\x17\x01\x12\x04\xc3\x02\x08\x0c\n&\n\x04\x04\x17\x02\x00\x12\x04\xc5\x02\x02\x13\x1a\x18 Echoes the Ping nonce.\n\n\r\n\x05\x04\x17\x02\x00\x05\x12\x04\xc5\x02\x02\x08\n\r\n\x05\x04\x17\x02\x00\x01\x12\x04\xc5\x02\t\x0e\n\r\n\x05\x04\x17\x02\x00\x03\x12\x04\xc5\x02\x11\x12\n\x91\x01\n\x02\x04\x18\x12\x06\xca\x02\x00\xcc\x02\x01\x1a\x82\x01 Fixed topic set for clients that cannot send bidirectional requests.\n Max 10,000 unique topics; zero topics is INVALID_ARGUMENT.\n\n\x0b\n\x03\x04\x18\x01\x12\x04\xca\x02\x08\x1e\n\x0c\n\x04\x04\x18\x02\x00\x12\x04\xcb\x02\x02!\n\r\n\x05\x04\x18\x02\x00\x04\x12\x04\xcb\x02\x02\n\n\r\n\x05\x04\x18\x02\x00\x06\x12\x04\xcb\x02\x0b\x15\n\r\n\x05\x04\x18\x02\x00\x01\x12\x04\xcb\x02\x16\x1c\n\r\n\x05\x04\x18\x02\x00\x03\x12\x04\xcb\x02\x1f \n\x0c\n\x02\x04\x19\x12\x06\xce\x02\x00\xe2\x02\x01\n\x0b\n\x03\x04\x19\x01\x12\x04\xce\x02\x08\x1f\n\x0e\n\x04\x04\x19\x03\x00\x12\x06\xcf\x02\x02\xd4\x02\x03\n\r\n\x05\x04\x19\x03\x00\x01\x12\x04\xcf\x02\n\x11\n\x0e\n\x06\x04\x19\x03\x00\x02\x00\x12\x04\xd0\x02\x04%\n\x0f\n\x07\x04\x19\x03\x00\x02\x00\x05\x12\x04\xd0\x02\x04\n\n\x0f\n\x07\x04\x19\x03\x00\x02\x00\x01\x12\x04\xd0\x02\x0b \n\x0f\n\x07\x04\x19\x03\x00\x02\x00\x03\x12\x04\xd0\x02#$\nw\n\x06\x04\x19\x03\x00\x02\x01\x12\x04\xd3\x02\x04\'\x1ag One per requested topic, in request order, including empty topics.\n This frame precedes all messages.\n\n\x0f\n\x07\x04\x19\x03\x00\x02\x01\x04\x12\x04\xd3\x02\x04\x0c\n\x0f\n\x07\x04\x19\x03\x00\x02\x01\x06\x12\x04\xd3\x02\r\x1a\n\x0f\n\x07\x04\x19\x03\x00\x02\x01\x01\x12\x04\xd3\x02\x1b\"\n\x0f\n\x07\x04\x19\x03\x00\x02\x01\x03\x12\x04\xd3\x02%&\n\x0e\n\x04\x04\x19\x03\x01\x12\x06\xd6\x02\x02\xd8\x02\x03\n\r\n\x05\x04\x19\x03\x01\x01\x12\x04\xd6\x02\n\x12\n\x0e\n\x06\x04\x19\x03\x01\x02\x00\x12\x04\xd7\x02\x04*\n\x0f\n\x07\x04\x19\x03\x01\x02\x00\x04\x12\x04\xd7\x02\x04\x0c\n\x0f\n\x07\x04\x19\x03\x01\x02\x00\x06\x12\x04\xd7\x02\r\x1b\n\x0f\n\x07\x04\x19\x03\x01\x02\x00\x01\x12\x04\xd7\x02\x1c%\n\x0f\n\x07\x04\x19\x03\x01\x02\x00\x03\x12\x04\xd7\x02()\n>\n\x04\x04\x19\x03\x02\x12\x04\xdb\x02\x02\x16\x1a0 One-way liveness signal. No reply is expected.\n\n\r\n\x05\x04\x19\x03\x02\x01\x12\x04\xdb\x02\n\x13\n\x0e\n\x04\x04\x19\x08\x00\x12\x06\xdd\x02\x02\xe1\x02\x03\n\r\n\x05\x04\x19\x08\x00\x01\x12\x04\xdd\x02\x08\x10\n\x0c\n\x04\x04\x19\x02\x00\x12\x04\xde\x02\x04\x18\n\r\n\x05\x04\x19\x02\x00\x06\x12\x04\xde\x02\x04\x0b\n\r\n\x05\x04\x19\x02\x00\x01\x12\x04\xde\x02\x0c\x13\n\r\n\x05\x04\x19\x02\x00\x03\x12\x04\xde\x02\x16\x17\n\x0c\n\x04\x04\x19\x02\x01\x12\x04\xdf\x02\x04\x1a\n\r\n\x05\x04\x19\x02\x01\x06\x12\x04\xdf\x02\x04\x0c\n\r\n\x05\x04\x19\x02\x01\x01\x12\x04\xdf\x02\r\x15\n\r\n\x05\x04\x19\x02\x01\x03\x12\x04\xdf\x02\x18\x19\n\x0c\n\x04\x04\x19\x02\x02\x12\x04\xe0\x02\x04\x1c\n\r\n\x05\x04\x19\x02\x02\x06\x12\x04\xe0\x02\x04\r\n\r\n\x05\x04\x19\x02\x02\x01\x12\x04\xe0\x02\x0e\x17\n\r\n\x05\x04\x19\x02\x02\x03\x12\x04\xe0\x02\x1a\x1b\n\xb3\x01\n\x02\x04\x1a\x12\x06\xe8\x02\x00\xf0\x02\x012\xa4\x01 ---------------------------------------------------------------------------\n Identity\n ---------------------------------------------------------------------------\n\n\x0b\n\x03\x04\x1a\x01\x12\x04\xe8\x02\x08\x1a\n\x0e\n\x04\x04\x1a\x03\x00\x12\x06\xe9\x02\x02\xec\x02\x03\n\r\n\x05\x04\x1a\x03\x00\x01\x12\x04\xe9\x02\n\x11\n\x0e\n\x06\x04\x1a\x03\x00\x02\x00\x12\x04\xea\x02\x04\x1a\n\x0f\n\x07\x04\x1a\x03\x00\x02\x00\x05\x12\x04\xea\x02\x04\n\n\x0f\n\x07\x04\x1a\x03\x00\x02\x00\x01\x12\x04\xea\x02\x0b\x15\n\x0f\n\x07\x04\x1a\x03\x00\x02\x00\x03\x12\x04\xea\x02\x18\x19\n\x0e\n\x06\x04\x1a\x03\x00\x02\x01\x12\x04\xeb\x02\x04B\n\x0f\n\x07\x04\x1a\x03\x00\x02\x01\x06\x12\x04\xeb\x02\x04-\n\x0f\n\x07\x04\x1a\x03\x00\x02\x01\x01\x12\x04\xeb\x02.=\n\x0f\n\x07\x04\x1a\x03\x00\x02\x01\x03\x12\x04\xeb\x02@A\n\x18\n\x04\x04\x1a\x02\x00\x12\x04\xef\x02\x02 \x1a\n Max 250.\n\n\r\n\x05\x04\x1a\x02\x00\x04\x12\x04\xef\x02\x02\n\n\r\n\x05\x04\x1a\x02\x00\x06\x12\x04\xef\x02\x0b\x12\n\r\n\x05\x04\x1a\x02\x00\x01\x12\x04\xef\x02\x13\x1b\n\r\n\x05\x04\x1a\x02\x00\x03\x12\x04\xef\x02\x1e\x1f\n\xaa\x02\n\x02\x04\x1b\x12\x06\xf6\x02\x00\xfe\x02\x01\x1a\x9b\x02 Same order as the request. An identifier resolves to the inbox with its\n latest non-revoked association, or to no inbox. Revocation can reveal an\n older active association. Lookup uses normalized (identifier, kind), but\n response entries echo original inputs, including duplicates.\n\n\x0b\n\x03\x04\x1b\x01\x12\x04\xf6\x02\x08\x1b\n\x0e\n\x04\x04\x1b\x03\x00\x12\x06\xf7\x02\x02\xfb\x02\x03\n\r\n\x05\x04\x1b\x03\x00\x01\x12\x04\xf7\x02\n\x12\n\x0e\n\x06\x04\x1b\x03\x00\x02\x00\x12\x04\xf8\x02\x04\x1a\n\x0f\n\x07\x04\x1b\x03\x00\x02\x00\x05\x12\x04\xf8\x02\x04\n\n\x0f\n\x07\x04\x1b\x03\x00\x02\x00\x01\x12\x04\xf8\x02\x0b\x15\n\x0f\n\x07\x04\x1b\x03\x00\x02\x00\x03\x12\x04\xf8\x02\x18\x19\n\x0e\n\x06\x04\x1b\x03\x00\x02\x01\x12\x04\xf9\x02\x04B\n\x0f\n\x07\x04\x1b\x03\x00\x02\x01\x06\x12\x04\xf9\x02\x04-\n\x0f\n\x07\x04\x1b\x03\x00\x02\x01\x01\x12\x04\xf9\x02.=\n\x0f\n\x07\x04\x1b\x03\x00\x02\x01\x03\x12\x04\xf9\x02@A\n\x0e\n\x06\x04\x1b\x03\x00\x02\x02\x12\x04\xfa\x02\x04!\n\x0f\n\x07\x04\x1b\x03\x00\x02\x02\x04\x12\x04\xfa\x02\x04\x0c\n\x0f\n\x07\x04\x1b\x03\x00\x02\x02\x05\x12\x04\xfa\x02\r\x13\n\x0f\n\x07\x04\x1b\x03\x00\x02\x02\x01\x12\x04\xfa\x02\x14\x1c\n\x0f\n\x07\x04\x1b\x03\x00\x02\x02\x03\x12\x04\xfa\x02\x1f \n\x0c\n\x04\x04\x1b\x02\x00\x12\x04\xfd\x02\x02\"\n\r\n\x05\x04\x1b\x02\x00\x04\x12\x04\xfd\x02\x02\n\n\r\n\x05\x04\x1b\x02\x00\x06\x12\x04\xfd\x02\x0b\x13\n\r\n\x05\x04\x1b\x02\x00\x01\x12\x04\xfd\x02\x14\x1d\n\r\n\x05\x04\x1b\x02\x00\x03\x12\x04\xfd\x02 !\n\x0c\n\x02\x04\x1c\x12\x06\x80\x03\x00\x8c\x03\x01\n\x0b\n\x03\x04\x1c\x01\x12\x04\x80\x03\x082\n1\n\x04\x04\x1c\x03\x00\x12\x06\x82\x03\x02\x89\x03\x03\x1a! Max 100 signatures per request.\n\n\r\n\x05\x04\x1c\x03\x00\x01\x12\x04\x82\x03\n\x13\n%\n\x06\x04\x1c\x03\x00\x02\x00\x12\x04\x84\x03\x04\x1a\x1a\x15 CAIP-10 account id.\n\n\x0f\n\x07\x04\x1c\x03\x00\x02\x00\x05\x12\x04\x84\x03\x04\n\n\x0f\n\x07\x04\x1c\x03\x00\x02\x00\x01\x12\x04\x84\x03\x0b\x15\n\x0f\n\x07\x04\x1c\x03\x00\x02\x00\x03\x12\x04\x84\x03\x18\x19\n6\n\x06\x04\x1c\x03\x00\x02\x01\x12\x04\x86\x03\x04%\x1a& Block to verify at. Absent = latest.\n\n\x0f\n\x07\x04\x1c\x03\x00\x02\x01\x04\x12\x04\x86\x03\x04\x0c\n\x0f\n\x07\x04\x1c\x03\x00\x02\x01\x05\x12\x04\x86\x03\r\x13\n\x0f\n\x07\x04\x1c\x03\x00\x02\x01\x01\x12\x04\x86\x03\x14 \n\x0f\n\x07\x04\x1c\x03\x00\x02\x01\x03\x12\x04\x86\x03#$\n\x0e\n\x06\x04\x1c\x03\x00\x02\x02\x12\x04\x87\x03\x04\x13\n\x0f\n\x07\x04\x1c\x03\x00\x02\x02\x05\x12\x04\x87\x03\x04\t\n\x0f\n\x07\x04\x1c\x03\x00\x02\x02\x01\x12\x04\x87\x03\n\x0e\n\x0f\n\x07\x04\x1c\x03\x00\x02\x02\x03\x12\x04\x87\x03\x11\x12\n\x0e\n\x06\x04\x1c\x03\x00\x02\x03\x12\x04\x88\x03\x04\x18\n\x0f\n\x07\x04\x1c\x03\x00\x02\x03\x05\x12\x04\x88\x03\x04\t\n\x0f\n\x07\x04\x1c\x03\x00\x02\x03\x01\x12\x04\x88\x03\n\x13\n\x0f\n\x07\x04\x1c\x03\x00\x02\x03\x03\x12\x04\x88\x03\x16\x17\n\x0c\n\x04\x04\x1c\x02\x00\x12\x04\x8b\x03\x02$\n\r\n\x05\x04\x1c\x02\x00\x04\x12\x04\x8b\x03\x02\n\n\r\n\x05\x04\x1c\x02\x00\x06\x12\x04\x8b\x03\x0b\x14\n\r\n\x05\x04\x1c\x02\x00\x01\x12\x04\x8b\x03\x15\x1f\n\r\n\x05\x04\x1c\x02\x00\x03\x12\x04\x8b\x03\"#\n\x0c\n\x02\x04\x1d\x12\x06\x8e\x03\x00\x96\x03\x01\n\x0b\n\x03\x04\x1d\x01\x12\x04\x8e\x03\x083\n\x0e\n\x04\x04\x1d\x03\x00\x12\x06\x8f\x03\x02\x93\x03\x03\n\r\n\x05\x04\x1d\x03\x00\x01\x12\x04\x8f\x03\n\x12\n\x0e\n\x06\x04\x1d\x03\x00\x02\x00\x12\x04\x90\x03\x04\x16\n\x0f\n\x07\x04\x1d\x03\x00\x02\x00\x05\x12\x04\x90\x03\x04\x08\n\x0f\n\x07\x04\x1d\x03\x00\x02\x00\x01\x12\x04\x90\x03\t\x11\n\x0f\n\x07\x04\x1d\x03\x00\x02\x00\x03\x12\x04\x90\x03\x14\x15\n\x0e\n\x06\x04\x1d\x03\x00\x02\x01\x12\x04\x91\x03\x04%\n\x0f\n\x07\x04\x1d\x03\x00\x02\x01\x04\x12\x04\x91\x03\x04\x0c\n\x0f\n\x07\x04\x1d\x03\x00\x02\x01\x05\x12\x04\x91\x03\r\x13\n\x0f\n\x07\x04\x1d\x03\x00\x02\x01\x01\x12\x04\x91\x03\x14 \n\x0f\n\x07\x04\x1d\x03\x00\x02\x01\x03\x12\x04\x91\x03#$\n\x0e\n\x06\x04\x1d\x03\x00\x02\x02\x12\x04\x92\x03\x04\x1e\n\x0f\n\x07\x04\x1d\x03\x00\x02\x02\x04\x12\x04\x92\x03\x04\x0c\n\x0f\n\x07\x04\x1d\x03\x00\x02\x02\x05\x12\x04\x92\x03\r\x13\n\x0f\n\x07\x04\x1d\x03\x00\x02\x02\x01\x12\x04\x92\x03\x14\x19\n\x0f\n\x07\x04\x1d\x03\x00\x02\x02\x03\x12\x04\x92\x03\x1c\x1d\n\x0c\n\x04\x04\x1d\x02\x00\x12\x04\x95\x03\x02\"\n\r\n\x05\x04\x1d\x02\x00\x04\x12\x04\x95\x03\x02\n\n\r\n\x05\x04\x1d\x02\x00\x06\x12\x04\x95\x03\x0b\x13\n\r\n\x05\x04\x1d\x02\x00\x01\x12\x04\x95\x03\x14\x1d\n\r\n\x05\x04\x1d\x02\x00\x03\x12\x04\x95\x03 !\n\xb6\x01\n\x02\x04\x1e\x12\x04\x9c\x03\x00\"2\xa9\x01 ---------------------------------------------------------------------------\n Configuration\n ---------------------------------------------------------------------------\n\n\x0b\n\x03\x04\x1e\x01\x12\x04\x9c\x03\x08\x1f\n\x95\x01\n\x02\x04\x1f\x12\x06\xa0\x03\x00\xac\x03\x01\x1a\x86\x01 Admission settings a client needs before it holds a credential. Never\n includes a JWKS URL, key material, leeway, or refresh timing.\n\n\x0b\n\x03\x04\x1f\x01\x12\x04\xa0\x03\x08\x19\nT\n\x04\x04\x1f\x03\x00\x12\x06\xa2\x03\x02\xa5\x03\x03\x1aD Public identity of one accepted signing key. Never the key itself.\n\n\r\n\x05\x04\x1f\x03\x00\x01\x12\x04\xa2\x03\n\x14\n\x0e\n\x06\x04\x1f\x03\x00\x02\x00\x12\x04\xa3\x03\x04\x13\n\x0f\n\x07\x04\x1f\x03\x00\x02\x00\x05\x12\x04\xa3\x03\x04\n\n\x0f\n\x07\x04\x1f\x03\x00\x02\x00\x01\x12\x04\xa3\x03\x0b\x0e\n\x0f\n\x07\x04\x1f\x03\x00\x02\x00\x03\x12\x04\xa3\x03\x11\x12\n\x0e\n\x06\x04\x1f\x03\x00\x02\x01\x12\x04\xa4\x03\x04\x13\n\x0f\n\x07\x04\x1f\x03\x00\x02\x01\x05\x12\x04\xa4\x03\x04\n\n\x0f\n\x07\x04\x1f\x03\x00\x02\x01\x01\x12\x04\xa4\x03\x0b\x0e\n\x0f\n\x07\x04\x1f\x03\x00\x02\x01\x03\x12\x04\xa4\x03\x11\x12\n\x0c\n\x04\x04\x1f\x02\x00\x12\x04\xa7\x03\x02\x13\n\r\n\x05\x04\x1f\x02\x00\x05\x12\x04\xa7\x03\x02\x06\n\r\n\x05\x04\x1f\x02\x00\x01\x12\x04\xa7\x03\x07\x0e\n\r\n\x05\x04\x1f\x02\x00\x03\x12\x04\xa7\x03\x11\x12\n\x0c\n\x04\x04\x1f\x02\x01\x12\x04\xa8\x03\x02\x1f\n\r\n\x05\x04\x1f\x02\x01\x04\x12\x04\xa8\x03\x02\n\n\r\n\x05\x04\x1f\x02\x01\x06\x12\x04\xa8\x03\x0b\x15\n\r\n\x05\x04\x1f\x02\x01\x01\x12\x04\xa8\x03\x16\x1a\n\r\n\x05\x04\x1f\x02\x01\x03\x12\x04\xa8\x03\x1d\x1e\n\x0c\n\x04\x04\x1f\x02\x02\x12\x04\xa9\x03\x02 \n\r\n\x05\x04\x1f\x02\x02\x04\x12\x04\xa9\x03\x02\n\n\r\n\x05\x04\x1f\x02\x02\x05\x12\x04\xa9\x03\x0b\x11\n\r\n\x05\x04\x1f\x02\x02\x01\x12\x04\xa9\x03\x12\x1b\n\r\n\x05\x04\x1f\x02\x02\x03\x12\x04\xa9\x03\x1e\x1f\n\x0c\n\x04\x04\x1f\x02\x03\x12\x04\xaa\x03\x02\x1e\n\r\n\x05\x04\x1f\x02\x03\x04\x12\x04\xaa\x03\x02\n\n\r\n\x05\x04\x1f\x02\x03\x05\x12\x04\xaa\x03\x0b\x11\n\r\n\x05\x04\x1f\x02\x03\x01\x12\x04\xaa\x03\x12\x19\n\r\n\x05\x04\x1f\x02\x03\x03\x12\x04\xaa\x03\x1c\x1d\n\x0c\n\x04\x04\x1f\x02\x04\x12\x04\xab\x03\x02&\n\r\n\x05\x04\x1f\x02\x04\x04\x12\x04\xab\x03\x02\n\n\r\n\x05\x04\x1f\x02\x04\x05\x12\x04\xab\x03\x0b\x11\n\r\n\x05\x04\x1f\x02\x04\x01\x12\x04\xab\x03\x12!\n\r\n\x05\x04\x1f\x02\x04\x03\x12\x04\xab\x03$%\n\x0c\n\x02\x04 \x12\x06\xae\x03\x00\xb2\x03\x01\n\x0b\n\x03\x04 \x01\x12\x04\xae\x03\x08\x1e\n\x0c\n\x04\x04 \x02\x00\x12\x04\xaf\x03\x02#\n\r\n\x05\x04 \x02\x00\x05\x12\x04\xaf\x03\x02\x08\n\r\n\x05\x04 \x02\x00\x01\x12\x04\xaf\x03\t\x1e\n\r\n\x05\x04 \x02\x00\x03\x12\x04\xaf\x03!\"\n\x0c\n\x04\x04 \x02\x01\x12\x04\xb0\x03\x02\x1d\n\r\n\x05\x04 \x02\x01\x05\x12\x04\xb0\x03\x02\x08\n\r\n\x05\x04 \x02\x01\x01\x12\x04\xb0\x03\t\x18\n\r\n\x05\x04 \x02\x01\x03\x12\x04\xb0\x03\x1b\x1c\n\x0c\n\x04\x04 \x02\x02\x12\x04\xb1\x03\x02!\n\r\n\x05\x04 \x02\x02\x05\x12\x04\xb1\x03\x02\x08\n\r\n\x05\x04 \x02\x02\x01\x12\x04\xb1\x03\t\x1c\n\r\n\x05\x04 \x02\x02\x03\x12\x04\xb1\x03\x1f \n]\n\x02\x04!\x12\x06\xb5\x03\x00\xca\x03\x01\x1aO Request shapes the backend accepts. A client chunks its work to these values.\n\n\x0b\n\x03\x04!\x01\x12\x04\xb5\x03\x08\x1b\n\x0c\n\x04\x04!\x02\x00\x12\x04\xb6\x03\x02 \n\r\n\x05\x04!\x02\x00\x05\x12\x04\xb6\x03\x02\x08\n\r\n\x05\x04!\x02\x00\x01\x12\x04\xb6\x03\t\x1b\n\r\n\x05\x04!\x02\x00\x03\x12\x04\xb6\x03\x1e\x1f\n\x0c\n\x04\x04!\x02\x01\x12\x04\xb7\x03\x02\x1f\n\r\n\x05\x04!\x02\x01\x05\x12\x04\xb7\x03\x02\x08\n\r\n\x05\x04!\x02\x01\x01\x12\x04\xb7\x03\t\x1a\n\r\n\x05\x04!\x02\x01\x03\x12\x04\xb7\x03\x1d\x1e\n\x0c\n\x04\x04!\x02\x02\x12\x04\xb8\x03\x02 \n\r\n\x05\x04!\x02\x02\x05\x12\x04\xb8\x03\x02\x08\n\r\n\x05\x04!\x02\x02\x01\x12\x04\xb8\x03\t\x1b\n\r\n\x05\x04!\x02\x02\x03\x12\x04\xb8\x03\x1e\x1f\n\x0c\n\x04\x04!\x02\x03\x12\x04\xb9\x03\x02 \n\r\n\x05\x04!\x02\x03\x05\x12\x04\xb9\x03\x02\x08\n\r\n\x05\x04!\x02\x03\x01\x12\x04\xb9\x03\t\x1b\n\r\n\x05\x04!\x02\x03\x03\x12\x04\xb9\x03\x1e\x1f\n\x0c\n\x04\x04!\x02\x04\x12\x04\xba\x03\x02\x1e\n\r\n\x05\x04!\x02\x04\x05\x12\x04\xba\x03\x02\x08\n\r\n\x05\x04!\x02\x04\x01\x12\x04\xba\x03\t\x19\n\r\n\x05\x04!\x02\x04\x03\x12\x04\xba\x03\x1c\x1d\n\x0c\n\x04\x04!\x02\x05\x12\x04\xbb\x03\x02\x1d\n\r\n\x05\x04!\x02\x05\x05\x12\x04\xbb\x03\x02\x08\n\r\n\x05\x04!\x02\x05\x01\x12\x04\xbb\x03\t\x18\n\r\n\x05\x04!\x02\x05\x03\x12\x04\xbb\x03\x1b\x1c\n\x0c\n\x04\x04!\x02\x06\x12\x04\xbc\x03\x02!\n\r\n\x05\x04!\x02\x06\x05\x12\x04\xbc\x03\x02\x08\n\r\n\x05\x04!\x02\x06\x01\x12\x04\xbc\x03\t\x1c\n\r\n\x05\x04!\x02\x06\x03\x12\x04\xbc\x03\x1f \n\x0c\n\x04\x04!\x02\x07\x12\x04\xbd\x03\x02(\n\r\n\x05\x04!\x02\x07\x05\x12\x04\xbd\x03\x02\x08\n\r\n\x05\x04!\x02\x07\x01\x12\x04\xbd\x03\t#\n\r\n\x05\x04!\x02\x07\x03\x12\x04\xbd\x03&\'\n\x0c\n\x04\x04!\x02\x08\x12\x04\xbe\x03\x02$\n\r\n\x05\x04!\x02\x08\x05\x12\x04\xbe\x03\x02\x08\n\r\n\x05\x04!\x02\x08\x01\x12\x04\xbe\x03\t\x1f\n\r\n\x05\x04!\x02\x08\x03\x12\x04\xbe\x03\"#\n\x0c\n\x04\x04!\x02\t\x12\x04\xbf\x03\x02\x1e\n\r\n\x05\x04!\x02\t\x05\x12\x04\xbf\x03\x02\x08\n\r\n\x05\x04!\x02\t\x01\x12\x04\xbf\x03\t\x18\n\r\n\x05\x04!\x02\t\x03\x12\x04\xbf\x03\x1b\x1d\n\x0c\n\x04\x04!\x02\n\x12\x04\xc0\x03\x02!\n\r\n\x05\x04!\x02\n\x05\x12\x04\xc0\x03\x02\x08\n\r\n\x05\x04!\x02\n\x01\x12\x04\xc0\x03\t\x1b\n\r\n\x05\x04!\x02\n\x03\x12\x04\xc0\x03\x1e \n\x0c\n\x04\x04!\x02\x0b\x12\x04\xc1\x03\x02 \n\r\n\x05\x04!\x02\x0b\x05\x12\x04\xc1\x03\x02\x08\n\r\n\x05\x04!\x02\x0b\x01\x12\x04\xc1\x03\t\x1a\n\r\n\x05\x04!\x02\x0b\x03\x12\x04\xc1\x03\x1d\x1f\n\x0c\n\x04\x04!\x02\x0c\x12\x04\xc2\x03\x02 \n\r\n\x05\x04!\x02\x0c\x05\x12\x04\xc2\x03\x02\x08\n\r\n\x05\x04!\x02\x0c\x01\x12\x04\xc2\x03\t\x1a\n\r\n\x05\x04!\x02\x0c\x03\x12\x04\xc2\x03\x1d\x1f\n\x0c\n\x04\x04!\x02\r\x12\x04\xc3\x03\x02%\n\r\n\x05\x04!\x02\r\x05\x12\x04\xc3\x03\x02\x08\n\r\n\x05\x04!\x02\r\x01\x12\x04\xc3\x03\t\x1f\n\r\n\x05\x04!\x02\r\x03\x12\x04\xc3\x03\"$\n\x0c\n\x04\x04!\x02\x0e\x12\x04\xc4\x03\x02!\n\r\n\x05\x04!\x02\x0e\x05\x12\x04\xc4\x03\x02\x08\n\r\n\x05\x04!\x02\x0e\x01\x12\x04\xc4\x03\t\x1b\n\r\n\x05\x04!\x02\x0e\x03\x12\x04\xc4\x03\x1e \n\x0c\n\x04\x04!\x02\x0f\x12\x04\xc5\x03\x02#\n\r\n\x05\x04!\x02\x0f\x05\x12\x04\xc5\x03\x02\x08\n\r\n\x05\x04!\x02\x0f\x01\x12\x04\xc5\x03\t\x1d\n\r\n\x05\x04!\x02\x0f\x03\x12\x04\xc5\x03 \"\n\x0c\n\x04\x04!\x02\x10\x12\x04\xc6\x03\x02+\n\r\n\x05\x04!\x02\x10\x05\x12\x04\xc6\x03\x02\x08\n\r\n\x05\x04!\x02\x10\x01\x12\x04\xc6\x03\t%\n\r\n\x05\x04!\x02\x10\x03\x12\x04\xc6\x03(*\n\x0c\n\x04\x04!\x02\x11\x12\x04\xc7\x03\x02\x1f\n\r\n\x05\x04!\x02\x11\x05\x12\x04\xc7\x03\x02\x08\n\r\n\x05\x04!\x02\x11\x01\x12\x04\xc7\x03\t\x19\n\r\n\x05\x04!\x02\x11\x03\x12\x04\xc7\x03\x1c\x1e\n\x0c\n\x04\x04!\x02\x12\x12\x04\xc8\x03\x02)\n\r\n\x05\x04!\x02\x12\x05\x12\x04\xc8\x03\x02\x08\n\r\n\x05\x04!\x02\x12\x01\x12\x04\xc8\x03\t#\n\r\n\x05\x04!\x02\x12\x03\x12\x04\xc8\x03&(\n\x0c\n\x04\x04!\x02\x13\x12\x04\xc9\x03\x02\x1d\n\r\n\x05\x04!\x02\x13\x05\x12\x04\xc9\x03\x02\x08\n\r\n\x05\x04!\x02\x13\x01\x12\x04\xc9\x03\t\x17\n\r\n\x05\x04!\x02\x13\x03\x12\x04\xc9\x03\x1a\x1c\nQ\n\x02\x04\"\x12\x06\xcd\x03\x00\xd2\x03\x01\x1aC Advisory group shapes. The backend does not enforce these values.\n\n\x0b\n\x03\x04\"\x01\x12\x04\xcd\x03\x08\x18\n\x0c\n\x04\x04\"\x02\x00\x12\x04\xce\x03\x02\x1f\n\r\n\x05\x04\"\x02\x00\x05\x12\x04\xce\x03\x02\x08\n\r\n\x05\x04\"\x02\x00\x01\x12\x04\xce\x03\t\x1a\n\r\n\x05\x04\"\x02\x00\x03\x12\x04\xce\x03\x1d\x1e\n\x0c\n\x04\x04\"\x02\x01\x12\x04\xcf\x03\x02)\n\r\n\x05\x04\"\x02\x01\x05\x12\x04\xcf\x03\x02\x08\n\r\n\x05\x04\"\x02\x01\x01\x12\x04\xcf\x03\t$\n\r\n\x05\x04\"\x02\x01\x03\x12\x04\xcf\x03\'(\nC\n\x04\x04\"\x02\x02\x12\x04\xd1\x03\x02\'\x1a5 Absent means the client keeps its compiled default.\n\n\r\n\x05\x04\"\x02\x02\x04\x12\x04\xd1\x03\x02\n\n\r\n\x05\x04\"\x02\x02\x05\x12\x04\xd1\x03\x0b\x0f\n\r\n\x05\x04\"\x02\x02\x01\x12\x04\xd1\x03\x10\"\n\r\n\x05\x04\"\x02\x02\x03\x12\x04\xd1\x03%&\n\x0c\n\x02\x04#\x12\x06\xd4\x03\x00\xe1\x03\x01\n\x0b\n\x03\x04#\x01\x12\x04\xd4\x03\x08 \nl\n\x04\x04#\x02\x00\x12\x04\xd7\x03\x02\x18\x1a^ Stable operator-chosen name for this deployment. Never changes once\n clients have connected.\n\n\r\n\x05\x04#\x02\x00\x05\x12\x04\xd7\x03\x02\x08\n\r\n\x05\x04#\x02\x00\x01\x12\x04\xd7\x03\t\x13\n\r\n\x05\x04#\x02\x00\x03\x12\x04\xd7\x03\x16\x17\n\x0c\n\x04\x04#\x02\x01\x12\x04\xd8\x03\x02\x1c\n\r\n\x05\x04#\x02\x01\x05\x12\x04\xd8\x03\x02\x08\n\r\n\x05\x04#\x02\x01\x01\x12\x04\xd8\x03\t\x17\n\r\n\x05\x04#\x02\x01\x03\x12\x04\xd8\x03\x1a\x1b\n=\n\x04\x04#\x02\x02\x12\x04\xda\x03\x02!\x1a/ Empty when the operator published no minimum.\n\n\r\n\x05\x04#\x02\x02\x05\x12\x04\xda\x03\x02\x08\n\r\n\x05\x04#\x02\x02\x01\x12\x04\xda\x03\t\x1c\n\r\n\x05\x04#\x02\x02\x03\x12\x04\xda\x03\x1f \n\x0c\n\x04\x04#\x02\x03\x12\x04\xdb\x03\x02\x1d\n\r\n\x05\x04#\x02\x03\x06\x12\x04\xdb\x03\x02\x13\n\r\n\x05\x04#\x02\x03\x01\x12\x04\xdb\x03\x14\x18\n\r\n\x05\x04#\x02\x03\x03\x12\x04\xdb\x03\x1b\x1c\n\x0c\n\x04\x04#\x02\x04\x12\x04\xdc\x03\x02\'\n\r\n\x05\x04#\x02\x04\x06\x12\x04\xdc\x03\x02\x18\n\r\n\x05\x04#\x02\x04\x01\x12\x04\xdc\x03\x19\"\n\r\n\x05\x04#\x02\x04\x03\x12\x04\xdc\x03%&\n\x0c\n\x04\x04#\x02\x05\x12\x04\xdd\x03\x02!\n\r\n\x05\x04#\x02\x05\x06\x12\x04\xdd\x03\x02\x15\n\r\n\x05\x04#\x02\x05\x01\x12\x04\xdd\x03\x16\x1c\n\r\n\x05\x04#\x02\x05\x03\x12\x04\xdd\x03\x1f \n\x0c\n\x04\x04#\x02\x06\x12\x04\xde\x03\x02\x1b\n\r\n\x05\x04#\x02\x06\x06\x12\x04\xde\x03\x02\x12\n\r\n\x05\x04#\x02\x06\x01\x12\x04\xde\x03\x13\x16\n\r\n\x05\x04#\x02\x06\x03\x12\x04\xde\x03\x19\x1a\n[\n\x04\x04#\x02\x07\x12\x04\xe0\x03\x023\x1aM CAIP-2 chain ids this backend verifies smart contract wallet signatures on.\n\n\r\n\x05\x04#\x02\x07\x04\x12\x04\xe0\x03\x02\n\n\r\n\x05\x04#\x02\x07\x05\x12\x04\xe0\x03\x0b\x11\n\r\n\x05\x04#\x02\x07\x01\x12\x04\xe0\x03\x12.\n\r\n\x05\x04#\x02\x07\x03\x12\x04\xe0\x0312\n\xc1\x02\n\x02\x06\x00\x12\x06\xe9\x03\x00\xeb\x03\x01\x1a\x8b\x01 Read-only deployment settings. Served without a credential whatever\n auth.enabled is, so a client can discover what the backend requires.\n2\xa4\x01 ---------------------------------------------------------------------------\n Services\n ---------------------------------------------------------------------------\n\n\x0b\n\x03\x06\x00\x01\x12\x04\xe9\x03\x08\x1c\n\x0c\n\x04\x06\x00\x02\x00\x12\x04\xea\x03\x02U\n\r\n\x05\x06\x00\x02\x00\x01\x12\x04\xea\x03\x06\x16\n\r\n\x05\x06\x00\x02\x00\x02\x12\x04\xea\x03\x17.\n\r\n\x05\x06\x00\x02\x00\x03\x12\x04\xea\x039Q\n\x0c\n\x02\x06\x01\x12\x06\xed\x03\x00\xf2\x03\x01\n\x0b\n\x03\x06\x01\x01\x12\x04\xed\x03\x08\x14\nM\n\x04\x06\x01\x02\x00\x12\x04\xef\x03\x024\x1a? Envelopes across up to 1000 topics, each from its own cursor.\n\n\r\n\x05\x06\x01\x02\x00\x01\x12\x04\xef\x03\x06\x0b\n\r\n\x05\x06\x01\x02\x00\x02\x12\x04\xef\x03\x0c\x18\n\r\n\x05\x06\x01\x02\x00\x03\x12\x04\xef\x03#0\n<\n\x04\x06\x01\x02\x01\x12\x04\xf1\x03\x02F\x1a. Newest envelope (or its metadata) per topic.\n\n\r\n\x05\x06\x01\x02\x01\x01\x12\x04\xf1\x03\x06\x11\n\r\n\x05\x06\x01\x02\x01\x02\x12\x04\xf1\x03\x12$\n\r\n\x05\x06\x01\x02\x01\x03\x12\x04\xf1\x03/B\n\x0c\n\x02\x06\x02\x12\x06\xf4\x03\x00\xf7\x03\x01\n\x0b\n\x03\x06\x02\x01\x12\x04\xf4\x03\x08\x16\nP\n\x04\x06\x02\x02\x00\x12\x04\xf6\x03\x02:\x1aB Atomic, idempotent publish of a batch of envelopes (25 MiB cap).\n\n\r\n\x05\x06\x02\x02\x00\x01\x12\x04\xf6\x03\x06\r\n\r\n\x05\x06\x02\x02\x00\x02\x12\x04\xf6\x03\x0e\x1c\n\r\n\x05\x06\x02\x02\x00\x03\x12\x04\xf6\x03\'6\n\x0c\n\x02\x06\x03\x12\x06\xf9\x03\x00\xfe\x03\x01\n\x0b\n\x03\x06\x03\x01\x12\x04\xf9\x03\x08\x1b\nO\n\x04\x06\x03\x02\x00\x12\x04\xfb\x03\x02N\x1aA One client\'s ordered topic feeds, with atomic interest updates.\n\n\r\n\x05\x06\x03\x02\x00\x01\x12\x04\xfb\x03\x06\x0f\n\r\n\x05\x06\x03\x02\x00\x05\x12\x04\xfb\x03\x10\x16\n\r\n\x05\x06\x03\x02\x00\x02\x12\x04\xfb\x03\x17\'\n\r\n\x05\x06\x03\x02\x00\x06\x12\x04\xfb\x0328\n\r\n\x05\x06\x03\x02\x00\x03\x12\x04\xfb\x039J\nV\n\x04\x06\x03\x02\x01\x12\x04\xfd\x03\x02Y\x1aH Server-streaming stream over a fixed topic list, for gRPC-Web clients.\n\n\r\n\x05\x06\x03\x02\x01\x01\x12\x04\xfd\x03\x06\x15\n\r\n\x05\x06\x03\x02\x01\x02\x12\x04\xfd\x03\x16,\n\r\n\x05\x06\x03\x02\x01\x06\x12\x04\xfd\x037=\n\r\n\x05\x06\x03\x02\x01\x03\x12\x04\xfd\x03>U\n\x0c\n\x02\x06\x04\x12\x06\x80\x04\x00\x85\x04\x01\n\x0b\n\x03\x06\x04\x01\x12\x04\x80\x04\x08\x17\n1\n\x04\x06\x04\x02\x00\x12\x04\x82\x04\x02F\x1a# Resolve identifiers to inbox ids.\n\n\r\n\x05\x06\x04\x02\x00\x01\x12\x04\x82\x04\x06\x11\n\r\n\x05\x06\x04\x02\x00\x02\x12\x04\x82\x04\x12$\n\r\n\x05\x06\x04\x02\x00\x03\x12\x04\x82\x04/B\nF\n\x04\x06\x04\x02\x01\x12\x05\x84\x04\x02\x8e\x01\x1a7 Verify ERC-1271 / ERC-6492 signatures over chain RPC.\n\n\r\n\x05\x06\x04\x02\x01\x01\x12\x04\x84\x04\x06)\n\r\n\x05\x06\x04\x02\x01\x02\x12\x04\x84\x04*T\n\x0e\n\x05\x06\x04\x02\x01\x03\x12\x05\x84\x04_\x8a\x01\n\x0c\n\x02\x05\x00\x12\x06\x87\x04\x00\x8c\x04\x01\n\x0b\n\x03\x05\x00\x01\x12\x04\x87\x04\x05\x0c\n\x0c\n\x04\x05\x00\x02\x00\x12\x04\x88\x04\x02\x1a\n\r\n\x05\x05\x00\x02\x00\x01\x12\x04\x88\x04\x02\x15\n\r\n\x05\x05\x00\x02\x00\x02\x12\x04\x88\x04\x18\x19\n\x0c\n\x04\x05\x00\x02\x01\x12\x04\x89\x04\x02\x13\n\r\n\x05\x05\x00\x02\x01\x01\x12\x04\x89\x04\x02\x0e\n\r\n\x05\x05\x00\x02\x01\x02\x12\x04\x89\x04\x11\x12\n\x0c\n\x04\x05\x00\x02\x02\x12\x04\x8a\x04\x02\x12\n\r\n\x05\x05\x00\x02\x02\x01\x12\x04\x8a\x04\x02\r\n\r\n\x05\x05\x00\x02\x02\x02\x12\x04\x8a\x04\x10\x11\n\x0c\n\x04\x05\x00\x02\x03\x12\x04\x8b\x04\x02\x13\n\r\n\x05\x05\x00\x02\x03\x01\x12\x04\x8b\x04\x02\x0e\n\r\n\x05\x05\x00\x02\x03\x02\x12\x04\x8b\x04\x11\x12\n\x0c\n\x02\x04$\x12\x06\x8e\x04\x00\x90\x04\x01\n\x0b\n\x03\x04$\x01\x12\x04\x8e\x04\x08\x14\n\x0c\n\x04\x04$\x02\x00\x12\x04\x8f\x04\x02\x13\n\r\n\x05\x04$\x02\x00\x05\x12\x04\x8f\x04\x02\x08\n\r\n\x05\x04$\x02\x00\x01\x12\x04\x8f\x04\t\x0e\n\r\n\x05\x04$\x02\x00\x03\x12\x04\x8f\x04\x11\x12\n\x0c\n\x02\x04%\x12\x06\x92\x04\x00\x94\x04\x01\n\x0b\n\x03\x04%\x01\x12\x04\x92\x04\x08\x13\n\x0c\n\x04\x04%\x02\x00\x12\x04\x93\x04\x02\x13\n\r\n\x05\x04%\x02\x00\x05\x12\x04\x93\x04\x02\x08\n\r\n\x05\x04%\x02\x00\x01\x12\x04\x93\x04\t\x0e\n\r\n\x05\x04%\x02\x00\x03\x12\x04\x93\x04\x11\x12\n\x0c\n\x02\x04&\x12\x06\x96\x04\x00\x9a\x04\x01\n\x0b\n\x03\x04&\x01\x12\x04\x96\x04\x08\x14\n\x0c\n\x04\x04&\x02\x00\x12\x04\x97\x04\x02\x11\n\r\n\x05\x04&\x02\x00\x05\x12\x04\x97\x04\x02\x08\n\r\n\x05\x04&\x02\x00\x01\x12\x04\x97\x04\t\x0c\n\r\n\x05\x04&\x02\x00\x03\x12\x04\x97\x04\x0f\x10\n4\n\x04\x04&\x02\x01\x12\x04\x99\x04\x02\x18\x1a& Webhook signing key, 16 to 64 bytes.\n\n\r\n\x05\x04&\x02\x01\x05\x12\x04\x99\x04\x02\x07\n\r\n\x05\x04&\x02\x01\x01\x12\x04\x99\x04\x08\x13\n\r\n\x05\x04&\x02\x01\x03\x12\x04\x99\x04\x16\x17\n\x0c\n\x02\x04\'\x12\x06\x9c\x04\x00\xa7\x04\x01\n\x0b\n\x03\x04\'\x01\x12\x04\x9c\x04\x08\x17\nK\n\x04\x04\'\x02\x00\x12\x04\x9e\x04\x02\x19\x1a= Random recipient identity and bearer secret, each 32 bytes.\n\n\r\n\x05\x04\'\x02\x00\x05\x12\x04\x9e\x04\x02\x07\n\r\n\x05\x04\'\x02\x00\x01\x12\x04\x9e\x04\x08\x14\n\r\n\x05\x04\'\x02\x00\x03\x12\x04\x9e\x04\x17\x18\n\x0c\n\x04\x04\'\x02\x01\x12\x04\x9f\x04\x02\x1d\n\r\n\x05\x04\'\x02\x01\x05\x12\x04\x9f\x04\x02\x07\n\r\n\x05\x04\'\x02\x01\x01\x12\x04\x9f\x04\x08\x18\n\r\n\x05\x04\'\x02\x01\x03\x12\x04\x9f\x04\x1b\x1c\n\x0e\n\x04\x04\'\x08\x00\x12\x06\xa0\x04\x02\xa4\x04\x03\n\r\n\x05\x04\'\x08\x00\x01\x12\x04\xa0\x04\x08\x10\n\x0c\n\x04\x04\'\x02\x02\x12\x04\xa1\x04\x04\x1a\n\r\n\x05\x04\'\x02\x02\x06\x12\x04\xa1\x04\x04\x10\n\r\n\x05\x04\'\x02\x02\x01\x12\x04\xa1\x04\x11\x15\n\r\n\x05\x04\'\x02\x02\x03\x12\x04\xa1\x04\x18\x19\n\x0c\n\x04\x04\'\x02\x03\x12\x04\xa2\x04\x04\x18\n\r\n\x05\x04\'\x02\x03\x06\x12\x04\xa2\x04\x04\x0f\n\r\n\x05\x04\'\x02\x03\x01\x12\x04\xa2\x04\x10\x13\n\r\n\x05\x04\'\x02\x03\x03\x12\x04\xa2\x04\x16\x17\n\x0c\n\x04\x04\'\x02\x04\x12\x04\xa3\x04\x04\x1a\n\r\n\x05\x04\'\x02\x04\x06\x12\x04\xa3\x04\x04\x10\n\r\n\x05\x04\'\x02\x04\x01\x12\x04\xa3\x04\x11\x15\n\r\n\x05\x04\'\x02\x04\x03\x12\x04\xa3\x04\x18\x19\n\x0b\n\x03\x04\'\t\x12\x04\xa5\x04\x02\r\n\x0c\n\x04\x04\'\t\x00\x12\x04\xa5\x04\x0b\x0c\n\r\n\x05\x04\'\t\x00\x01\x12\x04\xa5\x04\x0b\x0c\n\r\n\x05\x04\'\t\x00\x02\x12\x04\xa5\x04\x0b\x0c\n\x0b\n\x03\x04\'\n\x12\x04\xa6\x04\x02\x16\n\x0c\n\x04\x04\'\n\x00\x12\x04\xa6\x04\x0b\x15\n\x0c\n\x02\x04(\x12\x06\xa9\x04\x00\xac\x04\x01\n\x0b\n\x03\x04(\x01\x12\x04\xa9\x04\x08\x19\n\x0c\n\x04\x04(\x02\x00\x12\x04\xaa\x04\x02\x19\n\r\n\x05\x04(\x02\x00\x05\x12\x04\xaa\x04\x02\x07\n\r\n\x05\x04(\x02\x00\x01\x12\x04\xaa\x04\x08\x14\n\r\n\x05\x04(\x02\x00\x03\x12\x04\xaa\x04\x17\x18\n\x0c\n\x04\x04(\x02\x01\x12\x04\xab\x04\x02\x1d\n\r\n\x05\x04(\x02\x01\x05\x12\x04\xab\x04\x02\x07\n\r\n\x05\x04(\x02\x01\x01\x12\x04\xab\x04\x08\x18\n\r\n\x05\x04(\x02\x01\x03\x12\x04\xab\x04\x1b\x1c\n\n\n\x02\x04)\x12\x04\xae\x04\x00\x1d\n\x0b\n\x03\x04)\x01\x12\x04\xae\x04\x08\x1a\n\x0c\n\x02\x04*\x12\x06\xb0\x04\x00\xb5\x04\x01\n\x0b\n\x03\x04*\x01\x12\x04\xb0\x04\x08\"\n\x0c\n\x04\x04*\x02\x00\x12\x04\xb1\x04\x02\x19\n\r\n\x05\x04*\x02\x00\x05\x12\x04\xb1\x04\x02\x07\n\r\n\x05\x04*\x02\x00\x01\x12\x04\xb1\x04\x08\x14\n\r\n\x05\x04*\x02\x00\x03\x12\x04\xb1\x04\x17\x18\n\x0c\n\x04\x04*\x02\x01\x12\x04\xb2\x04\x02\x1d\n\r\n\x05\x04*\x02\x01\x05\x12\x04\xb2\x04\x02\x07\n\r\n\x05\x04*\x02\x01\x01\x12\x04\xb2\x04\x08\x18\n\r\n\x05\x04*\x02\x01\x03\x12\x04\xb2\x04\x1b\x1c\n\x0c\n\x04\x04*\x02\x02\x12\x04\xb3\x04\x02!\n\r\n\x05\x04*\x02\x02\x04\x12\x04\xb3\x04\x02\n\n\r\n\x05\x04*\x02\x02\x06\x12\x04\xb3\x04\x0b\x17\n\r\n\x05\x04*\x02\x02\x01\x12\x04\xb3\x04\x18\x1c\n\r\n\x05\x04*\x02\x02\x03\x12\x04\xb3\x04\x1f \n\x0c\n\x04\x04*\x02\x03\x12\x04\xb4\x04\x02\x1d\n\r\n\x05\x04*\x02\x03\x04\x12\x04\xb4\x04\x02\n\n\r\n\x05\x04*\x02\x03\x05\x12\x04\xb4\x04\x0b\x10\n\r\n\x05\x04*\x02\x03\x01\x12\x04\xb4\x04\x11\x18\n\r\n\x05\x04*\x02\x03\x03\x12\x04\xb4\x04\x1b\x1c\n\x0c\n\x02\x04+\x12\x06\xb7\x04\x00\xbf\x04\x01\n\x0b\n\x03\x04+\x01\x12\x04\xb7\x04\x08\x14\n5\n\x04\x04+\x02\x00\x12\x04\xb9\x04\x02\x12\x1a\' Group-message or welcome topic bytes.\n\n\r\n\x05\x04+\x02\x00\x05\x12\x04\xb9\x04\x02\x07\n\r\n\x05\x04+\x02\x00\x01\x12\x04\xb9\x04\x08\r\n\r\n\x05\x04+\x02\x00\x03\x12\x04\xb9\x04\x10\x11\nM\n\x04\x04+\x02\x01\x12\x04\xbb\x04\x02\x1c\x1a? First epoch of the consecutive key window; zero with no keys.\n\n\r\n\x05\x04+\x02\x01\x05\x12\x04\xbb\x04\x02\x07\n\r\n\x05\x04+\x02\x01\x01\x12\x04\xbb\x04\x08\x17\n\r\n\x05\x04+\x02\x01\x03\x12\x04\xbb\x04\x1a\x1b\n2\n\x04\x04+\x02\x02\x12\x04\xbd\x04\x02\x1f\x1a$ At most three keys, each 42 bytes.\n\n\r\n\x05\x04+\x02\x02\x04\x12\x04\xbd\x04\x02\n\n\r\n\x05\x04+\x02\x02\x05\x12\x04\xbd\x04\x0b\x10\n\r\n\x05\x04+\x02\x02\x01\x12\x04\xbd\x04\x11\x1a\n\r\n\x05\x04+\x02\x02\x03\x12\x04\xbd\x04\x1d\x1e\n\x0c\n\x04\x04+\x02\x03\x12\x04\xbe\x04\x02\x1b\n\r\n\x05\x04+\x02\x03\x05\x12\x04\xbe\x04\x02\x06\n\r\n\x05\x04+\x02\x03\x01\x12\x04\xbe\x04\x07\x16\n\r\n\x05\x04+\x02\x03\x03\x12\x04\xbe\x04\x19\x1a\n\x0c\n\x02\x04,\x12\x06\xc1\x04\x00\xc5\x04\x01\n\x0b\n\x03\x04,\x01\x12\x04\xc1\x04\x08\x16\n\x0c\n\x04\x04,\x02\x00\x12\x04\xc2\x04\x02\x19\n\r\n\x05\x04,\x02\x00\x05\x12\x04\xc2\x04\x02\x08\n\r\n\x05\x04,\x02\x00\x01\x12\x04\xc2\x04\t\x14\n\r\n\x05\x04,\x02\x00\x03\x12\x04\xc2\x04\x17\x18\n\x0c\n\x04\x04,\x02\x01\x12\x04\xc3\x04\x02\x16\n\r\n\x05\x04,\x02\x01\x06\x12\x04\xc3\x04\x02\t\n\r\n\x05\x04,\x02\x01\x01\x12\x04\xc3\x04\n\x11\n\r\n\x05\x04,\x02\x01\x03\x12\x04\xc3\x04\x14\x15\n\x0c\n\x04\x04,\x02\x02\x12\x04\xc4\x04\x02\x1a\n\r\n\x05\x04,\x02\x02\x05\x12\x04\xc4\x04\x02\x07\n\r\n\x05\x04,\x02\x02\x01\x12\x04\xc4\x04\x08\x15\n\r\n\x05\x04,\x02\x02\x03\x12\x04\xc4\x04\x18\x19\n\x0c\n\x02\x06\x05\x12\x06\xc7\x04\x00\xd0\x04\x01\n\x0b\n\x03\x06\x05\x01\x12\x04\xc7\x04\x08\x1b\nw\n\x04\x06\x05\x02\x00\x12\x04\xca\x04\x02;\x1ai Create or renew a recipient, preserving its subscriptions.\n buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE\n\n\r\n\x05\x06\x05\x02\x00\x01\x12\x04\xca\x04\x06\x0e\n\r\n\x05\x06\x05\x02\x00\x02\x12\x04\xca\x04\x0f\x1e\n\r\n\x05\x06\x05\x02\x00\x03\x12\x04\xca\x04)7\n9\n\x04\x06\x05\x02\x01\x12\x04\xcc\x04\x02C\x1a+ Delete a recipient and its subscriptions.\n\n\r\n\x05\x06\x05\x02\x01\x01\x12\x04\xcc\x04\x06\x10\n\r\n\x05\x06\x05\x02\x01\x02\x12\x04\xcc\x04\x11\"\n\r\n\x05\x06\x05\x02\x01\x03\x12\x04\xcc\x04-?\nt\n\x04\x06\x05\x02\x02\x12\x04\xcf\x04\x02Q\x1af Apply topic changes atomically and renew the recipient.\n buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE\n\n\r\n\x05\x06\x05\x02\x02\x01\x12\x04\xcf\x04\x06\x19\n\r\n\x05\x06\x05\x02\x02\x02\x12\x04\xcf\x04\x1a4\n\r\n\x05\x06\x05\x02\x02\x03\x12\x04\xcf\x04?Mb\x06proto3\n\xc6\x0b\n device_sync/consent_backup.proto\x12\x1fxmtp.device_sync.consent_backup\"\xe9\x01\n\x0bConsentSave\x12Q\n\x0bentity_type\x18\x01 \x01(\x0e20.xmtp.device_sync.consent_backup.ConsentTypeSaveR\nentityType\x12G\n\x05state\x18\x02 \x01(\x0e21.xmtp.device_sync.consent_backup.ConsentStateSaveR\x05state\x12\x16\n\x06entity\x18\x03 \x01(\tR\x06entity\x12&\n\x0fconsented_at_ns\x18\x04 \x01(\x03R\rconsentedAtNs*\x9e\x01\n\x0fConsentTypeSave\x12!\n\x1dCONSENT_TYPE_SAVE_UNSPECIFIED\x10\x00\x12%\n!CONSENT_TYPE_SAVE_CONVERSATION_ID\x10\x01\x12\x1e\n\x1aCONSENT_TYPE_SAVE_INBOX_ID\x10\x02\x12!\n\x19CONSENT_TYPE_SAVE_ADDRESS\x10\x03\x1a\x02\x08\x01*\x95\x01\n\x10ConsentStateSave\x12\"\n\x1eCONSENT_STATE_SAVE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aCONSENT_STATE_SAVE_UNKNOWN\x10\x01\x12\x1e\n\x1aCONSENT_STATE_SAVE_ALLOWED\x10\x02\x12\x1d\n\x19CONSENT_STATE_SAVE_DENIED\x10\x03B\x1c\n\x1aorg.xmtp.proto.device_syncJ\xb5\x06\n\x06\x12\x04\x01\x00\x1c\x01\n#\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x19 Definitions for backups\n\n\x08\n\x01\x02\x12\x03\x02\x00(\n\x08\n\x01\x08\x12\x03\x04\x003\n\t\n\x02\x08\x01\x12\x03\x04\x003\n;\n\x02\x04\x00\x12\x04\x07\x00\x0c\x01\x1a/ Proto representation of a consent record save\n\n\n\n\x03\x04\x00\x01\x12\x03\x07\x08\x13\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x08\x02\"\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x08\x02\x11\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x08\x12\x1d\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x08 !\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\t\x02\x1d\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\t\x02\x12\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\t\x13\x18\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\t\x1b\x1c\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\n\x02\x14\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\n\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\n\t\x0f\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\n\x12\x13\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\x0b\x02\x1c\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x0b\x02\x07\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x0b\x08\x17\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x0b\x1a\x1b\n!\n\x02\x05\x00\x12\x04\x0f\x00\x14\x01\x1a\x15 Consent record type\n\n\n\n\x03\x05\x00\x01\x12\x03\x0f\x05\x14\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x10\x02$\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x10\x02\x1f\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x10\"#\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x11\x02(\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x11\x02#\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x11&\'\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x12\x02!\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x12\x02\x1c\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x12\x1f \n\x0b\n\x04\x05\x00\x02\x03\x12\x03\x13\x024\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x13\x02\x1b\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x13\x1e\x1f\n\x0c\n\x05\x05\x00\x02\x03\x03\x12\x03\x13 3\n\r\n\x06\x05\x00\x02\x03\x03\x01\x12\x03\x13!2\n\"\n\x02\x05\x01\x12\x04\x17\x00\x1c\x01\x1a\x16 Consent record state\n\n\n\n\x03\x05\x01\x01\x12\x03\x17\x05\x15\n\x0b\n\x04\x05\x01\x02\x00\x12\x03\x18\x02%\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03\x18\x02 \n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03\x18#$\n\x0b\n\x04\x05\x01\x02\x01\x12\x03\x19\x02!\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03\x19\x02\x1c\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03\x19\x1f \n\x0b\n\x04\x05\x01\x02\x02\x12\x03\x1a\x02!\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03\x1a\x02\x1c\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03\x1a\x1f \n\x0b\n\x04\x05\x01\x02\x03\x12\x03\x1b\x02 \n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03\x1b\x02\x1b\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03\x1b\x1e\x1fb\x06proto3\n\xd4\x0e\n\x19device_sync/content.proto\x12\x18xmtp.device_sync.content\x1a device_sync/consent_backup.proto\"\xed\x01\n\x11DeviceSyncContent\x12S\n\x0backnowledge\x18\x02 \x01(\x0b2/.xmtp.device_sync.content.DeviceSyncAcknowledgeH\x00R\x0backnowledge\x12\\\n\x12preference_updates\x18\x04 \x01(\x0b2+.xmtp.device_sync.content.PreferenceUpdatesH\x00R\x11preferenceUpdatesB\t\n\x07contentJ\x04\x08\x01\x10\x02J\x04\x08\x03\x10\x04R\x07requestR\x05reply\"6\n\x15DeviceSyncAcknowledge\x12\x1d\n\nrequest_id\x18\x01 \x01(\tR\trequestId\"Y\n\x11PreferenceUpdates\x12D\n\x07updates\x18\x01 \x03(\x0b2*.xmtp.device_sync.content.PreferenceUpdateR\x07updates\"\xa5\x01\n\x10PreferenceUpdate\x12H\n\x07consent\x18\x01 \x01(\x0b2,.xmtp.device_sync.consent_backup.ConsentSaveH\x00R\x07consent\x12=\n\x04hmac\x18\x02 \x01(\x0b2\'.xmtp.device_sync.content.HmacKeyUpdateH\x00R\x04hmacB\x08\n\x06update\"4\n\x16V1UserPreferenceUpdate\x12\x1a\n\x08contents\x18\x01 \x03(\x0cR\x08contents\"C\n\rHmacKeyUpdate\x12\x10\n\x03key\x18\x01 \x01(\x0cR\x03key\x12 \n\x0ccycled_at_ns\x18\x02 \x01(\x03R\ncycledAtNsB\x1c\n\x1aorg.xmtp.proto.device_syncJ\xae\x08\n\x06\x12\x04\x01\x00-\x01\n\x1f\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x15 Sync group messages\n\n\x08\n\x01\x02\x12\x03\x02\x00!\n\t\n\x02\x03\x00\x12\x03\x04\x00*\n\x08\n\x01\x08\x12\x03\x06\x003\n\t\n\x02\x08\x01\x12\x03\x06\x003\n6\n\x02\x04\x00\x12\x04\t\x00\x11\x01\x1a* All potential device sync group messages\n\n\n\n\x03\x04\x00\x01\x12\x03\t\x08\x19\n\n\n\x03\x04\x00\t\x12\x03\n\x02\x10\n\x0b\n\x04\x04\x00\t\x00\x12\x03\n\x0b\x0c\n\x0c\n\x05\x04\x00\t\x00\x01\x12\x03\n\x0b\x0c\n\x0c\n\x05\x04\x00\t\x00\x02\x12\x03\n\x0b\x0c\n\x0b\n\x04\x04\x00\t\x01\x12\x03\n\x0e\x0f\n\x0c\n\x05\x04\x00\t\x01\x01\x12\x03\n\x0e\x0f\n\x0c\n\x05\x04\x00\t\x01\x02\x12\x03\n\x0e\x0f\n\n\n\x03\x04\x00\n\x12\x03\x0b\x02\x1e\n\x0b\n\x04\x04\x00\n\x00\x12\x03\x0b\x0b\x14\n\x0b\n\x04\x04\x00\n\x01\x12\x03\x0b\x16\x1d\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\r\x02\x10\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\r\x08\x0f\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0e\x04*\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x0e\x04\x19\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0e\x1a%\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0e()\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x0f\x04-\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x0f\x04\x15\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0f\x16(\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0f+,\n$\n\x02\x04\x01\x12\x04\x14\x00\x16\x01\x1a\x18 Acknowledges a request\n\n\n\n\x03\x04\x01\x01\x12\x03\x14\x08\x1d\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x15\x02\x18\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x15\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x15\t\x13\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x15\x16\x17\n \n\x02\x04\x02\x12\x04\x19\x00\x1b\x01\x1a\x14 Preference updates\n\n\n\n\x03\x04\x02\x01\x12\x03\x19\x08\x19\n\x0b\n\x04\x04\x02\x02\x00\x12\x03\x1a\x02(\n\x0c\n\x05\x04\x02\x02\x00\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03\x1a\x0b\x1b\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03\x1a\x1c#\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03\x1a&\'\n\x1f\n\x02\x04\x03\x12\x04\x1e\x00#\x01\x1a\x13 Preference update\n\n\n\n\x03\x04\x03\x01\x12\x03\x1e\x08\x18\n\x0c\n\x04\x04\x03\x08\x00\x12\x04\x1f\x02\"\x03\n\x0c\n\x05\x04\x03\x08\x00\x01\x12\x03\x1f\x08\x0e\n\x0b\n\x04\x04\x03\x02\x00\x12\x03 \x04<\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03 \x04/\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03 07\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03 :;\n\x0b\n\x04\x04\x03\x02\x01\x12\x03!\x04\x1b\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03!\x04\x11\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03!\x12\x16\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03!\x19\x1a\n\n\n\x02\x04\x04\x12\x04%\x00\'\x01\n\n\n\x03\x04\x04\x01\x12\x03%\x08\x1e\n\x0b\n\x04\x04\x04\x02\x00\x12\x03&\x02\x1e\n\x0c\n\x05\x04\x04\x02\x00\x04\x12\x03&\x02\n\n\x0c\n\x05\x04\x04\x02\x00\x05\x12\x03&\x0b\x10\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03&\x11\x19\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03&\x1c\x1d\n\x1d\n\x02\x04\x05\x12\x04*\x00-\x01\x1a\x11 Hmac key update\n\n\n\n\x03\x04\x05\x01\x12\x03*\x08\x15\n\x0b\n\x04\x04\x05\x02\x00\x12\x03+\x02\x10\n\x0c\n\x05\x04\x05\x02\x00\x05\x12\x03+\x02\x07\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03+\x08\x0b\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03+\x0e\x0f\n\x0b\n\x04\x04\x05\x02\x01\x12\x03,\x02\x19\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03,\x02\x07\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03,\x08\x14\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03,\x17\x18b\x06proto3\n\xe1\n\n\x1edevice_sync/event_backup.proto\x12\x1dxmtp.device_sync.event_backup\"\xf7\x01\n\tEventSave\x12\"\n\rcreated_at_ns\x18\x01 \x01(\x03R\x0bcreatedAtNs\x12\x14\n\x05event\x18\x02 \x01(\tR\x05event\x12\x18\n\x07details\x18\x03 \x01(\x0cR\x07details\x12\x1e\n\x08group_id\x18\x04 \x01(\x0cH\x00R\x07groupId\x88\x01\x01\x12C\n\x05level\x18\x05 \x01(\x0e2-.xmtp.device_sync.event_backup.EventLevelSaveR\x05level\x12\x17\n\x04icon\x18\x06 \x01(\tH\x01R\x04icon\x88\x01\x01:\x02\x18\x01B\x0b\n\t_group_idB\x07\n\x05_icon*\xc2\x01\n\x0eEventLevelSave\x12 \n\x1cEVENT_LEVEL_SAVE_UNSPECIFIED\x10\x00\x12\x19\n\x15EVENT_LEVEL_SAVE_NONE\x10\x01\x12\x1c\n\x18EVENT_LEVEL_SAVE_SUCCESS\x10\x02\x12\x19\n\x15EVENT_LEVEL_SAVE_WARN\x10\x03\x12\x1a\n\x16EVENT_LEVEL_SAVE_ERROR\x10\x04\x12\x1a\n\x16EVENT_LEVEL_SAVE_FAULT\x10\x05\x1a\x02\x18\x01B\x1c\n\x1aorg.xmtp.proto.device_syncJ\xba\x06\n\x06\x12\x04\x01\x00\x19\x01\n#\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x19 Definitions for backups\n\n\x08\n\x01\x02\x12\x03\x02\x00&\n\x08\n\x01\x08\x12\x03\x04\x003\n\t\n\x02\x08\x01\x12\x03\x04\x003\n:\n\x02\x04\x00\x12\x04\x07\x00\x0f\x01\x1a. Proto representation of a client record save\n\n\n\n\x03\x04\x00\x01\x12\x03\x07\x08\x11\n\n\n\x03\x04\x00\x07\x12\x03\x08\x02\x1b\n\x0b\n\x04\x04\x00\x07\x03\x12\x03\x08\x02\x1b\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\t\x02\x1a\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\t\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\t\x08\x15\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\t\x18\x19\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\n\x02\x13\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\n\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\n\t\x0e\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\n\x11\x12\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x0b\x02\x14\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x0b\x02\x07\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0b\x08\x0f\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0b\x12\x13\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\x0c\x02\x1e\n\x0c\n\x05\x04\x00\x02\x03\x04\x12\x03\x0c\x02\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x0c\x0b\x10\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x0c\x11\x19\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x0c\x1c\x1d\n\x0b\n\x04\x04\x00\x02\x04\x12\x03\r\x02\x1b\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03\r\x02\x10\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\r\x11\x16\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\r\x19\x1a\n\x0b\n\x04\x04\x00\x02\x05\x12\x03\x0e\x02\x1b\n\x0c\n\x05\x04\x00\x02\x05\x04\x12\x03\x0e\x02\n\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\x0e\x0b\x11\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\x0e\x12\x16\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\x0e\x19\x1a\n\n\n\x02\x05\x00\x12\x04\x11\x00\x19\x01\n\n\n\x03\x05\x00\x01\x12\x03\x11\x05\x13\n\n\n\x03\x05\x00\x03\x12\x03\x12\x02\x1b\n\x0b\n\x04\x05\x00\x03\x03\x12\x03\x12\x02\x1b\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x13\x02#\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x13\x02\x1e\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x13!\"\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x14\x02\x1c\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x14\x02\x17\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x14\x1a\x1b\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x15\x02\x1f\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x15\x02\x1a\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x15\x1d\x1e\n\x0b\n\x04\x05\x00\x02\x03\x12\x03\x16\x02\x1c\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x16\x02\x17\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x16\x1a\x1b\n\x0b\n\x04\x05\x00\x02\x04\x12\x03\x17\x02\x1d\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03\x17\x02\x18\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03\x17\x1b\x1c\n\x0b\n\x04\x05\x00\x02\x05\x12\x03\x18\x02\x1d\n\x0c\n\x05\x05\x00\x02\x05\x01\x12\x03\x18\x02\x18\n\x0c\n\x05\x05\x00\x02\x05\x02\x12\x03\x18\x1b\x1cb\x06proto3\n\x90\x1f\n\x1edevice_sync/group_backup.proto\x12\x1dxmtp.device_sync.group_backup\"\xdb\x07\n\tGroupSave\x12\x0e\n\x02id\x18\x01 \x01(\x0cR\x02id\x12\"\n\rcreated_at_ns\x18\x02 \x01(\x03R\x0bcreatedAtNs\x12b\n\x10membership_state\x18\x03 \x01(\x0e27.xmtp.device_sync.group_backup.GroupMembershipStateSaveR\x0fmembershipState\x12<\n\x1ainstallations_last_checked\x18\x04 \x01(\x03R\x18installationsLastChecked\x12)\n\x11added_by_inbox_id\x18\x05 \x01(\tR\x0eaddedByInboxId\x12\"\n\nwelcome_id\x18\x06 \x01(\x03H\x00R\twelcomeId\x88\x01\x01\x12\"\n\rrotated_at_ns\x18\x07 \x01(\x03R\x0brotatedAtNs\x12`\n\x11conversation_type\x18\x08 \x01(\x0e23.xmtp.device_sync.group_backup.ConversationTypeSaveR\x10conversationType\x12\x18\n\x05dm_id\x18\t \x01(\tH\x01R\x04dmId\x88\x01\x01\x12+\n\x0flast_message_ns\x18\n \x01(\x03H\x02R\rlastMessageNs\x88\x01\x01\x12>\n\x19message_disappear_from_ns\x18\x0b \x01(\x03H\x03R\x16messageDisappearFromNs\x88\x01\x01\x12:\n\x17message_disappear_in_ns\x18\x0c \x01(\x03H\x04R\x14messageDisappearInNs\x88\x01\x01\x12P\n\x08metadata\x18\r \x01(\x0b24.xmtp.device_sync.group_backup.ImmutableMetadataSaveR\x08metadata\x12]\n\x10mutable_metadata\x18\x0e \x01(\x0b22.xmtp.device_sync.group_backup.MutableMetadataSaveR\x0fmutableMetadata\x121\n\x12paused_for_version\x18\x0f \x01(\tH\x05R\x10pausedForVersion\x88\x01\x01B\r\n\x0b_welcome_idB\x08\n\x06_dm_idB\x12\n\x10_last_message_nsB\x1c\n\x1a_message_disappear_from_nsB\x1a\n\x18_message_disappear_in_nsB\x15\n\x13_paused_for_version\"\x81\x02\n\x13MutableMetadataSave\x12b\n\nattributes\x18\x01 \x03(\x0b2B.xmtp.device_sync.group_backup.MutableMetadataSave.AttributesEntryR\nattributes\x12\x1d\n\nadmin_list\x18\x02 \x03(\tR\tadminList\x12(\n\x10super_admin_list\x18\x03 \x03(\tR\x0esuperAdminList\x1a=\n\x0fAttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"A\n\x15ImmutableMetadataSave\x12(\n\x10creator_inbox_id\x18\x01 \x01(\tR\x0ecreatorInboxId*\x9d\x02\n\x18GroupMembershipStateSave\x12+\n\'GROUP_MEMBERSHIP_STATE_SAVE_UNSPECIFIED\x10\x00\x12\'\n#GROUP_MEMBERSHIP_STATE_SAVE_ALLOWED\x10\x01\x12(\n$GROUP_MEMBERSHIP_STATE_SAVE_REJECTED\x10\x02\x12\'\n#GROUP_MEMBERSHIP_STATE_SAVE_PENDING\x10\x03\x12(\n$GROUP_MEMBERSHIP_STATE_SAVE_RESTORED\x10\x04\x12.\n*GROUP_MEMBERSHIP_STATE_SAVE_PENDING_REMOVE\x10\x05*\xa0\x01\n\x14ConversationTypeSave\x12&\n\"CONVERSATION_TYPE_SAVE_UNSPECIFIED\x10\x00\x12 \n\x1cCONVERSATION_TYPE_SAVE_GROUP\x10\x01\x12\x1d\n\x19CONVERSATION_TYPE_SAVE_DM\x10\x02\x12\x1f\n\x1bCONVERSATION_TYPE_SAVE_SYNC\x10\x03B\x1c\n\x1aorg.xmtp.proto.device_syncJ\xc0\x10\n\x06\x12\x04\x01\x00@\x01\n#\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x19 Definitions for backups\n\n\x08\n\x01\x02\x12\x03\x02\x00&\n\x08\n\x01\x08\x12\x03\x04\x003\n\t\n\x02\x08\x01\x12\x03\x04\x003\n4\n\x02\x04\x00\x12\x04\x07\x00\x1a\x01\x1a( Proto representation of a stored group\n\n\n\n\x03\x04\x00\x01\x12\x03\x07\x08\x11\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x08\x02\x0f\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x08\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x08\x08\n\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x08\r\x0e\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\t\x02\x1a\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\t\x02\x07\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\t\x08\x15\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\t\x18\x19\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\n\x020\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03\n\x02\x1a\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\n\x1b+\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\n./\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\x0b\x02\'\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x0b\x02\x07\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x0b\x08\"\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x0b%&\n\x0b\n\x04\x04\x00\x02\x04\x12\x03\x0c\x02\x1f\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x03\x0c\x02\x08\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x0c\t\x1a\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x0c\x1d\x1e\n\x0b\n\x04\x04\x00\x02\x05\x12\x03\r\x02 \n\x0c\n\x05\x04\x00\x02\x05\x04\x12\x03\r\x02\n\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\r\x0b\x10\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\r\x11\x1b\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\r\x1e\x1f\n\x0b\n\x04\x04\x00\x02\x06\x12\x03\x0e\x02\x1a\n\x0c\n\x05\x04\x00\x02\x06\x05\x12\x03\x0e\x02\x07\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03\x0e\x08\x15\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03\x0e\x18\x19\n\x0b\n\x04\x04\x00\x02\x07\x12\x03\x0f\x02-\n\x0c\n\x05\x04\x00\x02\x07\x06\x12\x03\x0f\x02\x16\n\x0c\n\x05\x04\x00\x02\x07\x01\x12\x03\x0f\x17(\n\x0c\n\x05\x04\x00\x02\x07\x03\x12\x03\x0f+,\n\x0b\n\x04\x04\x00\x02\x08\x12\x03\x10\x02\x1c\n\x0c\n\x05\x04\x00\x02\x08\x04\x12\x03\x10\x02\n\n\x0c\n\x05\x04\x00\x02\x08\x05\x12\x03\x10\x0b\x11\n\x0c\n\x05\x04\x00\x02\x08\x01\x12\x03\x10\x12\x17\n\x0c\n\x05\x04\x00\x02\x08\x03\x12\x03\x10\x1a\x1b\n\x0b\n\x04\x04\x00\x02\t\x12\x03\x11\x02&\n\x0c\n\x05\x04\x00\x02\t\x04\x12\x03\x11\x02\n\n\x0c\n\x05\x04\x00\x02\t\x05\x12\x03\x11\x0b\x10\n\x0c\n\x05\x04\x00\x02\t\x01\x12\x03\x11\x11 \n\x0c\n\x05\x04\x00\x02\t\x03\x12\x03\x11#%\n\x0b\n\x04\x04\x00\x02\n\x12\x03\x12\x020\n\x0c\n\x05\x04\x00\x02\n\x04\x12\x03\x12\x02\n\n\x0c\n\x05\x04\x00\x02\n\x05\x12\x03\x12\x0b\x10\n\x0c\n\x05\x04\x00\x02\n\x01\x12\x03\x12\x11*\n\x0c\n\x05\x04\x00\x02\n\x03\x12\x03\x12-/\n\x0b\n\x04\x04\x00\x02\x0b\x12\x03\x13\x02.\n\x0c\n\x05\x04\x00\x02\x0b\x04\x12\x03\x13\x02\n\n\x0c\n\x05\x04\x00\x02\x0b\x05\x12\x03\x13\x0b\x10\n\x0c\n\x05\x04\x00\x02\x0b\x01\x12\x03\x13\x11(\n\x0c\n\x05\x04\x00\x02\x0b\x03\x12\x03\x13+-\n\x1e\n\x04\x04\x00\x02\x0c\x12\x03\x16\x02&\x1a\x11 metadata fields\n\n\x0c\n\x05\x04\x00\x02\x0c\x06\x12\x03\x16\x02\x17\n\x0c\n\x05\x04\x00\x02\x0c\x01\x12\x03\x16\x18 \n\x0c\n\x05\x04\x00\x02\x0c\x03\x12\x03\x16#%\n\x0b\n\x04\x04\x00\x02\r\x12\x03\x17\x02,\n\x0c\n\x05\x04\x00\x02\r\x06\x12\x03\x17\x02\x15\n\x0c\n\x05\x04\x00\x02\r\x01\x12\x03\x17\x16&\n\x0c\n\x05\x04\x00\x02\r\x03\x12\x03\x17)+\n\x0b\n\x04\x04\x00\x02\x0e\x12\x03\x19\x02*\n\x0c\n\x05\x04\x00\x02\x0e\x04\x12\x03\x19\x02\n\n\x0c\n\x05\x04\x00\x02\x0e\x05\x12\x03\x19\x0b\x11\n\x0c\n\x05\x04\x00\x02\x0e\x01\x12\x03\x19\x12$\n\x0c\n\x05\x04\x00\x02\x0e\x03\x12\x03\x19\')\n$\n\x02\x05\x00\x12\x04\x1d\x00(\x01\x1a\x18 Group membership state\n\n\n\n\x03\x05\x00\x01\x12\x03\x1d\x05\x1d\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x1e\x02.\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x1e\x02)\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x1e,-\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x1f\x02*\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x1f\x02%\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x1f()\n\x0b\n\x04\x05\x00\x02\x02\x12\x03 \x02+\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03 \x02&\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03 )*\n\x0b\n\x04\x05\x00\x02\x03\x12\x03!\x02*\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03!\x02%\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03!()\n\xbc\x01\n\x04\x05\x00\x02\x04\x12\x03&\x02+\x1a\xae\x01 A group is marked as this state when it is restored\n from a backup. This is a non-functional archive state\n that can be reactivated when the user is re-added to\n the group.\n\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03&\x02&\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03&)*\n\x0b\n\x04\x05\x00\x02\x05\x12\x03\'\x021\n\x0c\n\x05\x05\x00\x02\x05\x01\x12\x03\'\x02,\n\x0c\n\x05\x05\x00\x02\x05\x02\x12\x03\'/0\n\x1f\n\x02\x05\x01\x12\x04+\x000\x01\x1a\x13 Conversation type\n\n\n\n\x03\x05\x01\x01\x12\x03+\x05\x19\n\x0b\n\x04\x05\x01\x02\x00\x12\x03,\x02)\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03,\x02$\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03,\'(\n\x0b\n\x04\x05\x01\x02\x01\x12\x03-\x02#\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03-\x02\x1e\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03-!\"\n\x0b\n\x04\x05\x01\x02\x02\x12\x03.\x02 \n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03.\x02\x1b\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03.\x1e\x1f\n\x0b\n\x04\x05\x01\x02\x03\x12\x03/\x02\"\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03/\x02\x1d\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03/ !\n)\n\x02\x04\x01\x12\x043\x007\x01\x1a\x1d A Groups\'s mutable metadata\n\n\n\n\x03\x04\x01\x01\x12\x033\x08\x1b\n\x0b\n\x04\x04\x01\x02\x00\x12\x034\x02%\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x034\x02\x15\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x034\x16 \n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x034#$\n\x0b\n\x04\x04\x01\x02\x01\x12\x035\x02!\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x035\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x035\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x035\x12\x1c\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x035\x1f \n\x0b\n\x04\x04\x01\x02\x02\x12\x036\x02\'\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x036\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x036\x0b\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x036\x12\"\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x036%&\n*\n\x02\x04\x02\x12\x04:\x00@\x01\x1a\x1e A Group\'s immutable metadata\n\n\n\n\x03\x04\x02\x01\x12\x03:\x08\x1d\n\x0b\n\x04\x04\x02\x02\x00\x12\x03;\x02\x1e\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03;\x02\x08\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03;\t\x19\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03;\x1c\x1db\x06proto3\n\xf0\x1c\n device_sync/message_backup.proto\x12\x1fxmtp.device_sync.message_backup\"\xb7\x06\n\x10GroupMessageSave\x12\x0e\n\x02id\x18\x01 \x01(\x0cR\x02id\x12\x19\n\x08group_id\x18\x02 \x01(\x0cR\x07groupId\x126\n\x17decrypted_message_bytes\x18\x03 \x01(\x0cR\x15decryptedMessageBytes\x12\x1c\n\nsent_at_ns\x18\x04 \x01(\x03R\x08sentAtNs\x12I\n\x04kind\x18\x05 \x01(\x0e25.xmtp.device_sync.message_backup.GroupMessageKindSaveR\x04kind\x124\n\x16sender_installation_id\x18\x06 \x01(\x0cR\x14senderInstallationId\x12&\n\x0fsender_inbox_id\x18\x07 \x01(\tR\rsenderInboxId\x12\\\n\x0fdelivery_status\x18\x08 \x01(\x0e23.xmtp.device_sync.message_backup.DeliveryStatusSaveR\x0edeliveryStatus\x12`\n\x11content_type_save\x18\t \x01(\x0e20.xmtp.device_sync.message_backup.ContentTypeSaveB\x02\x18\x01R\x0fcontentTypeSave\x12#\n\rversion_major\x18\n \x01(\x05R\x0cversionMajor\x12#\n\rversion_minor\x18\x0b \x01(\x05R\x0cversionMinor\x12!\n\x0cauthority_id\x18\x0c \x01(\tR\x0bauthorityId\x12&\n\x0creference_id\x18\r \x01(\x0cH\x00R\x0breferenceId\x88\x01\x01\x12$\n\x0bsequence_id\x18\x0e \x01(\x03H\x01R\nsequenceId\x88\x01\x01\x12(\n\roriginator_id\x18\x0f \x01(\x03H\x02R\x0coriginatorId\x88\x01\x01\x12!\n\x0ccontent_type\x18\x10 \x01(\tR\x0bcontentTypeB\x0f\n\r_reference_idB\x0e\n\x0c_sequence_idB\x10\n\x0e_originator_id*\x97\x01\n\x14GroupMessageKindSave\x12\'\n#GROUP_MESSAGE_KIND_SAVE_UNSPECIFIED\x10\x00\x12\'\n#GROUP_MESSAGE_KIND_SAVE_APPLICATION\x10\x01\x12-\n)GROUP_MESSAGE_KIND_SAVE_MEMBERSHIP_CHANGE\x10\x02*\xa5\x01\n\x12DeliveryStatusSave\x12$\n DELIVERY_STATUS_SAVE_UNSPECIFIED\x10\x00\x12$\n DELIVERY_STATUS_SAVE_UNPUBLISHED\x10\x01\x12\"\n\x1eDELIVERY_STATUS_SAVE_PUBLISHED\x10\x02\x12\x1f\n\x1bDELIVERY_STATUS_SAVE_FAILED\x10\x03*\xa0\x03\n\x0fContentTypeSave\x12!\n\x1dCONTENT_TYPE_SAVE_UNSPECIFIED\x10\x00\x12\x1d\n\x19CONTENT_TYPE_SAVE_UNKNOWN\x10\x01\x12\x1a\n\x16CONTENT_TYPE_SAVE_TEXT\x10\x02\x12-\n)CONTENT_TYPE_SAVE_GROUP_MEMBERSHIP_CHANGE\x10\x03\x12#\n\x1fCONTENT_TYPE_SAVE_GROUP_UPDATED\x10\x04\x12\x1e\n\x1aCONTENT_TYPE_SAVE_REACTION\x10\x05\x12\"\n\x1eCONTENT_TYPE_SAVE_READ_RECEIPT\x10\x06\x12\x1b\n\x17CONTENT_TYPE_SAVE_REPLY\x10\x07\x12 \n\x1cCONTENT_TYPE_SAVE_ATTACHMENT\x10\x08\x12\'\n#CONTENT_TYPE_SAVE_REMOTE_ATTACHMENT\x10\t\x12+\n\'CONTENT_TYPE_SAVE_TRANSACTION_REFERENCE\x10\n\x1a\x02\x18\x01B\x1c\n\x1aorg.xmtp.proto.device_syncJ\xe5\x0f\n\x06\x12\x04\x01\x007\x01\n#\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x19 Definitions for backups\n\n\x08\n\x01\x02\x12\x03\x02\x00(\n\x08\n\x01\x08\x12\x03\x04\x003\n\t\n\x02\x08\x01\x12\x03\x04\x003\n<\n\x02\x04\x00\x12\x04\x07\x00\x18\x01\x1a0 Proto representation of a stored group message\n\n\n\n\x03\x04\x00\x01\x12\x03\x07\x08\x18\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x08\x02\x0f\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x08\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x08\x08\n\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x08\r\x0e\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\t\x02\x15\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\t\x02\x07\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\t\x08\x10\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\t\x13\x14\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\n\x02$\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\n\x02\x07\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\n\x08\x1f\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\n\"#\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\x0b\x02\x17\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x0b\x02\x07\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x0b\x08\x12\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x0b\x15\x16\n\x0b\n\x04\x04\x00\x02\x04\x12\x03\x0c\x02 \n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03\x0c\x02\x16\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x0c\x17\x1b\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x0c\x1e\x1f\n\x0b\n\x04\x04\x00\x02\x05\x12\x03\r\x02#\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\r\x02\x07\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\r\x08\x1e\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\r!\"\n\x0b\n\x04\x04\x00\x02\x06\x12\x03\x0e\x02\x1d\n\x0c\n\x05\x04\x00\x02\x06\x05\x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03\x0e\t\x18\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03\x0e\x1b\x1c\n\x0b\n\x04\x04\x00\x02\x07\x12\x03\x0f\x02)\n\x0c\n\x05\x04\x00\x02\x07\x06\x12\x03\x0f\x02\x14\n\x0c\n\x05\x04\x00\x02\x07\x01\x12\x03\x0f\x15$\n\x0c\n\x05\x04\x00\x02\x07\x03\x12\x03\x0f\'(\n\x0b\n\x04\x04\x00\x02\x08\x12\x03\x10\x02<\n\x0c\n\x05\x04\x00\x02\x08\x06\x12\x03\x10\x02\x11\n\x0c\n\x05\x04\x00\x02\x08\x01\x12\x03\x10\x12#\n\x0c\n\x05\x04\x00\x02\x08\x03\x12\x03\x10&\'\n\x0c\n\x05\x04\x00\x02\x08\x08\x12\x03\x10(;\n\r\n\x06\x04\x00\x02\x08\x08\x03\x12\x03\x10):\n\x0b\n\x04\x04\x00\x02\t\x12\x03\x11\x02\x1b\n\x0c\n\x05\x04\x00\x02\t\x05\x12\x03\x11\x02\x07\n\x0c\n\x05\x04\x00\x02\t\x01\x12\x03\x11\x08\x15\n\x0c\n\x05\x04\x00\x02\t\x03\x12\x03\x11\x18\x1a\n\x0b\n\x04\x04\x00\x02\n\x12\x03\x12\x02\x1b\n\x0c\n\x05\x04\x00\x02\n\x05\x12\x03\x12\x02\x07\n\x0c\n\x05\x04\x00\x02\n\x01\x12\x03\x12\x08\x15\n\x0c\n\x05\x04\x00\x02\n\x03\x12\x03\x12\x18\x1a\n\x0b\n\x04\x04\x00\x02\x0b\x12\x03\x13\x02\x1b\n\x0c\n\x05\x04\x00\x02\x0b\x05\x12\x03\x13\x02\x08\n\x0c\n\x05\x04\x00\x02\x0b\x01\x12\x03\x13\t\x15\n\x0c\n\x05\x04\x00\x02\x0b\x03\x12\x03\x13\x18\x1a\n\x0b\n\x04\x04\x00\x02\x0c\x12\x03\x14\x02#\n\x0c\n\x05\x04\x00\x02\x0c\x04\x12\x03\x14\x02\n\n\x0c\n\x05\x04\x00\x02\x0c\x05\x12\x03\x14\x0b\x10\n\x0c\n\x05\x04\x00\x02\x0c\x01\x12\x03\x14\x11\x1d\n\x0c\n\x05\x04\x00\x02\x0c\x03\x12\x03\x14 \"\n\x0b\n\x04\x04\x00\x02\r\x12\x03\x15\x02\"\n\x0c\n\x05\x04\x00\x02\r\x04\x12\x03\x15\x02\n\n\x0c\n\x05\x04\x00\x02\r\x05\x12\x03\x15\x0b\x10\n\x0c\n\x05\x04\x00\x02\r\x01\x12\x03\x15\x11\x1c\n\x0c\n\x05\x04\x00\x02\r\x03\x12\x03\x15\x1f!\n\x0b\n\x04\x04\x00\x02\x0e\x12\x03\x16\x02$\n\x0c\n\x05\x04\x00\x02\x0e\x04\x12\x03\x16\x02\n\n\x0c\n\x05\x04\x00\x02\x0e\x05\x12\x03\x16\x0b\x10\n\x0c\n\x05\x04\x00\x02\x0e\x01\x12\x03\x16\x11\x1e\n\x0c\n\x05\x04\x00\x02\x0e\x03\x12\x03\x16!#\n\x0b\n\x04\x04\x00\x02\x0f\x12\x03\x17\x02\x1b\n\x0c\n\x05\x04\x00\x02\x0f\x05\x12\x03\x17\x02\x08\n\x0c\n\x05\x04\x00\x02\x0f\x01\x12\x03\x17\t\x15\n\x0c\n\x05\x04\x00\x02\x0f\x03\x12\x03\x17\x18\x1a\n \n\x02\x05\x00\x12\x04\x1b\x00\x1f\x01\x1a\x14 Group message kind\n\n\n\n\x03\x05\x00\x01\x12\x03\x1b\x05\x19\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x1c\x02*\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x1c\x02%\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x1c()\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x1d\x02*\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x1d\x02%\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x1d()\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x1e\x020\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x1e\x02+\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x1e./\n+\n\x02\x05\x01\x12\x04\"\x00\'\x01\x1a\x1f Group message delivery status\n\n\n\n\x03\x05\x01\x01\x12\x03\"\x05\x17\n\x0b\n\x04\x05\x01\x02\x00\x12\x03#\x02\'\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03#\x02\"\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03#%&\n\x0b\n\x04\x05\x01\x02\x01\x12\x03$\x02\'\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03$\x02\"\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03$%&\n\x0b\n\x04\x05\x01\x02\x02\x12\x03%\x02%\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03%\x02 \n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03%#$\n\x0b\n\x04\x05\x01\x02\x03\x12\x03&\x02\"\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03&\x02\x1d\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03& !\n(\n\x02\x05\x02\x12\x04*\x007\x01\x1a\x1c Group message content type\n\n\n\n\x03\x05\x02\x01\x12\x03*\x05\x14\n\n\n\x03\x05\x02\x03\x12\x03+\x02\x1b\n\x0b\n\x04\x05\x02\x03\x03\x12\x03+\x02\x1b\n\x0b\n\x04\x05\x02\x02\x00\x12\x03,\x02$\n\x0c\n\x05\x05\x02\x02\x00\x01\x12\x03,\x02\x1f\n\x0c\n\x05\x05\x02\x02\x00\x02\x12\x03,\"#\n\x0b\n\x04\x05\x02\x02\x01\x12\x03-\x02 \n\x0c\n\x05\x05\x02\x02\x01\x01\x12\x03-\x02\x1b\n\x0c\n\x05\x05\x02\x02\x01\x02\x12\x03-\x1e\x1f\n\x0b\n\x04\x05\x02\x02\x02\x12\x03.\x02\x1d\n\x0c\n\x05\x05\x02\x02\x02\x01\x12\x03.\x02\x18\n\x0c\n\x05\x05\x02\x02\x02\x02\x12\x03.\x1b\x1c\n\x0b\n\x04\x05\x02\x02\x03\x12\x03/\x020\n\x0c\n\x05\x05\x02\x02\x03\x01\x12\x03/\x02+\n\x0c\n\x05\x05\x02\x02\x03\x02\x12\x03/./\n\x0b\n\x04\x05\x02\x02\x04\x12\x030\x02&\n\x0c\n\x05\x05\x02\x02\x04\x01\x12\x030\x02!\n\x0c\n\x05\x05\x02\x02\x04\x02\x12\x030$%\n\x0b\n\x04\x05\x02\x02\x05\x12\x031\x02!\n\x0c\n\x05\x05\x02\x02\x05\x01\x12\x031\x02\x1c\n\x0c\n\x05\x05\x02\x02\x05\x02\x12\x031\x1f \n\x0b\n\x04\x05\x02\x02\x06\x12\x032\x02%\n\x0c\n\x05\x05\x02\x02\x06\x01\x12\x032\x02 \n\x0c\n\x05\x05\x02\x02\x06\x02\x12\x032#$\n\x0b\n\x04\x05\x02\x02\x07\x12\x033\x02\x1e\n\x0c\n\x05\x05\x02\x02\x07\x01\x12\x033\x02\x19\n\x0c\n\x05\x05\x02\x02\x07\x02\x12\x033\x1c\x1d\n\x0b\n\x04\x05\x02\x02\x08\x12\x034\x02#\n\x0c\n\x05\x05\x02\x02\x08\x01\x12\x034\x02\x1e\n\x0c\n\x05\x05\x02\x02\x08\x02\x12\x034!\"\n\x0b\n\x04\x05\x02\x02\t\x12\x035\x02*\n\x0c\n\x05\x05\x02\x02\t\x01\x12\x035\x02%\n\x0c\n\x05\x05\x02\x02\t\x02\x12\x035()\n\x0b\n\x04\x05\x02\x02\n\x12\x036\x02/\n\x0c\n\x05\x05\x02\x02\n\x01\x12\x036\x02)\n\x0c\n\x05\x05\x02\x02\n\x02\x12\x036,.b\x06proto3\n\xd9\x15\n\x1ddevice_sync/device_sync.proto\x12\x10xmtp.device_sync\x1a device_sync/consent_backup.proto\x1a\x1edevice_sync/event_backup.proto\x1a\x1edevice_sync/group_backup.proto\x1a device_sync/message_backup.proto\"\x8a\x03\n\rBackupElement\x12B\n\x08metadata\x18\x01 \x01(\x0b2$.xmtp.device_sync.BackupMetadataSaveH\x00R\x08metadata\x12@\n\x05group\x18\x02 \x01(\x0b2(.xmtp.device_sync.group_backup.GroupSaveH\x00R\x05group\x12X\n\rgroup_message\x18\x03 \x01(\x0b21.xmtp.device_sync.message_backup.GroupMessageSaveH\x00R\x0cgroupMessage\x12H\n\x07consent\x18\x04 \x01(\x0b2,.xmtp.device_sync.consent_backup.ConsentSaveH\x00R\x07consent\x12D\n\x05event\x18\x05 \x01(\x0b2(.xmtp.device_sync.event_backup.EventSaveB\x02\x18\x01H\x00R\x05eventB\t\n\x07element\"\xd4\x01\n\x12BackupMetadataSave\x12D\n\x08elements\x18\x02 \x03(\x0e2(.xmtp.device_sync.BackupElementSelectionR\x08elements\x12$\n\x0eexported_at_ns\x18\x03 \x01(\x03R\x0cexportedAtNs\x12\x1e\n\x08start_ns\x18\x04 \x01(\x03H\x00R\x07startNs\x88\x01\x01\x12\x1a\n\x06end_ns\x18\x05 \x01(\x03H\x01R\x05endNs\x88\x01\x01B\x0b\n\t_start_nsB\t\n\x07_end_ns\"\xee\x01\n\x0eArchiveOptions\x12D\n\x08elements\x18\x01 \x03(\x0e2(.xmtp.device_sync.BackupElementSelectionR\x08elements\x12\x1e\n\x08start_ns\x18\x02 \x01(\x03H\x00R\x07startNs\x88\x01\x01\x12\x1a\n\x06end_ns\x18\x03 \x01(\x03H\x01R\x05endNs\x88\x01\x01\x12B\n\x1dexclude_disappearing_messages\x18\x04 \x01(\x08R\x1bexcludeDisappearingMessagesB\x0b\n\t_start_nsB\t\n\x07_end_ns*\xb7\x01\n\x16BackupElementSelection\x12(\n$BACKUP_ELEMENT_SELECTION_UNSPECIFIED\x10\x00\x12%\n!BACKUP_ELEMENT_SELECTION_MESSAGES\x10\x01\x12$\n BACKUP_ELEMENT_SELECTION_CONSENT\x10\x02\x12&\n\x1eBACKUP_ELEMENT_SELECTION_EVENT\x10\x03\x1a\x02\x08\x01B\x1c\n\x1aorg.xmtp.proto.device_syncJ\xec\x0b\n\x06\x12\x04\x01\x00-\x01\n#\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x19 Definitions for backups\n\n\x08\n\x01\x02\x12\x03\x02\x00\x19\n\t\n\x02\x03\x00\x12\x03\x04\x00*\n\t\n\x02\x03\x01\x12\x03\x05\x00(\n\t\n\x02\x03\x02\x12\x03\x06\x00(\n\t\n\x02\x03\x03\x12\x03\x07\x00*\n\x08\n\x01\x08\x12\x03\t\x003\n\t\n\x02\x08\x01\x12\x03\t\x003\ne\n\x02\x04\x00\x12\x04\x0c\x00\x14\x01\x1aY Union type representing everything that can be serialied and saved in a backup archive.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0c\x08\x15\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\r\x02\x13\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\r\x08\x0f\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0e\x04$\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x0e\x04\x16\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0e\x17\x1f\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0e\"#\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x0f\x046\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x0f\x04+\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0f,1\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0f45\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x10\x04G\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03\x10\x044\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x105B\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x10EF\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\x11\x04<\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03\x11\x04/\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x1107\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x11:;\n\x0b\n\x04\x04\x00\x02\x04\x12\x03\x12\x04J\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03\x12\x04+\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x12,1\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x1245\n\x0c\n\x05\x04\x00\x02\x04\x08\x12\x03\x126I\n\r\n\x06\x04\x00\x02\x04\x08\x03\x12\x03\x127H\nx\n\x02\x04\x01\x12\x04\x18\x00\x1d\x01\x1al Proto representation of backup metadata\n (Backup version is explicitly missing - it\'s stored as a header.)\n\n\n\n\x03\x04\x01\x01\x12\x03\x18\x08\x1a\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x19\x02/\n\x0c\n\x05\x04\x01\x02\x00\x04\x12\x03\x19\x02\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03\x19\x0b!\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x19\"*\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x19-.\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x1a\x02\x1b\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x1a\x02\x07\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1a\x08\x16\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1a\x19\x1a\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\x1b\x02\x1e\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03\x1b\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x1b\x0b\x10\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x1b\x11\x19\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\x1b\x1c\x1d\n\x0b\n\x04\x04\x01\x02\x03\x12\x03\x1c\x02\x1c\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03\x1c\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03\x1c\x0b\x10\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\x1c\x11\x17\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x1c\x1a\x1b\n\x1c\n\x02\x04\x02\x12\x04 \x00%\x01\x1a\x10 Backup Options\n\n\n\n\x03\x04\x02\x01\x12\x03 \x08\x16\n\x0b\n\x04\x04\x02\x02\x00\x12\x03!\x02/\n\x0c\n\x05\x04\x02\x02\x00\x04\x12\x03!\x02\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03!\x0b!\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03!\"*\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03!-.\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\"\x02\x1e\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03\"\x02\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03\"\x0b\x10\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\"\x11\x19\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\"\x1c\x1d\n\x0b\n\x04\x04\x02\x02\x02\x12\x03#\x02\x1c\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x03#\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03#\x0b\x10\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03#\x11\x17\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03#\x1a\x1b\n\x0b\n\x04\x04\x02\x02\x03\x12\x03$\x02)\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03$\x02\x06\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03$\x07$\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03$\'(\n*\n\x02\x05\x00\x12\x04(\x00-\x01\x1a\x1e Elements selected for backup\n\n\n\n\x03\x05\x00\x01\x12\x03(\x05\x1b\n\x0b\n\x04\x05\x00\x02\x00\x12\x03)\x02+\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03)\x02&\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03))*\n\x0b\n\x04\x05\x00\x02\x01\x12\x03*\x02(\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03*\x02#\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03*&\'\n\x0b\n\x04\x05\x00\x02\x02\x12\x03+\x02\'\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03+\x02\"\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03+%&\n\x0b\n\x04\x05\x00\x02\x03\x12\x03,\x029\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03,\x02 \n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03,#$\n\x0c\n\x05\x05\x00\x02\x03\x03\x12\x03,%8\n\r\n\x06\x05\x00\x02\x03\x03\x01\x12\x03,&7b\x06proto3\n\xea1\n\x1eidentity/api/v1/identity.proto\x12\x14xmtp.identity.api.v1\x1a\'identity/associations/association.proto\"\x96\x01\n*VerifySmartContractWalletSignaturesRequest\x12h\n\nsignatures\x18\x01 \x03(\x0b2H.xmtp.identity.api.v1.VerifySmartContractWalletSignatureRequestSignatureR\nsignatures\"\xbe\x01\n2VerifySmartContractWalletSignatureRequestSignature\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12&\n\x0cblock_number\x18\x02 \x01(\x04H\x00R\x0bblockNumber\x88\x01\x01\x12\x1c\n\tsignature\x18\x03 \x01(\x0cR\tsignature\x12\x12\n\x04hash\x18\x04 \x01(\x0cR\x04hashB\x0f\n\r_block_number\"\xb1\x02\n+VerifySmartContractWalletSignaturesResponse\x12r\n\tresponses\x18\x01 \x03(\x0b2T.xmtp.identity.api.v1.VerifySmartContractWalletSignaturesResponse.ValidationResponseR\tresponses\x1a\x8d\x01\n\x12ValidationResponse\x12\x19\n\x08is_valid\x18\x01 \x01(\x08R\x07isValid\x12&\n\x0cblock_number\x18\x02 \x01(\x04H\x00R\x0bblockNumber\x88\x01\x01\x12\x19\n\x05error\x18\x03 \x01(\tH\x01R\x05error\x88\x01\x01B\x0f\n\r_block_numberB\x08\n\x06_error\"s\n\x1cPublishIdentityUpdateRequest\x12S\n\x0fidentity_update\x18\x01 \x01(\x0b2*.xmtp.identity.associations.IdentityUpdateR\x0eidentityUpdate\"\x1f\n\x1dPublishIdentityUpdateResponse\"\xb7\x01\n\x19GetIdentityUpdatesRequest\x12S\n\x08requests\x18\x01 \x03(\x0b27.xmtp.identity.api.v1.GetIdentityUpdatesRequest.RequestR\x08requests\x1aE\n\x07Request\x12\x19\n\x08inbox_id\x18\x01 \x01(\tR\x07inboxId\x12\x1f\n\x0bsequence_id\x18\x02 \x01(\x04R\nsequenceId\"\xa6\x03\n\x1aGetIdentityUpdatesResponse\x12W\n\tresponses\x18\x01 \x03(\x0b29.xmtp.identity.api.v1.GetIdentityUpdatesResponse.ResponseR\tresponses\x1a\xa8\x01\n\x11IdentityUpdateLog\x12\x1f\n\x0bsequence_id\x18\x01 \x01(\x04R\nsequenceId\x12.\n\x13server_timestamp_ns\x18\x02 \x01(\x04R\x11serverTimestampNs\x12B\n\x06update\x18\x03 \x01(\x0b2*.xmtp.identity.associations.IdentityUpdateR\x06update\x1a\x83\x01\n\x08Response\x12\x19\n\x08inbox_id\x18\x01 \x01(\tR\x07inboxId\x12\\\n\x07updates\x18\x02 \x03(\x0b2B.xmtp.identity.api.v1.GetIdentityUpdatesResponse.IdentityUpdateLogR\x07updates\"\xe2\x01\n\x12GetInboxIdsRequest\x12L\n\x08requests\x18\x01 \x03(\x0b20.xmtp.identity.api.v1.GetInboxIdsRequest.RequestR\x08requests\x1a~\n\x07Request\x12\x1e\n\nidentifier\x18\x01 \x01(\tR\nidentifier\x12S\n\x0fidentifier_kind\x18\x02 \x01(\x0e2*.xmtp.identity.associations.IdentifierKindR\x0eidentifierKind\"\x96\x02\n\x13GetInboxIdsResponse\x12P\n\tresponses\x18\x01 \x03(\x0b22.xmtp.identity.api.v1.GetInboxIdsResponse.ResponseR\tresponses\x1a\xac\x01\n\x08Response\x12\x1e\n\nidentifier\x18\x01 \x01(\tR\nidentifier\x12\x1e\n\x08inbox_id\x18\x02 \x01(\tH\x00R\x07inboxId\x88\x01\x01\x12S\n\x0fidentifier_kind\x18\x03 \x01(\x0e2*.xmtp.identity.associations.IdentifierKindR\x0eidentifierKindB\x0b\n\t_inbox_id2\xa2\x04\n\x0bIdentityApi\x12\x82\x01\n\x15PublishIdentityUpdate\x122.xmtp.identity.api.v1.PublishIdentityUpdateRequest\x1a3.xmtp.identity.api.v1.PublishIdentityUpdateResponse\"\x00\x12y\n\x12GetIdentityUpdates\x12/.xmtp.identity.api.v1.GetIdentityUpdatesRequest\x1a0.xmtp.identity.api.v1.GetIdentityUpdatesResponse\"\x00\x12d\n\x0bGetInboxIds\x12(.xmtp.identity.api.v1.GetInboxIdsRequest\x1a).xmtp.identity.api.v1.GetInboxIdsResponse\"\x00\x12\xac\x01\n#VerifySmartContractWalletSignatures\x12@.xmtp.identity.api.v1.VerifySmartContractWalletSignaturesRequest\x1aA.xmtp.identity.api.v1.VerifySmartContractWalletSignaturesResponse\"\x00BC\n\x19org.xmtp.proto.mls.api.v1Z&github.com/xmtp/proto/v3/go/mls/api/v1J\x91\x1d\n\x06\x12\x04\x01\x00s\x01\n\x17\n\x01\x0c\x12\x03\x01\x00\x12\x1a\r Message API\n\n\x08\n\x01\x02\x12\x03\x02\x00\x1d\n\t\n\x02\x03\x00\x12\x03\x04\x001\n\x08\n\x01\x08\x12\x03\x06\x00=\n\t\n\x02\x08\x0b\x12\x03\x06\x00=\n\x08\n\x01\x08\x12\x03\x07\x002\n\t\n\x02\x08\x01\x12\x03\x07\x002\n&\n\x02\x06\x00\x12\x04\n\x00\x1d\x01\x1a\x1a RPCs for the new MLS API\n\n\n\n\x03\x06\x00\x01\x12\x03\n\x08\x13\n\x9d\x01\n\x04\x06\x00\x02\x00\x12\x04\r\x02\x0e\x03\x1a\x8e\x01 Publishes an identity update for an XID or wallet. An identity update may\n consist of multiple identity actions that have been batch signed.\n\n\x0c\n\x05\x06\x00\x02\x00\x01\x12\x03\r\x06\x1b\n\x0c\n\x05\x06\x00\x02\x00\x02\x12\x03\r\x1c8\n\x0c\n\x05\x06\x00\x02\x00\x03\x12\x03\rC`\n\xc6\x01\n\x04\x06\x00\x02\x01\x12\x04\x13\x02\x14\x03\x1a\xb7\x01 Used to check for changes related to members of a group.\n Would return an array of any new installations associated with the wallet\n address, and any revocations that have happened.\n\n\x0c\n\x05\x06\x00\x02\x01\x01\x12\x03\x13\x06\x18\n\x0c\n\x05\x06\x00\x02\x01\x02\x12\x03\x13\x192\n\x0c\n\x05\x06\x00\x02\x01\x03\x12\x03\x13=W\n9\n\x04\x06\x00\x02\x02\x12\x04\x17\x02\x18\x03\x1a+ Retrieve the XIDs for the given addresses\n\n\x0c\n\x05\x06\x00\x02\x02\x01\x12\x03\x17\x06\x11\n\x0c\n\x05\x06\x00\x02\x02\x02\x12\x03\x17\x12$\n\x0c\n\x05\x06\x00\x02\x02\x03\x12\x03\x17/B\nD\n\x04\x06\x00\x02\x03\x12\x04\x1b\x02\x1c\x03\x1a6 Verify an unverified smart contract wallet signature\n\n\x0c\n\x05\x06\x00\x02\x03\x01\x12\x03\x1b\x06)\n\x0c\n\x05\x06\x00\x02\x03\x02\x12\x03\x1b*T\n\r\n\x05\x06\x00\x02\x03\x03\x12\x04\x1b_\x8a\x01\n\n\n\x02\x04\x00\x12\x04\x1f\x00!\x01\n\n\n\x03\x04\x00\x01\x12\x03\x1f\x082\n\x0b\n\x04\x04\x00\x02\x00\x12\x03 \x02M\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x03 \x02\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03 \x0b=\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03 >H\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03 KL\n\n\n\x02\x04\x01\x12\x04#\x00,\x01\n\n\n\x03\x04\x01\x01\x12\x03#\x08:\n`\n\x04\x04\x01\x02\x00\x12\x03&\x02\x18\x1aS CAIP-10 string\n https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-10.md\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03&\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03&\t\x13\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03&\x16\x17\nG\n\x04\x04\x01\x02\x01\x12\x03(\x02#\x1a: Specify the block number to verify the signature against\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03(\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03(\x0b\x11\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03(\x12\x1e\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03(!\"\n\"\n\x04\x04\x01\x02\x02\x12\x03*\x02\x16\x1a\x15 The signature bytes\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03*\x02\x07\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03*\x08\x11\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03*\x14\x15\n\x0b\n\x04\x04\x01\x02\x03\x12\x03+\x02\x11\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03+\x02\x07\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03+\x08\x0c\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03+\x0f\x10\n\n\n\x02\x04\x02\x12\x04.\x006\x01\n\n\n\x03\x04\x02\x01\x12\x03.\x083\n\x0c\n\x04\x04\x02\x03\x00\x12\x04/\x023\x03\n\x0c\n\x05\x04\x02\x03\x00\x01\x12\x03/\n\x1c\n\r\n\x06\x04\x02\x03\x00\x02\x00\x12\x030\x04\x16\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x05\x12\x030\x04\x08\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x01\x12\x030\t\x11\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x03\x12\x030\x14\x15\n\r\n\x06\x04\x02\x03\x00\x02\x01\x12\x031\x04%\n\x0e\n\x07\x04\x02\x03\x00\x02\x01\x04\x12\x031\x04\x0c\n\x0e\n\x07\x04\x02\x03\x00\x02\x01\x05\x12\x031\r\x13\n\x0e\n\x07\x04\x02\x03\x00\x02\x01\x01\x12\x031\x14 \n\x0e\n\x07\x04\x02\x03\x00\x02\x01\x03\x12\x031#$\n\r\n\x06\x04\x02\x03\x00\x02\x02\x12\x032\x04\x1e\n\x0e\n\x07\x04\x02\x03\x00\x02\x02\x04\x12\x032\x04\x0c\n\x0e\n\x07\x04\x02\x03\x00\x02\x02\x05\x12\x032\r\x13\n\x0e\n\x07\x04\x02\x03\x00\x02\x02\x01\x12\x032\x14\x19\n\x0e\n\x07\x04\x02\x03\x00\x02\x02\x03\x12\x032\x1c\x1d\n\x0b\n\x04\x04\x02\x02\x00\x12\x035\x02,\n\x0c\n\x05\x04\x02\x02\x00\x04\x12\x035\x02\n\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x035\x0b\x1d\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x035\x1e\'\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x035*+\n9\n\x02\x04\x03\x12\x049\x00;\x01\x1a- Publishes an identity update to the network\n\n\n\n\x03\x04\x03\x01\x12\x039\x08$\n\x0b\n\x04\x04\x03\x02\x00\x12\x03:\x02@\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03:\x02+\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03:,;\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03:>?\n>\n\x02\x04\x04\x12\x03>\x00(\x1a3 The response when an identity update is published\n\n\n\n\x03\x04\x04\x01\x12\x03>\x08%\nF\n\x02\x04\x05\x12\x04A\x00J\x01\x1a: Get all updates for an identity since the specified time\n\n\n\n\x03\x04\x05\x01\x12\x03A\x08!\n\x8f\x01\n\x04\x04\x05\x03\x00\x12\x04D\x02G\x03\x1a\x80\x01 Points to the last entry the client has received. The sequence_id should be\n set to 0 if the client has not received anything.\n\n\x0c\n\x05\x04\x05\x03\x00\x01\x12\x03D\n\x11\n\r\n\x06\x04\x05\x03\x00\x02\x00\x12\x03E\x04\x18\n\x0e\n\x07\x04\x05\x03\x00\x02\x00\x05\x12\x03E\x04\n\n\x0e\n\x07\x04\x05\x03\x00\x02\x00\x01\x12\x03E\x0b\x13\n\x0e\n\x07\x04\x05\x03\x00\x02\x00\x03\x12\x03E\x16\x17\n\r\n\x06\x04\x05\x03\x00\x02\x01\x12\x03F\x04\x1b\n\x0e\n\x07\x04\x05\x03\x00\x02\x01\x05\x12\x03F\x04\n\n\x0e\n\x07\x04\x05\x03\x00\x02\x01\x01\x12\x03F\x0b\x16\n\x0e\n\x07\x04\x05\x03\x00\x02\x01\x03\x12\x03F\x19\x1a\n\x0b\n\x04\x04\x05\x02\x00\x12\x03I\x02 \n\x0c\n\x05\x04\x05\x02\x00\x04\x12\x03I\x02\n\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03I\x0b\x12\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03I\x13\x1b\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03I\x1e\x1f\nB\n\x02\x04\x06\x12\x04M\x00\\\x01\x1a6 Returns all log entries for the requested identities\n\n\n\n\x03\x04\x06\x01\x12\x03M\x08\"\n<\n\x04\x04\x06\x03\x00\x12\x04O\x02S\x03\x1a. A single entry in the XID log on the server.\n\n\x0c\n\x05\x04\x06\x03\x00\x01\x12\x03O\n\x1b\n\r\n\x06\x04\x06\x03\x00\x02\x00\x12\x03P\x04\x1b\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x05\x12\x03P\x04\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x01\x12\x03P\x0b\x16\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x03\x12\x03P\x19\x1a\n\r\n\x06\x04\x06\x03\x00\x02\x01\x12\x03Q\x04#\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x05\x12\x03Q\x04\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x01\x12\x03Q\x0b\x1e\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x03\x12\x03Q!\"\n\r\n\x06\x04\x06\x03\x00\x02\x02\x12\x03R\x049\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x06\x12\x03R\x04-\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x01\x12\x03R.4\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x03\x12\x03R78\nT\n\x04\x04\x06\x03\x01\x12\x04V\x02Y\x03\x1aF The update log for a single identity, starting after the last cursor\n\n\x0c\n\x05\x04\x06\x03\x01\x01\x12\x03V\n\x12\n\r\n\x06\x04\x06\x03\x01\x02\x00\x12\x03W\x04\x18\n\x0e\n\x07\x04\x06\x03\x01\x02\x00\x05\x12\x03W\x04\n\n\x0e\n\x07\x04\x06\x03\x01\x02\x00\x01\x12\x03W\x0b\x13\n\x0e\n\x07\x04\x06\x03\x01\x02\x00\x03\x12\x03W\x16\x17\n\r\n\x06\x04\x06\x03\x01\x02\x01\x12\x03X\x04+\n\x0e\n\x07\x04\x06\x03\x01\x02\x01\x04\x12\x03X\x04\x0c\n\x0e\n\x07\x04\x06\x03\x01\x02\x01\x06\x12\x03X\r\x1e\n\x0e\n\x07\x04\x06\x03\x01\x02\x01\x01\x12\x03X\x1f&\n\x0e\n\x07\x04\x06\x03\x01\x02\x01\x03\x12\x03X)*\n\x0b\n\x04\x04\x06\x02\x00\x12\x03[\x02\"\n\x0c\n\x05\x04\x06\x02\x00\x04\x12\x03[\x02\n\n\x0c\n\x05\x04\x06\x02\x00\x06\x12\x03[\x0b\x13\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03[\x14\x1d\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03[ !\nB\n\x02\x04\x07\x12\x04_\x00g\x01\x1a6 Request to retrieve the XIDs for the given addresses\n\n\n\n\x03\x04\x07\x01\x12\x03_\x08\x1a\n4\n\x04\x04\x07\x03\x00\x12\x04a\x02d\x03\x1a& A single request for a given address\n\n\x0c\n\x05\x04\x07\x03\x00\x01\x12\x03a\n\x11\n\r\n\x06\x04\x07\x03\x00\x02\x00\x12\x03b\x04\x1a\n\x0e\n\x07\x04\x07\x03\x00\x02\x00\x05\x12\x03b\x04\n\n\x0e\n\x07\x04\x07\x03\x00\x02\x00\x01\x12\x03b\x0b\x15\n\x0e\n\x07\x04\x07\x03\x00\x02\x00\x03\x12\x03b\x18\x19\n\r\n\x06\x04\x07\x03\x00\x02\x01\x12\x03c\x04B\n\x0e\n\x07\x04\x07\x03\x00\x02\x01\x06\x12\x03c\x04-\n\x0e\n\x07\x04\x07\x03\x00\x02\x01\x01\x12\x03c.=\n\x0e\n\x07\x04\x07\x03\x00\x02\x01\x03\x12\x03c@A\n\x0b\n\x04\x04\x07\x02\x00\x12\x03f\x02 \n\x0c\n\x05\x04\x07\x02\x00\x04\x12\x03f\x02\n\n\x0c\n\x05\x04\x07\x02\x00\x06\x12\x03f\x0b\x12\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03f\x13\x1b\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03f\x1e\x1f\n@\n\x02\x04\x08\x12\x04j\x00s\x01\x1a4 Response with the XIDs for the requested addresses\n\n\n\n\x03\x04\x08\x01\x12\x03j\x08\x1b\n5\n\x04\x04\x08\x03\x00\x12\x04l\x02p\x03\x1a\' A single response for a given address\n\n\x0c\n\x05\x04\x08\x03\x00\x01\x12\x03l\n\x12\n\r\n\x06\x04\x08\x03\x00\x02\x00\x12\x03m\x04\x1a\n\x0e\n\x07\x04\x08\x03\x00\x02\x00\x05\x12\x03m\x04\n\n\x0e\n\x07\x04\x08\x03\x00\x02\x00\x01\x12\x03m\x0b\x15\n\x0e\n\x07\x04\x08\x03\x00\x02\x00\x03\x12\x03m\x18\x19\n\r\n\x06\x04\x08\x03\x00\x02\x01\x12\x03n\x04!\n\x0e\n\x07\x04\x08\x03\x00\x02\x01\x04\x12\x03n\x04\x0c\n\x0e\n\x07\x04\x08\x03\x00\x02\x01\x05\x12\x03n\r\x13\n\x0e\n\x07\x04\x08\x03\x00\x02\x01\x01\x12\x03n\x14\x1c\n\x0e\n\x07\x04\x08\x03\x00\x02\x01\x03\x12\x03n\x1f \n\r\n\x06\x04\x08\x03\x00\x02\x02\x12\x03o\x04B\n\x0e\n\x07\x04\x08\x03\x00\x02\x02\x06\x12\x03o\x04-\n\x0e\n\x07\x04\x08\x03\x00\x02\x02\x01\x12\x03o.=\n\x0e\n\x07\x04\x08\x03\x00\x02\x02\x03\x12\x03o@A\n\x0b\n\x04\x04\x08\x02\x00\x12\x03r\x02\"\n\x0c\n\x05\x04\x08\x02\x00\x04\x12\x03r\x02\n\n\x0c\n\x05\x04\x08\x02\x00\x06\x12\x03r\x0b\x13\n\x0c\n\x05\x04\x08\x02\x00\x01\x12\x03r\x14\x1d\n\x0c\n\x05\x04\x08\x02\x00\x03\x12\x03r !b\x06proto3\n\xf9\x02\n\x19identity/credential.proto\x12\rxmtp.identity\"*\n\rMlsCredential\x12\x19\n\x08inbox_id\x18\x01 \x01(\tR\x07inboxIdB?\n\x17org.xmtp.proto.identityZ$github.com/xmtp/proto/v3/go/identityJ\xd7\x01\n\x06\x12\x04\x01\x00\x0b\x01\n\x17\n\x01\x0c\x12\x03\x01\x00\x12\x1a\r Credentials\n\n\x08\n\x01\x02\x12\x03\x03\x00\x16\n\x08\n\x01\x08\x12\x03\x05\x00;\n\t\n\x02\x08\x0b\x12\x03\x05\x00;\n\x08\n\x01\x08\x12\x03\x06\x000\n\t\n\x02\x08\x01\x12\x03\x06\x000\n=\n\x02\x04\x00\x12\x04\t\x00\x0b\x01\x1a1 A credential that can be used in MLS leaf nodes\n\n\n\n\x03\x04\x00\x01\x12\x03\t\x08\x15\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\n\x02\x16\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\n\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\n\t\x11\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\n\x14\x15b\x06proto3\n\xac\x11\n!message_contents/ciphertext.proto\x12\x15xmtp.message_contents\x1a message_contents/signature.proto\"\xee\x01\n\nCiphertext\x12l\n\x16aes256_gcm_hkdf_sha256\x18\x01 \x01(\x0b25.xmtp.message_contents.Ciphertext.Aes256gcmHkdfsha256H\x00R\x13aes256GcmHkdfSha256\x1ai\n\x13Aes256gcmHkdfsha256\x12\x1b\n\thkdf_salt\x18\x01 \x01(\x0cR\x08hkdfSalt\x12\x1b\n\tgcm_nonce\x18\x02 \x01(\x0cR\x08gcmNonce\x12\x18\n\x07payload\x18\x03 \x01(\x0cR\x07payloadB\x07\n\x05union\"\xf5\x01\n\x15SignedEciesCiphertext\x12\x1f\n\x0becies_bytes\x18\x01 \x01(\x0cR\neciesBytes\x12>\n\tsignature\x18\x02 \x01(\x0b2 .xmtp.message_contents.SignatureR\tsignature\x1a{\n\x05Ecies\x120\n\x14ephemeral_public_key\x18\x01 \x01(\x0cR\x12ephemeralPublicKey\x12\x0e\n\x02iv\x18\x02 \x01(\x0cR\x02iv\x12\x10\n\x03mac\x18\x03 \x01(\x0cR\x03mac\x12\x1e\n\nciphertext\x18\x04 \x01(\x0cR\nciphertextBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\x8b\x0c\n\x06\x12\x04\x01\x00,\x01\nD\n\x01\x0c\x12\x03\x01\x00\x12\x1a: Ciphertext is a generic structure for encrypted payload.\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x05\x00*\n\x08\n\x01\x08\x12\x03\x07\x00C\n\t\n\x02\x08\x0b\x12\x03\x07\x00C\n\x08\n\x01\x08\x12\x03\x08\x008\n\t\n\x02\x08\x01\x12\x03\x08\x008\n\xe6\x01\n\x02\x04\x00\x12\x04\x0e\x00\x1c\x01\x1a\xd9\x01 Ciphertext represents encrypted payload.\n It is definited as a union to support cryptographic algorithm agility.\n The payload is accompanied by the cryptographic parameters\n required by the chosen encryption scheme.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0e\x08\x12\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\x0f\x02\x11\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x0f\x08\r\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x10\x043\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x10\x04\x17\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x10\x18.\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x1012\nl\n\x04\x04\x00\x03\x00\x12\x04\x17\x02\x1b\x03\x1a> Encryption: AES256-GCM\n Key derivation function: HKDF-SHA256\n2\x1e Supported Encryption Schemes\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x17\n\x1d\n\x19\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\x18\x04\x18\"\n 32 bytes\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\x18\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\x18\n\x13\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\x18\x16\x17\n\x19\n\x06\x04\x00\x03\x00\x02\x01\x12\x03\x19\x04\x18\"\n 12 bytes\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x05\x12\x03\x19\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x01\x12\x03\x19\n\x13\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x03\x12\x03\x19\x16\x17\n\"\n\x06\x04\x00\x03\x00\x02\x02\x12\x03\x1a\x04\x16\"\x13 encrypted payload\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x02\x05\x12\x03\x1a\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x02\x01\x12\x03\x1a\n\x11\n\x0e\n\x07\x04\x00\x03\x00\x02\x02\x03\x12\x03\x1a\x14\x15\nY\n\x02\x04\x01\x12\x04\x1f\x00,\x01\x1aM SignedEciesCiphertext represents an ECIES encrypted payload and a signature\n\n\n\n\x03\x04\x01\x01\x12\x03\x1f\x08\x1d\nD\n\x04\x04\x01\x03\x00\x12\x04!\x02&\x03\x1a6 Ecies is ciphertext encrypted using ECIES with a MAC\n\n\x0c\n\x05\x04\x01\x03\x00\x01\x12\x03!\n\x0f\n\x19\n\x06\x04\x01\x03\x00\x02\x00\x12\x03\"\x04#\"\n 65 bytes\n\n\x0e\n\x07\x04\x01\x03\x00\x02\x00\x05\x12\x03\"\x04\t\n\x0e\n\x07\x04\x01\x03\x00\x02\x00\x01\x12\x03\"\n\x1e\n\x0e\n\x07\x04\x01\x03\x00\x02\x00\x03\x12\x03\"!\"\n\x19\n\x06\x04\x01\x03\x00\x02\x01\x12\x03#\x04\x11\"\n 16 bytes\n\n\x0e\n\x07\x04\x01\x03\x00\x02\x01\x05\x12\x03#\x04\t\n\x0e\n\x07\x04\x01\x03\x00\x02\x01\x01\x12\x03#\n\x0c\n\x0e\n\x07\x04\x01\x03\x00\x02\x01\x03\x12\x03#\x0f\x10\n\x19\n\x06\x04\x01\x03\x00\x02\x02\x12\x03$\x04\x12\"\n 32 bytes\n\n\x0e\n\x07\x04\x01\x03\x00\x02\x02\x05\x12\x03$\x04\t\n\x0e\n\x07\x04\x01\x03\x00\x02\x02\x01\x12\x03$\n\r\n\x0e\n\x07\x04\x01\x03\x00\x02\x02\x03\x12\x03$\x10\x11\n8\n\x06\x04\x01\x03\x00\x02\x03\x12\x03%\x04\x19\") encrypted payload with block size of 16\n\n\x0e\n\x07\x04\x01\x03\x00\x02\x03\x05\x12\x03%\x04\t\n\x0e\n\x07\x04\x01\x03\x00\x02\x03\x01\x12\x03%\n\x14\n\x0e\n\x07\x04\x01\x03\x00\x02\x03\x03\x12\x03%\x17\x18\n\'\n\x04\x04\x01\x02\x00\x12\x03)\x02\x18\x1a\x1a serialized Ecies message\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03)\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03)\x08\x13\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03)\x16\x17\nK\n\x04\x04\x01\x02\x01\x12\x03+\x020\x1a> signature of sha256(ecies_bytes) signed with the IdentityKey\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03+\x02!\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03+\"+\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03+./b\x06proto3\n\xf8\x17\n\x1emessage_contents/content.proto\x12\x15xmtp.message_contents\x1a!message_contents/public_key.proto\x1a message_contents/signature.proto\"\x95\x01\n\rContentTypeId\x12!\n\x0cauthority_id\x18\x01 \x01(\tR\x0bauthorityId\x12\x17\n\x07type_id\x18\x02 \x01(\tR\x06typeId\x12#\n\rversion_major\x18\x03 \x01(\rR\x0cversionMajor\x12#\n\rversion_minor\x18\x04 \x01(\rR\x0cversionMinor\"\x83\x03\n\x0eEncodedContent\x128\n\x04type\x18\x01 \x01(\x0b2$.xmtp.message_contents.ContentTypeIdR\x04type\x12U\n\nparameters\x18\x02 \x03(\x0b25.xmtp.message_contents.EncodedContent.ParametersEntryR\nparameters\x12\x1f\n\x08fallback\x18\x03 \x01(\tH\x00R\x08fallback\x88\x01\x01\x12I\n\x0bcompression\x18\x05 \x01(\x0e2\".xmtp.message_contents.CompressionH\x01R\x0bcompression\x88\x01\x01\x12\x18\n\x07content\x18\x04 \x01(\x0cR\x07content\x1a=\n\x0fParametersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x0b\n\t_fallbackB\x0e\n\x0c_compression\"\xaf\x01\n\rSignedContent\x12\x18\n\x07payload\x18\x01 \x01(\x0cR\x07payload\x12D\n\x06sender\x18\x02 \x01(\x0b2,.xmtp.message_contents.SignedPublicKeyBundleR\x06sender\x12>\n\tsignature\x18\x03 \x01(\x0b2 .xmtp.message_contents.SignatureR\tsignature*<\n\x0bCompression\x12\x17\n\x13COMPRESSION_DEFLATE\x10\x00\x12\x14\n\x10COMPRESSION_GZIP\x10\x01BO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\x92\x10\n\x06\x12\x04\x01\x006\x01\n/\n\x01\x0c\x12\x03\x01\x00\x12\x1a% Message content encoding structures\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x05\x00+\n\t\n\x02\x03\x01\x12\x03\x06\x00*\n\x08\n\x01\x08\x12\x03\x08\x00C\n\t\n\x02\x08\x0b\x12\x03\x08\x00C\n\x08\n\x01\x08\x12\x03\t\x008\n\t\n\x02\x08\x01\x12\x03\t\x008\nX\n\x02\x04\x00\x12\x04\x0c\x00\x11\x01\x1aL ContentTypeId is used to identify the type of content stored in a Message.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0c\x08\x15\n4\n\x04\x04\x00\x02\x00\x12\x03\r\x02\x1a\"\' authority governing this content type\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\r\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\r\t\x15\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\r\x18\x19\n\x1e\n\x04\x04\x00\x02\x01\x12\x03\x0e\x02\x15\"\x11 type identifier\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0e\t\x10\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0e\x13\x14\n(\n\x04\x04\x00\x02\x02\x12\x03\x0f\x02\x1b\"\x1b major version of the type\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x0f\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0f\t\x16\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0f\x19\x1a\n(\n\x04\x04\x00\x02\x03\x12\x03\x10\x02\x1b\"\x1b minor version of the type\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x10\x02\x08\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x10\t\x16\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x10\x19\x1a\ng\n\x02\x05\x00\x12\x04\x15\x00\x18\x01\x1a[ Recognized compression algorithms\n protolint:disable ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH\n\n\n\n\x03\x05\x00\x01\x12\x03\x15\x05\x10\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x16\x02\x1a\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x16\x02\x15\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x16\x18\x19\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x17\x02\x17\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x17\x02\x12\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x17\x15\x16\n\xa3\x01\n\x02\x04\x01\x12\x04\x1d\x00+\x01\x1a\x96\x01 EncodedContent bundles the content with metadata identifying its type\n and parameters required for correct decoding and presentation of the content.\n\n\n\n\x03\x04\x01\x01\x12\x03\x1d\x08\x16\ne\n\x04\x04\x01\x02\x00\x12\x03 \x02\x19\x1aX content type identifier used to match the payload with\n the correct decoding machinery\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03 \x02\x0f\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03 \x10\x14\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03 \x17\x18\nT\n\x04\x04\x01\x02\x01\x12\x03\"\x02%\x1aG optional encoding parameters required to correctly decode the content\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\"\x02\x15\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\"\x16 \n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\"#$\n\x84\x01\n\x04\x04\x01\x02\x02\x12\x03%\x02\x1f\x1aw optional fallback description of the content that can be used in case\n the client cannot decode or render the content\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03%\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03%\x0b\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03%\x12\x1a\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03%\x1d\x1e\nn\n\x04\x04\x01\x02\x03\x12\x03(\x02\'\x1aa optional compression; the value indicates algorithm used to\n compress the encoded content bytes\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03(\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03(\x0b\x16\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03(\x17\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03(%&\n%\n\x04\x04\x01\x02\x04\x12\x03*\x02\x14\x1a\x18 encoded content itself\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03*\x02\x07\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03*\x08\x0f\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03*\x12\x13\nC\n\x02\x04\x02\x12\x04.\x006\x01\x1a7 SignedContent attaches a signature to EncodedContent.\n\n\n\n\x03\x04\x02\x01\x12\x03.\x08\x15\n*\n\x04\x04\x02\x02\x00\x12\x030\x02\x14\x1a\x1d MUST contain EncodedContent\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x030\x02\x07\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x030\x08\x0f\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x030\x12\x13\n\x0b\n\x04\x04\x02\x02\x01\x12\x031\x02#\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x031\x02\x17\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x031\x18\x1e\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x031!\"\n\x8a\x01\n\x04\x04\x02\x02\x02\x12\x035\x02\x1a\x1a} MUST be a signature of a concatenation of\n the message header bytes and the payload bytes,\n signed by the sender\'s pre-key.\n\n\x0c\n\x05\x04\x02\x02\x02\x06\x12\x035\x02\x0b\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x035\x0c\x15\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x035\x18\x19b\x06proto3\n\x8c\x07\n message_contents/composite.proto\x12\x15xmtp.message_contents\x1a\x1emessage_contents/content.proto\"\xdb\x01\n\tComposite\x12;\n\x05parts\x18\x01 \x03(\x0b2%.xmtp.message_contents.Composite.PartR\x05parts\x1a\x90\x01\n\x04Part\x12;\n\x04part\x18\x01 \x01(\x0b2%.xmtp.message_contents.EncodedContentH\x00R\x04part\x12@\n\tcomposite\x18\x02 \x01(\x0b2 .xmtp.message_contents.CompositeH\x00R\tcompositeB\t\n\x07elementBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xf9\x03\n\x06\x12\x04\x01\x00\x15\x01\n!\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x17 Composite ContentType\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x05\x00(\n\x08\n\x01\x08\x12\x03\x07\x00C\n\t\n\x02\x08\x0b\x12\x03\x07\x00C\n\x08\n\x01\x08\x12\x03\x08\x008\n\t\n\x02\x08\x01\x12\x03\x08\x008\nL\n\x02\x04\x00\x12\x04\x0b\x00\x15\x01\x1a@ Composite is used to implement xmtp.org/composite content type\n\n\n\n\x03\x04\x00\x01\x12\x03\x0b\x08\x11\nB\n\x04\x04\x00\x03\x00\x12\x04\r\x02\x12\x03\x1a4 Part represents one section of a composite message\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\r\n\x0e\n\x0e\n\x06\x04\x00\x03\x00\x08\x00\x12\x04\x0e\x04\x11\x05\n\x0e\n\x07\x04\x00\x03\x00\x08\x00\x01\x12\x03\x0e\n\x11\n\r\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\x0f\x06\x1e\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x06\x12\x03\x0f\x06\x14\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\x0f\x15\x19\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\x0f\x1c\x1d\n\r\n\x06\x04\x00\x03\x00\x02\x01\x12\x03\x10\x06\x1e\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x06\x12\x03\x10\x06\x0f\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x01\x12\x03\x10\x10\x19\n\x0e\n\x07\x04\x00\x03\x00\x02\x01\x03\x12\x03\x10\x1c\x1d\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x14\x02\x1a\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x03\x14\x02\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x14\x0b\x0f\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x14\x10\x15\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x14\x18\x19b\x06proto3\n\xed\n\n\x1emessage_contents/contact.proto\x12\x15xmtp.message_contents\x1a!message_contents/public_key.proto\"X\n\x0fContactBundleV1\x12E\n\nkey_bundle\x18\x01 \x01(\x0b2&.xmtp.message_contents.PublicKeyBundleR\tkeyBundle\"^\n\x0fContactBundleV2\x12K\n\nkey_bundle\x18\x01 \x01(\x0b2,.xmtp.message_contents.SignedPublicKeyBundleR\tkeyBundle\"\x8e\x01\n\rContactBundle\x128\n\x02v1\x18\x01 \x01(\x0b2&.xmtp.message_contents.ContactBundleV1H\x00R\x02v1\x128\n\x02v2\x18\x02 \x01(\x0b2&.xmtp.message_contents.ContactBundleV2H\x00R\x02v2B\t\n\x07versionBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xec\x06\n\x06\x12\x04\x05\x00\x1f\x01\n\xc9\x02\n\x01\x0c\x12\x03\x05\x00\x12\x1a\xbe\x02 Contact Bundles are used to advertise user\'s public keys on the network.\n They are published in well known topics so that other participants\n can find them when they wish to communicate with the user.\n The public keys are used to sign messages and to derive encryption keys\n for some meta-messages, e.g. invitations.\n\n\x08\n\x01\x02\x12\x03\x07\x00\x1e\n\t\n\x02\x03\x00\x12\x03\t\x00+\n\x08\n\x01\x08\x12\x03\x0b\x00C\n\t\n\x02\x08\x0b\x12\x03\x0b\x00C\n\x08\n\x01\x08\x12\x03\x0c\x008\n\t\n\x02\x08\x01\x12\x03\x0c\x008\nZ\n\x02\x04\x00\x12\x04\x10\x00\x12\x01\x1aN LEGACY: User key bundle V1 using PublicKeys.\n The PublicKeys MUST be signed.\n\n\n\n\x03\x04\x00\x01\x12\x03\x10\x08\x17\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x11\x02!\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x11\x02\x11\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x11\x12\x1c\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x11\x1f \n8\n\x02\x04\x01\x12\x04\x15\x00\x17\x01\x1a, User key bundle V2 using SignedPublicKeys.\n\n\n\n\x03\x04\x01\x01\x12\x03\x15\x08\x17\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x16\x02\'\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03\x16\x02\x17\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x16\x18\"\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x16%&\n%\n\x02\x04\x02\x12\x04\x1a\x00\x1f\x01\x1a\x19 Versioned ContactBundle\n\n\n\n\x03\x04\x02\x01\x12\x03\x1a\x08\x15\n\x0c\n\x04\x04\x02\x08\x00\x12\x04\x1b\x02\x1e\x03\n\x0c\n\x05\x04\x02\x08\x00\x01\x12\x03\x1b\x08\x0f\n\x0b\n\x04\x04\x02\x02\x00\x12\x03\x1c\x04\x1b\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03\x1c\x04\x13\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03\x1c\x14\x16\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03\x1c\x19\x1a\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\x1d\x04\x1b\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03\x1d\x04\x13\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x1d\x14\x16\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\x1d\x19\x1ab\x06proto3\n\xbf$\n!message_contents/invitation.proto\x12\x15xmtp.message_contents\x1a!message_contents/ciphertext.proto\x1a!message_contents/public_key.proto\"\xbd\x04\n\x0cInvitationV1\x12\x14\n\x05topic\x18\x01 \x01(\tR\x05topic\x12E\n\x07context\x18\x02 \x01(\x0b2+.xmtp.message_contents.InvitationV1.ContextR\x07context\x12n\n\x16aes256_gcm_hkdf_sha256\x18\x03 \x01(\x0b27.xmtp.message_contents.InvitationV1.Aes256gcmHkdfsha256H\x00R\x13aes256GcmHkdfSha256\x12O\n\rconsent_proof\x18\x04 \x01(\x0b2*.xmtp.message_contents.ConsentProofPayloadR\x0cconsentProof\x1a8\n\x13Aes256gcmHkdfsha256\x12!\n\x0ckey_material\x18\x01 \x01(\x0cR\x0bkeyMaterial\x1a\xc6\x01\n\x07Context\x12\'\n\x0fconversation_id\x18\x01 \x01(\tR\x0econversationId\x12U\n\x08metadata\x18\x02 \x03(\x0b29.xmtp.message_contents.InvitationV1.Context.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x0c\n\nencryption\"\xcb\x01\n\x18SealedInvitationHeaderV1\x12D\n\x06sender\x18\x01 \x01(\x0b2,.xmtp.message_contents.SignedPublicKeyBundleR\x06sender\x12J\n\trecipient\x18\x02 \x01(\x0b2,.xmtp.message_contents.SignedPublicKeyBundleR\trecipient\x12\x1d\n\ncreated_ns\x18\x03 \x01(\x04R\tcreatedNs\"z\n\x12SealedInvitationV1\x12!\n\x0cheader_bytes\x18\x01 \x01(\x0cR\x0bheaderBytes\x12A\n\nciphertext\x18\x02 \x01(\x0b2!.xmtp.message_contents.CiphertextR\nciphertext\"`\n\x10SealedInvitation\x12;\n\x02v1\x18\x01 \x01(\x0b2).xmtp.message_contents.SealedInvitationV1H\x00R\x02v1B\t\n\x07versionJ\x04\x08\x02\x10\x03\"\xad\x01\n\x13ConsentProofPayload\x12\x1c\n\tsignature\x18\x01 \x01(\tR\tsignature\x12\x1c\n\ttimestamp\x18\x02 \x01(\x04R\ttimestamp\x12Z\n\x0fpayload_version\x18\x03 \x01(\x0e21.xmtp.message_contents.ConsentProofPayloadVersionR\x0epayloadVersion*p\n\x1aConsentProofPayloadVersion\x12-\n)CONSENT_PROOF_PAYLOAD_VERSION_UNSPECIFIED\x10\x00\x12#\n\x1fCONSENT_PROOF_PAYLOAD_VERSION_1\x10\x01BO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xd5\x18\n\x06\x12\x04\x03\x00[\x01\n\xd4\x01\n\x01\x0c\x12\x03\x03\x00\x12\x1a\xc9\x01 Invitation is used by an initiator to invite participants\n into a new conversation. Invitation carries the chosen topic name\n and encryption scheme and key material to be used for message encryption.\n\n\x08\n\x01\x02\x12\x03\x05\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x07\x00+\n\t\n\x02\x03\x01\x12\x03\x08\x00+\n\x08\n\x01\x08\x12\x03\n\x00C\n\t\n\x02\x08\x0b\x12\x03\n\x00C\n\x08\n\x01\x08\x12\x03\x0b\x008\n\t\n\x02\x08\x01\x12\x03\x0b\x008\n$\n\x02\x04\x00\x12\x04\x0e\x00-\x01\x1a\x18 Unsealed invitation V1\n\n\n\n\x03\x04\x00\x01\x12\x03\x0e\x08\x14\nD\n\x04\x04\x00\x03\x00\x12\x04\x11\x02\x13\x03\x1a6 Supported encryption schemes\n AES256-GCM-HKDF-SHA256\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x11\n\x1d\n;\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\x12\x04\x1b\", randomly generated key material (32 bytes)\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\x12\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\x12\n\x16\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\x12\x19\x1a\n \n\x04\x04\x00\x03\x01\x12\x04\x16\x02\x1c\x03\x1a\x12 The context type\n\n\x0c\n\x05\x04\x00\x03\x01\x01\x12\x03\x16\n\x11\n:\n\x06\x04\x00\x03\x01\x02\x00\x12\x03\x18\x04\x1f\x1a+ Expected to be a URI (ie xmtp.org/convo1)\n\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x05\x12\x03\x18\x04\n\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x01\x12\x03\x18\x0b\x1a\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x03\x12\x03\x18\x1d\x1e\n\x86\x01\n\x06\x04\x00\x03\x01\x02\x01\x12\x03\x1b\x04%\x1aw Key value map of additional metadata that would be exposed to\n application developers and could be used for filtering\n\n\x0e\n\x07\x04\x00\x03\x01\x02\x01\x06\x12\x03\x1b\x04\x17\n\x0e\n\x07\x04\x00\x03\x01\x02\x01\x01\x12\x03\x1b\x18 \n\x0e\n\x07\x04\x00\x03\x01\x02\x01\x03\x12\x03\x1b#$\n\x92\x01\n\x04\x04\x00\x02\x00\x12\x03 \x02\x13\x1a\x84\x01 topic name chosen for this conversation.\n It MUST be randomly generated bytes (length >= 32),\n then base64 encoded without padding\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03 \x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03 \t\x0e\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03 \x11\x12\n1\n\x04\x04\x00\x02\x01\x12\x03#\x02\x16\x1a$ A context object defining metadata\n\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03#\x02\t\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03#\n\x11\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03#\x14\x15\nI\n\x04\x04\x00\x08\x00\x12\x04&\x02)\x03\x1a; message encryption scheme and keys for this conversation.\n\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03&\x08\x12\nR\n\x04\x04\x00\x02\x02\x12\x03(\x043\x1aE Specify the encryption method to process the key material properly.\n\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03(\x04\x17\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03(\x18.\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03(12\n\'\n\x04\x04\x00\x02\x03\x12\x03,\x02(\x1a\x1a The user\'s consent proof\n\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03,\x02\x15\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03,\x16#\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03,&\'\n\x83\x02\n\x02\x04\x01\x12\x043\x007\x01\x1a\xf6\x01 Sealed Invitation V1 Header\n Header carries information that is unencrypted, thus readable by the network\n it is however authenticated as associated data with the AEAD scheme used\n to encrypt the invitation body, thus providing tamper evidence.\n\n\n\n\x03\x04\x01\x01\x12\x033\x08 \n\x0b\n\x04\x04\x01\x02\x00\x12\x034\x02#\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x034\x02\x17\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x034\x18\x1e\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x034!\"\n\x0b\n\x04\x04\x01\x02\x01\x12\x035\x02&\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x035\x02\x17\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x035\x18!\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x035$%\n\x0b\n\x04\x04\x01\x02\x02\x12\x036\x02\x18\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x036\x02\x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x036\t\x13\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x036\x16\x17\n\xe4\x01\n\x02\x04\x02\x12\x04=\x00B\x01\x1a\xd7\x01 Sealed Invitation V1\n Invitation encrypted with key material derived from the sender\'s and\n recipient\'s public key bundles using simplified X3DH where\n the sender\'s ephemeral key is replaced with sender\'s pre-key.\n\n\n\n\x03\x04\x02\x01\x12\x03=\x08\x1a\nV\n\x04\x04\x02\x02\x00\x12\x03?\x02\x19\x1aI encoded SealedInvitationHeaderV1 used as associated data for Ciphertext\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03?\x02\x07\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03?\x08\x14\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03?\x17\x18\nF\n\x04\x04\x02\x02\x01\x12\x03A\x02\x1c\x1a9 Ciphertext.payload MUST contain encrypted InvitationV1.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03A\x02\x0c\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03A\r\x17\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03A\x1a\x1b\n)\n\x02\x04\x03\x12\x04E\x00J\x01\x1a\x1d Versioned Sealed Invitation\n\n\n\n\x03\x04\x03\x01\x12\x03E\x08\x18\n\n\n\x03\x04\x03\t\x12\x03F\x02\r\n\x0b\n\x04\x04\x03\t\x00\x12\x03F\x0b\x0c\n\x0c\n\x05\x04\x03\t\x00\x01\x12\x03F\x0b\x0c\n\x0c\n\x05\x04\x03\t\x00\x02\x12\x03F\x0b\x0c\n\x0c\n\x04\x04\x03\x08\x00\x12\x04G\x02I\x03\n\x0c\n\x05\x04\x03\x08\x00\x01\x12\x03G\x08\x0f\n\x0b\n\x04\x04\x03\x02\x00\x12\x03H\x04\x1e\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03H\x04\x16\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03H\x17\x19\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03H\x1c\x1d\n.\n\x02\x05\x00\x12\x04M\x00P\x01\x1a\" Version of consent proof payload\n\n\n\n\x03\x05\x00\x01\x12\x03M\x05\x1f\n\x0b\n\x04\x05\x00\x02\x00\x12\x03N\x020\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03N\x02+\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03N./\n\x0b\n\x04\x05\x00\x02\x01\x12\x03O\x02&\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03O\x02!\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03O$%\n\x96\x01\n\x02\x04\x04\x12\x04T\x00[\x01\x1a\x89\x01 Payload for user\'s consent proof to be set in the invitation\n Signifying the conversation should be preapproved for the user on receipt\n\n\n\n\x03\x04\x04\x01\x12\x03T\x08\x1b\n1\n\x04\x04\x04\x02\x00\x12\x03V\x02\x17\x1a$ the user\'s signature in hex format\n\n\x0c\n\x05\x04\x04\x02\x00\x05\x12\x03V\x02\x08\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03V\t\x12\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03V\x15\x16\n4\n\x04\x04\x04\x02\x01\x12\x03X\x02\x17\x1a\' approximate time when the user signed\n\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03X\x02\x08\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03X\t\x12\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03X\x15\x16\n%\n\x04\x04\x04\x02\x02\x12\x03Z\x021\x1a\x18 version of the payload\n\n\x0c\n\x05\x04\x04\x02\x02\x06\x12\x03Z\x02\x1c\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03Z\x1d,\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03Z/0b\x06proto3\n\xc4\x07\n-message_contents/conversation_reference.proto\x12\x15xmtp.message_contents\x1a!message_contents/invitation.proto\"\x96\x02\n\x15ConversationReference\x12\x14\n\x05topic\x18\x01 \x01(\tR\x05topic\x12!\n\x0cpeer_address\x18\x02 \x01(\tR\x0bpeerAddress\x12\x1d\n\ncreated_ns\x18\x03 \x01(\x04R\tcreatedNs\x12E\n\x07context\x18\x04 \x01(\x0b2+.xmtp.message_contents.InvitationV1.ContextR\x07context\x12^\n\x15consent_proof_payload\x18\x05 \x01(\x0b2*.xmtp.message_contents.ConsentProofPayloadR\x13consentProofPayloadBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xe6\x03\n\x06\x12\x04\x01\x00\x11\x01\n+\n\x01\x0c\x12\x03\x01\x00\x12\x1a! Holds the ConversationReference\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x05\x00+\n\x08\n\x01\x08\x12\x03\x07\x00C\n\t\n\x02\x08\x0b\x12\x03\x07\x00C\n\x08\n\x01\x08\x12\x03\x08\x008\n\t\n\x02\x08\x01\x12\x03\x08\x008\nQ\n\x02\x04\x00\x12\x04\x0b\x00\x11\x01\x1aE A light pointer for a conversation that contains no decryption keys\n\n\n\n\x03\x04\x00\x01\x12\x03\x0b\x08\x1d\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0c\x02\x13\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x0c\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0c\t\x0e\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0c\x11\x12\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\r\x02\x1a\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\r\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\r\t\x15\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\r\x18\x19\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x0e\x02\x18\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0e\t\x13\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0e\x16\x17\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\x0f\x029\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03\x0f\x02,\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x0f-4\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x0f78\n\x0b\n\x04\x04\x00\x02\x04\x12\x03\x10\x02F\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03\x10\x02+\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x10,A\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x10DEb\x06proto3\n\x85\x04\n\x1cmessage_contents/ecies.proto\x12\x15xmtp.message_contents\"+\n\x0cEciesMessage\x12\x10\n\x02v1\x18\x01 \x01(\x0cH\x00R\x02v1B\t\n\x07versionBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xc7\x02\n\x06\x12\x04\x01\x00\x0e\x01\n1\n\x01\x0c\x12\x03\x01\x00\x12\x1a\' ECIES is a wrapper for ECIES payloads\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\x08\n\x01\x08\x12\x03\x05\x00C\n\t\n\x02\x08\x0b\x12\x03\x05\x00C\n\x08\n\x01\x08\x12\x03\x06\x008\n\t\n\x02\x08\x01\x12\x03\x06\x008\nD\n\x02\x04\x00\x12\x04\t\x00\x0e\x01\x1a8 EciesMessage is a wrapper for ECIES encrypted payloads\n\n\n\n\x03\x04\x00\x01\x12\x03\t\x08\x14\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\n\x02\r\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\n\x08\x0f\n>\n\x04\x04\x00\x02\x00\x12\x03\x0c\x04\x11\x1a1 Expected to be an ECIES encrypted SignedPayload\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x0c\x04\t\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0c\n\x0c\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0c\x0f\x10b\x06proto3\n\xcf\x18\n\x1dmessage_contents/frames.proto\x12\x15xmtp.message_contents\x1a!message_contents/public_key.proto\x1a message_contents/signature.proto\"\xd6\x02\n\x0fFrameActionBody\x12\x1b\n\tframe_url\x18\x01 \x01(\tR\x08frameUrl\x12!\n\x0cbutton_index\x18\x02 \x01(\x05R\x0bbuttonIndex\x12 \n\ttimestamp\x18\x03 \x01(\x04B\x02\x18\x01R\ttimestamp\x12D\n\x1eopaque_conversation_identifier\x18\x04 \x01(\tR\x1copaqueConversationIdentifier\x12%\n\x0eunix_timestamp\x18\x05 \x01(\rR\runixTimestamp\x12\x1d\n\ninput_text\x18\x06 \x01(\tR\tinputText\x12\x14\n\x05state\x18\x07 \x01(\tR\x05state\x12\x18\n\x07address\x18\x08 \x01(\tR\x07address\x12%\n\x0etransaction_id\x18\t \x01(\tR\rtransactionId\"\xd8\x02\n\x0bFrameAction\x12B\n\tsignature\x18\x01 \x01(\x0b2 .xmtp.message_contents.SignatureB\x02\x18\x01R\tsignature\x12i\n\x18signed_public_key_bundle\x18\x02 \x01(\x0b2,.xmtp.message_contents.SignedPublicKeyBundleB\x02\x18\x01R\x15signedPublicKeyBundle\x12\x1f\n\x0baction_body\x18\x03 \x01(\x0cR\nactionBody\x125\n\x16installation_signature\x18\x04 \x01(\x0cR\x15installationSignature\x12\'\n\x0finstallation_id\x18\x05 \x01(\x0cR\x0einstallationId\x12\x19\n\x08inbox_id\x18\x06 \x01(\tR\x07inboxIdBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xc4\x11\n\x06\x12\x04\x01\x004\x01\nG\n\x01\x0c\x12\x03\x01\x00\x12\x1a= Signature is a generic structure for public key signatures.\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x05\x00+\n\t\n\x02\x03\x01\x12\x03\x06\x00*\n\x08\n\x01\x08\x12\x03\x08\x00C\n\t\n\x02\x08\x0b\x12\x03\x08\x00C\n\x08\n\x01\x08\x12\x03\t\x008\n\t\n\x02\x08\x01\x12\x03\t\x008\n\x83\x01\n\x02\x04\x00\x12\x04\r\x00\"\x01\x1aw The message that will be signed by the Client and returned inside the\n `action_body` field of the FrameAction message\n\n\n\n\x03\x04\x00\x01\x12\x03\r\x08\x17\nV\n\x04\x04\x00\x02\x00\x12\x03\x10\x02\x17\x1aI The URL of the frame that was clicked\n May be different from `post_url`\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x10\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x10\t\x12\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x10\x15\x16\n4\n\x04\x04\x00\x02\x01\x12\x03\x12\x02\x19\x1a\' The 1-indexed button that was clicked\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x12\x02\x07\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x12\x08\x14\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x12\x17\x18\nE\n\x04\x04\x00\x02\x02\x12\x03\x14\x02+\x1a8 Timestamp of the click in milliseconds since the epoch\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x14\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x14\t\x12\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x14\x15\x16\n\x0c\n\x05\x04\x00\x02\x02\x08\x12\x03\x14\x17*\n\r\n\x06\x04\x00\x02\x02\x08\x03\x12\x03\x14\x18)\n\x8a\x01\n\x04\x04\x00\x02\x03\x12\x03\x17\x02,\x1a} A unique identifier for the conversation, not tied to anything on the\n network. Will not match the topic or conversation_id\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x17\x02\x08\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x17\t\'\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x17*+\n\x1d\n\x04\x04\x00\x02\x04\x12\x03\x19\x02\x1c\x1a\x10 Unix timestamp\n\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x03\x19\x02\x08\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x19\t\x17\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x19\x1a\x1b\n1\n\x04\x04\x00\x02\x05\x12\x03\x1b\x02\x18\x1a$ Input text from a text input field\n\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\x1b\x02\x08\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\x1b\t\x13\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\x1b\x16\x17\ne\n\x04\x04\x00\x02\x06\x12\x03\x1d\x02\x13\x1aX A state serialized to a string (for example via JSON.stringify()). Maximum 4096 bytes.\n\n\x0c\n\x05\x04\x00\x02\x06\x05\x12\x03\x1d\x02\x08\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03\x1d\t\x0e\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03\x1d\x11\x12\n\"\n\x04\x04\x00\x02\x07\x12\x03\x1f\x02\x15\x1a\x15 A 0x wallet address\n\n\x0c\n\x05\x04\x00\x02\x07\x05\x12\x03\x1f\x02\x08\n\x0c\n\x05\x04\x00\x02\x07\x01\x12\x03\x1f\t\x10\n\x0c\n\x05\x04\x00\x02\x07\x03\x12\x03\x1f\x13\x14\n(\n\x04\x04\x00\x02\x08\x12\x03!\x02\x1c\x1a\x1b A hash from a transaction\n\n\x0c\n\x05\x04\x00\x02\x08\x05\x12\x03!\x02\x08\n\x0c\n\x05\x04\x00\x02\x08\x01\x12\x03!\t\x17\n\x0c\n\x05\x04\x00\x02\x08\x03\x12\x03!\x1a\x1b\ny\n\x02\x04\x01\x12\x04&\x004\x01\x1am The outer payload that will be sent as the `messageBytes` in the\n `trusted_data` part of the Frames message\n\n\n\n\x03\x04\x01\x01\x12\x03&\x08\x13\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\'\x02.\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03\'\x02\x0b\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\'\x0c\x15\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\'\x18\x19\n\x0c\n\x05\x04\x01\x02\x00\x08\x12\x03\'\x1a-\n\r\n\x06\x04\x01\x02\x00\x08\x03\x12\x03\'\x1b,\n\x92\x01\n\x04\x04\x01\x02\x01\x12\x03*\x02I\x1a\x84\x01 The SignedPublicKeyBundle of the signer, used to link the XMTP signature\n with a blockchain account through a chain of signatures.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03*\x02\x17\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03*\x180\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03*34\n\x0c\n\x05\x04\x01\x02\x01\x08\x12\x03*5H\n\r\n\x06\x04\x01\x02\x01\x08\x03\x12\x03*6G\n\x92\x01\n\x04\x04\x01\x02\x02\x12\x03-\x02\x18\x1a\x84\x01 Serialized FrameActionBody message, so that the signature verification can\n happen on a byte-perfect representation of the message\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03-\x02\x07\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03-\x08\x13\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03-\x16\x17\n)\n\x04\x04\x01\x02\x03\x12\x03/\x02#\x1a\x1c The installation signature\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03/\x02\x07\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03/\x08\x1e\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03/!\"\n7\n\x04\x04\x01\x02\x04\x12\x031\x02\x1c\x1a* The public installation id used to sign.\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x031\x02\x07\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x031\x08\x17\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x031\x1a\x1b\n=\n\x04\x04\x01\x02\x05\x12\x033\x02\x16\x1a0 The inbox id of the installation used to sign.\n\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x033\x02\x08\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x033\t\x11\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x033\x14\x15b\x06proto3\n\xd0\x1f\n\x1emessage_contents/message.proto\x12\x15xmtp.message_contents\x1a!message_contents/ciphertext.proto\x1a-message_contents/conversation_reference.proto\x1a!message_contents/public_key.proto\"\xb5\x01\n\x0fMessageHeaderV1\x12>\n\x06sender\x18\x01 \x01(\x0b2&.xmtp.message_contents.PublicKeyBundleR\x06sender\x12D\n\trecipient\x18\x02 \x01(\x0b2&.xmtp.message_contents.PublicKeyBundleR\trecipient\x12\x1c\n\ttimestamp\x18\x03 \x01(\x04R\ttimestamp\"q\n\tMessageV1\x12!\n\x0cheader_bytes\x18\x01 \x01(\x0cR\x0bheaderBytes\x12A\n\nciphertext\x18\x02 \x01(\x0b2!.xmtp.message_contents.CiphertextR\nciphertext\"F\n\x0fMessageHeaderV2\x12\x1d\n\ncreated_ns\x18\x01 \x01(\x04R\tcreatedNs\x12\x14\n\x05topic\x18\x02 \x01(\tR\x05topic\"\xdd\x01\n\tMessageV2\x12!\n\x0cheader_bytes\x18\x01 \x01(\x0cR\x0bheaderBytes\x12A\n\nciphertext\x18\x02 \x01(\x0b2!.xmtp.message_contents.CiphertextR\nciphertext\x12$\n\x0bsender_hmac\x18\x03 \x01(\x0cH\x00R\nsenderHmac\x88\x01\x01\x12$\n\x0bshould_push\x18\x04 \x01(\x08H\x01R\nshouldPush\x88\x01\x01B\x0e\n\x0c_sender_hmacB\x0e\n\x0c_should_push\"|\n\x07Message\x122\n\x02v1\x18\x01 \x01(\x0b2 .xmtp.message_contents.MessageV1H\x00R\x02v1\x122\n\x02v2\x18\x02 \x01(\x0b2 .xmtp.message_contents.MessageV2H\x00R\x02v2B\t\n\x07version\"\xed\x02\n\x0eDecodedMessage\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\'\n\x0fmessage_version\x18\x02 \x01(\tR\x0emessageVersion\x12%\n\x0esender_address\x18\x03 \x01(\tR\rsenderAddress\x120\n\x11recipient_address\x18\x04 \x01(\tH\x00R\x10recipientAddress\x88\x01\x01\x12\x17\n\x07sent_ns\x18\x05 \x01(\x04R\x06sentNs\x12#\n\rcontent_topic\x18\x06 \x01(\tR\x0ccontentTopic\x12P\n\x0cconversation\x18\x07 \x01(\x0b2,.xmtp.message_contents.ConversationReferenceR\x0cconversation\x12#\n\rcontent_bytes\x18\x08 \x01(\x0cR\x0ccontentBytesB\x14\n\x12_recipient_addressBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\x87\x15\n\x06\x12\x04\x01\x00M\x01\nJ\n\x01\x0c\x12\x03\x01\x00\x12\x1a@ Messages used for transport and storage of user conversations.\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x05\x00+\n\t\n\x02\x03\x01\x12\x03\x06\x007\n\t\n\x02\x03\x02\x12\x03\x07\x00+\n\x08\n\x01\x08\x12\x03\t\x00C\n\t\n\x02\x08\x0b\x12\x03\t\x00C\n\x08\n\x01\x08\x12\x03\n\x008\n\t\n\x02\x08\x01\x12\x03\n\x008\n\x8c\x01\n\x02\x04\x00\x12\x04\x10\x00\x14\x01\x1ar Message header is encoded separately as the bytes are also used\n as associated data for authenticated encryption\n2\x0c Message V1\n\n\n\n\x03\x04\x00\x01\x12\x03\x10\x08\x17\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x11\x02\x1d\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x11\x02\x11\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x11\x12\x18\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x11\x1b\x1c\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x12\x02 \n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x12\x02\x11\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x12\x12\x1b\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x12\x1e\x1f\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x13\x02\x17\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x13\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x13\t\x12\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x13\x15\x16\n7\n\x02\x04\x01\x12\x04\x17\x00\x1c\x01\x1a+ Message is the top level protocol element\n\n\n\n\x03\x04\x01\x01\x12\x03\x17\x08\x11\n3\n\x04\x04\x01\x02\x00\x12\x03\x19\x02\x19\x1a& encapsulates encoded MessageHeaderV1\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x19\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x19\x08\x14\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x19\x17\x18\nG\n\x04\x04\x01\x02\x01\x12\x03\x1b\x02\x1c\x1a: Ciphertext.payload MUST contain encrypted EncodedContent\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x1b\x02\x0c\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1b\r\x17\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1b\x1a\x1b\n\x88\x02\n\x02\x04\x02\x12\x04$\x00)\x01\x1a\xed\x01 Message header carries information that is not encrypted, and is therefore\n observable by the network. It is however authenticated as associated data\n of the AEAD encryption used to protect the message,\n thus providing tamper evidence.\n2\x0c Message V2\n\n\n\n\x03\x04\x02\x01\x12\x03$\x08\x17\n5\n\x04\x04\x02\x02\x00\x12\x03&\x02\x18\x1a( sender specified message creation time\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03&\x02\x08\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03&\t\x13\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03&\x16\x17\n/\n\x04\x04\x02\x02\x01\x12\x03(\x02\x13\x1a\" the topic the message belongs to\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03(\x02\x08\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03(\t\x0e\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03(\x11\x12\nM\n\x02\x04\x03\x12\x04,\x007\x01\x1aA Message combines the encoded header with the encrypted payload.\n\n\n\n\x03\x04\x03\x01\x12\x03,\x08\x11\n3\n\x04\x04\x03\x02\x00\x12\x03.\x02\x19\x1a& encapsulates encoded MessageHeaderV2\n\n\x0c\n\x05\x04\x03\x02\x00\x05\x12\x03.\x02\x07\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03.\x08\x14\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03.\x17\x18\nF\n\x04\x04\x03\x02\x01\x12\x030\x02\x1c\x1a9 Ciphertext.payload MUST contain encrypted SignedContent\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x030\x02\x0c\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x030\r\x17\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x030\x1a\x1b\n\\\n\x04\x04\x03\x02\x02\x12\x033\x02!\x1aO HMAC of the message ciphertext, with the HMAC key derived from the topic\n key\n\n\x0c\n\x05\x04\x03\x02\x02\x04\x12\x033\x02\n\n\x0c\n\x05\x04\x03\x02\x02\x05\x12\x033\x0b\x10\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x033\x11\x1c\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x033\x1f \n_\n\x04\x04\x03\x02\x03\x12\x036\x02 \x1aR Flag indicating whether the message should be pushed from a notification\n server\n\n\x0c\n\x05\x04\x03\x02\x03\x04\x12\x036\x02\n\n\x0c\n\x05\x04\x03\x02\x03\x05\x12\x036\x0b\x0f\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x036\x10\x1b\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x036\x1e\x1f\n\x1f\n\x02\x04\x04\x12\x04:\x00?\x01\x1a\x13 Versioned Message\n\n\n\n\x03\x04\x04\x01\x12\x03:\x08\x0f\n\x0c\n\x04\x04\x04\x08\x00\x12\x04;\x02>\x03\n\x0c\n\x05\x04\x04\x08\x00\x01\x12\x03;\x08\x0f\n\x0b\n\x04\x04\x04\x02\x00\x12\x03<\x04\x15\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03<\x04\r\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03<\x0e\x10\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03<\x13\x14\n\x0b\n\x04\x04\x04\x02\x01\x12\x03=\x04\x15\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03=\x04\r\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03=\x0e\x10\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03=\x13\x14\n\xae\x01\n\x02\x04\x05\x12\x04D\x00M\x01\x1a\xa1\x01 DecodedMessage represents the decrypted message contents.\n DecodedMessage instances are not stored on the network, but\n may be serialized and stored by clients\n\n\n\n\x03\x04\x05\x01\x12\x03D\x08\x16\n\x0b\n\x04\x04\x05\x02\x00\x12\x03E\x02\x10\n\x0c\n\x05\x04\x05\x02\x00\x05\x12\x03E\x02\x08\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03E\t\x0b\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03E\x0e\x0f\n\x0b\n\x04\x04\x05\x02\x01\x12\x03F\x02\x1d\n\x0c\n\x05\x04\x05\x02\x01\x05\x12\x03F\x02\x08\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03F\t\x18\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03F\x1b\x1c\n\x0b\n\x04\x04\x05\x02\x02\x12\x03G\x02\x1c\n\x0c\n\x05\x04\x05\x02\x02\x05\x12\x03G\x02\x08\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03G\t\x17\n\x0c\n\x05\x04\x05\x02\x02\x03\x12\x03G\x1a\x1b\n\x0b\n\x04\x04\x05\x02\x03\x12\x03H\x02(\n\x0c\n\x05\x04\x05\x02\x03\x04\x12\x03H\x02\n\n\x0c\n\x05\x04\x05\x02\x03\x05\x12\x03H\x0b\x11\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03H\x12#\n\x0c\n\x05\x04\x05\x02\x03\x03\x12\x03H&\'\n\x0b\n\x04\x04\x05\x02\x04\x12\x03I\x02\x15\n\x0c\n\x05\x04\x05\x02\x04\x05\x12\x03I\x02\x08\n\x0c\n\x05\x04\x05\x02\x04\x01\x12\x03I\t\x10\n\x0c\n\x05\x04\x05\x02\x04\x03\x12\x03I\x13\x14\n\x0b\n\x04\x04\x05\x02\x05\x12\x03J\x02\x1b\n\x0c\n\x05\x04\x05\x02\x05\x05\x12\x03J\x02\x08\n\x0c\n\x05\x04\x05\x02\x05\x01\x12\x03J\t\x16\n\x0c\n\x05\x04\x05\x02\x05\x03\x12\x03J\x19\x1a\n\x0b\n\x04\x04\x05\x02\x06\x12\x03K\x02)\n\x0c\n\x05\x04\x05\x02\x06\x06\x12\x03K\x02\x17\n\x0c\n\x05\x04\x05\x02\x06\x01\x12\x03K\x18$\n\x0c\n\x05\x04\x05\x02\x06\x03\x12\x03K\'(\n*\n\x04\x04\x05\x02\x07\x12\x03L\x02\x1a\"\x1d encapsulates EncodedContent\n\n\x0c\n\x05\x04\x05\x02\x07\x05\x12\x03L\x02\x07\n\x0c\n\x05\x04\x05\x02\x07\x01\x12\x03L\x08\x15\n\x0c\n\x05\x04\x05\x02\x07\x03\x12\x03L\x18\x19b\x06proto3\n\xa3 \n\"message_contents/private_key.proto\x12\x15xmtp.message_contents\x1a!message_contents/ciphertext.proto\x1a!message_contents/public_key.proto\"\xf7\x01\n\x10SignedPrivateKey\x12\x1d\n\ncreated_ns\x18\x01 \x01(\x04R\tcreatedNs\x12Q\n\tsecp256k1\x18\x02 \x01(\x0b21.xmtp.message_contents.SignedPrivateKey.Secp256k1H\x00R\tsecp256k1\x12E\n\npublic_key\x18\x03 \x01(\x0b2&.xmtp.message_contents.SignedPublicKeyR\tpublicKey\x1a!\n\tSecp256k1\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytesB\x07\n\x05union\"\xa4\x01\n\x12PrivateKeyBundleV2\x12J\n\x0cidentity_key\x18\x01 \x01(\x0b2\'.xmtp.message_contents.SignedPrivateKeyR\x0bidentityKey\x12B\n\x08pre_keys\x18\x02 \x03(\x0b2\'.xmtp.message_contents.SignedPrivateKeyR\x07preKeys\"\xe4\x01\n\nPrivateKey\x12\x1c\n\ttimestamp\x18\x01 \x01(\x04R\ttimestamp\x12K\n\tsecp256k1\x18\x02 \x01(\x0b2+.xmtp.message_contents.PrivateKey.Secp256k1H\x00R\tsecp256k1\x12?\n\npublic_key\x18\x03 \x01(\x0b2 .xmtp.message_contents.PublicKeyR\tpublicKey\x1a!\n\tSecp256k1\x12\x14\n\x05bytes\x18\x01 \x01(\x0cR\x05bytesB\x07\n\x05union\"\x98\x01\n\x12PrivateKeyBundleV1\x12D\n\x0cidentity_key\x18\x01 \x01(\x0b2!.xmtp.message_contents.PrivateKeyR\x0bidentityKey\x12<\n\x08pre_keys\x18\x02 \x03(\x0b2!.xmtp.message_contents.PrivateKeyR\x07preKeys\"\x9d\x01\n\x10PrivateKeyBundle\x12;\n\x02v1\x18\x01 \x01(\x0b2).xmtp.message_contents.PrivateKeyBundleV1H\x00R\x02v1\x12;\n\x02v2\x18\x02 \x01(\x0b2).xmtp.message_contents.PrivateKeyBundleV2H\x00R\x02v2B\t\n\x07versionJ\x04\x08\x03\x10\x04\"\x86\x01\n\x1bEncryptedPrivateKeyBundleV1\x12$\n\x0ewallet_pre_key\x18\x01 \x01(\x0cR\x0cwalletPreKey\x12A\n\nciphertext\x18\x02 \x01(\x0b2!.xmtp.message_contents.CiphertextR\nciphertext\"l\n\x19EncryptedPrivateKeyBundle\x12D\n\x02v1\x18\x01 \x01(\x0b22.xmtp.message_contents.EncryptedPrivateKeyBundleV1H\x00R\x02v1B\t\n\x07versionBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\x8c\x15\n\x06\x12\x04\x04\x00]\x01\n\x99\x01\n\x01\x0c\x12\x03\x04\x00\x12\x1a\x8e\x01 Private Key Storage\n\n Following definitions are not used in the protocol, instead\n they provide a way for encoding private keys for storage.\n\n\x08\n\x01\x02\x12\x03\x06\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x08\x00+\n\t\n\x02\x03\x01\x12\x03\t\x00+\n\x08\n\x01\x08\x12\x03\x0b\x00C\n\t\n\x02\x08\x0b\x12\x03\x0b\x00C\n\x08\n\x01\x08\x12\x03\x0c\x008\n\t\n\x02\x08\x01\x12\x03\x0c\x008\nC\n\x02\x04\x00\x12\x04\x0f\x00\x1f\x01\x1a7 PrivateKey generalized to support different key types\n\n\n\n\x03\x04\x00\x01\x12\x03\x0f\x08\x18\n\'\n\x04\x04\x00\x02\x00\x12\x03\x11\x02\x18\x1a\x1a time the key was created\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x11\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x11\t\x13\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x11\x16\x17\n\x1b\n\x04\x04\x00\x08\x00\x12\x04\x13\x02\x15\x03\x1a\r private key\n\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x13\x08\r\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x14\x04\x1c\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x14\x04\r\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x14\x0e\x17\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x14\x1a\x1b\n.\n\x04\x04\x00\x02\x02\x12\x03\x17\x02!\x1a! public key for this private key\n\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03\x17\x02\x11\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x17\x12\x1c\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x17\x1f \n4\n\x04\x04\x00\x03\x00\x12\x04\x1c\x02\x1e\x03\x1a\x0f EC: SECP256k1\n2\x15 Supported key types\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x1c\n\x13\n\'\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\x1d\x04\x14\"\x18 D big-endian, 32 bytes\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\x1d\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\x1d\n\x0f\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\x1d\x12\x13\ne\n\x02\x04\x01\x12\x04#\x00\'\x01\x1aY PrivateKeyBundle wraps the identityKey and the preKeys,\n enforces usage of signed keys.\n\n\n\n\x03\x04\x01\x01\x12\x03#\x08\x1a\n\x0b\n\x04\x04\x01\x02\x00\x12\x03$\x02$\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03$\x02\x12\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03$\x13\x1f\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03$\"#\n8\n\x04\x04\x01\x02\x01\x12\x03&\x02)\x1a+ all the known pre-keys, newer keys first,\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03&\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03&\x0b\x1b\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03&\x1c$\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03&\'(\nK\n\x02\x04\x02\x12\x04*\x00:\x01\x1a? LEGACY: PrivateKey generalized to support different key types\n\n\n\n\x03\x04\x02\x01\x12\x03*\x08\x12\n\'\n\x04\x04\x02\x02\x00\x12\x03,\x02\x17\x1a\x1a time the key was created\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03,\x02\x08\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03,\t\x12\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03,\x15\x16\n\x1b\n\x04\x04\x02\x08\x00\x12\x04.\x020\x03\x1a\r private key\n\n\x0c\n\x05\x04\x02\x08\x00\x01\x12\x03.\x08\r\n\x0b\n\x04\x04\x02\x02\x01\x12\x03/\x04\x1c\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03/\x04\r\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03/\x0e\x17\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03/\x1a\x1b\n.\n\x04\x04\x02\x02\x02\x12\x032\x02\x1b\x1a! public key for this private key\n\n\x0c\n\x05\x04\x02\x02\x02\x06\x12\x032\x02\x0b\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x032\x0c\x16\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x032\x19\x1a\n4\n\x04\x04\x02\x03\x00\x12\x047\x029\x03\x1a\x0f EC: SECP256k1\n2\x15 Supported key types\n\n\x0c\n\x05\x04\x02\x03\x00\x01\x12\x037\n\x13\n\'\n\x06\x04\x02\x03\x00\x02\x00\x12\x038\x04\x14\"\x18 D big-endian, 32 bytes\n\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x05\x12\x038\x04\t\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x01\x12\x038\n\x0f\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x03\x12\x038\x12\x13\nN\n\x02\x04\x03\x12\x04=\x00A\x01\x1aB LEGACY: PrivateKeyBundleV1 wraps the identityKey and the preKeys\n\n\n\n\x03\x04\x03\x01\x12\x03=\x08\x1a\n\x0b\n\x04\x04\x03\x02\x00\x12\x03>\x02\x1e\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03>\x02\x0c\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03>\r\x19\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03>\x1c\x1d\n8\n\x04\x04\x03\x02\x01\x12\x03@\x02#\x1a+ all the known pre-keys, newer keys first,\n\n\x0c\n\x05\x04\x03\x02\x01\x04\x12\x03@\x02\n\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03@\x0b\x15\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03@\x16\x1e\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03@!\"\n(\n\x02\x04\x04\x12\x04D\x00J\x01\x1a\x1c Versioned PrivateKeyBundle\n\n\n\n\x03\x04\x04\x01\x12\x03D\x08\x18\n\n\n\x03\x04\x04\t\x12\x03E\x02\r\n\x0b\n\x04\x04\x04\t\x00\x12\x03E\x0b\x0c\n\x0c\n\x05\x04\x04\t\x00\x01\x12\x03E\x0b\x0c\n\x0c\n\x05\x04\x04\t\x00\x02\x12\x03E\x0b\x0c\n\x0c\n\x04\x04\x04\x08\x00\x12\x04F\x02I\x03\n\x0c\n\x05\x04\x04\x08\x00\x01\x12\x03F\x08\x0f\n\x0b\n\x04\x04\x04\x02\x00\x12\x03G\x04\x1e\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03G\x04\x16\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03G\x17\x19\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03G\x1c\x1d\n\x0b\n\x04\x04\x04\x02\x01\x12\x03H\x04\x1e\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03H\x04\x16\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03H\x17\x19\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03H\x1c\x1d\n\xa1\x02\n\x02\x04\x05\x12\x04Q\x00V\x01\x1a\x94\x02 PrivateKeyBundle encrypted with key material generated by\n signing a randomly generated \"pre-key\" with the user\'s wallet,\n i.e. EIP-191 signature of a \"storage signature\" message with\n the pre-key embedded in it.\n (see xmtp-js::PrivateKeyBundle.toEncryptedBytes for details)\n\n\n\n\x03\x04\x05\x01\x12\x03Q\x08#\n5\n\x04\x04\x05\x02\x00\x12\x03S\x02\x1b\x1a\x1c randomly generated pre-key\n\"\n 32 bytes\n\n\x0c\n\x05\x04\x05\x02\x00\x05\x12\x03S\x02\x07\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03S\x08\x16\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03S\x19\x1a\n6\n\x04\x04\x05\x02\x01\x12\x03U\x02\x1c\x1a) MUST contain encrypted PrivateKeyBundle\n\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03U\x02\x0c\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03U\r\x17\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03U\x1a\x1b\n2\n\x02\x04\x06\x12\x04Y\x00]\x01\x1a& Versioned encrypted PrivateKeyBundle\n\n\n\n\x03\x04\x06\x01\x12\x03Y\x08!\n\x0c\n\x04\x04\x06\x08\x00\x12\x04Z\x02\\\x03\n\x0c\n\x05\x04\x06\x08\x00\x01\x12\x03Z\x08\x0f\n\x0b\n\x04\x04\x06\x02\x00\x12\x03[\x04\'\n\x0c\n\x05\x04\x06\x02\x00\x06\x12\x03[\x04\x1f\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03[ \"\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03[%&b\x06proto3\n\x84\x19\n*message_contents/private_preferences.proto\x12\x15xmtp.message_contents\x1a!message_contents/ciphertext.proto\"\x98\x07\n\x18PrivatePreferencesAction\x12c\n\rallow_address\x18\x01 \x01(\x0b2<.xmtp.message_contents.PrivatePreferencesAction.AllowAddressH\x00R\x0callowAddress\x12`\n\x0cdeny_address\x18\x02 \x01(\x0b2;.xmtp.message_contents.PrivatePreferencesAction.DenyAddressH\x00R\x0bdenyAddress\x12]\n\x0ballow_group\x18\x03 \x01(\x0b2:.xmtp.message_contents.PrivatePreferencesAction.AllowGroupH\x00R\nallowGroup\x12Z\n\ndeny_group\x18\x04 \x01(\x0b29.xmtp.message_contents.PrivatePreferencesAction.DenyGroupH\x00R\tdenyGroup\x12d\n\x0eallow_inbox_id\x18\x05 \x01(\x0b2<.xmtp.message_contents.PrivatePreferencesAction.AllowInboxIdH\x00R\x0callowInboxId\x12a\n\rdeny_inbox_id\x18\x06 \x01(\x0b2;.xmtp.message_contents.PrivatePreferencesAction.DenyInboxIdH\x00R\x0bdenyInboxId\x1a9\n\x0cAllowAddress\x12)\n\x10wallet_addresses\x18\x01 \x03(\tR\x0fwalletAddresses\x1a8\n\x0bDenyAddress\x12)\n\x10wallet_addresses\x18\x01 \x03(\tR\x0fwalletAddresses\x1a+\n\x0cAllowInboxId\x12\x1b\n\tinbox_ids\x18\x01 \x03(\tR\x08inboxIds\x1a*\n\x0bDenyInboxId\x12\x1b\n\tinbox_ids\x18\x01 \x03(\tR\x08inboxIds\x1a)\n\nAllowGroup\x12\x1b\n\tgroup_ids\x18\x01 \x03(\tR\x08groupIds\x1a(\n\tDenyGroup\x12\x1b\n\tgroup_ids\x18\x01 \x03(\tR\x08groupIdsB\x0e\n\x0cmessage_type\"[\n\x19PrivatePreferencesPayload\x123\n\x02v1\x18\x01 \x01(\x0b2!.xmtp.message_contents.CiphertextH\x00R\x02v1B\t\n\x07versionBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xca\x0f\n\x06\x12\x04\x04\x00C\x01\n\x99\x01\n\x01\x0c\x12\x03\x04\x00\x12\x1a\x8e\x01 Private Key Storage\n\n Following definitions are not used in the protocol, instead they provide a\n way for encoding private keys for storage.\n\n\x08\n\x01\x02\x12\x03\x06\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x08\x00+\n\x08\n\x01\x08\x12\x03\n\x00C\n\t\n\x02\x08\x0b\x12\x03\n\x00C\n\x08\n\x01\x08\x12\x03\x0b\x008\n\t\n\x02\x08\x01\x12\x03\x0b\x008\nb\n\x02\x04\x00\x12\x04\x0f\x00<\x01\x1aV PrivatePreferencesAction is a message used to update the client\'s preference\n store.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0f\x08 \n4\n\x04\x04\x00\x03\x00\x12\x04\x11\x02\x14\x03\x1a& Allow 1:1 direct message (DM) access\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x11\n\x16\nA\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\x13\x04)\x1a2 Add the given wallet addresses to the allow list\n\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x04\x12\x03\x13\x04\x0c\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\x13\r\x13\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\x13\x14$\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\x13\'(\n;\n\x04\x04\x00\x03\x01\x12\x04\x17\x02\x1a\x03\x1a- Deny (block) 1:1 direct message (DM) access\n\n\x0c\n\x05\x04\x00\x03\x01\x01\x12\x03\x17\n\x15\n@\n\x06\x04\x00\x03\x01\x02\x00\x12\x03\x19\x04)\x1a1 Add the given wallet addresses to the deny list\n\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x04\x12\x03\x19\x04\x0c\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x05\x12\x03\x19\r\x13\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x01\x12\x03\x19\x14$\n\x0e\n\x07\x04\x00\x03\x01\x02\x00\x03\x12\x03\x19\'(\n7\n\x04\x04\x00\x03\x02\x12\x04\x1d\x02 \x03\x1a) Allow V3 1:1 direct message (DM) access\n\n\x0c\n\x05\x04\x00\x03\x02\x01\x12\x03\x1d\n\x16\n9\n\x06\x04\x00\x03\x02\x02\x00\x12\x03\x1f\x04\"\x1a* Add the given inbox id to the allow list\n\n\x0e\n\x07\x04\x00\x03\x02\x02\x00\x04\x12\x03\x1f\x04\x0c\n\x0e\n\x07\x04\x00\x03\x02\x02\x00\x05\x12\x03\x1f\r\x13\n\x0e\n\x07\x04\x00\x03\x02\x02\x00\x01\x12\x03\x1f\x14\x1d\n\x0e\n\x07\x04\x00\x03\x02\x02\x00\x03\x12\x03\x1f !\n>\n\x04\x04\x00\x03\x03\x12\x04#\x02&\x03\x1a0 Deny (block) V3 1:1 direct message (DM) access\n\n\x0c\n\x05\x04\x00\x03\x03\x01\x12\x03#\n\x15\n8\n\x06\x04\x00\x03\x03\x02\x00\x12\x03%\x04\"\x1a) Add the given inbox id to the deny list\n\n\x0e\n\x07\x04\x00\x03\x03\x02\x00\x04\x12\x03%\x04\x0c\n\x0e\n\x07\x04\x00\x03\x03\x02\x00\x05\x12\x03%\r\x13\n\x0e\n\x07\x04\x00\x03\x03\x02\x00\x01\x12\x03%\x14\x1d\n\x0e\n\x07\x04\x00\x03\x03\x02\x00\x03\x12\x03% !\n\"\n\x04\x04\x00\x03\x04\x12\x04)\x02,\x03\x1a\x14 Allow Group access\n\n\x0c\n\x05\x04\x00\x03\x04\x01\x12\x03)\n\x14\n:\n\x06\x04\x00\x03\x04\x02\x00\x12\x03+\x04\"\x1a+ Add the given group_ids to the allow list\n\n\x0e\n\x07\x04\x00\x03\x04\x02\x00\x04\x12\x03+\x04\x0c\n\x0e\n\x07\x04\x00\x03\x04\x02\x00\x05\x12\x03+\r\x13\n\x0e\n\x07\x04\x00\x03\x04\x02\x00\x01\x12\x03+\x14\x1d\n\x0e\n\x07\x04\x00\x03\x04\x02\x00\x03\x12\x03+ !\n(\n\x04\x04\x00\x03\x05\x12\x04/\x022\x03\x1a\x1a Deny (deny) Group access\n\n\x0c\n\x05\x04\x00\x03\x05\x01\x12\x03/\n\x13\n9\n\x06\x04\x00\x03\x05\x02\x00\x12\x031\x04\"\x1a* Add the given group_ids to the deny list\n\n\x0e\n\x07\x04\x00\x03\x05\x02\x00\x04\x12\x031\x04\x0c\n\x0e\n\x07\x04\x00\x03\x05\x02\x00\x05\x12\x031\r\x13\n\x0e\n\x07\x04\x00\x03\x05\x02\x00\x01\x12\x031\x14\x1d\n\x0e\n\x07\x04\x00\x03\x05\x02\x00\x03\x12\x031 !\n\x0c\n\x04\x04\x00\x08\x00\x12\x044\x02;\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x034\x08\x14\n\x0b\n\x04\x04\x00\x02\x00\x12\x035\x04#\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x035\x04\x10\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x035\x11\x1e\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x035!\"\n\x0b\n\x04\x04\x00\x02\x01\x12\x036\x04!\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x036\x04\x0f\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x036\x10\x1c\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x036\x1f \n\x0b\n\x04\x04\x00\x02\x02\x12\x037\x04\x1f\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x037\x04\x0e\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x037\x0f\x1a\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x037\x1d\x1e\n\x0b\n\x04\x04\x00\x02\x03\x12\x038\x04\x1d\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x038\x04\r\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x038\x0e\x18\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x038\x1b\x1c\n\x0b\n\x04\x04\x00\x02\x04\x12\x039\x04$\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x039\x04\x10\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x039\x11\x1f\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x039\"#\n\x0b\n\x04\x04\x00\x02\x05\x12\x03:\x04\"\n\x0c\n\x05\x04\x00\x02\x05\x06\x12\x03:\x04\x0f\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03:\x10\x1d\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03: !\n1\n\x02\x04\x01\x12\x04?\x00C\x01\x1a% The payload that goes over the wire\n\n\n\n\x03\x04\x01\x01\x12\x03?\x08!\n\x0c\n\x04\x04\x01\x08\x00\x12\x04@\x02B\x03\n\x0c\n\x05\x04\x01\x08\x00\x01\x12\x03@\x08\x0f\n\x0b\n\x04\x04\x01\x02\x00\x12\x03A\x04\x16\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03A\x04\x0e\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03A\x0f\x11\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03A\x14\x15b\x06proto3\n\xf5\x04\n%message_contents/signed_payload.proto\x12\x15xmtp.message_contents\x1a message_contents/signature.proto\"i\n\rSignedPayload\x12\x18\n\x07payload\x18\x01 \x01(\x0cR\x07payload\x12>\n\tsignature\x18\x02 \x01(\x0b2 .xmtp.message_contents.SignatureR\tsignatureBO\n\x1forg.xmtp.proto.message.contentsZ,github.com/xmtp/proto/v3/go/message_contentsJ\xce\x02\n\x06\x12\x04\x01\x00\x0e\x01\nC\n\x01\x0c\x12\x03\x01\x00\x12\x1a9 Signature is a generic structure for signed byte arrays\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1e\n\t\n\x02\x03\x00\x12\x03\x05\x00*\n\x08\n\x01\x08\x12\x03\x07\x00C\n\t\n\x02\x08\x0b\x12\x03\x07\x00C\n\x08\n\x01\x08\x12\x03\x08\x008\n\t\n\x02\x08\x01\x12\x03\x08\x008\nF\n\x02\x04\x00\x12\x04\x0b\x00\x0e\x01\x1a: SignedPayload is a wrapper for a signature and a payload\n\n\n\n\x03\x04\x00\x01\x12\x03\x0b\x08\x15\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0c\x02\x14\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x0c\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0c\x08\x0f\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0c\x12\x13\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\r\x02\x1a\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\r\x02\x0b\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\r\x0c\x15\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\r\x18\x19b\x06proto3\n\x92e\n\x1amls/database/intents.proto\x12\x11xmtp.mls.database\x1a*mls/message_contents/welcome_pointer.proto\x1a-mls/message_contents/wrapper_encryption.proto\"\x80\x01\n\x0fSendMessageData\x127\n\x02v1\x18\x01 \x01(\x0b2%.xmtp.mls.database.SendMessageData.V1H\x00R\x02v1\x1a)\n\x02V1\x12#\n\rpayload_bytes\x18\x01 \x01(\x0cR\x0cpayloadBytesB\t\n\x07version\"?\n\x10AccountAddresses\x12+\n\x11account_addresses\x18\x01 \x03(\tR\x10accountAddresses\"<\n\x0fInstallationIds\x12)\n\x10installation_ids\x18\x01 \x03(\x0cR\x0finstallationIds\"\xe2\x01\n\x1aAddressesOrInstallationIds\x12R\n\x11account_addresses\x18\x01 \x01(\x0b2#.xmtp.mls.database.AccountAddressesH\x00R\x10accountAddresses\x12O\n\x10installation_ids\x18\x02 \x01(\x0b2\".xmtp.mls.database.InstallationIdsH\x00R\x0finstallationIdsB\x1f\n\x1daddresses_or_installation_ids\"\xcb\x01\n\x0eAddMembersData\x126\n\x02v1\x18\x01 \x01(\x0b2$.xmtp.mls.database.AddMembersData.V1H\x00R\x02v1\x1av\n\x02V1\x12p\n\x1daddresses_or_installation_ids\x18\x01 \x01(\x0b2-.xmtp.mls.database.AddressesOrInstallationIdsR\x1aaddressesOrInstallationIdsB\t\n\x07version\"\xd1\x01\n\x11RemoveMembersData\x129\n\x02v1\x18\x01 \x01(\x0b2\'.xmtp.mls.database.RemoveMembersData.V1H\x00R\x02v1\x1av\n\x02V1\x12p\n\x1daddresses_or_installation_ids\x18\x01 \x01(\x0b2-.xmtp.mls.database.AddressesOrInstallationIdsR\x1aaddressesOrInstallationIdsB\t\n\x07version\"\x89\x03\n\x19UpdateGroupMembershipData\x12A\n\x02v1\x18\x01 \x01(\x0b2/.xmtp.mls.database.UpdateGroupMembershipData.V1H\x00R\x02v1\x1a\x9d\x02\n\x02V1\x12u\n\x12membership_updates\x18\x01 \x03(\x0b2F.xmtp.mls.database.UpdateGroupMembershipData.V1.MembershipUpdatesEntryR\x11membershipUpdates\x12\'\n\x0fremoved_members\x18\x02 \x03(\tR\x0eremovedMembers\x121\n\x14failed_installations\x18\x03 \x03(\x0cR\x13failedInstallations\x1aD\n\x16MembershipUpdatesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x04R\x05value:\x028\x01B\t\n\x07version\"\x9e\x01\n\x16ReaddInstallationsData\x12>\n\x02v1\x18\x01 \x01(\x0b2,.xmtp.mls.database.ReaddInstallationsData.V1H\x00R\x02v1\x1a9\n\x02V1\x123\n\x15readded_installations\x18\x01 \x03(\x0cR\x14readdedInstallationsB\t\n\x07version\"\xf2\x01\n\x12UpdateMetadataData\x12:\n\x02v1\x18\x01 \x01(\x0b2(.xmtp.mls.database.UpdateMetadataData.V1H\x00R\x02v1\x1a\x94\x01\n\x02V1\x12\x1d\n\nfield_name\x18\x01 \x01(\tR\tfieldName\x12\x1f\n\x0bfield_value\x18\x02 \x01(\tR\nfieldValue\x125\n\x14expected_field_value\x18\x03 \x01(\tH\x00R\x12expectedFieldValue\x88\x01\x01B\x17\n\x15_expected_field_valueB\t\n\x07version\"\xdd\x01\n\x14UpdateAdminListsData\x12<\n\x02v1\x18\x01 \x01(\x0b2*.xmtp.mls.database.UpdateAdminListsData.V1H\x00R\x02v1\x1a|\n\x02V1\x12[\n\x16admin_list_update_type\x18\x01 \x01(\x0e2&.xmtp.mls.database.AdminListUpdateTypeR\x13adminListUpdateType\x12\x19\n\x08inbox_id\x18\x02 \x01(\tR\x07inboxIdB\t\n\x07version\"\xf7\x02\n\x14UpdatePermissionData\x12<\n\x02v1\x18\x01 \x01(\x0b2*.xmtp.mls.database.UpdatePermissionData.V1H\x00R\x02v1\x1a\x95\x02\n\x02V1\x12]\n\x16permission_update_type\x18\x01 \x01(\x0e2\'.xmtp.mls.database.PermissionUpdateTypeR\x14permissionUpdateType\x12c\n\x18permission_policy_option\x18\x02 \x01(\x0e2).xmtp.mls.database.PermissionPolicyOptionR\x16permissionPolicyOption\x123\n\x13metadata_field_name\x18\x03 \x01(\tH\x00R\x11metadataFieldName\x88\x01\x01B\x16\n\x14_metadata_field_nameB\t\n\x07version\"\x9c\x01\n\x11AppDataUpdateData\x129\n\x02v1\x18\x01 \x01(\x0b2\'.xmtp.mls.database.AppDataUpdateData.V1H\x00R\x02v1\x1aA\n\x02V1\x12!\n\x0ccomponent_id\x18\x01 \x01(\rR\x0bcomponentId\x12\x18\n\x07payload\x18\x02 \x01(\x0cR\x07payloadB\t\n\x07version\"\xf3\x04\n\x10PostCommitAction\x12W\n\rsend_welcomes\x18\x01 \x01(\x0b20.xmtp.mls.database.PostCommitAction.SendWelcomesH\x00R\x0csendWelcomes\x1a\xeb\x02\n\x0cInstallation\x12)\n\x10installation_key\x18\x01 \x01(\x0cR\x0finstallationKey\x12&\n\x0fhpke_public_key\x18\x02 \x01(\x0cR\rhpkePublicKey\x12n\n\x19welcome_wrapper_algorithm\x18\x03 \x01(\x0e22.xmtp.mls.message_contents.WelcomeWrapperAlgorithmR\x17welcomeWrapperAlgorithm\x12\x97\x01\n%welcome_pointee_encryption_aead_types\x18\x04 \x01(\x0b2E.xmtp.mls.message_contents.WelcomePointeeEncryptionAeadTypesExtensionR!welcomePointeeEncryptionAeadTypes\x1a\x8f\x01\n\x0cSendWelcomes\x12V\n\rinstallations\x18\x01 \x03(\x0b20.xmtp.mls.database.PostCommitAction.InstallationR\rinstallations\x12\'\n\x0fwelcome_message\x18\x02 \x01(\x0cR\x0ewelcomeMessageB\x06\n\x04kind\"\xb9\x01\n\x17ProposeMemberUpdateData\x12?\n\x02v1\x18\x01 \x01(\x0b2-.xmtp.mls.database.ProposeMemberUpdateData.V1H\x00R\x02v1\x1aR\n\x02V1\x12\"\n\radd_inbox_ids\x18\x01 \x03(\x0cR\x0baddInboxIds\x12(\n\x10remove_inbox_ids\x18\x02 \x03(\x0cR\x0eremoveInboxIdsB\t\n\x07version\"\xb5\x01\n ProposeGroupContextExtensionData\x12H\n\x02v1\x18\x01 \x01(\x0b26.xmtp.mls.database.ProposeGroupContextExtensionData.V1H\x00R\x02v1\x1a<\n\x02V1\x126\n\x17group_context_extension\x18\x01 \x01(\x0cR\x15groupContextExtensionB\t\n\x07version\"\x9a\x01\n\x1aCommitPendingProposalsData\x12B\n\x02v1\x18\x01 \x01(\x0b20.xmtp.mls.database.CommitPendingProposalsData.V1H\x00R\x02v1\x1a-\n\x02V1\x12\'\n\x0fproposal_hashes\x18\x01 \x03(\x0cR\x0eproposalHashesB\t\n\x07version*\xe7\x01\n\x13AdminListUpdateType\x12&\n\"ADMIN_LIST_UPDATE_TYPE_UNSPECIFIED\x10\x00\x12$\n ADMIN_LIST_UPDATE_TYPE_ADD_ADMIN\x10\x01\x12\'\n#ADMIN_LIST_UPDATE_TYPE_REMOVE_ADMIN\x10\x02\x12*\n&ADMIN_LIST_UPDATE_TYPE_ADD_SUPER_ADMIN\x10\x03\x12-\n)ADMIN_LIST_UPDATE_TYPE_REMOVE_SUPER_ADMIN\x10\x04*\x8a\x02\n\x14PermissionUpdateType\x12&\n\"PERMISSION_UPDATE_TYPE_UNSPECIFIED\x10\x00\x12%\n!PERMISSION_UPDATE_TYPE_ADD_MEMBER\x10\x01\x12(\n$PERMISSION_UPDATE_TYPE_REMOVE_MEMBER\x10\x02\x12$\n PERMISSION_UPDATE_TYPE_ADD_ADMIN\x10\x03\x12\'\n#PERMISSION_UPDATE_TYPE_REMOVE_ADMIN\x10\x04\x12*\n&PERMISSION_UPDATE_TYPE_UPDATE_METADATA\x10\x05*\xe1\x01\n\x16PermissionPolicyOption\x12(\n$PERMISSION_POLICY_OPTION_UNSPECIFIED\x10\x00\x12\"\n\x1ePERMISSION_POLICY_OPTION_ALLOW\x10\x01\x12!\n\x1dPERMISSION_POLICY_OPTION_DENY\x10\x02\x12\'\n#PERMISSION_POLICY_OPTION_ADMIN_ONLY\x10\x03\x12-\n)PERMISSION_POLICY_OPTION_SUPER_ADMIN_ONLY\x10\x04BG\n\x1borg.xmtp.proto.mls.databaseZ(github.com/xmtp/proto/v3/go/mls/databaseJ\xaeA\n\x07\x12\x05\x02\x00\x88\x02\x01\nA\n\x01\x0c\x12\x03\x02\x00\x1227 Intent protos that are stored in the libxmtp database\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1a\n\t\n\x02\x03\x00\x12\x03\x05\x004\n\t\n\x02\x03\x01\x12\x03\x06\x007\n\x08\n\x01\x08\x12\x03\x08\x00?\n\t\n\x02\x08\x0b\x12\x03\x08\x00?\n\x08\n\x01\x08\x12\x03\t\x004\n\t\n\x02\x08\x01\x12\x03\t\x004\n4\n\x02\x04\x00\x12\x04\x0c\x00\x15\x01\x1a( The data required to publish a message\n\n\n\n\x03\x04\x00\x01\x12\x03\x0c\x08\x17\n,\n\x04\x04\x00\x03\x00\x12\x04\x0e\x02\x10\x03\x1a\x1e V1 of SendMessagePublishData\n\n\x0c\n\x05\x04\x00\x03\x00\x01\x12\x03\x0e\n\x0c\n\r\n\x06\x04\x00\x03\x00\x02\x00\x12\x03\x0f\x04\x1c\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x05\x12\x03\x0f\x04\t\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x01\x12\x03\x0f\n\x17\n\x0e\n\x07\x04\x00\x03\x00\x02\x00\x03\x12\x03\x0f\x1a\x1b\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\x12\x02\x14\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x12\x08\x0f\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x13\x04\x0e\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x13\x04\x06\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x13\x07\t\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x13\x0c\r\nE\n\x02\x04\x01\x12\x04\x18\x00\x1a\x01\x1a9 Wrapper around a list af repeated EVM Account Addresses\n\n\n\n\x03\x04\x01\x01\x12\x03\x18\x08\x18\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x19\x02(\n\x0c\n\x05\x04\x01\x02\x00\x04\x12\x03\x19\x02\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x19\x0b\x11\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x19\x12#\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x19&\'\n@\n\x02\x04\x02\x12\x04\x1d\x00\x1f\x01\x1a4 Wrapper around a list of repeated Installation IDs\n\n\n\n\x03\x04\x02\x01\x12\x03\x1d\x08\x17\n\x0b\n\x04\x04\x02\x02\x00\x12\x03\x1e\x02&\n\x0c\n\x05\x04\x02\x02\x00\x04\x12\x03\x1e\x02\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03\x1e\x0b\x10\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03\x1e\x11!\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03\x1e$%\n>\n\x02\x04\x03\x12\x04\"\x00\'\x01\x1a2 One of an EVM account address or Installation ID\n\n\n\n\x03\x04\x03\x01\x12\x03\"\x08\"\n\x0c\n\x04\x04\x03\x08\x00\x12\x04#\x02&\x03\n\x0c\n\x05\x04\x03\x08\x00\x01\x12\x03#\x08%\n\x0b\n\x04\x04\x03\x02\x00\x12\x03$\x04+\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03$\x04\x14\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03$\x15&\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03$)*\n\x0b\n\x04\x04\x03\x02\x01\x12\x03%\x04)\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03%\x04\x13\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03%\x14$\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03%\'(\nE\n\x02\x04\x04\x12\x04+\x004\x01\x1a9 DEPRECATED\n The data required to add members to a group\n\n\n\n\x03\x04\x04\x01\x12\x03+\x08\x16\n+\n\x04\x04\x04\x03\x00\x12\x04-\x02/\x03\x1a\x1d V1 of AddMembersPublishData\n\n\x0c\n\x05\x04\x04\x03\x00\x01\x12\x03-\n\x0c\n\r\n\x06\x04\x04\x03\x00\x02\x00\x12\x03.\x04A\n\x0e\n\x07\x04\x04\x03\x00\x02\x00\x06\x12\x03.\x04\x1e\n\x0e\n\x07\x04\x04\x03\x00\x02\x00\x01\x12\x03.\x1f<\n\x0e\n\x07\x04\x04\x03\x00\x02\x00\x03\x12\x03.?@\n\x0c\n\x04\x04\x04\x08\x00\x12\x041\x023\x03\n\x0c\n\x05\x04\x04\x08\x00\x01\x12\x031\x08\x0f\n\x0b\n\x04\x04\x04\x02\x00\x12\x032\x04\x0e\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x032\x04\x06\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x032\x07\t\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x032\x0c\r\nJ\n\x02\x04\x05\x12\x048\x00A\x01\x1a> DEPRECATED\n The data required to remove members from a group\n\n\n\n\x03\x04\x05\x01\x12\x038\x08\x19\n.\n\x04\x04\x05\x03\x00\x12\x04:\x02<\x03\x1a  V1 of RemoveMembersPublishData\n\n\x0c\n\x05\x04\x05\x03\x00\x01\x12\x03:\n\x0c\n\r\n\x06\x04\x05\x03\x00\x02\x00\x12\x03;\x04A\n\x0e\n\x07\x04\x05\x03\x00\x02\x00\x06\x12\x03;\x04\x1e\n\x0e\n\x07\x04\x05\x03\x00\x02\x00\x01\x12\x03;\x1f<\n\x0e\n\x07\x04\x05\x03\x00\x02\x00\x03\x12\x03;?@\n\x0c\n\x04\x04\x05\x08\x00\x12\x04>\x02@\x03\n\x0c\n\x05\x04\x05\x08\x00\x01\x12\x03>\x08\x0f\n\x0b\n\x04\x04\x05\x02\x00\x12\x03?\x04\x0e\n\x0c\n\x05\x04\x05\x02\x00\x06\x12\x03?\x04\x06\n\x0c\n\x05\x04\x05\x02\x00\x01\x12\x03?\x07\t\n\x0c\n\x05\x04\x05\x02\x00\x03\x12\x03?\x0c\r\ns\n\x02\x04\x06\x12\x04E\x00S\x01\x1ag The data required to make a commit that updates group membership\n Handles both Add and Remove actions\n\n\n\n\x03\x04\x06\x01\x12\x03E\x08!\n6\n\x04\x04\x06\x03\x00\x12\x04G\x02N\x03\x1a( V1 of UpdateGroupMembershipPublishData\n\n\x0c\n\x05\x04\x06\x03\x00\x01\x12\x03G\n\x0c\nM\n\x06\x04\x06\x03\x00\x02\x00\x12\x03I\x04/\x1a> Contains delta of membership updates that need to be applied\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x06\x12\x03I\x04\x17\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x01\x12\x03I\x18*\n\x0e\n\x07\x04\x06\x03\x00\x02\x00\x03\x12\x03I-.\nB\n\x06\x04\x06\x03\x00\x02\x01\x12\x03K\x04(\x1a3 Contains the list of members that will be removed\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x04\x12\x03K\x04\x0c\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x05\x12\x03K\r\x13\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x01\x12\x03K\x14#\n\x0e\n\x07\x04\x06\x03\x00\x02\x01\x03\x12\x03K&\'\nw\n\x06\x04\x06\x03\x00\x02\x02\x12\x03M\x04,\x1ah List of installations that failed to be added due to errors encountered during the evaluation process.\n\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x04\x12\x03M\x04\x0c\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x05\x12\x03M\r\x12\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x01\x12\x03M\x13\'\n\x0e\n\x07\x04\x06\x03\x00\x02\x02\x03\x12\x03M*+\n\x0c\n\x04\x04\x06\x08\x00\x12\x04P\x02R\x03\n\x0c\n\x05\x04\x06\x08\x00\x01\x12\x03P\x08\x0f\n\x0b\n\x04\x04\x06\x02\x00\x12\x03Q\x04\x0e\n\x0c\n\x05\x04\x06\x02\x00\x06\x12\x03Q\x04\x06\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03Q\x07\t\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03Q\x0c\r\n\x9e\x01\n\x02\x04\x07\x12\x04X\x00`\x01\x1a\x91\x01 The data required to remove and readd existing leaf nodes\n on the MLS tree. Does not change or update the members list.\n Used for fork recovery\n\n\n\n\x03\x04\x07\x01\x12\x03X\x08\x1e\n\x0c\n\x04\x04\x07\x03\x00\x12\x04Y\x02[\x03\n\x0c\n\x05\x04\x07\x03\x00\x01\x12\x03Y\n\x0c\n\r\n\x06\x04\x07\x03\x00\x02\x00\x12\x03Z\x04-\n\x0e\n\x07\x04\x07\x03\x00\x02\x00\x04\x12\x03Z\x04\x0c\n\x0e\n\x07\x04\x07\x03\x00\x02\x00\x05\x12\x03Z\r\x12\n\x0e\n\x07\x04\x07\x03\x00\x02\x00\x01\x12\x03Z\x13(\n\x0e\n\x07\x04\x07\x03\x00\x02\x00\x03\x12\x03Z+,\n\x0c\n\x04\x04\x07\x08\x00\x12\x04]\x02_\x03\n\x0c\n\x05\x04\x07\x08\x00\x01\x12\x03]\x08\x0f\n\x0b\n\x04\x04\x07\x02\x00\x12\x03^\x04\x0e\n\x0c\n\x05\x04\x07\x02\x00\x06\x12\x03^\x04\x06\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03^\x07\t\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03^\x0c\r\n8\n\x02\x04\x08\x12\x04c\x00r\x01\x1a, The data required to update group metadata\n\n\n\n\x03\x04\x08\x01\x12\x03c\x08\x1a\n/\n\x04\x04\x08\x03\x00\x12\x04e\x02m\x03\x1a! V1 of UpdateMetadataPublishData\n\n\x0c\n\x05\x04\x08\x03\x00\x01\x12\x03e\n\x0c\n\r\n\x06\x04\x08\x03\x00\x02\x00\x12\x03f\x04\x1a\n\x0e\n\x07\x04\x08\x03\x00\x02\x00\x05\x12\x03f\x04\n\n\x0e\n\x07\x04\x08\x03\x00\x02\x00\x01\x12\x03f\x0b\x15\n\x0e\n\x07\x04\x08\x03\x00\x02\x00\x03\x12\x03f\x18\x19\n\r\n\x06\x04\x08\x03\x00\x02\x01\x12\x03g\x04\x1b\n\x0e\n\x07\x04\x08\x03\x00\x02\x01\x05\x12\x03g\x04\n\n\x0e\n\x07\x04\x08\x03\x00\x02\x01\x01\x12\x03g\x0b\x16\n\x0e\n\x07\x04\x08\x03\x00\x02\x01\x03\x12\x03g\x19\x1a\n\x91\x02\n\x06\x04\x08\x03\x00\x02\x02\x12\x03l\x04-\x1a\x81\x02 Compare-and-swap guard. When set, the publisher must abandon this\n intent unless the field\'s currently committed value equals this,\n rather than overwriting whatever landed in the meantime. Absent\n means last-writer-wins, which is the historical behavior.\n\n\x0e\n\x07\x04\x08\x03\x00\x02\x02\x04\x12\x03l\x04\x0c\n\x0e\n\x07\x04\x08\x03\x00\x02\x02\x05\x12\x03l\r\x13\n\x0e\n\x07\x04\x08\x03\x00\x02\x02\x01\x12\x03l\x14(\n\x0e\n\x07\x04\x08\x03\x00\x02\x02\x03\x12\x03l+,\n\x0c\n\x04\x04\x08\x08\x00\x12\x04o\x02q\x03\n\x0c\n\x05\x04\x08\x08\x00\x01\x12\x03o\x08\x0f\n\x0b\n\x04\x04\x08\x02\x00\x12\x03p\x04\x0e\n\x0c\n\x05\x04\x08\x02\x00\x06\x12\x03p\x04\x06\n\x0c\n\x05\x04\x08\x02\x00\x01\x12\x03p\x07\t\n\x0c\n\x05\x04\x08\x02\x00\x03\x12\x03p\x0c\r\n+\n\x02\x05\x00\x12\x04u\x00{\x01\x1a\x1f Type of update to admin lists\n\n\n\n\x03\x05\x00\x01\x12\x03u\x05\x18\n\x0b\n\x04\x05\x00\x02\x00\x12\x03v\x02)\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03v\x02$\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03v\'(\n\x0b\n\x04\x05\x00\x02\x01\x12\x03w\x02\'\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03w\x02\"\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03w%&\n\x0b\n\x04\x05\x00\x02\x02\x12\x03x\x02*\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03x\x02%\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03x()\n\x0b\n\x04\x05\x00\x02\x03\x12\x03y\x02-\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03y\x02(\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03y+,\n\x0b\n\x04\x05\x00\x02\x04\x12\x03z\x020\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03z\x02+\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03z./\nH\n\x02\x04\t\x12\x05~\x00\x88\x01\x01\x1a; The data required to update group admin/super admin lists\n\n\n\n\x03\x04\t\x01\x12\x03~\x08\x1c\n3\n\x04\x04\t\x03\x00\x12\x06\x80\x01\x02\x83\x01\x03\x1a# V1 of UpdateAdminListsPublishData\n\n\r\n\x05\x04\t\x03\x00\x01\x12\x04\x80\x01\n\x0c\n\x0e\n\x06\x04\t\x03\x00\x02\x00\x12\x04\x81\x01\x043\n\x0f\n\x07\x04\t\x03\x00\x02\x00\x06\x12\x04\x81\x01\x04\x17\n\x0f\n\x07\x04\t\x03\x00\x02\x00\x01\x12\x04\x81\x01\x18.\n\x0f\n\x07\x04\t\x03\x00\x02\x00\x03\x12\x04\x81\x0112\n\x0e\n\x06\x04\t\x03\x00\x02\x01\x12\x04\x82\x01\x04\x18\n\x0f\n\x07\x04\t\x03\x00\x02\x01\x05\x12\x04\x82\x01\x04\n\n\x0f\n\x07\x04\t\x03\x00\x02\x01\x01\x12\x04\x82\x01\x0b\x13\n\x0f\n\x07\x04\t\x03\x00\x02\x01\x03\x12\x04\x82\x01\x16\x17\n\x0e\n\x04\x04\t\x08\x00\x12\x06\x85\x01\x02\x87\x01\x03\n\r\n\x05\x04\t\x08\x00\x01\x12\x04\x85\x01\x08\x0f\n\x0c\n\x04\x04\t\x02\x00\x12\x04\x86\x01\x04\x0e\n\r\n\x05\x04\t\x02\x00\x06\x12\x04\x86\x01\x04\x06\n\r\n\x05\x04\t\x02\x00\x01\x12\x04\x86\x01\x07\t\n\r\n\x05\x04\t\x02\x00\x03\x12\x04\x86\x01\x0c\r\n,\n\x02\x05\x01\x12\x06\x8b\x01\x00\x92\x01\x01\x1a\x1e Type of Permission to Update\n\n\x0b\n\x03\x05\x01\x01\x12\x04\x8b\x01\x05\x19\n\x0c\n\x04\x05\x01\x02\x00\x12\x04\x8c\x01\x02)\n\r\n\x05\x05\x01\x02\x00\x01\x12\x04\x8c\x01\x02$\n\r\n\x05\x05\x01\x02\x00\x02\x12\x04\x8c\x01\'(\n\x0c\n\x04\x05\x01\x02\x01\x12\x04\x8d\x01\x02(\n\r\n\x05\x05\x01\x02\x01\x01\x12\x04\x8d\x01\x02#\n\r\n\x05\x05\x01\x02\x01\x02\x12\x04\x8d\x01&\'\n\x0c\n\x04\x05\x01\x02\x02\x12\x04\x8e\x01\x02+\n\r\n\x05\x05\x01\x02\x02\x01\x12\x04\x8e\x01\x02&\n\r\n\x05\x05\x01\x02\x02\x02\x12\x04\x8e\x01)*\n\x0c\n\x04\x05\x01\x02\x03\x12\x04\x8f\x01\x02\'\n\r\n\x05\x05\x01\x02\x03\x01\x12\x04\x8f\x01\x02\"\n\r\n\x05\x05\x01\x02\x03\x02\x12\x04\x8f\x01%&\n\x0c\n\x04\x05\x01\x02\x04\x12\x04\x90\x01\x02*\n\r\n\x05\x05\x01\x02\x04\x01\x12\x04\x90\x01\x02%\n\r\n\x05\x05\x01\x02\x04\x02\x12\x04\x90\x01()\n\x0c\n\x04\x05\x01\x02\x05\x12\x04\x91\x01\x02-\n\r\n\x05\x05\x01\x02\x05\x01\x12\x04\x91\x01\x02(\n\r\n\x05\x05\x01\x02\x05\x02\x12\x04\x91\x01+,\n!\n\x02\x05\x02\x12\x06\x95\x01\x00\x9b\x01\x01\x1a\x13 Permission Policy\n\n\x0b\n\x03\x05\x02\x01\x12\x04\x95\x01\x05\x1b\n\x0c\n\x04\x05\x02\x02\x00\x12\x04\x96\x01\x02+\n\r\n\x05\x05\x02\x02\x00\x01\x12\x04\x96\x01\x02&\n\r\n\x05\x05\x02\x02\x00\x02\x12\x04\x96\x01)*\n\x0c\n\x04\x05\x02\x02\x01\x12\x04\x97\x01\x02%\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\x97\x01\x02 \n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\x97\x01#$\n\x0c\n\x04\x05\x02\x02\x02\x12\x04\x98\x01\x02$\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\x98\x01\x02\x1f\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\x98\x01\"#\n\x0c\n\x04\x05\x02\x02\x03\x12\x04\x99\x01\x02*\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\x99\x01\x02%\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\x99\x01()\n\x0c\n\x04\x05\x02\x02\x04\x12\x04\x9a\x01\x020\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\x9a\x01\x02+\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\x9a\x01./\n7\n\x02\x04\n\x12\x06\x9e\x01\x00\xaa\x01\x01\x1a) The data required to update permissions\n\n\x0b\n\x03\x04\n\x01\x12\x04\x9e\x01\x08\x1c\n,\n\x04\x04\n\x03\x00\x12\x06\xa0\x01\x02\xa5\x01\x03\x1a\x1c V1 of UpdatePermissionData\n\n\r\n\x05\x04\n\x03\x00\x01\x12\x04\xa0\x01\n\x0c\n\x0e\n\x06\x04\n\x03\x00\x02\x00\x12\x04\xa1\x01\x044\n\x0f\n\x07\x04\n\x03\x00\x02\x00\x06\x12\x04\xa1\x01\x04\x18\n\x0f\n\x07\x04\n\x03\x00\x02\x00\x01\x12\x04\xa1\x01\x19/\n\x0f\n\x07\x04\n\x03\x00\x02\x00\x03\x12\x04\xa1\x0123\n\x0e\n\x06\x04\n\x03\x00\x02\x01\x12\x04\xa2\x01\x048\n\x0f\n\x07\x04\n\x03\x00\x02\x01\x06\x12\x04\xa2\x01\x04\x1a\n\x0f\n\x07\x04\n\x03\x00\x02\x01\x01\x12\x04\xa2\x01\x1b3\n\x0f\n\x07\x04\n\x03\x00\x02\x01\x03\x12\x04\xa2\x0167\n^\n\x06\x04\n\x03\x00\x02\x02\x12\x04\xa4\x01\x04,\x1aN Metadata permissions update specify which field permission they are updating\n\n\x0f\n\x07\x04\n\x03\x00\x02\x02\x04\x12\x04\xa4\x01\x04\x0c\n\x0f\n\x07\x04\n\x03\x00\x02\x02\x05\x12\x04\xa4\x01\r\x13\n\x0f\n\x07\x04\n\x03\x00\x02\x02\x01\x12\x04\xa4\x01\x14\'\n\x0f\n\x07\x04\n\x03\x00\x02\x02\x03\x12\x04\xa4\x01*+\n\x0e\n\x04\x04\n\x08\x00\x12\x06\xa7\x01\x02\xa9\x01\x03\n\r\n\x05\x04\n\x08\x00\x01\x12\x04\xa7\x01\x08\x0f\n\x0c\n\x04\x04\n\x02\x00\x12\x04\xa8\x01\x04\x0e\n\r\n\x05\x04\n\x02\x00\x06\x12\x04\xa8\x01\x04\x06\n\r\n\x05\x04\n\x02\x00\x01\x12\x04\xa8\x01\x07\t\n\r\n\x05\x04\n\x02\x00\x03\x12\x04\xa8\x01\x0c\r\n\xee\x08\n\x02\x04\x0b\x12\x06\xc2\x01\x00\xd4\x01\x01\x1a\xdf\x08 Generic AppData write intent \xe2\x80\x94 local-only serialization for the\n `group_intents` table. Replaces the proliferation of per-component\n IntentKind/IntentData pairs with a single shape that carries the\n target component_id and the same payload bytes that will be written\n to the on-wire `AppDataUpdate` proposal. Interpretation of `payload`\n is determined by the target component\'s `ComponentType` in the\n registry:\n\n   * `Bytes` / `String` typed components \xe2\x80\x94 payload is the new value\n     written verbatim (last-writer-wins).\n   * `TlsMap` typed components \xe2\x80\x94 payload is a TLS-encoded\n     `TlsMapDelta<K, V>` carrying `Insert` / `Update` / `Delete`\n     mutations. Apply semantics on the receive side are total\n     (Insert is no-op-if-present, Update is upsert, Delete is\n     idempotent); the strict variants of the in-process TlsMap API\n     are not exposed on the wire. No \"conflict\" failure path.\n   * `TlsSet` typed components \xe2\x80\x94 payload is a TLS-encoded\n     `TlsSetDelta<E>` (`Add` is no-op-if-present, `Remove` is\n     idempotent).\n\n Never appears on the MLS wire; lives only in the local intents\n table.\n\n\x0b\n\x03\x04\x0b\x01\x12\x04\xc2\x01\x08\x19\n#\n\x04\x04\x0b\x03\x00\x12\x06\xc4\x01\x02\xcd\x01\x03\x1a\x13 v1 payload shape.\n\n\r\n\x05\x04\x0b\x03\x00\x01\x12\x04\xc4\x01\n\x0c\ny\n\x06\x04\x0b\x03\x00\x02\x00\x12\x04\xc7\x01\x04\x1c\x1ai u16 component_id widened to u32 (proto has no u16). The\n dispatcher narrows back to u16 at decode time.\n\n\x0f\n\x07\x04\x0b\x03\x00\x02\x00\x05\x12\x04\xc7\x01\x04\n\n\x0f\n\x07\x04\x0b\x03\x00\x02\x00\x01\x12\x04\xc7\x01\x0b\x17\n\x0f\n\x07\x04\x0b\x03\x00\x02\x00\x03\x12\x04\xc7\x01\x1a\x1b\n\xd5\x01\n\x06\x04\x0b\x03\x00\x02\x01\x12\x04\xcc\x01\x04\x16\x1a\xc4\x01 The bytes that will be written verbatim as the on-wire\n AppDataUpdate proposal payload. Interpretation determined by\n the component\'s registered ComponentType (see message-level\n comment above).\n\n\x0f\n\x07\x04\x0b\x03\x00\x02\x01\x05\x12\x04\xcc\x01\x04\t\n\x0f\n\x07\x04\x0b\x03\x00\x02\x01\x01\x12\x04\xcc\x01\n\x11\n\x0f\n\x07\x04\x0b\x03\x00\x02\x01\x03\x12\x04\xcc\x01\x14\x15\n\x87\x01\n\x04\x04\x0b\x08\x00\x12\x06\xd1\x01\x02\xd3\x01\x03\x1aw Versioned envelope. New variants are added as new oneof entries;\n readers that don\'t recognize a variant fail closed.\n\n\r\n\x05\x04\x0b\x08\x00\x01\x12\x04\xd1\x01\x08\x0f\n\x0c\n\x04\x04\x0b\x02\x00\x12\x04\xd2\x01\x04\x0e\n\r\n\x05\x04\x0b\x02\x00\x06\x12\x04\xd2\x01\x04\x06\n\r\n\x05\x04\x0b\x02\x00\x01\x12\x04\xd2\x01\x07\t\n\r\n\x05\x04\x0b\x02\x00\x03\x12\x04\xd2\x01\x0c\r\n=\n\x02\x04\x0c\x12\x06\xd7\x01\x00\xe8\x01\x01\x1a/ Generic data-type for all post-commit actions\n\n\x0b\n\x03\x04\x0c\x01\x12\x04\xd7\x01\x08\x18\n!\n\x04\x04\x0c\x03\x00\x12\x06\xd9\x01\x02\xde\x01\x03\x1a\x11 An installation\n\n\r\n\x05\x04\x0c\x03\x00\x01\x12\x04\xd9\x01\n\x16\n\x0e\n\x06\x04\x0c\x03\x00\x02\x00\x12\x04\xda\x01\x04\x1f\n\x0f\n\x07\x04\x0c\x03\x00\x02\x00\x05\x12\x04\xda\x01\x04\t\n\x0f\n\x07\x04\x0c\x03\x00\x02\x00\x01\x12\x04\xda\x01\n\x1a\n\x0f\n\x07\x04\x0c\x03\x00\x02\x00\x03\x12\x04\xda\x01\x1d\x1e\n\x0e\n\x06\x04\x0c\x03\x00\x02\x01\x12\x04\xdb\x01\x04\x1e\n\x0f\n\x07\x04\x0c\x03\x00\x02\x01\x05\x12\x04\xdb\x01\x04\t\n\x0f\n\x07\x04\x0c\x03\x00\x02\x01\x01\x12\x04\xdb\x01\n\x19\n\x0f\n\x07\x04\x0c\x03\x00\x02\x01\x03\x12\x04\xdb\x01\x1c\x1d\n\x0e\n\x06\x04\x0c\x03\x00\x02\x02\x12\x04\xdc\x01\x04T\n\x0f\n\x07\x04\x0c\x03\x00\x02\x02\x06\x12\x04\xdc\x01\x045\n\x0f\n\x07\x04\x0c\x03\x00\x02\x02\x01\x12\x04\xdc\x016O\n\x0f\n\x07\x04\x0c\x03\x00\x02\x02\x03\x12\x04\xdc\x01RS\n\x0e\n\x06\x04\x0c\x03\x00\x02\x03\x12\x04\xdd\x01\x04s\n\x0f\n\x07\x04\x0c\x03\x00\x02\x03\x06\x12\x04\xdd\x01\x04H\n\x0f\n\x07\x04\x0c\x03\x00\x02\x03\x01\x12\x04\xdd\x01In\n\x0f\n\x07\x04\x0c\x03\x00\x02\x03\x03\x12\x04\xdd\x01qr\n%\n\x04\x04\x0c\x03\x01\x12\x06\xe0\x01\x02\xe3\x01\x03\x1a\x15 SendWelcome message\n\n\r\n\x05\x04\x0c\x03\x01\x01\x12\x04\xe0\x01\n\x16\n\x0e\n\x06\x04\x0c\x03\x01\x02\x00\x12\x04\xe1\x01\x04,\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x04\x12\x04\xe1\x01\x04\x0c\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x06\x12\x04\xe1\x01\r\x19\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x01\x12\x04\xe1\x01\x1a\'\n\x0f\n\x07\x04\x0c\x03\x01\x02\x00\x03\x12\x04\xe1\x01*+\n\x0e\n\x06\x04\x0c\x03\x01\x02\x01\x12\x04\xe2\x01\x04\x1e\n\x0f\n\x07\x04\x0c\x03\x01\x02\x01\x05\x12\x04\xe2\x01\x04\t\n\x0f\n\x07\x04\x0c\x03\x01\x02\x01\x01\x12\x04\xe2\x01\n\x19\n\x0f\n\x07\x04\x0c\x03\x01\x02\x01\x03\x12\x04\xe2\x01\x1c\x1d\n\x0e\n\x04\x04\x0c\x08\x00\x12\x06\xe5\x01\x02\xe7\x01\x03\n\r\n\x05\x04\x0c\x08\x00\x01\x12\x04\xe5\x01\x08\x0c\n\x0c\n\x04\x04\x0c\x02\x00\x12\x04\xe6\x01\x04#\n\r\n\x05\x04\x0c\x02\x00\x06\x12\x04\xe6\x01\x04\x10\n\r\n\x05\x04\x0c\x02\x00\x01\x12\x04\xe6\x01\x11\x1e\n\r\n\x05\x04\x0c\x02\x00\x03\x12\x04\xe6\x01!\"\n\x0c\n\x02\x04\r\x12\x06\xea\x01\x00\xf4\x01\x01\n\x0b\n\x03\x04\r\x01\x12\x04\xea\x01\x08\x1f\n\x0e\n\x04\x04\r\x03\x00\x12\x06\xeb\x01\x02\xef\x01\x03\n\r\n\x05\x04\r\x03\x00\x01\x12\x04\xeb\x01\n\x0c\n!\n\x06\x04\r\x03\x00\x02\x00\x12\x04\xed\x01\x04%\x1a\x11 Not hex encoded\n\n\x0f\n\x07\x04\r\x03\x00\x02\x00\x04\x12\x04\xed\x01\x04\x0c\n\x0f\n\x07\x04\r\x03\x00\x02\x00\x05\x12\x04\xed\x01\r\x12\n\x0f\n\x07\x04\r\x03\x00\x02\x00\x01\x12\x04\xed\x01\x13 \n\x0f\n\x07\x04\r\x03\x00\x02\x00\x03\x12\x04\xed\x01#$\n\x0e\n\x06\x04\r\x03\x00\x02\x01\x12\x04\xee\x01\x04(\n\x0f\n\x07\x04\r\x03\x00\x02\x01\x04\x12\x04\xee\x01\x04\x0c\n\x0f\n\x07\x04\r\x03\x00\x02\x01\x05\x12\x04\xee\x01\r\x12\n\x0f\n\x07\x04\r\x03\x00\x02\x01\x01\x12\x04\xee\x01\x13#\n\x0f\n\x07\x04\r\x03\x00\x02\x01\x03\x12\x04\xee\x01&\'\n\x0e\n\x04\x04\r\x08\x00\x12\x06\xf1\x01\x02\xf3\x01\x03\n\r\n\x05\x04\r\x08\x00\x01\x12\x04\xf1\x01\x08\x0f\n\x0c\n\x04\x04\r\x02\x00\x12\x04\xf2\x01\x04\x0e\n\r\n\x05\x04\r\x02\x00\x06\x12\x04\xf2\x01\x04\x06\n\r\n\x05\x04\r\x02\x00\x01\x12\x04\xf2\x01\x07\t\n\r\n\x05\x04\r\x02\x00\x03\x12\x04\xf2\x01\x0c\r\n\x0c\n\x02\x04\x0e\x12\x06\xf6\x01\x00\xfe\x01\x01\n\x0b\n\x03\x04\x0e\x01\x12\x04\xf6\x01\x08(\n\x0e\n\x04\x04\x0e\x03\x00\x12\x06\xf7\x01\x02\xf9\x01\x03\n\r\n\x05\x04\x0e\x03\x00\x01\x12\x04\xf7\x01\n\x0c\n\x0e\n\x06\x04\x0e\x03\x00\x02\x00\x12\x04\xf8\x01\x04&\n\x0f\n\x07\x04\x0e\x03\x00\x02\x00\x05\x12\x04\xf8\x01\x04\t\n\x0f\n\x07\x04\x0e\x03\x00\x02\x00\x01\x12\x04\xf8\x01\n!\n\x0f\n\x07\x04\x0e\x03\x00\x02\x00\x03\x12\x04\xf8\x01$%\n\x0e\n\x04\x04\x0e\x08\x00\x12\x06\xfb\x01\x02\xfd\x01\x03\n\r\n\x05\x04\x0e\x08\x00\x01\x12\x04\xfb\x01\x08\x0f\n\x0c\n\x04\x04\x0e\x02\x00\x12\x04\xfc\x01\x04\x0e\n\r\n\x05\x04\x0e\x02\x00\x06\x12\x04\xfc\x01\x04\x06\n\r\n\x05\x04\x0e\x02\x00\x01\x12\x04\xfc\x01\x07\t\n\r\n\x05\x04\x0e\x02\x00\x03\x12\x04\xfc\x01\x0c\r\n\x0c\n\x02\x04\x0f\x12\x06\x80\x02\x00\x88\x02\x01\n\x0b\n\x03\x04\x0f\x01\x12\x04\x80\x02\x08\"\n\x0e\n\x04\x04\x0f\x03\x00\x12\x06\x81\x02\x02\x83\x02\x03\n\r\n\x05\x04\x0f\x03\x00\x01\x12\x04\x81\x02\n\x0c\n\x0e\n\x06\x04\x0f\x03\x00\x02\x00\x12\x04\x82\x02\x04\'\n\x0f\n\x07\x04\x0f\x03\x00\x02\x00\x04\x12\x04\x82\x02\x04\x0c\n\x0f\n\x07\x04\x0f\x03\x00\x02\x00\x05\x12\x04\x82\x02\r\x12\n\x0f\n\x07\x04\x0f\x03\x00\x02\x00\x01\x12\x04\x82\x02\x13\"\n\x0f\n\x07\x04\x0f\x03\x00\x02\x00\x03\x12\x04\x82\x02%&\n\x0e\n\x04\x04\x0f\x08\x00\x12\x06\x85\x02\x02\x87\x02\x03\n\r\n\x05\x04\x0f\x08\x00\x01\x12\x04\x85\x02\x08\x0f\n\x0c\n\x04\x04\x0f\x02\x00\x12\x04\x86\x02\x04\x0e\n\r\n\x05\x04\x0f\x02\x00\x06\x12\x04\x86\x02\x04\x06\n\r\n\x05\x04\x0f\x02\x00\x01\x12\x04\x86\x02\x07\t\n\r\n\x05\x04\x0f\x02\x00\x03\x12\x04\x86\x02\x0c\rb\x06proto3\n\x9c \n\x17mls/database/task.proto\x12\x11xmtp.mls.database\"\xcf\x04\n\x04Task\x12l\n\x1bprocess_pending_self_remove\x18\x03 \x01(\x0b2+.xmtp.mls.database.ProcessPendingSelfRemoveH\x00R\x18processPendingSelfRemove\x12M\n\x10pull_in_deadline\x18\x04 \x01(\x0b2!.xmtp.mls.database.PullInDeadlineH\x00R\x0epullInDeadline\x12@\n\x0bkp_rotation\x18\x05 \x01(\x0b2\x1d.xmtp.mls.database.KpRotationH\x00R\nkpRotation\x12@\n\x0bkp_deletion\x18\x06 \x01(\x0b2\x1d.xmtp.mls.database.KpDeletionH\x00R\nkpDeletion\x12h\n\x19add_missing_installations\x18\x07 \x01(\x0b2*.xmtp.mls.database.AddMissingInstallationsH\x00R\x17addMissingInstallations\x12@\n\x0bkp_liveness\x18\x08 \x01(\x0b2\x1d.xmtp.mls.database.KpLivenessH\x00R\nkpLiveness\x12R\n\x11notification_sync\x18\t \x01(\x0b2#.xmtp.mls.database.NotificationSyncH\x00R\x10notificationSyncB\x06\n\x04task\"e\n\x0ePullInDeadline\x12(\n\x10target_data_hash\x18\x01 \x01(\x0cR\x0etargetDataHash\x12)\n\x11not_later_than_ns\x18\x02 \x01(\x03R\x0enotLaterThanNs\"\x0c\n\nKpRotation\"\x0c\n\nKpDeletion\"\x0c\n\nKpLiveness\"\x12\n\x10NotificationSync\"5\n\x18ProcessPendingSelfRemove\x12\x19\n\x08group_id\x18\x01 \x01(\x0cR\x07groupId\"4\n\x17AddMissingInstallations\x12\x19\n\x08group_id\x18\x01 \x01(\x0cR\x07groupIdBG\n\x1borg.xmtp.proto.mls.databaseZ(github.com/xmtp/proto/v3/go/mls/databaseJ\xb8\x18\n\x06\x12\x04\x02\x00F\x01\nA\n\x01\x0c\x12\x03\x02\x00\x1227 Intent protos that are stored in the libxmtp database\n\n\x08\n\x01\x02\x12\x03\x03\x00\x1a\n\x08\n\x01\x08\x12\x03\x05\x00?\n\t\n\x02\x08\x0b\x12\x03\x05\x00?\n\x08\n\x01\x08\x12\x03\x06\x004\n\t\n\x02\x08\x01\x12\x03\x06\x004\n\n\n\x02\x04\x00\x12\x04\x08\x00\x12\x01\n\n\n\x03\x04\x00\x01\x12\x03\x08\x08\x0c\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\t\x02\x11\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\t\x08\x0c\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\n\x04=\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\n\x04\x1c\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\n\x1d8\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\n;<\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x0b\x04(\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x0b\x04\x12\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0b\x13#\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0b&\'\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x0c\x04\x1f\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03\x0c\x04\x0e\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0c\x0f\x1a\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0c\x1d\x1e\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\r\x04\x1f\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03\r\x04\x0e\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\r\x0f\x1a\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\r\x1d\x1e\n\x0b\n\x04\x04\x00\x02\x04\x12\x03\x0e\x04:\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03\x0e\x04\x1b\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x0e\x1c5\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x0e89\n\x0b\n\x04\x04\x00\x02\x05\x12\x03\x0f\x04\x1f\n\x0c\n\x05\x04\x00\x02\x05\x06\x12\x03\x0f\x04\x0e\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\x0f\x0f\x1a\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\x0f\x1d\x1e\n\x0b\n\x04\x04\x00\x02\x06\x12\x03\x10\x04+\n\x0c\n\x05\x04\x00\x02\x06\x06\x12\x03\x10\x04\x14\n\x0c\n\x05\x04\x00\x02\x06\x01\x12\x03\x10\x15&\n\x0c\n\x05\x04\x00\x02\x06\x03\x12\x03\x10)*\n\x80\x01\n\x02\x04\x01\x12\x04\x16\x00\x1b\x01\x1at Lower a target task\'s next-attempt deadline so it runs sooner. One-shot:\n applied by the TaskWorker, then deleted.\n\n\n\n\x03\x04\x01\x01\x12\x03\x16\x08\x16\nD\n\x04\x04\x01\x02\x00\x12\x03\x18\x02\x1d\x1a7 The UNIQUE data_hash identifying the target task row.\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x18\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x18\x08\x18\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x18\x1b\x1c\nH\n\x04\x04\x01\x02\x01\x12\x03\x1a\x02\x1e\x1a; Target\'s next_attempt_at_ns is set to MIN(current, this).\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x1a\x02\x07\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1a\x08\x19\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1a\x1c\x1d\n\xa5\x01\n\x02\x04\x02\x12\x03\x1f\x00\x15\x1a\x99\x01 Recurring singleton: rotate + upload a fresh key package when the identity\'s\n rotation deadline is due. Empty payload => stable data_hash for pull-ins.\n\n\n\n\x03\x04\x02\x01\x12\x03\x1f\x08\x12\n\x9f\x01\n\x02\x04\x03\x12\x03#\x00\x15\x1a\x93\x01 Recurring singleton: delete superseded local key-package material whose\n delete_at_ns has passed. Empty payload => stable data_hash for pull-ins.\n\n\n\n\x03\x04\x03\x01\x12\x03#\x08\x12\n\x88\x06\n\x02\x04\x04\x12\x030\x00\x15\x1a\xfc\x05 Recurring singleton: verify that THIS installation still has a usable key\n package published on the network, and queue a rotation when it does not.\n\n Distinct from KpRotation on purpose. Rotation is driven by a local deadline\n column; if that column is ever wrong the client stops rotating, its published\n key package expires, and it becomes permanently unreachable (added to groups\n only as a failed installation, so it never receives a welcome and never gets\n the welcome-driven rotation nudge either) without observing any local error.\n Liveness is the independent watchdog for that closed loop: its own schedule,\n its own retry/backoff, and a network probe rather than a local deadline as\n its source of truth. Empty payload => stable data_hash for pull-ins.\n\n\n\n\x03\x04\x04\x01\x12\x030\x08\x12\nP\n\x02\x04\x05\x12\x033\x00\x1b\x1aE One recurring notification task owns subscription sync and renewal.\n\n\n\n\x03\x04\x05\x01\x12\x033\x08\x18\n\xf9\x02\n\x02\x04\x06\x12\x04:\x00<\x01\x1a\xec\x02 Durable TaskRunner intent: process a group\'s pending self-remove requests\n (build the MLS RemoveProposal/Commit to evict members who sent a LeaveRequest,\n then clean up the pending-remove list). Enqueued in the same DB transaction as\n the pending_remove row so it survives restart; runs on the TaskRunner with\n retry/backoff. group_id is the target conversation.\n\n\n\n\x03\x04\x06\x01\x12\x03:\x08 \n\x0b\n\x04\x04\x06\x02\x00\x12\x03;\x02\x15\n\x0c\n\x05\x04\x06\x02\x00\x05\x12\x03;\x02\x07\n\x0c\n\x05\x04\x06\x02\x00\x01\x12\x03;\x08\x10\n\x0c\n\x05\x04\x06\x02\x00\x03\x12\x03;\x13\x14\n\xb5\x03\n\x02\x04\x07\x12\x04D\x00F\x01\x1a\xa8\x03 Durable TaskRunner intent: reconcile a group\'s membership with the inbox\'s\n latest identity state (add installations registered after the group was\n last updated). Enqueued by the device-sync worker when a sync-group welcome\n signals a new installation; runs on the TaskRunner with retry/backoff so a\n transient failure (e.g. identity propagation lag) cannot permanently skip\n the add. group_id is the target conversation.\n\n\n\n\x03\x04\x07\x01\x12\x03D\x08\x1f\n\x0b\n\x04\x04\x07\x02\x00\x12\x03E\x02\x15\n\x0c\n\x05\x04\x07\x02\x00\x05\x12\x03E\x02\x07\n\x0c\n\x05\x04\x07\x02\x00\x01\x12\x03E\x08\x10\n\x0c\n\x05\x04\x07\x02\x00\x03\x12\x03E\x13\x14b\x06proto3\n\x8a\x12\n%mls/message_contents/commit_log.proto\x12\x19xmtp.mls.message_contents\x1a%identity/associations/signature.proto\"\xdc\x02\n\x17PlaintextCommitLogEntry\x12\x19\n\x08group_id\x18\x01 \x01(\x0cR\x07groupId\x12,\n\x12commit_sequence_id\x18\x02 \x01(\x04R\x10commitSequenceId\x128\n\x18last_epoch_authenticator\x18\x03 \x01(\x0cR\x16lastEpochAuthenticator\x12L\n\rcommit_result\x18\x04 \x01(\x0e2\'.xmtp.mls.message_contents.CommitResultR\x0ccommitResult\x120\n\x14applied_epoch_number\x18\x05 \x01(\x04R\x12appliedEpochNumber\x12>\n\x1bapplied_epoch_authenticator\x18\x06 \x01(\x0cR\x19appliedEpochAuthenticator\"\xc7\x01\n\x0eCommitLogEntry\x12\x1f\n\x0bsequence_id\x18\x01 \x01(\x04R\nsequenceId\x12=\n\x1bserialized_commit_log_entry\x18\x02 \x01(\x0cR\x18serializedCommitLogEntry\x12U\n\tsignature\x18\x03 \x01(\x0b27.xmtp.identity.associations.RecoverableEd25519SignatureR\tsignature*\xa3\x01\n\x0cCommitResult\x12\x1d\n\x19COMMIT_RESULT_UNSPECIFIED\x10\x00\x12\x19\n\x15COMMIT_RESULT_APPLIED\x10\x01\x12\x1d\n\x19COMMIT_RESULT_WRONG_EPOCH\x10\x02\x12\x1f\n\x1bCOMMIT_RESULT_UNDECRYPTABLE\x10\x03\x12\x19\n\x15COMMIT_RESULT_INVALID\x10\x04J\xc7\x0b\n\x06\x12\x04\x02\x00%\x01\n\xa0\x01\n\x01\x0c\x12\x03\x02\x00\x12\x1a\x95\x01 Defines entries on the commit log, used for fork detection and recovery\n XIP: https://community.xmtp.org/t/xip-68-draft-automated-fork-recovery/951\n\n\x08\n\x01\x02\x12\x03\x04\x00\"\n\t\n\x02\x03\x00\x12\x03\x06\x00/\n\n\n\x02\x05\x00\x12\x04\x08\x00\x0e\x01\n\n\n\x03\x05\x00\x01\x12\x03\x08\x05\x11\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\t\x02 \n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\t\x02\x1b\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\t\x1e\x1f\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\n\x02\x1c\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\n\x02\x17\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\n\x1a\x1b\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x0b\x02 \n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x0b\x02\x1b\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x0b\x1e\x1f\n\x0b\n\x04\x05\x00\x02\x03\x12\x03\x0c\x02\"\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x0c\x02\x1d\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x0c !\n\x0b\n\x04\x05\x00\x02\x04\x12\x03\r\x02\x1c\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03\r\x02\x17\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03\r\x1a\x1b\n\x9a\x01\n\x02\x04\x00\x12\x04\x12\x00\x1f\x01\x1a\x8d\x01 PlaintextCommitLogEntry indicates whether a commit was successful or not,\n when applied on top of the indicated `last_epoch_authenticator`.\n\n\n\n\x03\x04\x00\x01\x12\x03\x12\x08\x1f\nD\n\x04\x04\x00\x02\x00\x12\x03\x14\x02\x15\x1a7 The group_id of the group that the commit belongs to.\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x14\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x14\x08\x10\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x14\x13\x14\nE\n\x04\x04\x00\x02\x01\x12\x03\x16\x02 \x1a8 The sequence ID of the commit payload being validated.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x16\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x16\t\x1b\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x16\x1e\x1f\nB\n\x04\x04\x00\x02\x02\x12\x03\x18\x02%\x1a5 The encryption state before the commit was applied.\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x18\x02\x07\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x18\x08 \n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x18#$\nM\n\x04\x04\x00\x02\x03\x12\x03\x1a\x02!\x1a@ Indicates whether the commit was successful, or why it failed.\n\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03\x1a\x02\x0e\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x1a\x0f\x1c\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x1a\x1f \nL\n\x04\x04\x00\x02\x04\x12\x03\x1c\x02\"\x1a? The epoch number after the commit was applied, if successful.\n\n\x0c\n\x05\x04\x00\x02\x04\x05\x12\x03\x1c\x02\x08\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x1c\t\x1d\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x1c !\nP\n\x04\x04\x00\x02\x05\x12\x03\x1e\x02(\x1aC The encryption state after the commit was applied, if successful.\n\n\x0c\n\x05\x04\x00\x02\x05\x05\x12\x03\x1e\x02\x07\n\x0c\n\x05\x04\x00\x02\x05\x01\x12\x03\x1e\x08#\n\x0c\n\x05\x04\x00\x02\x05\x03\x12\x03\x1e&\'\n\n\n\x02\x04\x01\x12\x04!\x00%\x01\n\n\n\x03\x04\x01\x01\x12\x03!\x08\x16\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\"\x02\x19\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\"\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\"\t\x14\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\"\x17\x18\n\x0b\n\x04\x04\x01\x02\x01\x12\x03#\x02(\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03#\x02\x07\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03#\x08#\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03#&\'\n\x0b\n\x04\x04\x01\x02\x02\x12\x03$\x02G\n\x0c\n\x05\x04\x01\x02\x02\x06\x12\x03$\x028\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03$9B\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03$EFb\x06proto3\n\xfc0\n,mls/message_contents/group_permissions.proto\x12\x19xmtp.mls.message_contents\"]\n\x19GroupMutablePermissionsV1\x12@\n\x08policies\x18\x01 \x01(\x0b2$.xmtp.mls.message_contents.PolicySetR\x08policies\"\xdf\x05\n\tPolicySet\x12W\n\x11add_member_policy\x18\x01 \x01(\x0b2+.xmtp.mls.message_contents.MembershipPolicyR\x0faddMemberPolicy\x12]\n\x14remove_member_policy\x18\x02 \x01(\x0b2+.xmtp.mls.message_contents.MembershipPolicyR\x12removeMemberPolicy\x12t\n\x16update_metadata_policy\x18\x03 \x03(\x0b2>.xmtp.mls.message_contents.PolicySet.UpdateMetadataPolicyEntryR\x14updateMetadataPolicy\x12\\\n\x10add_admin_policy\x18\x04 \x01(\x0b22.xmtp.mls.message_contents.PermissionsUpdatePolicyR\x0eaddAdminPolicy\x12b\n\x13remove_admin_policy\x18\x05 \x01(\x0b22.xmtp.mls.message_contents.PermissionsUpdatePolicyR\x11removeAdminPolicy\x12n\n\x19update_permissions_policy\x18\x06 \x01(\x0b22.xmtp.mls.message_contents.PermissionsUpdatePolicyR\x17updatePermissionsPolicy\x1ar\n\x19UpdateMetadataPolicyEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12?\n\x05value\x18\x02 \x01(\x0b2).xmtp.mls.message_contents.MetadataPolicyR\x05value:\x028\x01\"\x8a\x05\n\x10MembershipPolicy\x12L\n\x04base\x18\x01 \x01(\x0e26.xmtp.mls.message_contents.MembershipPolicy.BasePolicyH\x00R\x04base\x12_\n\rand_condition\x18\x02 \x01(\x0b28.xmtp.mls.message_contents.MembershipPolicy.AndConditionH\x00R\x0candCondition\x12_\n\rany_condition\x18\x03 \x01(\x0b28.xmtp.mls.message_contents.MembershipPolicy.AnyConditionH\x00R\x0canyCondition\x1aW\n\x0cAndCondition\x12G\n\x08policies\x18\x01 \x03(\x0b2+.xmtp.mls.message_contents.MembershipPolicyR\x08policies\x1aW\n\x0cAnyCondition\x12G\n\x08policies\x18\x01 \x03(\x0b2+.xmtp.mls.message_contents.MembershipPolicyR\x08policies\"\xab\x01\n\nBasePolicy\x12\x1b\n\x17BASE_POLICY_UNSPECIFIED\x10\x00\x12\x15\n\x11BASE_POLICY_ALLOW\x10\x01\x12\x14\n\x10BASE_POLICY_DENY\x10\x02\x12-\n)BASE_POLICY_ALLOW_IF_ADMIN_OR_SUPER_ADMIN\x10\x03\x12$\n BASE_POLICY_ALLOW_IF_SUPER_ADMIN\x10\x04B\x06\n\x04kind\"\xac\x05\n\x0eMetadataPolicy\x12R\n\x04base\x18\x01 \x01(\x0e2<.xmtp.mls.message_contents.MetadataPolicy.MetadataBasePolicyH\x00R\x04base\x12]\n\rand_condition\x18\x02 \x01(\x0b26.xmtp.mls.message_contents.MetadataPolicy.AndConditionH\x00R\x0candCondition\x12]\n\rany_condition\x18\x03 \x01(\x0b26.xmtp.mls.message_contents.MetadataPolicy.AnyConditionH\x00R\x0canyCondition\x1aU\n\x0cAndCondition\x12E\n\x08policies\x18\x01 \x03(\x0b2).xmtp.mls.message_contents.MetadataPolicyR\x08policies\x1aU\n\x0cAnyCondition\x12E\n\x08policies\x18\x01 \x03(\x0b2).xmtp.mls.message_contents.MetadataPolicyR\x08policies\"\xd1\x01\n\x12MetadataBasePolicy\x12$\n METADATA_BASE_POLICY_UNSPECIFIED\x10\x00\x12\x1e\n\x1aMETADATA_BASE_POLICY_ALLOW\x10\x01\x12\x1d\n\x19METADATA_BASE_POLICY_DENY\x10\x02\x12\'\n#METADATA_BASE_POLICY_ALLOW_IF_ADMIN\x10\x03\x12-\n)METADATA_BASE_POLICY_ALLOW_IF_SUPER_ADMIN\x10\x04B\x06\n\x04kind\"\xd4\x05\n\x17PermissionsUpdatePolicy\x12^\n\x04base\x18\x01 \x01(\x0e2H.xmtp.mls.message_contents.PermissionsUpdatePolicy.PermissionsBasePolicyH\x00R\x04base\x12f\n\rand_condition\x18\x02 \x01(\x0b2?.xmtp.mls.message_contents.PermissionsUpdatePolicy.AndConditionH\x00R\x0candCondition\x12f\n\rany_condition\x18\x03 \x01(\x0b2?.xmtp.mls.message_contents.PermissionsUpdatePolicy.AnyConditionH\x00R\x0canyCondition\x1a^\n\x0cAndCondition\x12N\n\x08policies\x18\x01 \x03(\x0b22.xmtp.mls.message_contents.PermissionsUpdatePolicyR\x08policies\x1a^\n\x0cAnyCondition\x12N\n\x08policies\x18\x01 \x03(\x0b22.xmtp.mls.message_contents.PermissionsUpdatePolicyR\x08policies\"\xc0\x01\n\x15PermissionsBasePolicy\x12\'\n#PERMISSIONS_BASE_POLICY_UNSPECIFIED\x10\x00\x12 \n\x1cPERMISSIONS_BASE_POLICY_DENY\x10\x01\x12*\n&PERMISSIONS_BASE_POLICY_ALLOW_IF_ADMIN\x10\x02\x120\n,PERMISSIONS_BASE_POLICY_ALLOW_IF_SUPER_ADMIN\x10\x03B\x06\n\x04kindBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xfb\x18\n\x06\x12\x04\x01\x00h\x01\n.\n\x01\x0c\x12\x03\x01\x00\x12\x1a$ Group mutable permissions metadata\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\n0\n\x02\x04\x00\x12\x04\t\x00\x0b\x01\x1a$ Message for group mutable metadata\n\n\n\n\x03\x04\x00\x01\x12\x03\t\x08!\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\n\x02\x19\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\n\x02\x0b\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\n\x0c\x14\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\n\x17\x18\n7\n\x02\x04\x01\x12\x04\x0e\x00\x15\x01\x1a+ The set of policies that govern the group\n\n\n\n\x03\x04\x01\x01\x12\x03\x0e\x08\x11\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x0f\x02)\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03\x0f\x02\x12\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x0f\x13$\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x0f\'(\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x10\x02,\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x10\x02\x12\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x10\x13\'\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x10*+\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\x11\x029\n\x0c\n\x05\x04\x01\x02\x02\x06\x12\x03\x11\x02\x1d\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x11\x1e4\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\x1178\n\x0b\n\x04\x04\x01\x02\x03\x12\x03\x12\x02/\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03\x12\x02\x19\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\x12\x1a*\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x12-.\n\x0b\n\x04\x04\x01\x02\x04\x12\x03\x13\x022\n\x0c\n\x05\x04\x01\x02\x04\x06\x12\x03\x13\x02\x19\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03\x13\x1a-\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03\x1301\n\x0b\n\x04\x04\x01\x02\x05\x12\x03\x14\x028\n\x0c\n\x05\x04\x01\x02\x05\x06\x12\x03\x14\x02\x19\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03\x14\x1a3\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03\x1467\nL\n\x02\x04\x02\x12\x04\x18\x001\x01\x1a@ A policy that governs adding/removing members or installations\n\n\n\n\x03\x04\x02\x01\x12\x03\x18\x08\x18\n\x1b\n\x04\x04\x02\x04\x00\x12\x04\x1a\x02 \x03\x1a\r Base policy\n\n\x0c\n\x05\x04\x02\x04\x00\x01\x12\x03\x1a\x07\x11\n\r\n\x06\x04\x02\x04\x00\x02\x00\x12\x03\x1b\x04 \n\x0e\n\x07\x04\x02\x04\x00\x02\x00\x01\x12\x03\x1b\x04\x1b\n\x0e\n\x07\x04\x02\x04\x00\x02\x00\x02\x12\x03\x1b\x1e\x1f\n\r\n\x06\x04\x02\x04\x00\x02\x01\x12\x03\x1c\x04\x1a\n\x0e\n\x07\x04\x02\x04\x00\x02\x01\x01\x12\x03\x1c\x04\x15\n\x0e\n\x07\x04\x02\x04\x00\x02\x01\x02\x12\x03\x1c\x18\x19\n\r\n\x06\x04\x02\x04\x00\x02\x02\x12\x03\x1d\x04\x19\n\x0e\n\x07\x04\x02\x04\x00\x02\x02\x01\x12\x03\x1d\x04\x14\n\x0e\n\x07\x04\x02\x04\x00\x02\x02\x02\x12\x03\x1d\x17\x18\n\r\n\x06\x04\x02\x04\x00\x02\x03\x12\x03\x1e\x042\n\x0e\n\x07\x04\x02\x04\x00\x02\x03\x01\x12\x03\x1e\x04-\n\x0e\n\x07\x04\x02\x04\x00\x02\x03\x02\x12\x03\x1e01\n\r\n\x06\x04\x02\x04\x00\x02\x04\x12\x03\x1f\x04)\n\x0e\n\x07\x04\x02\x04\x00\x02\x04\x01\x12\x03\x1f\x04$\n\x0e\n\x07\x04\x02\x04\x00\x02\x04\x02\x12\x03\x1f\'(\nD\n\x04\x04\x02\x03\x00\x12\x04#\x02%\x03\x1a6 Combine multiple policies. All must evaluate to true\n\n\x0c\n\x05\x04\x02\x03\x00\x01\x12\x03#\n\x16\n\r\n\x06\x04\x02\x03\x00\x02\x00\x12\x03$\x04+\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x04\x12\x03$\x04\x0c\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x06\x12\x03$\r\x1d\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x01\x12\x03$\x1e&\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x03\x12\x03$)*\nD\n\x04\x04\x02\x03\x01\x12\x04(\x02*\x03\x1a6 Combine multiple policies. Any must evaluate to true\n\n\x0c\n\x05\x04\x02\x03\x01\x01\x12\x03(\n\x16\n\r\n\x06\x04\x02\x03\x01\x02\x00\x12\x03)\x04+\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x04\x12\x03)\x04\x0c\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x06\x12\x03)\r\x1d\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x01\x12\x03)\x1e&\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x03\x12\x03))*\n\x0c\n\x04\x04\x02\x08\x00\x12\x04,\x020\x03\n\x0c\n\x05\x04\x02\x08\x00\x01\x12\x03,\x08\x0c\n\x0b\n\x04\x04\x02\x02\x00\x12\x03-\x04\x18\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03-\x04\x0e\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03-\x0f\x13\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03-\x16\x17\n\x0b\n\x04\x04\x02\x02\x01\x12\x03.\x04#\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03.\x04\x10\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03.\x11\x1e\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03.!\"\n\x0b\n\x04\x04\x02\x02\x02\x12\x03/\x04#\n\x0c\n\x05\x04\x02\x02\x02\x06\x12\x03/\x04\x10\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03/\x11\x1e\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03/!\"\n5\n\x02\x04\x03\x12\x044\x00M\x01\x1a) A policy that governs updating metadata\n\n\n\n\x03\x04\x03\x01\x12\x034\x08\x16\n\x1b\n\x04\x04\x03\x04\x00\x12\x046\x02<\x03\x1a\r Base policy\n\n\x0c\n\x05\x04\x03\x04\x00\x01\x12\x036\x07\x19\n\r\n\x06\x04\x03\x04\x00\x02\x00\x12\x037\x04)\n\x0e\n\x07\x04\x03\x04\x00\x02\x00\x01\x12\x037\x04$\n\x0e\n\x07\x04\x03\x04\x00\x02\x00\x02\x12\x037\'(\n\r\n\x06\x04\x03\x04\x00\x02\x01\x12\x038\x04#\n\x0e\n\x07\x04\x03\x04\x00\x02\x01\x01\x12\x038\x04\x1e\n\x0e\n\x07\x04\x03\x04\x00\x02\x01\x02\x12\x038!\"\n\r\n\x06\x04\x03\x04\x00\x02\x02\x12\x039\x04\"\n\x0e\n\x07\x04\x03\x04\x00\x02\x02\x01\x12\x039\x04\x1d\n\x0e\n\x07\x04\x03\x04\x00\x02\x02\x02\x12\x039 !\n\r\n\x06\x04\x03\x04\x00\x02\x03\x12\x03:\x04,\n\x0e\n\x07\x04\x03\x04\x00\x02\x03\x01\x12\x03:\x04\'\n\x0e\n\x07\x04\x03\x04\x00\x02\x03\x02\x12\x03:*+\n\r\n\x06\x04\x03\x04\x00\x02\x04\x12\x03;\x042\n\x0e\n\x07\x04\x03\x04\x00\x02\x04\x01\x12\x03;\x04-\n\x0e\n\x07\x04\x03\x04\x00\x02\x04\x02\x12\x03;01\nD\n\x04\x04\x03\x03\x00\x12\x04?\x02A\x03\x1a6 Combine multiple policies. All must evaluate to true\n\n\x0c\n\x05\x04\x03\x03\x00\x01\x12\x03?\n\x16\n\r\n\x06\x04\x03\x03\x00\x02\x00\x12\x03@\x04)\n\x0e\n\x07\x04\x03\x03\x00\x02\x00\x04\x12\x03@\x04\x0c\n\x0e\n\x07\x04\x03\x03\x00\x02\x00\x06\x12\x03@\r\x1b\n\x0e\n\x07\x04\x03\x03\x00\x02\x00\x01\x12\x03@\x1c$\n\x0e\n\x07\x04\x03\x03\x00\x02\x00\x03\x12\x03@\'(\nD\n\x04\x04\x03\x03\x01\x12\x04D\x02F\x03\x1a6 Combine multiple policies. Any must evaluate to true\n\n\x0c\n\x05\x04\x03\x03\x01\x01\x12\x03D\n\x16\n\r\n\x06\x04\x03\x03\x01\x02\x00\x12\x03E\x04)\n\x0e\n\x07\x04\x03\x03\x01\x02\x00\x04\x12\x03E\x04\x0c\n\x0e\n\x07\x04\x03\x03\x01\x02\x00\x06\x12\x03E\r\x1b\n\x0e\n\x07\x04\x03\x03\x01\x02\x00\x01\x12\x03E\x1c$\n\x0e\n\x07\x04\x03\x03\x01\x02\x00\x03\x12\x03E\'(\n\x0c\n\x04\x04\x03\x08\x00\x12\x04H\x02L\x03\n\x0c\n\x05\x04\x03\x08\x00\x01\x12\x03H\x08\x0c\n\x0b\n\x04\x04\x03\x02\x00\x12\x03I\x04 \n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03I\x04\x16\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03I\x17\x1b\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03I\x1e\x1f\n\x0b\n\x04\x04\x03\x02\x01\x12\x03J\x04#\n\x0c\n\x05\x04\x03\x02\x01\x06\x12\x03J\x04\x10\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03J\x11\x1e\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x03J!\"\n\x0b\n\x04\x04\x03\x02\x02\x12\x03K\x04#\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x03K\x04\x10\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x03K\x11\x1e\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03K!\"\n8\n\x02\x04\x04\x12\x04P\x00h\x01\x1a, A policy that governs updating permissions\n\n\n\n\x03\x04\x04\x01\x12\x03P\x08\x1f\n\x1b\n\x04\x04\x04\x04\x00\x12\x04R\x02W\x03\x1a\r Base policy\n\n\x0c\n\x05\x04\x04\x04\x00\x01\x12\x03R\x07\x1c\n\r\n\x06\x04\x04\x04\x00\x02\x00\x12\x03S\x04,\n\x0e\n\x07\x04\x04\x04\x00\x02\x00\x01\x12\x03S\x04\'\n\x0e\n\x07\x04\x04\x04\x00\x02\x00\x02\x12\x03S*+\n\r\n\x06\x04\x04\x04\x00\x02\x01\x12\x03T\x04%\n\x0e\n\x07\x04\x04\x04\x00\x02\x01\x01\x12\x03T\x04 \n\x0e\n\x07\x04\x04\x04\x00\x02\x01\x02\x12\x03T#$\n\r\n\x06\x04\x04\x04\x00\x02\x02\x12\x03U\x04/\n\x0e\n\x07\x04\x04\x04\x00\x02\x02\x01\x12\x03U\x04*\n\x0e\n\x07\x04\x04\x04\x00\x02\x02\x02\x12\x03U-.\n\r\n\x06\x04\x04\x04\x00\x02\x03\x12\x03V\x045\n\x0e\n\x07\x04\x04\x04\x00\x02\x03\x01\x12\x03V\x040\n\x0e\n\x07\x04\x04\x04\x00\x02\x03\x02\x12\x03V34\nD\n\x04\x04\x04\x03\x00\x12\x04Z\x02\\\x03\x1a6 Combine multiple policies. All must evaluate to true\n\n\x0c\n\x05\x04\x04\x03\x00\x01\x12\x03Z\n\x16\n\r\n\x06\x04\x04\x03\x00\x02\x00\x12\x03[\x042\n\x0e\n\x07\x04\x04\x03\x00\x02\x00\x04\x12\x03[\x04\x0c\n\x0e\n\x07\x04\x04\x03\x00\x02\x00\x06\x12\x03[\r$\n\x0e\n\x07\x04\x04\x03\x00\x02\x00\x01\x12\x03[%-\n\x0e\n\x07\x04\x04\x03\x00\x02\x00\x03\x12\x03[01\nD\n\x04\x04\x04\x03\x01\x12\x04_\x02a\x03\x1a6 Combine multiple policies. Any must evaluate to true\n\n\x0c\n\x05\x04\x04\x03\x01\x01\x12\x03_\n\x16\n\r\n\x06\x04\x04\x03\x01\x02\x00\x12\x03`\x042\n\x0e\n\x07\x04\x04\x03\x01\x02\x00\x04\x12\x03`\x04\x0c\n\x0e\n\x07\x04\x04\x03\x01\x02\x00\x06\x12\x03`\r$\n\x0e\n\x07\x04\x04\x03\x01\x02\x00\x01\x12\x03`%-\n\x0e\n\x07\x04\x04\x03\x01\x02\x00\x03\x12\x03`01\n\x0c\n\x04\x04\x04\x08\x00\x12\x04c\x02g\x03\n\x0c\n\x05\x04\x04\x08\x00\x01\x12\x03c\x08\x0c\n\x0b\n\x04\x04\x04\x02\x00\x12\x03d\x04#\n\x0c\n\x05\x04\x04\x02\x00\x06\x12\x03d\x04\x19\n\x0c\n\x05\x04\x04\x02\x00\x01\x12\x03d\x1a\x1e\n\x0c\n\x05\x04\x04\x02\x00\x03\x12\x03d!\"\n\x0b\n\x04\x04\x04\x02\x01\x12\x03e\x04#\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03e\x04\x10\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03e\x11\x1e\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03e!\"\n\x0b\n\x04\x04\x04\x02\x02\x12\x03f\x04#\n\x0c\n\x05\x04\x04\x02\x02\x06\x12\x03f\x04\x10\n\x0c\n\x05\x04\x04\x02\x02\x01\x12\x03f\x11\x1e\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03f!\"b\x06proto3\n\xdb\x1c\n0mls/message_contents/component_permissions.proto\x12\x19xmtp.mls.message_contents\x1a,mls/message_contents/group_permissions.proto\"\x86\x02\n\x14ComponentPermissions\x12N\n\rinsert_policy\x18\x01 \x01(\x0b2).xmtp.mls.message_contents.MetadataPolicyR\x0cinsertPolicy\x12N\n\rupdate_policy\x18\x02 \x01(\x0b2).xmtp.mls.message_contents.MetadataPolicyR\x0cupdatePolicy\x12N\n\rdelete_policy\x18\x03 \x01(\x0b2).xmtp.mls.message_contents.MetadataPolicyR\x0cdeletePolicy\"\xae\x02\n\x11ComponentMetadata\x12O\n\x0ecomponent_type\x18\x01 \x01(\x0e2(.xmtp.mls.message_contents.ComponentTypeR\rcomponentType\x12Q\n\x0bpermissions\x18\x02 \x01(\x0b2/.xmtp.mls.message_contents.ComponentPermissionsR\x0bpermissions\x12u\n\x1eexternal_committer_permissions\x18\x03 \x01(\x0b2/.xmtp.mls.message_contents.ComponentPermissionsR\x1cexternalCommitterPermissions*\xfe\x01\n\rComponentType\x12\x1e\n\x1aCOMPONENT_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14COMPONENT_TYPE_BYTES\x10\x01\x12\x19\n\x15COMPONENT_TYPE_STRING\x10\x02\x12&\n\"COMPONENT_TYPE_TLS_MAP_BYTES_BYTES\x10\x03\x12)\n%COMPONENT_TYPE_TLS_MAP_INBOX_ID_BYTES\x10\x04\x12 \n\x1cCOMPONENT_TYPE_TLS_SET_BYTES\x10\x05\x12#\n\x1fCOMPONENT_TYPE_TLS_SET_INBOX_ID\x10\x06BW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xc1\x14\n\x06\x12\x04\x01\x00=\x01\nL\n\x01\x0c\x12\x03\x01\x00\x12\x1aB Component-level permission and metadata definitions for app data\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\t\n\x02\x03\x00\x12\x03\x05\x006\n\x08\n\x01\x08\x12\x03\x07\x00G\n\t\n\x02\x08\x0b\x12\x03\x07\x00G\n\x08\n\x01\x08\x12\x03\x08\x00<\n\t\n\x02\x08\x01\x12\x03\x08\x00<\n<\n\x02\x05\x00\x12\x04\x0b\x00\x19\x01\x1a0 The data structure type of a component\'s value\n\n\n\n\x03\x05\x00\x01\x12\x03\x0b\x05\x12\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x0c\x02!\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x0c\x02\x1c\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x0c\x1f \n0\n\x04\x05\x00\x02\x01\x12\x03\x0e\x02\x1b\x1a# Opaque bytes, replaced atomically\n\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x0e\x02\x16\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x0e\x19\x1a\n:\n\x04\x05\x00\x02\x02\x12\x03\x10\x02\x1c\x1a- A utf-8 encoded string, replaced atomically\n\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x10\x02\x17\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x10\x1a\x1b\nZ\n\x04\x05\x00\x02\x03\x12\x03\x12\x02)\x1aM A TlsMap<bytes, bytes> supporting key-level insert/update/delete via deltas\n\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x12\x02$\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x12\'(\n\\\n\x04\x05\x00\x02\x04\x12\x03\x14\x02,\x1aO A TlsMap<InboxId, bytes> supporting key-level insert/update/delete via deltas\n\n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03\x14\x02\'\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03\x14*+\nS\n\x04\x05\x00\x02\x05\x12\x03\x16\x02#\x1aF A `TlsSet<bytes>` supporting insert/remove/remove-by-hash via deltas\n\n\x0c\n\x05\x05\x00\x02\x05\x01\x12\x03\x16\x02\x1e\n\x0c\n\x05\x05\x00\x02\x05\x02\x12\x03\x16!\"\nU\n\x04\x05\x00\x02\x06\x12\x03\x18\x02&\x1aH A `TlsSet<InboxId>` supporting insert/remove/remove-by-hash via deltas\n\n\x0c\n\x05\x05\x00\x02\x06\x01\x12\x03\x18\x02!\n\x0c\n\x05\x05\x00\x02\x06\x02\x12\x03\x18$%\n\xf2\x02\n\x02\x04\x00\x12\x04\"\x00)\x01\x1a\xe5\x02 Per-component permission policy with separate rules for insert, update,\n and delete operations.\n\n Insert and update are separate because some components need different\n permission levels for creating vs modifying entries. For example, group\n membership allows any member to update (installations/sequence ID) but\n only admins to insert (add a new member).\n\n\n\n\x03\x04\x00\x01\x12\x03\"\x08\x1c\nN\n\x04\x04\x00\x02\x00\x12\x03$\x02#\x1aA Policy for inserting a new value (component does not yet exist)\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03$\x02\x10\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03$\x11\x1e\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03$!\"\n4\n\x04\x04\x00\x02\x01\x12\x03&\x02#\x1a\' Policy for updating an existing value\n\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03&\x02\x10\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03&\x11\x1e\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03&!\"\n*\n\x04\x04\x00\x02\x02\x12\x03(\x02#\x1a\x1d Policy for deleting a value\n\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03(\x02\x10\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03(\x11\x1e\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03(!\"\n\x99\x02\n\x02\x04\x01\x12\x040\x00=\x01\x1a\x8c\x02 Metadata describing a component: its data type and permission policies.\n\n Stored as the value in the component registry (ComponentId 0x8000).\n Each registered component has one of these describing what kind of data\n it holds and who can insert, update, or delete it.\n\n\n\n\x03\x04\x01\x01\x12\x030\x08\x19\n?\n\x04\x04\x01\x02\x00\x12\x032\x02#\x1a2 The data structure type of the component\'s value\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x032\x02\x0f\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x032\x10\x1e\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x032!\"\nj\n\x04\x04\x01\x02\x01\x12\x035\x02\'\x1a] Permission policies for this component, evaluated against regular\n (member-issued) commits.\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x035\x02\x16\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x035\x17\"\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x035%&\n\xb6\x03\n\x04\x04\x01\x02\x02\x12\x03<\x02:\x1a\xa8\x03 Permission policies for this component, evaluated against MLS External\n Commits (RFC 9420 \xc2\xa712.4.3.2). Absent / unset is equivalent to all-Deny:\n external committers cannot touch this component. Each component opts in\n explicitly by setting this field. Combined with the EXTERNAL_COMMIT_POLICY\n master switch (`allow_external_commit`), this is the per-component declarative\n authorization for external-commit-driven joins.\n\n\x0c\n\x05\x04\x01\x02\x02\x06\x12\x03<\x02\x16\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03<\x175\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03<89b\x06proto3\n\x8c#\n\"mls/message_contents/content.proto\x12\x19xmtp.mls.message_contents\x1a\x19device_sync/content.proto\"\x95\x01\n\rContentTypeId\x12!\n\x0cauthority_id\x18\x01 \x01(\tR\x0bauthorityId\x12\x17\n\x07type_id\x18\x02 \x01(\tR\x06typeId\x12#\n\rversion_major\x18\x03 \x01(\rR\x0cversionMajor\x12#\n\rversion_minor\x18\x04 \x01(\rR\x0cversionMinor\"\x8f\x03\n\x0eEncodedContent\x12<\n\x04type\x18\x01 \x01(\x0b2(.xmtp.mls.message_contents.ContentTypeIdR\x04type\x12Y\n\nparameters\x18\x02 \x03(\x0b29.xmtp.mls.message_contents.EncodedContent.ParametersEntryR\nparameters\x12\x1f\n\x08fallback\x18\x03 \x01(\tH\x00R\x08fallback\x88\x01\x01\x12M\n\x0bcompression\x18\x05 \x01(\x0e2&.xmtp.mls.message_contents.CompressionH\x01R\x0bcompression\x88\x01\x01\x12\x18\n\x07content\x18\x04 \x01(\x0cR\x07content\x1a=\n\x0fParametersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x0b\n\t_fallbackB\x0e\n\x0c_compression\"\xfc\x03\n\x11PlaintextEnvelope\x12A\n\x02v1\x18\x01 \x01(\x0b2/.xmtp.mls.message_contents.PlaintextEnvelope.V1H\x00R\x02v1\x12A\n\x02v2\x18\x02 \x01(\x0b2/.xmtp.mls.message_contents.PlaintextEnvelope.V2H\x00R\x02v2\x1aG\n\x02V1\x12\x18\n\x07content\x18\x01 \x01(\x0cR\x07content\x12\'\n\x0fidempotency_key\x18\x02 \x01(\tR\x0eidempotencyKey\x1a\x8c\x02\n\x02V2\x12\'\n\x0fidempotency_key\x18\x01 \x01(\tR\x0eidempotencyKey\x12\x1a\n\x07content\x18\x02 \x01(\x0cH\x00R\x07content\x12h\n\x16user_preference_update\x18\x05 \x01(\x0b20.xmtp.device_sync.content.V1UserPreferenceUpdateH\x00R\x14userPreferenceUpdateB\x0e\n\x0cmessage_typeJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x06\x10\x07R\x13device_sync_requestR\x11device_sync_replyR\rreadd_requestB\t\n\x07content*<\n\x0bCompression\x12\x17\n\x13COMPRESSION_DEFLATE\x10\x00\x12\x14\n\x10COMPRESSION_GZIP\x10\x01BW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xe7\x18\n\x06\x12\x04\x02\x00S\x01\n|\n\x01\x0c\x12\x03\x02\x00\x12\x1ar Message content encoding structures\n Copied from V2 code so that we can eventually retire all V2 message content\n\n\x08\n\x01\x02\x12\x03\x04\x00\"\n\t\n\x02\x03\x00\x12\x03\x06\x00#\n\x08\n\x01\x08\x12\x03\x08\x00G\n\t\n\x02\x08\x0b\x12\x03\x08\x00G\n\x08\n\x01\x08\x12\x03\t\x00<\n\t\n\x02\x08\x01\x12\x03\t\x00<\nX\n\x02\x04\x00\x12\x04\x0c\x00\x11\x01\x1aL ContentTypeId is used to identify the type of content stored in a Message.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0c\x08\x15\n4\n\x04\x04\x00\x02\x00\x12\x03\r\x02\x1a\"\' authority governing this content type\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\r\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\r\t\x15\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\r\x18\x19\n\x1e\n\x04\x04\x00\x02\x01\x12\x03\x0e\x02\x15\"\x11 type identifier\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0e\t\x10\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0e\x13\x14\n(\n\x04\x04\x00\x02\x02\x12\x03\x0f\x02\x1b\"\x1b major version of the type\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x0f\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0f\t\x16\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0f\x19\x1a\n(\n\x04\x04\x00\x02\x03\x12\x03\x10\x02\x1b\"\x1b minor version of the type\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03\x10\x02\x08\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x10\t\x16\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x10\x19\x1a\ng\n\x02\x05\x00\x12\x04\x15\x00\x18\x01\x1a[ Recognized compression algorithms\n protolint:disable ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH\n\n\n\n\x03\x05\x00\x01\x12\x03\x15\x05\x10\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x16\x02\x1a\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x16\x02\x15\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x16\x18\x19\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x17\x02\x17\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x17\x02\x12\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x17\x15\x16\n\xa3\x01\n\x02\x04\x01\x12\x04\x1d\x00+\x01\x1a\x96\x01 EncodedContent bundles the content with metadata identifying its type\n and parameters required for correct decoding and presentation of the content.\n\n\n\n\x03\x04\x01\x01\x12\x03\x1d\x08\x16\ne\n\x04\x04\x01\x02\x00\x12\x03 \x02\x19\x1aX content type identifier used to match the payload with\n the correct decoding machinery\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03 \x02\x0f\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03 \x10\x14\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03 \x17\x18\nT\n\x04\x04\x01\x02\x01\x12\x03\"\x02%\x1aG optional encoding parameters required to correctly decode the content\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\"\x02\x15\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\"\x16 \n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\"#$\n\x84\x01\n\x04\x04\x01\x02\x02\x12\x03%\x02\x1f\x1aw optional fallback description of the content that can be used in case\n the client cannot decode or render the content\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03%\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03%\x0b\x11\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03%\x12\x1a\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03%\x1d\x1e\nn\n\x04\x04\x01\x02\x03\x12\x03(\x02\'\x1aa optional compression; the value indicates algorithm used to\n compress the encoded content bytes\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03(\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03(\x0b\x16\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03(\x17\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03(%&\n%\n\x04\x04\x01\x02\x04\x12\x03*\x02\x14\x1a\x18 encoded content itself\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03*\x02\x07\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03*\x08\x0f\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03*\x12\x13\nU\n\x02\x04\x02\x12\x04.\x00S\x01\x1aI A PlaintextEnvelope is the outermost payload that gets encrypted by MLS\n\n\n\n\x03\x04\x02\x01\x12\x03.\x08\x19\n3\n\x04\x04\x02\x03\x00\x12\x040\x026\x03\x1a% Version 1 of the encrypted envelope\n\n\x0c\n\x05\x04\x02\x03\x00\x01\x12\x030\n\x0c\n.\n\x06\x04\x02\x03\x00\x02\x00\x12\x032\x04\x16\x1a\x1f Expected to be EncodedContent\n\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x05\x12\x032\x04\t\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x01\x12\x032\n\x11\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x03\x12\x032\x14\x15\n\x8c\x01\n\x06\x04\x02\x03\x00\x02\x01\x12\x035\x04\x1f\x1a} A unique value that can be used to ensure that the same content can\n produce different hashes. May be the sender timestamp.\n\n\x0e\n\x07\x04\x02\x03\x00\x02\x01\x05\x12\x035\x04\n\n\x0e\n\x07\x04\x02\x03\x00\x02\x01\x01\x12\x035\x0b\x1a\n\x0e\n\x07\x04\x02\x03\x00\x02\x01\x03\x12\x035\x1d\x1e\n3\n\x04\x04\x02\x03\x01\x12\x049\x02K\x03\x1a% Version 2 of the encrypted envelope\n\n\x0c\n\x05\x04\x02\x03\x01\x01\x12\x039\n\x0c\n\x0c\n\x05\x04\x02\x03\x01\t\x12\x03:\x04\x12\n\r\n\x06\x04\x02\x03\x01\t\x00\x12\x03:\r\x0e\n\x0e\n\x07\x04\x02\x03\x01\t\x00\x01\x12\x03:\r\x0e\n\x0e\n\x07\x04\x02\x03\x01\t\x00\x02\x12\x03:\r\x0e\n\r\n\x06\x04\x02\x03\x01\t\x01\x12\x03:\x10\x11\n\x0e\n\x07\x04\x02\x03\x01\t\x01\x01\x12\x03:\x10\x11\n\x0e\n\x07\x04\x02\x03\x01\t\x01\x02\x12\x03:\x10\x11\n\x0c\n\x05\x04\x02\x03\x01\n\x12\x03;\x048\n\r\n\x06\x04\x02\x03\x01\n\x00\x12\x03;\r\"\n\r\n\x06\x04\x02\x03\x01\n\x01\x12\x03;$7\n\x8c\x01\n\x06\x04\x02\x03\x01\x02\x00\x12\x03?\x04\x1f\x1a} A unique value that can be used to ensure that the same content can\n produce different hashes. May be the sender timestamp.\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x05\x12\x03?\x04\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x01\x12\x03?\x0b\x1a\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x03\x12\x03?\x1d\x1e\n\x0e\n\x06\x04\x02\x03\x01\x08\x00\x12\x04A\x04F\x05\n\x0e\n\x07\x04\x02\x03\x01\x08\x00\x01\x12\x03A\n\x16\n.\n\x06\x04\x02\x03\x01\x02\x01\x12\x03C\x06\x18\x1a\x1f Expected to be EncodedContent\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x05\x12\x03C\x06\x0b\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x01\x12\x03C\x0c\x13\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x03\x12\x03C\x16\x17\n4\n\x06\x04\x02\x03\x01\x02\x02\x12\x03E\x06Q\x1a% A serialized user preference update\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x02\x06\x12\x03E\x065\n\x0e\n\x07\x04\x02\x03\x01\x02\x02\x01\x12\x03E6L\n\x0e\n\x07\x04\x02\x03\x01\x02\x02\x03\x12\x03EOP\n1\n\x05\x04\x02\x03\x01\t\x12\x03I\x04\x0f\x1a# Removed; moved to oneshot message\n\n\r\n\x06\x04\x02\x03\x01\t\x02\x12\x03I\r\x0e\n\x0e\n\x07\x04\x02\x03\x01\t\x02\x01\x12\x03I\r\x0e\n\x0e\n\x07\x04\x02\x03\x01\t\x02\x02\x12\x03I\r\x0e\n\x0c\n\x05\x04\x02\x03\x01\n\x12\x03J\x04\x1d\n\r\n\x06\x04\x02\x03\x01\n\x02\x12\x03J\r\x1c\nf\n\x04\x04\x02\x08\x00\x12\x04O\x02R\x03\x1aX Selector which declares which version of the EncodedContent this\n PlaintextEnvelope is\n\n\x0c\n\x05\x04\x02\x08\x00\x01\x12\x03O\x08\x0f\n\x0b\n\x04\x04\x02\x02\x00\x12\x03P\x04\x0e\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03P\x04\x06\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03P\x07\t\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03P\x0c\r\n\x0b\n\x04\x04\x02\x02\x01\x12\x03Q\x04\x0e\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03Q\x04\x06\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03Q\x07\t\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03Q\x0c\rb\x06proto3\n\xeb\x05\n7mls/message_contents/content_types/delete_message.proto\x12\'xmtp.mls.message_contents.content_types\".\n\rDeleteMessage\x12\x1d\n\nmessage_id\x18\x01 \x01(\tR\tmessageIdBs\n1org.xmtp.proto.mls.message_contents.content_typesZ>github.com/xmtp/proto/v3/go/mls/message_contents/content_typesJ\xd9\x03\n\x06\x12\x04\n\x00\x15\x01\n\x8e\x02\n\x01\x0c\x12\x03\n\x00\x12\x1a\x83\x02 delete_message.proto\n This file defines the DeleteMessage message type and is associated with the following ContentTypeId:\n\n ContentTypeId {\n     authority_id: \"xmtp.org\",\n     type_id:      \"deleteMessage\",\n     version_major: 1,\n     version_minor: 0,\n }\n\n\n\x08\n\x01\x02\x12\x03\x0c\x000\n\x08\n\x01\x08\x12\x03\x0e\x00U\n\t\n\x02\x08\x0b\x12\x03\x0e\x00U\n\x08\n\x01\x08\x12\x03\x0f\x00J\n\t\n\x02\x08\x01\x12\x03\x0f\x00J\n(\n\x02\x04\x00\x12\x04\x12\x00\x15\x01\x1a\x1c DeleteMessage message type\n\n\n\n\x03\x04\x00\x01\x12\x03\x12\x08\x15\n*\n\x04\x04\x00\x02\x00\x12\x03\x14\x02\x18\x1a\x1d ID of the message to delete\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x14\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x14\t\x13\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x14\x16\x17b\x06proto3\n\xb8\x07\n5mls/message_contents/content_types/edit_message.proto\x12\'xmtp.mls.message_contents.content_types\x1a\"mls/message_contents/content.proto\"~\n\x0bEditMessage\x12\x1d\n\nmessage_id\x18\x01 \x01(\tR\tmessageId\x12P\n\x0eedited_content\x18\x02 \x01(\x0b2).xmtp.mls.message_contents.EncodedContentR\reditedContentBs\n1org.xmtp.proto.mls.message_contents.content_typesZ>github.com/xmtp/proto/v3/go/mls/message_contents/content_typesJ\xb4\x04\n\x06\x12\x04\n\x00\x1a\x01\n\x88\x02\n\x01\x0c\x12\x03\n\x00\x12\x1a\xfd\x01 edit_message.proto\n This file defines the EditMessage message type and is associated with the following ContentTypeId:\n\n ContentTypeId {\n     authority_id: \"xmtp.org\",\n     type_id:      \"editMessage\",\n     version_major: 1,\n     version_minor: 0,\n }\n\n\n\x08\n\x01\x02\x12\x03\x0c\x000\n\t\n\x02\x03\x00\x12\x03\x0e\x00,\n\x08\n\x01\x08\x12\x03\x10\x00U\n\t\n\x02\x08\x0b\x12\x03\x10\x00U\n\x08\n\x01\x08\x12\x03\x11\x00J\n\t\n\x02\x08\x01\x12\x03\x11\x00J\n&\n\x02\x04\x00\x12\x04\x14\x00\x1a\x01\x1a\x1a EditMessage message type\n\n\n\n\x03\x04\x00\x01\x12\x03\x14\x08\x13\n(\n\x04\x04\x00\x02\x00\x12\x03\x16\x02\x18\x1a\x1b ID of the message to edit\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x16\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x16\t\x13\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x16\x16\x17\n.\n\x04\x04\x00\x02\x01\x12\x03\x19\x02>\x1a! The new content for the message\n\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x19\x02*\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x19+9\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x19<=b\x06proto3\n\xe3\x06\n6mls/message_contents/content_types/leave_request.proto\x12\'xmtp.mls.message_contents.content_types\"Y\n\x0cLeaveRequest\x122\n\x12authenticated_note\x18\x01 \x01(\x0cH\x00R\x11authenticatedNote\x88\x01\x01B\x15\n\x13_authenticated_noteBs\n1org.xmtp.proto.mls.message_contents.content_typesZ>github.com/xmtp/proto/v3/go/mls/message_contents/content_typesJ\xa7\x04\n\x06\x12\x04\n\x00\x15\x01\n\x8b\x02\n\x01\x0c\x12\x03\n\x00\x12\x1a\x80\x02 leave_request.proto\n This file defines the LeaveRequest message type and is associated with the following ContentTypeId:\n\n ContentTypeId {\n     authority_id: \"xmtp.org\",\n     type_id:      \"leaveRequest\",\n     version_major: 1,\n     version_minor: 0,\n }\n\n\n\x08\n\x01\x02\x12\x03\x0c\x000\n\x08\n\x01\x08\x12\x03\x0e\x00U\n\t\n\x02\x08\x0b\x12\x03\x0e\x00U\n\x08\n\x01\x08\x12\x03\x0f\x00J\n\t\n\x02\x08\x01\x12\x03\x0f\x00J\n\'\n\x02\x04\x00\x12\x04\x12\x00\x15\x01\x1a\x1b LeaveRequest message type\n\n\n\n\x03\x04\x00\x01\x12\x03\x12\x08\x14\nn\n\x04\x04\x00\x02\x00\x12\x03\x14\x02(\x1aa A serialized AuthenticatedNote containing the sender\'s signed, member-only verifiable statement\n\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x03\x14\x02\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x14\x0b\x10\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x14\x11#\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x14&\'b\x06proto3\n\xa4\x10\n@mls/message_contents/content_types/multi_remote_attachment.proto\x12\'xmtp.mls.message_contents.content_types\"x\n\x15MultiRemoteAttachment\x12_\n\x0battachments\x18\x01 \x03(\x0b2=.xmtp.mls.message_contents.content_types.RemoteAttachmentInfoR\x0battachments\"\x96\x02\n\x14RemoteAttachmentInfo\x12%\n\x0econtent_digest\x18\x01 \x01(\tR\rcontentDigest\x12\x16\n\x06secret\x18\x02 \x01(\x0cR\x06secret\x12\x14\n\x05nonce\x18\x03 \x01(\x0cR\x05nonce\x12\x12\n\x04salt\x18\x04 \x01(\x0cR\x04salt\x12\x16\n\x06scheme\x18\x05 \x01(\tR\x06scheme\x12\x10\n\x03url\x18\x06 \x01(\tR\x03url\x12*\n\x0econtent_length\x18\x07 \x01(\rH\x00R\rcontentLength\x88\x01\x01\x12\x1f\n\x08filename\x18\x08 \x01(\tH\x01R\x08filename\x88\x01\x01B\x11\n\x0f_content_lengthB\x0b\n\t_filenameBs\n1org.xmtp.proto.mls.message_contents.content_typesZ>github.com/xmtp/proto/v3/go/mls/message_contents/content_typesJ\xa6\x0b\n\x06\x12\x04\n\x00/\x01\n\xaa\x02\n\x01\x0c\x12\x03\n\x00\x12\x1a\x9f\x02 multi_remote_attachment.proto\n This file defines the MultiRemoteAttachment message type and is associated with the following ContentTypeId:\n\n ContentTypeId {\n     authority_id: \"xmtp.org\",\n     type_id:      \"multiRemoteStaticContent\",\n     version_major: 1,\n     version_minor: 0,\n }\n\n\n\x08\n\x01\x02\x12\x03\x0c\x000\n\x08\n\x01\x08\x12\x03\x0e\x00U\n\t\n\x02\x08\x0b\x12\x03\x0e\x00U\n\x08\n\x01\x08\x12\x03\x0f\x00J\n\t\n\x02\x08\x01\x12\x03\x0f\x00J\n0\n\x02\x04\x00\x12\x04\x12\x00\x15\x01\x1a$ MultiRemoteAttachment message type\n\n\n\n\x03\x04\x00\x01\x12\x03\x12\x08\x1d\n.\n\x04\x04\x00\x02\x00\x12\x03\x14\x020\x1a! Array of attachment information\n\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x03\x14\x02\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x14\x0b\x1f\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x14 +\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x14./\n\n\n\x02\x04\x01\x12\x04\x17\x00/\x01\n\n\n\x03\x04\x01\x01\x12\x03\x17\x08\x1c\n4\n\x04\x04\x01\x02\x00\x12\x03\x19\x02\x1c\x1a\' The SHA256 hash of the remote content\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x19\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x19\t\x17\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x19\x1a\x1b\nH\n\x04\x04\x01\x02\x01\x12\x03\x1c\x02\x13\x1a; A 32 byte array for decrypting the remote content payload\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x1c\x02\x07\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1c\x08\x0e\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x1c\x11\x12\nT\n\x04\x04\x01\x02\x02\x12\x03\x1f\x02\x12\x1aG A byte array for the nonce used to encrypt the remote content payload\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x1f\x02\x07\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x1f\x08\r\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\x1f\x10\x11\nS\n\x04\x04\x01\x02\x03\x12\x03\"\x02\x11\x1aF A byte array for the salt used to encrypt the remote content payload\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03\"\x02\x07\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\"\x08\x0c\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\"\x0f\x10\n8\n\x04\x04\x01\x02\x04\x12\x03%\x02\x14\x1a+ The scheme of the URL. Must be \"https://\"\n\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03%\x02\x08\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03%\t\x0f\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03%\x12\x13\n,\n\x04\x04\x01\x02\x05\x12\x03(\x02\x11\x1a\x1f The URL of the remote content\n\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x03(\x02\x08\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03(\t\x0c\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03(\x0f\x10\nK\n\x04\x04\x01\x02\x06\x12\x03+\x02%\x1a> The size of the encrypted content in bytes (max size of 4GB)\n\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03+\x02\n\n\x0c\n\x05\x04\x01\x02\x06\x05\x12\x03+\x0b\x11\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\x03+\x12 \n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03+#$\n1\n\x04\x04\x01\x02\x07\x12\x03.\x02\x1f\x1a$ The filename of the remote content\n\n\x0c\n\x05\x04\x01\x02\x07\x04\x12\x03.\x02\n\n\x0c\n\x05\x04\x01\x02\x07\x05\x12\x03.\x0b\x11\n\x0c\n\x05\x04\x01\x02\x07\x01\x12\x03.\x12\x1a\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x03.\x1d\x1eb\x06proto3\n\x93\x10\n1mls/message_contents/content_types/reaction.proto\x12\'xmtp.mls.message_contents.content_types\"\x94\x02\n\nReactionV2\x12\x1c\n\treference\x18\x01 \x01(\tR\treference\x12,\n\x12reference_inbox_id\x18\x02 \x01(\tR\x10referenceInboxId\x12O\n\x06action\x18\x03 \x01(\x0e27.xmtp.mls.message_contents.content_types.ReactionActionR\x06action\x12\x18\n\x07content\x18\x04 \x01(\tR\x07content\x12O\n\x06schema\x18\x05 \x01(\x0e27.xmtp.mls.message_contents.content_types.ReactionSchemaR\x06schema*i\n\x0eReactionAction\x12\x1f\n\x1bREACTION_ACTION_UNSPECIFIED\x10\x00\x12\x19\n\x15REACTION_ACTION_ADDED\x10\x01\x12\x1b\n\x17REACTION_ACTION_REMOVED\x10\x02*\x89\x01\n\x0eReactionSchema\x12\x1f\n\x1bREACTION_SCHEMA_UNSPECIFIED\x10\x00\x12\x1b\n\x17REACTION_SCHEMA_UNICODE\x10\x01\x12\x1d\n\x19REACTION_SCHEMA_SHORTCODE\x10\x02\x12\x1a\n\x16REACTION_SCHEMA_CUSTOM\x10\x03Bs\n1org.xmtp.proto.mls.message_contents.content_typesZ>github.com/xmtp/proto/v3/go/mls/message_contents/content_typesJ\xa9\n\n\x06\x12\x04\n\x001\x01\n\x80\x02\n\x01\x0c\x12\x03\n\x00\x12\x1a\xf5\x01 reaction.proto\n This file defines the ReactionV2 message type and is associated with the following ContentTypeId:\n\n ContentTypeId {\n     authority_id: \"xmtp.org\",\n     type_id:      \"reaction\",\n     version_major: 2,\n     version_minor: 0,\n }\n\n\n\x08\n\x01\x02\x12\x03\x0c\x000\n\x08\n\x01\x08\x12\x03\x0e\x00U\n\t\n\x02\x08\x0b\x12\x03\x0e\x00U\n\x08\n\x01\x08\x12\x03\x0f\x00J\n\t\n\x02\x08\x01\x12\x03\x0f\x00J\n6\n\x02\x05\x00\x12\x04\x12\x00\x16\x01\x1a* Action enum to represent reaction states\n\n\n\n\x03\x05\x00\x01\x12\x03\x12\x05\x13\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x13\x02\"\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x13\x02\x1d\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x13 !\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x14\x02\x1c\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x14\x02\x17\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x14\x1a\x1b\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x15\x02\x1e\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x15\x02\x19\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x15\x1c\x1d\n=\n\x02\x05\x01\x12\x04\x19\x00\x1e\x01\x1a1 Schema enum to represent reaction content types\n\n\n\n\x03\x05\x01\x01\x12\x03\x19\x05\x13\n\x0b\n\x04\x05\x01\x02\x00\x12\x03\x1a\x02\"\n\x0c\n\x05\x05\x01\x02\x00\x01\x12\x03\x1a\x02\x1d\n\x0c\n\x05\x05\x01\x02\x00\x02\x12\x03\x1a !\n\x0b\n\x04\x05\x01\x02\x01\x12\x03\x1b\x02\x1e\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03\x1b\x02\x19\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03\x1b\x1c\x1d\n\x0b\n\x04\x05\x01\x02\x02\x12\x03\x1c\x02 \n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03\x1c\x02\x1b\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03\x1c\x1e\x1f\n\x0b\n\x04\x05\x01\x02\x03\x12\x03\x1d\x02\x1d\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03\x1d\x02\x18\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03\x1d\x1b\x1c\n#\n\x02\x04\x00\x12\x04!\x001\x01\x1a\x17 Reaction message type\n\n\n\n\x03\x04\x00\x01\x12\x03!\x08\x12\n.\n\x04\x04\x00\x02\x00\x12\x03#\x02\x17\x1a! The message ID being reacted to\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03#\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03#\t\x12\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03#\x15\x16\nj\n\x04\x04\x00\x02\x01\x12\x03\'\x02 \x1a] The inbox ID of the user who sent the message being reacted to\n Optional for group messages\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\'\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\'\t\x1b\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\'\x1e\x1f\n<\n\x04\x04\x00\x02\x02\x12\x03*\x02\x1c\x1a/ The action of the reaction (added or removed)\n\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03*\x02\x10\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03*\x11\x17\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03*\x1a\x1b\n*\n\x04\x04\x00\x02\x03\x12\x03-\x02\x15\x1a\x1d The content of the reaction\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03-\x02\x08\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03-\t\x10\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03-\x13\x14\n1\n\x04\x04\x00\x02\x04\x12\x030\x02\x1c\x1a$ The schema of the reaction content\n\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x030\x02\x10\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x030\x11\x17\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x030\x1a\x1bb\x06proto3\n\xb5\x10\n:mls/message_contents/content_types/wallet_send_calls.proto\x12\'xmtp.mls.message_contents.content_types\"\xd0\x02\n\x0fWalletSendCalls\x12\x18\n\x07version\x18\x01 \x01(\tR\x07version\x12\x19\n\x08chain_id\x18\x02 \x01(\tR\x07chainId\x12\x12\n\x04from\x18\x03 \x01(\tR\x04from\x12C\n\x05calls\x18\x04 \x03(\x0b2-.xmtp.mls.message_contents.content_types.CallR\x05calls\x12n\n\x0ccapabilities\x18\x05 \x03(\x0b2J.xmtp.mls.message_contents.content_types.WalletSendCalls.CapabilitiesEntryR\x0ccapabilities\x1a?\n\x11CapabilitiesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xe8\x01\n\x04Call\x12\x0e\n\x02to\x18\x01 \x01(\tR\x02to\x12\x12\n\x04data\x18\x02 \x01(\tR\x04data\x12\x14\n\x05value\x18\x03 \x01(\tR\x05value\x12\x10\n\x03gas\x18\x04 \x01(\tR\x03gas\x12W\n\x08metadata\x18\x05 \x03(\x0b2;.xmtp.mls.message_contents.content_types.Call.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01Bs\n1org.xmtp.proto.mls.message_contents.content_typesZ>github.com/xmtp/proto/v3/go/mls/message_contents/content_typesJ\x92\n\n\x06\x12\x04\n\x00)\x01\n\x95\x02\n\x01\x0c\x12\x03\n\x00\x12\x1a\x8a\x02 wallet_send_calls.proto\n This file defines the WalletSendCalls message type and is associated with the following ContentTypeId:\n\n ContentTypeId {\n     authority_id: \"xmtp.org\",\n     type_id:      \"walletSendCalls\",\n     version_major: 1,\n     version_minor: 0,\n }\n\n\n\x08\n\x01\x02\x12\x03\x0c\x000\n\x08\n\x01\x08\x12\x03\x0e\x00U\n\t\n\x02\x08\x0b\x12\x03\x0e\x00U\n\x08\n\x01\x08\x12\x03\x0f\x00J\n\t\n\x02\x08\x01\x12\x03\x0f\x00J\nL\n\x02\x04\x00\x12\x04\x12\x00\x1b\x01\x1a@ WalletSendCalls represents parameters for sending wallet calls\n\n\n\n\x03\x04\x00\x01\x12\x03\x12\x08\x17\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x13\x02\x15\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x13\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x13\t\x10\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x13\x13\x14\n(\n\x04\x04\x00\x02\x01\x12\x03\x15\x02\x16\x1a\x1b hex chain id, e.g., \"0x1\"\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x15\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x15\t\x11\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x15\x14\x15\n:\n\x04\x04\x00\x02\x02\x12\x03\x17\x02\x12\x1a- hex address of the sender, e.g., \"0xabc...\"\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x17\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x17\t\r\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x17\x10\x11\n\x0b\n\x04\x04\x00\x02\x03\x12\x03\x18\x02\x1a\n\x0c\n\x05\x04\x00\x02\x03\x04\x12\x03\x18\x02\n\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03\x18\x0b\x0f\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x18\x10\x15\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x18\x18\x19\n:\n\x04\x04\x00\x02\x04\x12\x03\x1a\x02\'\x1a- wallet capabilities to request or configure\n\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03\x1a\x02\x15\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x1a\x16\"\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x1a%&\n<\n\x02\x04\x01\x12\x04\x1e\x00)\x01\x1a0 Call represents an individual transaction call\n\n\n\n\x03\x04\x01\x01\x12\x03\x1e\x08\x0c\n\"\n\x04\x04\x01\x02\x00\x12\x03 \x02\x10\x1a\x15 destination address\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03 \x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03 \t\x0b\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03 \x0e\x0f\n \n\x04\x04\x01\x02\x01\x12\x03\"\x02\x12\x1a\x13 call data payload\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\"\x02\x08\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\"\t\r\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\"\x10\x11\n \n\x04\x04\x01\x02\x02\x12\x03$\x02\x13\x1a\x13 hex value to send\n\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03$\x02\x08\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03$\t\x0e\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03$\x11\x12\n\x1c\n\x04\x04\x01\x02\x03\x12\x03&\x02\x11\x1a\x0f hex gas limit\n\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03&\x02\x08\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03&\t\x0c\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03&\x0f\x10\n$\n\x04\x04\x01\x02\x04\x12\x03(\x02#\x1a\x17 metadata for the call\n\n\x0c\n\x05\x04\x01\x02\x04\x06\x12\x03(\x02\x15\n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03(\x16\x1e\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03(!\"b\x06proto3\n\x9f;\n1mls/message_contents/external_commit_policy.proto\x12\x19xmtp.mls.message_contents\"\xe3\x01\n\x16ExternalCommitPolicyV1\x122\n\x15allow_external_commit\x18\x01 \x01(\x08R\x13allowExternalCommit\x12\"\n\rexpires_at_ns\x18\x02 \x01(\x04R\x0bexpiresAtNs\x12 \n\x0cexpire_in_ns\x18\x03 \x01(\x04R\nexpireInNs\x12#\n\rsymmetric_key\x18\x04 \x01(\x0cR\x0csymmetricKey\x12*\n\x11external_group_id\x18\x05 \x01(\x0cR\x0fexternalGroupId\"k\n\x19ExternalCommitPolicyEntry\x12C\n\x02v1\x18\x01 \x01(\x0b21.xmtp.mls.message_contents.ExternalCommitPolicyV1H\x00R\x02v1B\t\n\x07versionBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\x9a7\n\x07\x12\x05\x1c\x00\x8a\x01\x01\n\x89\x0b\n\x01\x0c\x12\x03\x1c\x00\x12\x1a\xfe\n Group-wide external-commit policy component for the app-data registry.\n\n EXTERNAL_COMMIT_POLICY is a well-known component (registered with its\n own ComponentId in the mid-range) that carries cross-cutting flags\n governing whether and how new members may join the group via MLS\n External Commits (RFC 9420 \xc2\xa712.4.3.2) \xe2\x80\x94 the QR-invite / link-invite\n flow.\n\n This component is the master switch (defense-in-depth gate) for the\n external-commit mechanism. Even when `allow_external_commit` is true,\n the actual shape and effects of an external commit are bounded by:\n\n   1. RFC 9420 / libxmtp invariants enforced in the validator\n      (exactly one ExternalInit, joiner credential binding on all Adds,\n      no by-reference proposals, no SelfRemove, etc.).\n   2. Per-component `external_committer_permissions` blocks declared on\n      each touched component\'s `ComponentMetadata`.\n\n In other words: EXTERNAL_COMMIT_POLICY is the runtime-toggleable\n master switch + time-window controls. `external_committer_permissions`\n is the declarative, per-component surface that says *what* an external\n committer may do once the master switch is on. Both must admit the\n commit for it to be accepted.\n\n Toggling fields at runtime is an AppDataUpdate(EXTERNAL_COMMIT_POLICY)\n proposal; the component\'s update policy (in its\n `ComponentMetadata.permissions`) gates who can flip the bits\n (super-admin-only by default).\n\n\x08\n\x01\x02\x12\x03\x1e\x00\"\n\x08\n\x01\x08\x12\x03 \x00G\n\t\n\x02\x08\x0b\x12\x03 \x00G\n\x08\n\x01\x08\x12\x03!\x00<\n\t\n\x02\x08\x01\x12\x03!\x00<\n\xb3\t\n\x02\x04\x00\x12\x059\x00\x81\x01\x01\x1a\xa5\t v1 external-commit-policy payload.\n Field-coupling invariants enforced by libxmtp when applying an\n AppDataUpdate(EXTERNAL_COMMIT_POLICY) proposal:\n\n   * When `allow_external_commit` transitions to true: `symmetric_key`\n     and `external_group_id` MUST be populated (non-empty, meeting\n     their length requirements) in the same proposal. The two\n     transitions are atomic \xe2\x80\x94 there is no window where the bit is on\n     but the invite coordinates are unset.\n\n   * When `allow_external_commit` transitions to false (revoke):\n     `symmetric_key` and `external_group_id` MUST be cleared (set to\n     empty bytes) in the same proposal. Leaving stale coordinates in\n     the group state after revoke would let a future re-enable\n     accidentally revive a previously-distributed key.\n\n   * On re-enable (false \xe2\x86\x92 true after a prior revoke): the new\n     `symmetric_key` MUST differ from every previously-used value for\n     this group, and the new `external_group_id` SHOULD differ as\n     well. Reusing a revoked key would re-validate every QR ever\n     printed under that key, defeating the revocation. Admin clients\n     are responsible for generating fresh material on each enable.\n\n\n\n\x03\x04\x00\x01\x12\x039\x08\x1e\n\x82\x03\n\x04\x04\x00\x02\x00\x12\x03B\x02!\x1a\xf4\x02 Master switch for MLS External Commits adding new members.\n Required for the QR-invite flow. Defaults to false; admins\n (super-admin by default) opt in via\n AppDataUpdate(EXTERNAL_COMMIT_POLICY).\n\n See the field-coupling invariants in the message-level comment\n above: enabling MUST populate symmetric_key + external_group_id;\n revoking (true \xe2\x86\x92 false) MUST clear them.\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03B\x02\x06\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03B\x07\x1c\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03B\x1f \n\xb3\x02\n\x04\x04\x00\x02\x01\x12\x03H\x02\x1b\x1a\xa5\x02 Wall-clock auto-disable timestamp (ns since UNIX epoch).\n 0 = no automatic expiry. After this timestamp the validator\n rejects all external commits regardless of `allow_external_commit`.\n Lets admins issue time-bounded invite campaigns without having to\n come back and flip the bit manually.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03H\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03H\t\x16\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03H\x19\x1a\n\xcd\x02\n\x04\x04\x00\x02\x02\x12\x03N\x02\x1a\x1a\xbf\x02 Maximum staleness of the GroupInfo referenced by an external\n commit, in nanoseconds since GroupInfo export. 0 = no staleness\n limit. External commits whose referenced GroupInfo was exported\n more than `expire_in_ns` ago are rejected. Narrows the replay\n window for stolen-blob attacks and forces re-export frequency.\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03N\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03N\t\x15\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03N\x18\x19\n\x9e\n\n\x04\x04\x00\x02\x03\x12\x03f\x02\x1a\x1a\x90\n 32-byte ChaCha20Poly1305 key used to wrap the EncryptedGroupInfoBlob\n for the currently-active invite. Carried in the group state so any\n member (especially a just-joined external committer) can re-export\n GroupInfo and re-upload a refreshed blob under the same key after a\n join \xe2\x80\x94 without this, a printed QR / link would die the moment the\n issuing admin went offline.\n\n The QR carries the same key bytes. Rotation = admin sets a new value\n here in a single AppDataUpdate(EXTERNAL_COMMIT_POLICY) proposal AND\n issues a new QR carrying the matching key; old QR holders\' keys no\n longer decrypt blobs the service serves under the rotated slot.\n\n Length MUST be exactly 32 bytes when populated. Empty (zero-length)\n means no active invite \xe2\x80\x94 and MUST coincide with\n `allow_external_commit == false` (see the field-coupling invariants\n at the top of this message). Revoking the invite MUST clear this\n field; re-enabling MUST populate it with a freshly-generated value\n distinct from any previously-used key for this group.\n\n Note: the service_pointer (where the blob lives) is intentionally\n NOT stored in the group. It is per-QR application-defined opaque\n bytes; different invites for the same group may point at different\n services. Joiners use the service_pointer from the QR they scanned.\n\n\x0c\n\x05\x04\x00\x02\x03\x05\x12\x03f\x02\x07\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03f\x08\x15\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03f\x18\x19\n\xc6\x0b\n\x04\x04\x00\x02\x04\x12\x04\x80\x01\x02\x1e\x1a\xb7\x0b Identifier for the service slot holding the active invite\'s\n encrypted blob. Application-defined opaque bytes (UUID, snowflake,\n short slot key, etc.); decoupled from the MLS group_id. Admins\n MAY rotate the symmetric_key while keeping this stable (overwrite\n the same slot on the service) or change both together (new slot,\n leaves the old slot orphaned for application-side GC).\n\n The QR carries the same value. The joiner verifies that the QR\'s\n `external_group_id` equals this field after joining, as\n defense-in-depth against a stale or swapped QR. Mismatch indicates\n the admin rotated to a new slot after the QR was minted; the\n joining client SHOULD treat the just-published commit as orphaned\n (it validates fine, but the refreshed blob the joiner would upload\n to the old slot will not be reachable by holders of the new QR).\n\n MUST be at least 4 bytes when populated (collision-avoidance floor\n for tiny services). RECOMMENDED: 16 random bytes when no\n application-specific scheme is in use. Empty (zero-length) means\n no active invite \xe2\x80\x94 and MUST coincide with\n `allow_external_commit == false` (see the field-coupling\n invariants at the top of this message). Revoking the invite MUST\n clear this field; re-enabling SHOULD use a freshly-generated value\n (reusing a prior `external_group_id` is permitted only when the\n admin intends to overwrite the old service slot \xe2\x80\x94 typically the\n admin generates a new value to leave the prior slot orphaned).\n\n\r\n\x05\x04\x00\x02\x04\x05\x12\x04\x80\x01\x02\x07\n\r\n\x05\x04\x00\x02\x04\x01\x12\x04\x80\x01\x08\x19\n\r\n\x05\x04\x00\x02\x04\x03\x12\x04\x80\x01\x1c\x1d\n\xdb\x01\n\x02\x04\x01\x12\x06\x86\x01\x00\x8a\x01\x01\x1a\xcc\x01 Versioned envelope. New variants are added as new oneof variants;\n readers that don\'t recognize a variant treat the policy as default\n (all fields zero) per the standard unknown-variant tolerance rules.\n\n\x0b\n\x03\x04\x01\x01\x12\x04\x86\x01\x08!\n\x0e\n\x04\x04\x01\x08\x00\x12\x06\x87\x01\x02\x89\x01\x03\n\r\n\x05\x04\x01\x08\x00\x01\x12\x04\x87\x01\x08\x0f\n\x0c\n\x04\x04\x01\x02\x00\x12\x04\x88\x01\x04\"\n\r\n\x05\x04\x01\x02\x00\x06\x12\x04\x88\x01\x04\x1a\n\r\n\x05\x04\x01\x02\x00\x01\x12\x04\x88\x01\x1b\x1d\n\r\n\x05\x04\x01\x02\x00\x03\x12\x04\x88\x01 !b\x06proto3\n\xd6-\n*mls/message_contents/external_invite.proto\x12\x19xmtp.mls.message_contents\"\x93\x01\n\x17ExternalInvitePayloadV1\x12\'\n\x0fservice_pointer\x18\x01 \x01(\x0cR\x0eservicePointer\x12*\n\x11external_group_id\x18\x02 \x01(\x0cR\x0fexternalGroupId\x12#\n\rsymmetric_key\x18\x03 \x01(\x0cR\x0csymmetricKey\"h\n\x15ExternalInvitePayload\x12D\n\x02v1\x18\x01 \x01(\x0b22.xmtp.mls.message_contents.ExternalInvitePayloadV1H\x00R\x02v1B\t\n\x07version\"\xb4\x01\n\x18EncryptedGroupInfoBlobV1\x12\x14\n\x05nonce\x18\x01 \x01(\x0cR\x05nonce\x12\x1e\n\nciphertext\x18\x02 \x01(\x0cR\nciphertext\x12\x14\n\x05epoch\x18\x03 \x01(\x04R\x05epoch\x12(\n\x10group_state_hash\x18\x04 \x01(\x0cR\x0egroupStateHash\x12\"\n\rexpires_at_ns\x18\x05 \x01(\x04R\x0bexpiresAtNs\"j\n\x16EncryptedGroupInfoBlob\x12E\n\x02v1\x18\x01 \x01(\x0b23.xmtp.mls.message_contents.EncryptedGroupInfoBlobV1H\x00R\x02v1B\t\n\x07versionBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\x88(\n\x06\x12\x04\x01\x00o\x01\nd\n\x01\x0c\x12\x03\x01\x00\x12\x1aZ External invite payloads used for QR-code or link-based joining via MLS external commits\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\n\x83\x01\n\x02\x04\x00\x12\x04\n\x00!\x01\x1aw v1 shape of the shareable invite blob for QR-code or link-based joining\n of an XMTP group via an MLS external commit.\n\n\n\n\x03\x04\x00\x01\x12\x03\n\x08\x1f\nQ\n\x04\x04\x00\x02\x00\x12\x03\x0c\x02\x1c\x1aD Application-defined opaque bytes identifying the service location.\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x0c\x02\x07\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0c\x08\x17\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0c\x1a\x1b\n\xc7\x06\n\x04\x04\x00\x02\x01\x12\x03\x1d\x02\x1e\x1a\xb9\x06 Identifier for the service slot holding the encrypted blob. Format\n is application-defined (UUID, snowflake, short slot key, etc.) and\n opaque to libxmtp; the only constraint is that the value is unique\n within the chosen service. Decoupled from the MLS group_id \xe2\x80\x94\n rotation may keep this stable (overwrite the same slot) or change\n it (new slot on the service); the admin chooses per invite.\n\n MUST be at least 4 bytes (collision-avoidance floor for tiny\n services). RECOMMENDED: 16 random bytes when no application-\n specific scheme is in use. Maximum length is not capped by the\n protocol; applications should bound it to fit their QR / link\n transport.\n\n After joining, the joiner verifies this matches\n `EXTERNAL_COMMIT_POLICY.external_group_id` in the group state as\n defense-in-depth against a stale or swapped QR.\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x1d\x02\x07\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x1d\x08\x19\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x1d\x1c\x1d\n\x8e\x01\n\x04\x04\x00\x02\x02\x12\x03 \x02\x1a\x1a\x80\x01 32 bytes; ChaCha20Poly1305 key used to wrap the GroupInfo. Matches\n `EXTERNAL_COMMIT_POLICY.symmetric_key` in the group state.\n\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03 \x02\x07\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03 \x08\x15\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03 \x18\x19\n\xd8\x03\n\x02\x04\x01\x12\x04+\x00/\x01\x1a\xcb\x03 Versioned envelope for the shareable invite blob. The application embeds\n the serialized bytes in whatever transport it prefers (hex, base64, raw\n QR, NFC, etc.) and stores the corresponding EncryptedGroupInfoBlob on an\n external service keyed by the v1 payload\'s `external_group_id`.\n\n New wire-format variants are added as new oneof entries; readers that\n don\'t recognize a variant treat the invite as unparseable and fail\n closed (no implicit downgrade).\n\n\n\n\x03\x04\x01\x01\x12\x03+\x08\x1d\n\x0c\n\x04\x04\x01\x08\x00\x12\x04,\x02.\x03\n\x0c\n\x05\x04\x01\x08\x00\x01\x12\x03,\x08\x0f\n\x0b\n\x04\x04\x01\x02\x00\x12\x03-\x04#\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03-\x04\x1b\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03-\x1c\x1e\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03-!\"\n\x9c\x08\n\x02\x04\x02\x12\x04G\x00`\x01\x1a\x8f\x08 v1 shape of the encrypted-GroupInfo envelope.\n\n `epoch` and `group_state_hash` are plaintext metadata serving two\n distinct purposes:\n\n   * `epoch` provides a total ordering on uploads. The service accepts\n     an upload iff `upload.epoch > current.epoch` (strictly newer);\n     lower-epoch uploads are stale and rejected outright.\n\n   * `group_state_hash` is a consistency check at a single epoch. MLS\n     is deterministic \xe2\x80\x94 every member that applies the same commit\n     derives identical group state \xe2\x80\x94 so two correct uploads at the\n     same epoch MUST carry the same hash. When `upload.epoch ==\n     current.epoch`: equal hashes mean an idempotent re-upload (no-op\n     or duplicate-reject); different hashes mean the uploaders are on\n     forked views of the group and the service must refuse to pick a\n     winner.\n\n The joiner additionally verifies on download that the blob\'s `epoch`\n and `group_state_hash` match the decrypted GroupInfo before\n attempting to join \xe2\x80\x94 closes the \"malicious service swapped\n ciphertext\" gap.\n\n\n\n\x03\x04\x02\x01\x12\x03G\x08 \nL\n\x04\x04\x02\x02\x00\x12\x03I\x02\x12\x1a? 12 bytes; ChaCha20Poly1305 nonce specific to this ciphertext.\n\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x03I\x02\x07\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03I\x08\r\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03I\x10\x11\nl\n\x04\x04\x02\x02\x01\x12\x03L\x02\x17\x1a_ wrap_payload_symmetric output: AEAD ciphertext over the serialized\n MlsMessageOut(GroupInfo).\n\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03L\x02\x07\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03L\x08\x12\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03L\x15\x16\n\xe4\x01\n\x04\x04\x02\x02\x02\x12\x03Q\x02\x13\x1a\xd6\x01 MLS group epoch of the wrapped GroupInfo. Plaintext; the service\n totally orders uploads by this value \xe2\x80\x94 strictly-newer wins, stale\n is rejected. Joiner verifies against the decrypted GroupInfo\n before joining.\n\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03Q\x02\x08\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03Q\t\x0e\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03Q\x11\x12\n\xa9\x02\n\x04\x04\x02\x02\x03\x12\x03W\x02\x1d\x1a\x9b\x02 Tree-hash (or equivalent group-state digest) of the wrapped\n GroupInfo. Plaintext; the service uses this only at equal epochs\n to detect forks (same epoch + differing hash = forked uploaders).\n Not used for ordering. Joiner verifies against the decrypted\n GroupInfo before joining.\n\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03W\x02\x07\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03W\x08\x18\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03W\x1b\x1c\n\xbd\x03\n\x04\x04\x02\x02\x04\x12\x03_\x02\x1b\x1a\xaf\x03 Wall-clock expiry of this blob, in nanoseconds since UNIX epoch.\n 0 means no expiry. The service uses this as a TTL hint and MAY\n garbage-collect blobs past their `expires_at_ns` autonomously.\n The joining client also enforces this \xe2\x80\x94 refuses to join from an\n expired blob even if the service is still serving it. Admin\n bounds the campaign by setting this at upload time; extending an\n invite is a re-upload with a later value.\n\n\x0c\n\x05\x04\x02\x02\x04\x05\x12\x03_\x02\x08\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03_\t\x16\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03_\x19\x1a\n\x80\x04\n\x02\x04\x03\x12\x04k\x00o\x01\x1a\xf3\x03 Versioned envelope wrapping a single GroupInfo TLS-serialized bytes\n under an AEAD scheme (ChaCha20Poly1305 in v1) with a fresh nonce per\n re-encryption. Stored on the external service and replaced by joiners\n (with a fresh nonce) after each successful join.\n\n New variants represent breaking wire-format changes (different AEAD,\n different metadata layout). Readers that don\'t recognize a variant\n fail closed \xe2\x80\x94 the joiner cannot attempt MLS state transitions against\n a blob it can\'t validate.\n\n\n\n\x03\x04\x03\x01\x12\x03k\x08\x1e\n\x0c\n\x04\x04\x03\x08\x00\x12\x04l\x02n\x03\n\x0c\n\x05\x04\x03\x08\x00\x01\x12\x03l\x08\x0f\n\x0b\n\x04\x04\x03\x02\x00\x12\x03m\x04$\n\x0c\n\x05\x04\x03\x02\x00\x06\x12\x03m\x04\x1c\n\x0c\n\x05\x04\x03\x02\x00\x01\x12\x03m\x1d\x1f\n\x0c\n\x05\x04\x03\x02\x00\x03\x12\x03m\"#b\x06proto3\n\x8d\x12\n+mls/message_contents/group_membership.proto\x12\x19xmtp.mls.message_contents\"\xd3\x01\n\x0fGroupMembership\x12Q\n\x07members\x18\x01 \x03(\x0b27.xmtp.mls.message_contents.GroupMembership.MembersEntryR\x07members\x121\n\x14failed_installations\x18\x02 \x03(\x0cR\x13failedInstallations\x1a:\n\x0cMembersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\x04R\x05value:\x028\x01\"\xc1\x01\n\x14GroupMembershipEntry\x12D\n\x02v1\x18\x01 \x01(\x0b22.xmtp.mls.message_contents.GroupMembershipEntry.V1H\x00R\x02v1\x1aX\n\x02V1\x12\x1f\n\x0bsequence_id\x18\x01 \x01(\x04R\nsequenceId\x121\n\x14failed_installations\x18\x02 \x03(\x0cR\x13failedInstallationsB\t\n\x07versionBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xc7\r\n\x06\x12\x04\x01\x00*\x01\n\x1c\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x12 Group membership\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\n\xa3\x01\n\x02\x04\x00\x12\x04\n\x00\x0e\x01\x1a\x96\x01 Contains a mapping of `inbox_id` -> `sequence_id` for all members of a group.\n Designed to be stored in the group context extension of the MLS group\n\n\n\n\x03\x04\x00\x01\x12\x03\n\x08\x17\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0b\x02\"\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x0b\x02\x15\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0b\x16\x1d\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0b !\nu\n\x04\x04\x00\x02\x01\x12\x03\r\x02*\x1ah List of installations that failed to be added due to errors encountered during the evaluation process.\n\n\x0c\n\x05\x04\x00\x02\x01\x04\x12\x03\r\x02\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\r\x0b\x10\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\r\x11%\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\r()\n\xc0\x01\n\x02\x04\x01\x12\x04\x13\x00*\x01\x1a\xb3\x01 Per-member membership state stored inside the GROUP_MEMBERSHIP component\n as a TlsMap<InboxId, bytes>. Keys are 32-byte inbox ids, values are the\n encoded bytes of this message.\n\n\n\n\x03\x04\x01\x01\x12\x03\x13\x08\x1c\n6\n\x04\x04\x01\x03\x00\x12\x04\x15\x02%\x03\x1a( V1 of the per-member membership state.\n\n\x0c\n\x05\x04\x01\x03\x00\x01\x12\x03\x15\n\x0c\n\xbe\x01\n\x06\x04\x01\x03\x00\x02\x00\x12\x03\x19\x04\x1b\x1a\xae\x01 Latest identity-update sequence id this client has applied for this\n member. Validator-checked at bootstrap against the pre-flip\n `GroupMembership.members[inbox_id]` value.\n\n\x0e\n\x07\x04\x01\x03\x00\x02\x00\x05\x12\x03\x19\x04\n\n\x0e\n\x07\x04\x01\x03\x00\x02\x00\x01\x12\x03\x19\x0b\x16\n\x0e\n\x07\x04\x01\x03\x00\x02\x00\x03\x12\x03\x19\x19\x1a\n\xb9\x04\n\x06\x04\x01\x03\x00\x02\x01\x12\x03$\x04,\x1a\xa9\x04 Installation ids belonging to this member that we previously failed\n to add (expired key package, validation failure, etc.). Used to\n suppress retries on later membership updates.\n\n Sender-authoritative at migration: the migrator partitions the\n global `failed_installations` per inbox by walking identity-update\n history. Receivers accept these bytes as-is \xe2\x80\x94 the validator only\n checks `sequence_id`, so the blast radius of a bad partition is\n bounded to extra or silenced retries. Installations whose owning\n inbox can\'t be determined are dropped.\n\n\x0e\n\x07\x04\x01\x03\x00\x02\x01\x04\x12\x03$\x04\x0c\n\x0e\n\x07\x04\x01\x03\x00\x02\x01\x05\x12\x03$\r\x12\n\x0e\n\x07\x04\x01\x03\x00\x02\x01\x01\x12\x03$\x13\'\n\x0e\n\x07\x04\x01\x03\x00\x02\x01\x03\x12\x03$*+\n\x0c\n\x04\x04\x01\x08\x00\x12\x04\'\x02)\x03\n\x0c\n\x05\x04\x01\x08\x00\x01\x12\x03\'\x08\x0f\n\x0b\n\x04\x04\x01\x02\x00\x12\x03(\x04\x0e\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03(\x04\x06\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03(\x07\t\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03(\x0c\rb\x06proto3\n\x9a\x08\n\"mls/message_contents/oneshot.proto\x12\x19xmtp.mls.message_contents\"p\n\x0eOneshotMessage\x12N\n\rreadd_request\x18\x01 \x01(\x0b2\'.xmtp.mls.message_contents.ReaddRequestH\x00R\x0creaddRequestB\x0e\n\x0cmessage_type\"d\n\x0cReaddRequest\x12\x19\n\x08group_id\x18\x01 \x01(\x0cR\x07groupId\x129\n\x19latest_commit_sequence_id\x18\x02 \x01(\x04R\x16latestCommitSequenceIdJ\xf8\x05\n\x06\x12\x04\x02\x00\x15\x01\nu\n\x01\x0c\x12\x03\x02\x00\x12\x1ak Out-of-band signaling payloads that are sent between devices on\n side channels outside of the main group.\n\n\x08\n\x01\x02\x12\x03\x04\x00\"\n\n\n\x02\x04\x00\x12\x04\x06\x00\n\x01\n\n\n\x03\x04\x00\x01\x12\x03\x06\x08\x16\n\x0c\n\x04\x04\x00\x08\x00\x12\x04\x07\x02\t\x03\n\x0c\n\x05\x04\x00\x08\x00\x01\x12\x03\x07\x08\x14\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x08\x04#\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x08\x04\x10\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x08\x11\x1e\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x08!\"\n\xda\x01\n\x02\x04\x01\x12\x04\x0f\x00\x15\x01\x1a\xcd\x01 A request sent by an installation to recover from a fork. Other members\n may remove and readd that installation from the group.\n XIP: https://community.xmtp.org/t/xip-68-draft-automated-fork-recovery/951\n\n\n\n\x03\x04\x01\x01\x12\x03\x0f\x08\x14\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x10\x02\x15\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x10\x02\x07\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x10\x08\x10\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x10\x13\x14\n\xb7\x01\n\x04\x04\x01\x02\x01\x12\x03\x14\x02\'\x1a\xa9\x01 The sequence ID of the latest commit log entry at the time the request\n is sent; used to disambiguate cases where an installation forks\n and is readded multiple times.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x14\x02\x08\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x14\t\"\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x14%&b\x06proto3\n\xca\x10\n)mls/message_contents/group_metadata.proto\x12\x19xmtp.mls.message_contents\x1a\"mls/message_contents/oneshot.proto\"\x93\x03\n\x0fGroupMetadataV1\x12X\n\x11conversation_type\x18\x01 \x01(\x0e2+.xmtp.mls.message_contents.ConversationTypeR\x10conversationType\x126\n\x17creator_account_address\x18\x02 \x01(\tR\x15creatorAccountAddress\x12(\n\x10creator_inbox_id\x18\x03 \x01(\tR\x0ecreatorInboxId\x12H\n\ndm_members\x18\x04 \x01(\x0b2$.xmtp.mls.message_contents.DmMembersH\x00R\tdmMembers\x88\x01\x01\x12W\n\x0foneshot_message\x18\x05 \x01(\x0b2).xmtp.mls.message_contents.OneshotMessageH\x01R\x0eoneshotMessage\x88\x01\x01B\r\n\x0b_dm_membersB\x12\n\x10_oneshot_message\"\"\n\x05Inbox\x12\x19\n\x08inbox_id\x18\x01 \x01(\tR\x07inboxId\"\x97\x01\n\tDmMembers\x12D\n\rdm_member_one\x18\x01 \x01(\x0b2 .xmtp.mls.message_contents.InboxR\x0bdmMemberOne\x12D\n\rdm_member_two\x18\x02 \x01(\x0b2 .xmtp.mls.message_contents.InboxR\x0bdmMemberTwo*\xa7\x01\n\x10ConversationType\x12!\n\x1dCONVERSATION_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17CONVERSATION_TYPE_GROUP\x10\x01\x12\x18\n\x14CONVERSATION_TYPE_DM\x10\x02\x12\x1a\n\x16CONVERSATION_TYPE_SYNC\x10\x03\x12\x1d\n\x19CONVERSATION_TYPE_ONESHOT\x10\x04BW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xfe\x08\n\x06\x12\x04\x01\x00(\x01\n$\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x1a Group immutable metadata\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\t\n\x02\x03\x00\x12\x03\x05\x00,\n\x08\n\x01\x08\x12\x03\x07\x00G\n\t\n\x02\x08\x0b\x12\x03\x07\x00G\n\x08\n\x01\x08\x12\x03\x08\x00<\n\t\n\x02\x08\x01\x12\x03\x08\x00<\n/\n\x02\x04\x00\x12\x04\x0b\x00\x14\x01\x1a# Parent message for group metadata\n\n\n\n\x03\x04\x00\x01\x12\x03\x0b\x08\x17\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0c\x02)\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x0c\x02\x12\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0c\x13$\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0c\'(\n(\n\x04\x04\x00\x02\x01\x12\x03\x0e\x02%\x1a\x1b This will be removed soon\n\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0e\t \n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0e#$\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x0f\x02\x1e\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x0f\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0f\t\x19\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0f\x1c\x1d\n>\n\x04\x04\x00\x02\x03\x12\x03\x11\x02$\x1a1 Should only be present for CONVERSATION_TYPE_DM\n\n\x0c\n\x05\x04\x00\x02\x03\x04\x12\x03\x11\x02\n\n\x0c\n\x05\x04\x00\x02\x03\x06\x12\x03\x11\x0b\x14\n\x0c\n\x05\x04\x00\x02\x03\x01\x12\x03\x11\x15\x1f\n\x0c\n\x05\x04\x00\x02\x03\x03\x12\x03\x11\"#\nC\n\x04\x04\x00\x02\x04\x12\x03\x13\x02H\x1a6 Should only be present for CONVERSATION_TYPE_ONESHOT\n\n\x0c\n\x05\x04\x00\x02\x04\x04\x12\x03\x13\x02\n\n\x0c\n\x05\x04\x00\x02\x04\x06\x12\x03\x13\x0b3\n\x0c\n\x05\x04\x00\x02\x04\x01\x12\x03\x134C\n\x0c\n\x05\x04\x00\x02\x04\x03\x12\x03\x13FG\n.\n\x02\x05\x00\x12\x04\x17\x00\x1d\x01\x1a\" Defines the type of conversation\n\n\n\n\x03\x05\x00\x01\x12\x03\x17\x05\x15\n\x0b\n\x04\x05\x00\x02\x00\x12\x03\x18\x02$\n\x0c\n\x05\x05\x00\x02\x00\x01\x12\x03\x18\x02\x1f\n\x0c\n\x05\x05\x00\x02\x00\x02\x12\x03\x18\"#\n\x0b\n\x04\x05\x00\x02\x01\x12\x03\x19\x02\x1e\n\x0c\n\x05\x05\x00\x02\x01\x01\x12\x03\x19\x02\x19\n\x0c\n\x05\x05\x00\x02\x01\x02\x12\x03\x19\x1c\x1d\n\x0b\n\x04\x05\x00\x02\x02\x12\x03\x1a\x02\x1b\n\x0c\n\x05\x05\x00\x02\x02\x01\x12\x03\x1a\x02\x16\n\x0c\n\x05\x05\x00\x02\x02\x02\x12\x03\x1a\x19\x1a\n\x0b\n\x04\x05\x00\x02\x03\x12\x03\x1b\x02\x1d\n\x0c\n\x05\x05\x00\x02\x03\x01\x12\x03\x1b\x02\x18\n\x0c\n\x05\x05\x00\x02\x03\x02\x12\x03\x1b\x1b\x1c\n\x0b\n\x04\x05\x00\x02\x04\x12\x03\x1c\x02 \n\x0c\n\x05\x05\x00\x02\x04\x01\x12\x03\x1c\x02\x1b\n\x0c\n\x05\x05\x00\x02\x04\x02\x12\x03\x1c\x1e\x1f\n(\n\x02\x04\x01\x12\x04 \x00\"\x01\x1a\x1c Wrapper around an Inbox Id\n\n\n\n\x03\x04\x01\x01\x12\x03 \x08\r\n\x0b\n\x04\x04\x01\x02\x00\x12\x03!\x02\x16\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03!\x02\x08\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03!\t\x11\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03!\x14\x15\n+\n\x02\x04\x02\x12\x04%\x00(\x01\x1a\x1f Ordering does not matter here\n\n\n\n\x03\x04\x02\x01\x12\x03%\x08\x11\n\x0b\n\x04\x04\x02\x02\x00\x12\x03&\x02\x1a\n\x0c\n\x05\x04\x02\x02\x00\x06\x12\x03&\x02\x07\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x03&\x08\x15\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x03&\x18\x19\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\'\x02\x1a\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03\'\x02\x07\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\'\x08\x15\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\'\x18\x19b\x06proto3\n\xb3\n\n1mls/message_contents/group_mutable_metadata.proto\x12\x19xmtp.mls.message_contents\"\xe4\x02\n\x16GroupMutableMetadataV1\x12a\n\nattributes\x18\x01 \x03(\x0b2A.xmtp.mls.message_contents.GroupMutableMetadataV1.AttributesEntryR\nattributes\x12A\n\nadmin_list\x18\x02 \x01(\x0b2\".xmtp.mls.message_contents.InboxesR\tadminList\x12L\n\x10super_admin_list\x18\x03 \x01(\x0b2\".xmtp.mls.message_contents.InboxesR\x0esuperAdminList\x1a=\n\x0fAttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\x08\x04\x10\x05R\x11commit_log_signer\"&\n\x07Inboxes\x12\x1b\n\tinbox_ids\x18\x01 \x03(\tR\x08inboxIdsBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xf2\x05\n\x06\x12\x04\x01\x00\x18\x01\n\"\n\x01\x0c\x12\x03\x01\x00\x12\x1a\x18 Group mutable metadata\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\n0\n\x02\x04\x00\x12\x04\t\x00\x13\x01\x1a$ Message for group mutable metadata\n\n\n\n\x03\x04\x00\x01\x12\x03\t\x08\x1e\nJ\n\x04\x04\x00\x02\x00\x12\x03\x0b\x02%\x1a= Map to store various metadata attributes (Group name, etc.)\n\n\x0c\n\x05\x04\x00\x02\x00\x06\x12\x03\x0b\x02\x15\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0b\x16 \n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0b#$\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x0c\x02\x19\n\x0c\n\x05\x04\x00\x02\x01\x06\x12\x03\x0c\x02\t\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0c\n\x14\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0c\x17\x18\nd\n\x04\x04\x00\x02\x02\x12\x03\x0f\x02\x1f\x1aW Creator starts as only super_admin\n Only super_admin can add/remove other super_admin\n\n\x0c\n\x05\x04\x00\x02\x02\x06\x12\x03\x0f\x02\t\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0f\n\x1a\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0f\x1d\x1e\nG\n\x03\x04\x00\t\x12\x03\x11\x02\r\x1a; Top-level commit_log_signer removed in favor of attribute\n\n\x0b\n\x04\x04\x00\t\x00\x12\x03\x11\x0b\x0c\n\x0c\n\x05\x04\x00\t\x00\x01\x12\x03\x11\x0b\x0c\n\x0c\n\x05\x04\x00\t\x00\x02\x12\x03\x11\x0b\x0c\n\n\n\x03\x04\x00\n\x12\x03\x12\x02\x1f\n\x0b\n\x04\x04\x00\n\x00\x12\x03\x12\x0b\x1e\n9\n\x02\x04\x01\x12\x04\x16\x00\x18\x01\x1a- Wrapper around a list of repeated Inbox Ids\n\n\n\n\x03\x04\x01\x01\x12\x03\x16\x08\x0f\n\x0b\n\x04\x04\x01\x02\x00\x12\x03\x17\x02 \n\x0c\n\x05\x04\x01\x02\x00\x04\x12\x03\x17\x02\n\n\x0c\n\x05\x04\x01\x02\x00\x05\x12\x03\x17\x0b\x11\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x17\x12\x1b\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x17\x1e\x1fb\x06proto3\n\xb1\x04\n+mls/message_contents/proposal_support.proto\x12\x19xmtp.mls.message_contents\"+\n\x0fProposalSupport\x12\x18\n\x07version\x18\x01 \x01(\rR\x07versionBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xd8\x02\n\x06\x12\x04\x01\x00\r\x01\n+\n\x01\x0c\x12\x03\x01\x00\x12\x1a! Proposal support extension data\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\n\xa9\x01\n\x02\x04\x00\x12\x04\x0b\x00\r\x01\x1a\x9c\x01 Extension data for proposal support in group context.\n When present in the group context extensions, indicates the group\n uses proposal-by-reference flow.\n\n\n\n\x03\x04\x00\x01\x12\x03\x0b\x08\x17\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\x0c\x02\x15\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\x0c\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\x0c\t\x10\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\x0c\x13\x14b\x06proto3\n\xe0\"\n.mls/message_contents/transcript_messages.proto\x12\x19xmtp.mls.message_contents\"\xa7\x01\n\x10MembershipChange\x12)\n\x10installation_ids\x18\x01 \x03(\x0cR\x0finstallationIds\x12\'\n\x0faccount_address\x18\x02 \x01(\tR\x0eaccountAddress\x12?\n\x1cinitiated_by_account_address\x18\x03 \x01(\tR\x19initiatedByAccountAddress\"\x80\x03\n\x16GroupMembershipChanges\x12P\n\rmembers_added\x18\x01 \x03(\x0b2+.xmtp.mls.message_contents.MembershipChangeR\x0cmembersAdded\x12T\n\x0fmembers_removed\x18\x02 \x03(\x0b2+.xmtp.mls.message_contents.MembershipChangeR\x0emembersRemoved\x12\\\n\x13installations_added\x18\x03 \x03(\x0b2+.xmtp.mls.message_contents.MembershipChangeR\x12installationsAdded\x12`\n\x15installations_removed\x18\x04 \x03(\x0b2+.xmtp.mls.message_contents.MembershipChangeR\x14installationsRemoved\"\x87\x08\n\x0cGroupUpdated\x121\n\x15initiated_by_inbox_id\x18\x01 \x01(\tR\x12initiatedByInboxId\x12R\n\radded_inboxes\x18\x02 \x03(\x0b2-.xmtp.mls.message_contents.GroupUpdated.InboxR\x0caddedInboxes\x12V\n\x0fremoved_inboxes\x18\x03 \x03(\x0b2-.xmtp.mls.message_contents.GroupUpdated.InboxR\x0eremovedInboxes\x12q\n\x16metadata_field_changes\x18\x04 \x03(\x0b2;.xmtp.mls.message_contents.GroupUpdated.MetadataFieldChangeR\x14metadataFieldChanges\x12P\n\x0cleft_inboxes\x18\x05 \x03(\x0b2-.xmtp.mls.message_contents.GroupUpdated.InboxR\x0bleftInboxes\x12]\n\x13added_admin_inboxes\x18\x06 \x03(\x0b2-.xmtp.mls.message_contents.GroupUpdated.InboxR\x11addedAdminInboxes\x12a\n\x15removed_admin_inboxes\x18\x07 \x03(\x0b2-.xmtp.mls.message_contents.GroupUpdated.InboxR\x13removedAdminInboxes\x12h\n\x19added_super_admin_inboxes\x18\x08 \x03(\x0b2-.xmtp.mls.message_contents.GroupUpdated.InboxR\x16addedSuperAdminInboxes\x12l\n\x1bremoved_super_admin_inboxes\x18\t \x03(\x0b2-.xmtp.mls.message_contents.GroupUpdated.InboxR\x18removedSuperAdminInboxes\x1a\"\n\x05Inbox\x12\x19\n\x08inbox_id\x18\x01 \x01(\tR\x07inboxId\x1a\x94\x01\n\x13MetadataFieldChange\x12\x1d\n\nfield_name\x18\x01 \x01(\tR\tfieldName\x12 \n\told_value\x18\x02 \x01(\tH\x00R\x08oldValue\x88\x01\x01\x12 \n\tnew_value\x18\x03 \x01(\tH\x01R\x08newValue\x88\x01\x01B\x0c\n\n_old_valueB\x0c\n\n_new_valueBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xfa\x14\n\x06\x12\x04\x01\x00B\x01\n/\n\x01\x0c\x12\x03\x01\x00\x12\x1a% Message content encoding structures\n\n\x08\n\x01\x02\x12\x03\x03\x00\"\n\x08\n\x01\x08\x12\x03\x05\x00G\n\t\n\x02\x08\x0b\x12\x03\x05\x00G\n\x08\n\x01\x08\x12\x03\x06\x00<\n\t\n\x02\x08\x01\x12\x03\x06\x00<\n:\n\x02\x04\x00\x12\x04\t\x00\r\x01\x1a. A group member and affected installation IDs\n\n\n\n\x03\x04\x00\x01\x12\x03\t\x08\x18\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\n\x02&\n\x0c\n\x05\x04\x00\x02\x00\x04\x12\x03\n\x02\n\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\n\x0b\x10\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\n\x11!\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\n$%\n\x0b\n\x04\x04\x00\x02\x01\x12\x03\x0b\x02\x1d\n\x0c\n\x05\x04\x00\x02\x01\x05\x12\x03\x0b\x02\x08\n\x0c\n\x05\x04\x00\x02\x01\x01\x12\x03\x0b\t\x18\n\x0c\n\x05\x04\x00\x02\x01\x03\x12\x03\x0b\x1b\x1c\n\x0b\n\x04\x04\x00\x02\x02\x12\x03\x0c\x02*\n\x0c\n\x05\x04\x00\x02\x02\x05\x12\x03\x0c\x02\x08\n\x0c\n\x05\x04\x00\x02\x02\x01\x12\x03\x0c\t%\n\x0c\n\x05\x04\x00\x02\x02\x03\x12\x03\x0c()\nd\n\x02\x04\x01\x12\x04\x10\x00\x1d\x01\x1a# The group membership change proto\n\"3 protolint:disable REPEATED_FIELD_NAMES_PLURALIZED\n\n\n\n\x03\x04\x01\x01\x12\x03\x10\x08\x1e\n9\n\x04\x04\x01\x02\x00\x12\x03\x14\x02.\x1a, Members that have been added in the commit\n\n\x0c\n\x05\x04\x01\x02\x00\x04\x12\x03\x14\x02\n\n\x0c\n\x05\x04\x01\x02\x00\x06\x12\x03\x14\x0b\x1b\n\x0c\n\x05\x04\x01\x02\x00\x01\x12\x03\x14\x1c)\n\x0c\n\x05\x04\x01\x02\x00\x03\x12\x03\x14,-\n;\n\x04\x04\x01\x02\x01\x12\x03\x16\x020\x1a. Members that have been removed in the commit\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03\x16\x02\n\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x16\x0b\x1b\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x16\x1c+\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x16./\nR\n\x04\x04\x01\x02\x02\x12\x03\x18\x024\x1aE Installations that have been added in the commit, grouped by member\n\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03\x18\x02\n\n\x0c\n\x05\x04\x01\x02\x02\x06\x12\x03\x18\x0b\x1b\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x18\x1c/\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\x1823\nE\n\x04\x04\x01\x02\x03\x12\x03\x1a\x026\x1a8 Installations removed in the commit, grouped by member\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03\x1a\x02\n\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03\x1a\x0b\x1b\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\x1a\x1c1\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x1a45\nk\n\x02\x04\x02\x12\x04!\x00B\x01\x1a_ A summary of the changes in a commit.\n Includes added/removed inboxes and changes to metadata\n\n\n\n\x03\x04\x02\x01\x12\x03!\x08\x14\nA\n\x04\x04\x02\x03\x00\x12\x04#\x02%\x03\x1a3 An inbox that was added or removed in this commit\n\n\x0c\n\x05\x04\x02\x03\x00\x01\x12\x03#\n\x0f\n\r\n\x06\x04\x02\x03\x00\x02\x00\x12\x03$\x04\x18\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x05\x12\x03$\x04\n\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x01\x12\x03$\x0b\x13\n\x0e\n\x07\x04\x02\x03\x00\x02\x00\x03\x12\x03$\x16\x17\n=\n\x04\x04\x02\x03\x01\x12\x04(\x02/\x03\x1a/ A summary of a change to the mutable metadata\n\n\x0c\n\x05\x04\x02\x03\x01\x01\x12\x03(\n\x1d\n+\n\x06\x04\x02\x03\x01\x02\x00\x12\x03*\x04\x1a\x1a\x1c The field that was changed\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x05\x12\x03*\x04\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x01\x12\x03*\x0b\x15\n\x0e\n\x07\x04\x02\x03\x01\x02\x00\x03\x12\x03*\x18\x19\n#\n\x06\x04\x02\x03\x01\x02\x01\x12\x03,\x04\"\x1a\x14 The previous value\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x04\x12\x03,\x04\x0c\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x05\x12\x03,\r\x13\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x01\x12\x03,\x14\x1d\n\x0e\n\x07\x04\x02\x03\x01\x02\x01\x03\x12\x03, !\n\"\n\x06\x04\x02\x03\x01\x02\x02\x12\x03.\x04\"\x1a\x13 The updated value\n\n\x0e\n\x07\x04\x02\x03\x01\x02\x02\x04\x12\x03.\x04\x0c\n\x0e\n\x07\x04\x02\x03\x01\x02\x02\x05\x12\x03.\r\x13\n\x0e\n\x07\x04\x02\x03\x01\x02\x02\x01\x12\x03.\x14\x1d\n\x0e\n\x07\x04\x02\x03\x01\x02\x02\x03\x12\x03. !\n\x0b\n\x04\x04\x02\x02\x00\x12\x031\x02#\n\x0c\n\x05\x04\x02\x02\x00\x05\x12\x031\x02\x08\n\x0c\n\x05\x04\x02\x02\x00\x01\x12\x031\t\x1e\n\x0c\n\x05\x04\x02\x02\x00\x03\x12\x031!\"\n.\n\x04\x04\x02\x02\x01\x12\x033\x02#\x1a! The inboxes added in the commit\n\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x033\x02\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x033\x0b\x10\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x033\x11\x1e\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x033!\"\n0\n\x04\x04\x02\x02\x02\x12\x035\x02%\x1a# The inboxes removed in the commit\n\n\x0c\n\x05\x04\x02\x02\x02\x04\x12\x035\x02\n\n\x0c\n\x05\x04\x02\x02\x02\x06\x12\x035\x0b\x10\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x035\x11 \n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x035#$\n1\n\x04\x04\x02\x02\x03\x12\x037\x02:\x1a$ The metadata changes in the commit\n\n\x0c\n\x05\x04\x02\x02\x03\x04\x12\x037\x02\n\n\x0c\n\x05\x04\x02\x02\x03\x06\x12\x037\x0b\x1e\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x037\x1f5\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03789\no\n\x04\x04\x02\x02\x04\x12\x039\x02\"\x1ab/ The inboxes that were removed from the group in response to pending-remove/self-remove requests\n\n\x0c\n\x05\x04\x02\x02\x04\x04\x12\x039\x02\n\n\x0c\n\x05\x04\x02\x02\x04\x06\x12\x039\x0b\x10\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x039\x11\x1d\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x039 !\nF\n\x04\x04\x02\x02\x05\x12\x03;\x02)\x1a9 The inboxes that were added to admin list in the commit\n\n\x0c\n\x05\x04\x02\x02\x05\x04\x12\x03;\x02\n\n\x0c\n\x05\x04\x02\x02\x05\x06\x12\x03;\x0b\x10\n\x0c\n\x05\x04\x02\x02\x05\x01\x12\x03;\x11$\n\x0c\n\x05\x04\x02\x02\x05\x03\x12\x03;\'(\nJ\n\x04\x04\x02\x02\x06\x12\x03=\x02+\x1a= The inboxes that were removed from admin list in the commit\n\n\x0c\n\x05\x04\x02\x02\x06\x04\x12\x03=\x02\n\n\x0c\n\x05\x04\x02\x02\x06\x06\x12\x03=\x0b\x10\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x03=\x11&\n\x0c\n\x05\x04\x02\x02\x06\x03\x12\x03=)*\nL\n\x04\x04\x02\x02\x07\x12\x03?\x02/\x1a? The inboxes that were added to super admin list in the commit\n\n\x0c\n\x05\x04\x02\x02\x07\x04\x12\x03?\x02\n\n\x0c\n\x05\x04\x02\x02\x07\x06\x12\x03?\x0b\x10\n\x0c\n\x05\x04\x02\x02\x07\x01\x12\x03?\x11*\n\x0c\n\x05\x04\x02\x02\x07\x03\x12\x03?-.\nP\n\x04\x04\x02\x02\x08\x12\x03A\x021\x1aC The inboxes that were removed from super admin list in the commit\n\n\x0c\n\x05\x04\x02\x02\x08\x04\x12\x03A\x02\n\n\x0c\n\x05\x04\x02\x02\x08\x06\x12\x03A\x0b\x10\n\x0c\n\x05\x04\x02\x02\x08\x01\x12\x03A\x11,\n\x0c\n\x05\x04\x02\x02\x08\x03\x12\x03A/0b\x06proto3\n\xa7\x03\n+mls/message_contents/welcome_metadata.proto\x12\x19xmtp.mls.message_contents\"8\n\x0fWelcomeMetadata\x12%\n\x0emessage_cursor\x18\x01 \x01(\x04R\rmessageCursorBW\n#org.xmtp.proto.mls.message.contentsZ0github.com/xmtp/proto/v3/go/mls/message_contentsJ\xc1\x01\n\x06\x12\x04\x00\x00\n\x01\n\x08\n\x01\x0c\x12\x03\x00\x00\x12\n\x08\n\x01\x02\x12\x03\x02\x00\"\n\x08\n\x01\x08\x12\x03\x04\x00G\n\t\n\x02\x08\x0b\x12\x03\x04\x00G\n\x08\n\x01\x08\x12\x03\x05\x00<\n\t\n\x02\x08\x01\x12\x03\x05\x00<\n6\n\x02\x04\x00\x12\x04\x08\x00\n\x01\x1a* Encrypted with the welcome message data.\n\n\n\n\x03\x04\x00\x01\x12\x03\x08\x08\x17\n\x0b\n\x04\x04\x00\x02\x00\x12\x03\t\x02\x1c\n\x0c\n\x05\x04\x00\x02\x00\x05\x12\x03\t\x02\x08\n\x0c\n\x05\x04\x00\x02\x00\x01\x12\x03\t\t\x17\n\x0c\n\x05\x04\x00\x02\x00\x03\x12\x03\t\x1a\x1bb\x06proto3";