// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v3.20.3 // source: communities.proto package protobuf import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type CommunityMember_Roles int32 const ( CommunityMember_ROLE_NONE CommunityMember_Roles = 0 CommunityMember_ROLE_OWNER CommunityMember_Roles = 1 CommunityMember_ROLE_ADMIN CommunityMember_Roles = 4 CommunityMember_ROLE_TOKEN_MASTER CommunityMember_Roles = 5 ) // Enum value maps for CommunityMember_Roles. var ( CommunityMember_Roles_name = map[int32]string{ 0: "ROLE_NONE", 1: "ROLE_OWNER", 4: "ROLE_ADMIN", 5: "ROLE_TOKEN_MASTER", } CommunityMember_Roles_value = map[string]int32{ "ROLE_NONE": 0, "ROLE_OWNER": 1, "ROLE_ADMIN": 4, "ROLE_TOKEN_MASTER": 5, } ) func (x CommunityMember_Roles) Enum() *CommunityMember_Roles { p := new(CommunityMember_Roles) *p = x return p } func (x CommunityMember_Roles) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CommunityMember_Roles) Descriptor() protoreflect.EnumDescriptor { return file_communities_proto_enumTypes[0].Descriptor() } func (CommunityMember_Roles) Type() protoreflect.EnumType { return &file_communities_proto_enumTypes[0] } func (x CommunityMember_Roles) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CommunityMember_Roles.Descriptor instead. func (CommunityMember_Roles) EnumDescriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{1, 0} } type CommunityMember_ChannelRole int32 const ( // We make POSTER the first role to be the default one. // This is for backwards compatibility. Older protobufs won't have this field and will default to 0. CommunityMember_CHANNEL_ROLE_POSTER CommunityMember_ChannelRole = 0 CommunityMember_CHANNEL_ROLE_VIEWER CommunityMember_ChannelRole = 1 ) // Enum value maps for CommunityMember_ChannelRole. var ( CommunityMember_ChannelRole_name = map[int32]string{ 0: "CHANNEL_ROLE_POSTER", 1: "CHANNEL_ROLE_VIEWER", } CommunityMember_ChannelRole_value = map[string]int32{ "CHANNEL_ROLE_POSTER": 0, "CHANNEL_ROLE_VIEWER": 1, } ) func (x CommunityMember_ChannelRole) Enum() *CommunityMember_ChannelRole { p := new(CommunityMember_ChannelRole) *p = x return p } func (x CommunityMember_ChannelRole) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CommunityMember_ChannelRole) Descriptor() protoreflect.EnumDescriptor { return file_communities_proto_enumTypes[1].Descriptor() } func (CommunityMember_ChannelRole) Type() protoreflect.EnumType { return &file_communities_proto_enumTypes[1] } func (x CommunityMember_ChannelRole) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CommunityMember_ChannelRole.Descriptor instead. func (CommunityMember_ChannelRole) EnumDescriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{1, 1} } type CommunityTokenAction_ActionType int32 const ( CommunityTokenAction_UNKNOWN_ACTION_TYPE CommunityTokenAction_ActionType = 0 CommunityTokenAction_AIRDROP CommunityTokenAction_ActionType = 1 CommunityTokenAction_BURN CommunityTokenAction_ActionType = 2 CommunityTokenAction_REMOTE_DESTRUCT CommunityTokenAction_ActionType = 3 ) // Enum value maps for CommunityTokenAction_ActionType. var ( CommunityTokenAction_ActionType_name = map[int32]string{ 0: "UNKNOWN_ACTION_TYPE", 1: "AIRDROP", 2: "BURN", 3: "REMOTE_DESTRUCT", } CommunityTokenAction_ActionType_value = map[string]int32{ "UNKNOWN_ACTION_TYPE": 0, "AIRDROP": 1, "BURN": 2, "REMOTE_DESTRUCT": 3, } ) func (x CommunityTokenAction_ActionType) Enum() *CommunityTokenAction_ActionType { p := new(CommunityTokenAction_ActionType) *p = x return p } func (x CommunityTokenAction_ActionType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CommunityTokenAction_ActionType) Descriptor() protoreflect.EnumDescriptor { return file_communities_proto_enumTypes[2].Descriptor() } func (CommunityTokenAction_ActionType) Type() protoreflect.EnumType { return &file_communities_proto_enumTypes[2] } func (x CommunityTokenAction_ActionType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CommunityTokenAction_ActionType.Descriptor instead. func (CommunityTokenAction_ActionType) EnumDescriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{3, 0} } type CommunityPermissions_Access int32 const ( CommunityPermissions_UNKNOWN_ACCESS CommunityPermissions_Access = 0 CommunityPermissions_AUTO_ACCEPT CommunityPermissions_Access = 1 // Deprecated: Marked as deprecated in communities.proto. CommunityPermissions_INVITATION_ONLY CommunityPermissions_Access = 2 CommunityPermissions_MANUAL_ACCEPT CommunityPermissions_Access = 3 ) // Enum value maps for CommunityPermissions_Access. var ( CommunityPermissions_Access_name = map[int32]string{ 0: "UNKNOWN_ACCESS", 1: "AUTO_ACCEPT", 2: "INVITATION_ONLY", 3: "MANUAL_ACCEPT", } CommunityPermissions_Access_value = map[string]int32{ "UNKNOWN_ACCESS": 0, "AUTO_ACCEPT": 1, "INVITATION_ONLY": 2, "MANUAL_ACCEPT": 3, } ) func (x CommunityPermissions_Access) Enum() *CommunityPermissions_Access { p := new(CommunityPermissions_Access) *p = x return p } func (x CommunityPermissions_Access) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CommunityPermissions_Access) Descriptor() protoreflect.EnumDescriptor { return file_communities_proto_enumTypes[3].Descriptor() } func (CommunityPermissions_Access) Type() protoreflect.EnumType { return &file_communities_proto_enumTypes[3] } func (x CommunityPermissions_Access) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CommunityPermissions_Access.Descriptor instead. func (CommunityPermissions_Access) EnumDescriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{4, 0} } type CommunityTokenPermission_Type int32 const ( CommunityTokenPermission_UNKNOWN_TOKEN_PERMISSION CommunityTokenPermission_Type = 0 CommunityTokenPermission_BECOME_ADMIN CommunityTokenPermission_Type = 1 CommunityTokenPermission_BECOME_MEMBER CommunityTokenPermission_Type = 2 CommunityTokenPermission_CAN_VIEW_CHANNEL CommunityTokenPermission_Type = 3 CommunityTokenPermission_CAN_VIEW_AND_POST_CHANNEL CommunityTokenPermission_Type = 4 CommunityTokenPermission_BECOME_TOKEN_MASTER CommunityTokenPermission_Type = 5 CommunityTokenPermission_BECOME_TOKEN_OWNER CommunityTokenPermission_Type = 6 ) // Enum value maps for CommunityTokenPermission_Type. var ( CommunityTokenPermission_Type_name = map[int32]string{ 0: "UNKNOWN_TOKEN_PERMISSION", 1: "BECOME_ADMIN", 2: "BECOME_MEMBER", 3: "CAN_VIEW_CHANNEL", 4: "CAN_VIEW_AND_POST_CHANNEL", 5: "BECOME_TOKEN_MASTER", 6: "BECOME_TOKEN_OWNER", } CommunityTokenPermission_Type_value = map[string]int32{ "UNKNOWN_TOKEN_PERMISSION": 0, "BECOME_ADMIN": 1, "BECOME_MEMBER": 2, "CAN_VIEW_CHANNEL": 3, "CAN_VIEW_AND_POST_CHANNEL": 4, "BECOME_TOKEN_MASTER": 5, "BECOME_TOKEN_OWNER": 6, } ) func (x CommunityTokenPermission_Type) Enum() *CommunityTokenPermission_Type { p := new(CommunityTokenPermission_Type) *p = x return p } func (x CommunityTokenPermission_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CommunityTokenPermission_Type) Descriptor() protoreflect.EnumDescriptor { return file_communities_proto_enumTypes[4].Descriptor() } func (CommunityTokenPermission_Type) Type() protoreflect.EnumType { return &file_communities_proto_enumTypes[4] } func (x CommunityTokenPermission_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CommunityTokenPermission_Type.Descriptor instead. func (CommunityTokenPermission_Type) EnumDescriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{6, 0} } type Grant struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` MemberId []byte `protobuf:"bytes,2,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"` ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` Clock uint64 `protobuf:"varint,4,opt,name=clock,proto3" json:"clock,omitempty"` Expires uint64 `protobuf:"varint,5,opt,name=expires,proto3" json:"expires,omitempty"` } func (x *Grant) Reset() { *x = Grant{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Grant) String() string { return protoimpl.X.MessageStringOf(x) } func (*Grant) ProtoMessage() {} func (x *Grant) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Grant.ProtoReflect.Descriptor instead. func (*Grant) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{0} } func (x *Grant) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *Grant) GetMemberId() []byte { if x != nil { return x.MemberId } return nil } func (x *Grant) GetChatId() string { if x != nil { return x.ChatId } return "" } func (x *Grant) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *Grant) GetExpires() uint64 { if x != nil { return x.Expires } return 0 } type CommunityMember struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Roles []CommunityMember_Roles `protobuf:"varint,1,rep,packed,name=roles,proto3,enum=protobuf.CommunityMember_Roles" json:"roles,omitempty"` // Deprecated: Marked as deprecated in communities.proto. RevealedAccounts []*RevealedAccount `protobuf:"bytes,2,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"` LastUpdateClock uint64 `protobuf:"varint,3,opt,name=last_update_clock,json=lastUpdateClock,proto3" json:"last_update_clock,omitempty"` ChannelRole CommunityMember_ChannelRole `protobuf:"varint,4,opt,name=channel_role,json=channelRole,proto3,enum=protobuf.CommunityMember_ChannelRole" json:"channel_role,omitempty"` } func (x *CommunityMember) Reset() { *x = CommunityMember{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityMember) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityMember) ProtoMessage() {} func (x *CommunityMember) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityMember.ProtoReflect.Descriptor instead. func (*CommunityMember) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{1} } func (x *CommunityMember) GetRoles() []CommunityMember_Roles { if x != nil { return x.Roles } return nil } // Deprecated: Marked as deprecated in communities.proto. func (x *CommunityMember) GetRevealedAccounts() []*RevealedAccount { if x != nil { return x.RevealedAccounts } return nil } func (x *CommunityMember) GetLastUpdateClock() uint64 { if x != nil { return x.LastUpdateClock } return 0 } func (x *CommunityMember) GetChannelRole() CommunityMember_ChannelRole { if x != nil { return x.ChannelRole } return CommunityMember_CHANNEL_ROLE_POSTER } type CommunityTokenMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContractAddresses map[uint64]string `protobuf:"bytes,1,rep,name=contract_addresses,json=contractAddresses,proto3" json:"contract_addresses,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` TokenType CommunityTokenType `protobuf:"varint,4,opt,name=tokenType,proto3,enum=protobuf.CommunityTokenType" json:"tokenType,omitempty"` Symbol string `protobuf:"bytes,5,opt,name=symbol,proto3" json:"symbol,omitempty"` Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` Decimals uint32 `protobuf:"varint,7,opt,name=decimals,proto3" json:"decimals,omitempty"` Version string `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"` } func (x *CommunityTokenMetadata) Reset() { *x = CommunityTokenMetadata{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityTokenMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityTokenMetadata) ProtoMessage() {} func (x *CommunityTokenMetadata) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityTokenMetadata.ProtoReflect.Descriptor instead. func (*CommunityTokenMetadata) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{2} } func (x *CommunityTokenMetadata) GetContractAddresses() map[uint64]string { if x != nil { return x.ContractAddresses } return nil } func (x *CommunityTokenMetadata) GetDescription() string { if x != nil { return x.Description } return "" } func (x *CommunityTokenMetadata) GetImage() string { if x != nil { return x.Image } return "" } func (x *CommunityTokenMetadata) GetTokenType() CommunityTokenType { if x != nil { return x.TokenType } return CommunityTokenType_UNKNOWN_TOKEN_TYPE } func (x *CommunityTokenMetadata) GetSymbol() string { if x != nil { return x.Symbol } return "" } func (x *CommunityTokenMetadata) GetName() string { if x != nil { return x.Name } return "" } func (x *CommunityTokenMetadata) GetDecimals() uint32 { if x != nil { return x.Decimals } return 0 } func (x *CommunityTokenMetadata) GetVersion() string { if x != nil { return x.Version } return "" } type CommunityTokenAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChainId uint64 `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` ContractAddress string `protobuf:"bytes,2,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` ActionType CommunityTokenAction_ActionType `protobuf:"varint,3,opt,name=action_type,json=actionType,proto3,enum=protobuf.CommunityTokenAction_ActionType" json:"action_type,omitempty"` } func (x *CommunityTokenAction) Reset() { *x = CommunityTokenAction{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityTokenAction) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityTokenAction) ProtoMessage() {} func (x *CommunityTokenAction) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityTokenAction.ProtoReflect.Descriptor instead. func (*CommunityTokenAction) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{3} } func (x *CommunityTokenAction) GetChainId() uint64 { if x != nil { return x.ChainId } return 0 } func (x *CommunityTokenAction) GetContractAddress() string { if x != nil { return x.ContractAddress } return "" } func (x *CommunityTokenAction) GetActionType() CommunityTokenAction_ActionType { if x != nil { return x.ActionType } return CommunityTokenAction_UNKNOWN_ACTION_TYPE } type CommunityPermissions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EnsOnly bool `protobuf:"varint,1,opt,name=ens_only,json=ensOnly,proto3" json:"ens_only,omitempty"` // https://gitlab.matrix.org/matrix-org/olm/blob/master/docs/megolm.md is a candidate for the algorithm to be used in case we want to have private communityal chats, lighter than pairwise encryption using the DR, less secure, but more efficient for large number of participants Private bool `protobuf:"varint,2,opt,name=private,proto3" json:"private,omitempty"` Access CommunityPermissions_Access `protobuf:"varint,3,opt,name=access,proto3,enum=protobuf.CommunityPermissions_Access" json:"access,omitempty"` } func (x *CommunityPermissions) Reset() { *x = CommunityPermissions{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityPermissions) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityPermissions) ProtoMessage() {} func (x *CommunityPermissions) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityPermissions.ProtoReflect.Descriptor instead. func (*CommunityPermissions) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{4} } func (x *CommunityPermissions) GetEnsOnly() bool { if x != nil { return x.EnsOnly } return false } func (x *CommunityPermissions) GetPrivate() bool { if x != nil { return x.Private } return false } func (x *CommunityPermissions) GetAccess() CommunityPermissions_Access { if x != nil { return x.Access } return CommunityPermissions_UNKNOWN_ACCESS } type TokenCriteria struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContractAddresses map[uint64]string `protobuf:"bytes,1,rep,name=contract_addresses,json=contractAddresses,proto3" json:"contract_addresses,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Type CommunityTokenType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.CommunityTokenType" json:"type,omitempty"` Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` // Deprecated: Marked as deprecated in communities.proto. Amount string `protobuf:"bytes,5,opt,name=amount,proto3" json:"amount,omitempty"` TokenIds []uint64 `protobuf:"varint,6,rep,packed,name=token_ids,json=tokenIds,proto3" json:"token_ids,omitempty"` EnsPattern string `protobuf:"bytes,7,opt,name=ens_pattern,json=ensPattern,proto3" json:"ens_pattern,omitempty"` Decimals uint64 `protobuf:"varint,8,opt,name=decimals,proto3" json:"decimals,omitempty"` AmountInWei string `protobuf:"bytes,9,opt,name=amountInWei,proto3" json:"amountInWei,omitempty"` } func (x *TokenCriteria) Reset() { *x = TokenCriteria{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TokenCriteria) String() string { return protoimpl.X.MessageStringOf(x) } func (*TokenCriteria) ProtoMessage() {} func (x *TokenCriteria) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use TokenCriteria.ProtoReflect.Descriptor instead. func (*TokenCriteria) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{5} } func (x *TokenCriteria) GetContractAddresses() map[uint64]string { if x != nil { return x.ContractAddresses } return nil } func (x *TokenCriteria) GetType() CommunityTokenType { if x != nil { return x.Type } return CommunityTokenType_UNKNOWN_TOKEN_TYPE } func (x *TokenCriteria) GetSymbol() string { if x != nil { return x.Symbol } return "" } func (x *TokenCriteria) GetName() string { if x != nil { return x.Name } return "" } // Deprecated: Marked as deprecated in communities.proto. func (x *TokenCriteria) GetAmount() string { if x != nil { return x.Amount } return "" } func (x *TokenCriteria) GetTokenIds() []uint64 { if x != nil { return x.TokenIds } return nil } func (x *TokenCriteria) GetEnsPattern() string { if x != nil { return x.EnsPattern } return "" } func (x *TokenCriteria) GetDecimals() uint64 { if x != nil { return x.Decimals } return 0 } func (x *TokenCriteria) GetAmountInWei() string { if x != nil { return x.AmountInWei } return "" } type CommunityTokenPermission struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Type CommunityTokenPermission_Type `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.CommunityTokenPermission_Type" json:"type,omitempty"` TokenCriteria []*TokenCriteria `protobuf:"bytes,3,rep,name=token_criteria,json=tokenCriteria,proto3" json:"token_criteria,omitempty"` ChatIds []string `protobuf:"bytes,4,rep,name=chat_ids,json=chatIds,proto3" json:"chat_ids,omitempty"` IsPrivate bool `protobuf:"varint,5,opt,name=is_private,json=isPrivate,proto3" json:"is_private,omitempty"` } func (x *CommunityTokenPermission) Reset() { *x = CommunityTokenPermission{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityTokenPermission) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityTokenPermission) ProtoMessage() {} func (x *CommunityTokenPermission) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityTokenPermission.ProtoReflect.Descriptor instead. func (*CommunityTokenPermission) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{6} } func (x *CommunityTokenPermission) GetId() string { if x != nil { return x.Id } return "" } func (x *CommunityTokenPermission) GetType() CommunityTokenPermission_Type { if x != nil { return x.Type } return CommunityTokenPermission_UNKNOWN_TOKEN_PERMISSION } func (x *CommunityTokenPermission) GetTokenCriteria() []*TokenCriteria { if x != nil { return x.TokenCriteria } return nil } func (x *CommunityTokenPermission) GetChatIds() []string { if x != nil { return x.ChatIds } return nil } func (x *CommunityTokenPermission) GetIsPrivate() bool { if x != nil { return x.IsPrivate } return false } type CommunityDescription struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Members map[string]*CommunityMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Permissions *CommunityPermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` Identity *ChatIdentity `protobuf:"bytes,5,opt,name=identity,proto3" json:"identity,omitempty"` Chats map[string]*CommunityChat `protobuf:"bytes,6,rep,name=chats,proto3" json:"chats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Deprecated: Marked as deprecated in communities.proto. BanList []string `protobuf:"bytes,7,rep,name=ban_list,json=banList,proto3" json:"ban_list,omitempty"` Categories map[string]*CommunityCategory `protobuf:"bytes,8,rep,name=categories,proto3" json:"categories,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` ArchiveMagnetlinkClock uint64 `protobuf:"varint,9,opt,name=archive_magnetlink_clock,json=archiveMagnetlinkClock,proto3" json:"archive_magnetlink_clock,omitempty"` AdminSettings *CommunityAdminSettings `protobuf:"bytes,10,opt,name=admin_settings,json=adminSettings,proto3" json:"admin_settings,omitempty"` IntroMessage string `protobuf:"bytes,11,opt,name=intro_message,json=introMessage,proto3" json:"intro_message,omitempty"` OutroMessage string `protobuf:"bytes,12,opt,name=outro_message,json=outroMessage,proto3" json:"outro_message,omitempty"` // Deprecated: Marked as deprecated in communities.proto. Encrypted bool `protobuf:"varint,13,opt,name=encrypted,proto3" json:"encrypted,omitempty"` Tags []string `protobuf:"bytes,14,rep,name=tags,proto3" json:"tags,omitempty"` TokenPermissions map[string]*CommunityTokenPermission `protobuf:"bytes,15,rep,name=token_permissions,json=tokenPermissions,proto3" json:"token_permissions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` CommunityTokensMetadata []*CommunityTokenMetadata `protobuf:"bytes,16,rep,name=community_tokens_metadata,json=communityTokensMetadata,proto3" json:"community_tokens_metadata,omitempty"` ActiveMembersCount uint64 `protobuf:"varint,17,opt,name=active_members_count,json=activeMembersCount,proto3" json:"active_members_count,omitempty"` ID string `protobuf:"bytes,18,opt,name=ID,proto3" json:"ID,omitempty"` BannedMembers map[string]*CommunityBanInfo `protobuf:"bytes,19,rep,name=banned_members,json=bannedMembers,proto3" json:"banned_members,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // request to resend revealed addresses ResendAccountsClock uint64 `protobuf:"varint,20,opt,name=resend_accounts_clock,json=resendAccountsClock,proto3" json:"resend_accounts_clock,omitempty"` // key is hash ratchet key_id + seq_no PrivateData map[string][]byte `protobuf:"bytes,100,rep,name=privateData,proto3" json:"privateData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CommunityDescription) Reset() { *x = CommunityDescription{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityDescription) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityDescription) ProtoMessage() {} func (x *CommunityDescription) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityDescription.ProtoReflect.Descriptor instead. func (*CommunityDescription) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{7} } func (x *CommunityDescription) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityDescription) GetMembers() map[string]*CommunityMember { if x != nil { return x.Members } return nil } func (x *CommunityDescription) GetPermissions() *CommunityPermissions { if x != nil { return x.Permissions } return nil } func (x *CommunityDescription) GetIdentity() *ChatIdentity { if x != nil { return x.Identity } return nil } func (x *CommunityDescription) GetChats() map[string]*CommunityChat { if x != nil { return x.Chats } return nil } // Deprecated: Marked as deprecated in communities.proto. func (x *CommunityDescription) GetBanList() []string { if x != nil { return x.BanList } return nil } func (x *CommunityDescription) GetCategories() map[string]*CommunityCategory { if x != nil { return x.Categories } return nil } func (x *CommunityDescription) GetArchiveMagnetlinkClock() uint64 { if x != nil { return x.ArchiveMagnetlinkClock } return 0 } func (x *CommunityDescription) GetAdminSettings() *CommunityAdminSettings { if x != nil { return x.AdminSettings } return nil } func (x *CommunityDescription) GetIntroMessage() string { if x != nil { return x.IntroMessage } return "" } func (x *CommunityDescription) GetOutroMessage() string { if x != nil { return x.OutroMessage } return "" } // Deprecated: Marked as deprecated in communities.proto. func (x *CommunityDescription) GetEncrypted() bool { if x != nil { return x.Encrypted } return false } func (x *CommunityDescription) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *CommunityDescription) GetTokenPermissions() map[string]*CommunityTokenPermission { if x != nil { return x.TokenPermissions } return nil } func (x *CommunityDescription) GetCommunityTokensMetadata() []*CommunityTokenMetadata { if x != nil { return x.CommunityTokensMetadata } return nil } func (x *CommunityDescription) GetActiveMembersCount() uint64 { if x != nil { return x.ActiveMembersCount } return 0 } func (x *CommunityDescription) GetID() string { if x != nil { return x.ID } return "" } func (x *CommunityDescription) GetBannedMembers() map[string]*CommunityBanInfo { if x != nil { return x.BannedMembers } return nil } func (x *CommunityDescription) GetResendAccountsClock() uint64 { if x != nil { return x.ResendAccountsClock } return 0 } func (x *CommunityDescription) GetPrivateData() map[string][]byte { if x != nil { return x.PrivateData } return nil } type CommunityBanInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DeleteAllMessages bool `protobuf:"varint,1,opt,name=delete_all_messages,json=deleteAllMessages,proto3" json:"delete_all_messages,omitempty"` } func (x *CommunityBanInfo) Reset() { *x = CommunityBanInfo{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityBanInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityBanInfo) ProtoMessage() {} func (x *CommunityBanInfo) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityBanInfo.ProtoReflect.Descriptor instead. func (*CommunityBanInfo) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{8} } func (x *CommunityBanInfo) GetDeleteAllMessages() bool { if x != nil { return x.DeleteAllMessages } return false } type CommunityAdminSettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PinMessageAllMembersEnabled bool `protobuf:"varint,1,opt,name=pin_message_all_members_enabled,json=pinMessageAllMembersEnabled,proto3" json:"pin_message_all_members_enabled,omitempty"` } func (x *CommunityAdminSettings) Reset() { *x = CommunityAdminSettings{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityAdminSettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityAdminSettings) ProtoMessage() {} func (x *CommunityAdminSettings) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityAdminSettings.ProtoReflect.Descriptor instead. func (*CommunityAdminSettings) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{9} } func (x *CommunityAdminSettings) GetPinMessageAllMembersEnabled() bool { if x != nil { return x.PinMessageAllMembersEnabled } return false } type CommunityChat struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Members map[string]*CommunityMember `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Permissions *CommunityPermissions `protobuf:"bytes,2,opt,name=permissions,proto3" json:"permissions,omitempty"` Identity *ChatIdentity `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"` CategoryId string `protobuf:"bytes,4,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"` Position int32 `protobuf:"varint,5,opt,name=position,proto3" json:"position,omitempty"` ViewersCanPostReactions bool `protobuf:"varint,6,opt,name=viewers_can_post_reactions,json=viewersCanPostReactions,proto3" json:"viewers_can_post_reactions,omitempty"` HideIfPermissionsNotMet bool `protobuf:"varint,7,opt,name=hide_if_permissions_not_met,json=hideIfPermissionsNotMet,proto3" json:"hide_if_permissions_not_met,omitempty"` MembersList *CommunityBloomFilter `protobuf:"bytes,8,opt,name=members_list,json=membersList,proto3" json:"members_list,omitempty"` } func (x *CommunityChat) Reset() { *x = CommunityChat{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityChat) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityChat) ProtoMessage() {} func (x *CommunityChat) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityChat.ProtoReflect.Descriptor instead. func (*CommunityChat) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{10} } func (x *CommunityChat) GetMembers() map[string]*CommunityMember { if x != nil { return x.Members } return nil } func (x *CommunityChat) GetPermissions() *CommunityPermissions { if x != nil { return x.Permissions } return nil } func (x *CommunityChat) GetIdentity() *ChatIdentity { if x != nil { return x.Identity } return nil } func (x *CommunityChat) GetCategoryId() string { if x != nil { return x.CategoryId } return "" } func (x *CommunityChat) GetPosition() int32 { if x != nil { return x.Position } return 0 } func (x *CommunityChat) GetViewersCanPostReactions() bool { if x != nil { return x.ViewersCanPostReactions } return false } func (x *CommunityChat) GetHideIfPermissionsNotMet() bool { if x != nil { return x.HideIfPermissionsNotMet } return false } func (x *CommunityChat) GetMembersList() *CommunityBloomFilter { if x != nil { return x.MembersList } return nil } type CommunityBloomFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` M uint64 `protobuf:"varint,2,opt,name=m,proto3" json:"m,omitempty"` K uint64 `protobuf:"varint,3,opt,name=k,proto3" json:"k,omitempty"` } func (x *CommunityBloomFilter) Reset() { *x = CommunityBloomFilter{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityBloomFilter) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityBloomFilter) ProtoMessage() {} func (x *CommunityBloomFilter) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityBloomFilter.ProtoReflect.Descriptor instead. func (*CommunityBloomFilter) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{11} } func (x *CommunityBloomFilter) GetData() []byte { if x != nil { return x.Data } return nil } func (x *CommunityBloomFilter) GetM() uint64 { if x != nil { return x.M } return 0 } func (x *CommunityBloomFilter) GetK() uint64 { if x != nil { return x.K } return 0 } type CommunityCategory struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CategoryId string `protobuf:"bytes,1,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Position int32 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` } func (x *CommunityCategory) Reset() { *x = CommunityCategory{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityCategory) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityCategory) ProtoMessage() {} func (x *CommunityCategory) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityCategory.ProtoReflect.Descriptor instead. func (*CommunityCategory) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{12} } func (x *CommunityCategory) GetCategoryId() string { if x != nil { return x.CategoryId } return "" } func (x *CommunityCategory) GetName() string { if x != nil { return x.Name } return "" } func (x *CommunityCategory) GetPosition() int32 { if x != nil { return x.Position } return 0 } type RevealedAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` ChainIds []uint64 `protobuf:"varint,3,rep,packed,name=chain_ids,json=chainIds,proto3" json:"chain_ids,omitempty"` IsAirdropAddress bool `protobuf:"varint,4,opt,name=isAirdropAddress,proto3" json:"isAirdropAddress,omitempty"` } func (x *RevealedAccount) Reset() { *x = RevealedAccount{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RevealedAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*RevealedAccount) ProtoMessage() {} func (x *RevealedAccount) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RevealedAccount.ProtoReflect.Descriptor instead. func (*RevealedAccount) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{13} } func (x *RevealedAccount) GetAddress() string { if x != nil { return x.Address } return "" } func (x *RevealedAccount) GetSignature() []byte { if x != nil { return x.Signature } return nil } func (x *RevealedAccount) GetChainIds() []uint64 { if x != nil { return x.ChainIds } return nil } func (x *RevealedAccount) GetIsAirdropAddress() bool { if x != nil { return x.IsAirdropAddress } return false } type CommunityRequestToJoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` EnsName string `protobuf:"bytes,2,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"` ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` CommunityId []byte `protobuf:"bytes,4,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` RevealedAccounts []*RevealedAccount `protobuf:"bytes,6,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"` CustomizationColor uint32 `protobuf:"varint,7,opt,name=customization_color,json=customizationColor,proto3" json:"customization_color,omitempty"` } func (x *CommunityRequestToJoin) Reset() { *x = CommunityRequestToJoin{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityRequestToJoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityRequestToJoin) ProtoMessage() {} func (x *CommunityRequestToJoin) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityRequestToJoin.ProtoReflect.Descriptor instead. func (*CommunityRequestToJoin) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{14} } func (x *CommunityRequestToJoin) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityRequestToJoin) GetEnsName() string { if x != nil { return x.EnsName } return "" } func (x *CommunityRequestToJoin) GetChatId() string { if x != nil { return x.ChatId } return "" } func (x *CommunityRequestToJoin) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunityRequestToJoin) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *CommunityRequestToJoin) GetRevealedAccounts() []*RevealedAccount { if x != nil { return x.RevealedAccounts } return nil } func (x *CommunityRequestToJoin) GetCustomizationColor() uint32 { if x != nil { return x.CustomizationColor } return 0 } type CommunityEditSharedAddresses struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` CommunityId []byte `protobuf:"bytes,2,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` RevealedAccounts []*RevealedAccount `protobuf:"bytes,3,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"` } func (x *CommunityEditSharedAddresses) Reset() { *x = CommunityEditSharedAddresses{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityEditSharedAddresses) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityEditSharedAddresses) ProtoMessage() {} func (x *CommunityEditSharedAddresses) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityEditSharedAddresses.ProtoReflect.Descriptor instead. func (*CommunityEditSharedAddresses) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{15} } func (x *CommunityEditSharedAddresses) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityEditSharedAddresses) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunityEditSharedAddresses) GetRevealedAccounts() []*RevealedAccount { if x != nil { return x.RevealedAccounts } return nil } type CommunityCancelRequestToJoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` EnsName string `protobuf:"bytes,2,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"` ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` CommunityId []byte `protobuf:"bytes,4,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` CustomizationColor uint32 `protobuf:"varint,6,opt,name=customization_color,json=customizationColor,proto3" json:"customization_color,omitempty"` } func (x *CommunityCancelRequestToJoin) Reset() { *x = CommunityCancelRequestToJoin{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityCancelRequestToJoin) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityCancelRequestToJoin) ProtoMessage() {} func (x *CommunityCancelRequestToJoin) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityCancelRequestToJoin.ProtoReflect.Descriptor instead. func (*CommunityCancelRequestToJoin) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{16} } func (x *CommunityCancelRequestToJoin) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityCancelRequestToJoin) GetEnsName() string { if x != nil { return x.EnsName } return "" } func (x *CommunityCancelRequestToJoin) GetChatId() string { if x != nil { return x.ChatId } return "" } func (x *CommunityCancelRequestToJoin) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunityCancelRequestToJoin) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *CommunityCancelRequestToJoin) GetCustomizationColor() uint32 { if x != nil { return x.CustomizationColor } return 0 } type CommunityUserKicked struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` CommunityId []byte `protobuf:"bytes,2,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` } func (x *CommunityUserKicked) Reset() { *x = CommunityUserKicked{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityUserKicked) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityUserKicked) ProtoMessage() {} func (x *CommunityUserKicked) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityUserKicked.ProtoReflect.Descriptor instead. func (*CommunityUserKicked) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{17} } func (x *CommunityUserKicked) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityUserKicked) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } type CommunityRequestToJoinResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` Community *CommunityDescription `protobuf:"bytes,2,opt,name=community,proto3" json:"community,omitempty"` Accepted bool `protobuf:"varint,3,opt,name=accepted,proto3" json:"accepted,omitempty"` Grant []byte `protobuf:"bytes,4,opt,name=grant,proto3" json:"grant,omitempty"` CommunityId []byte `protobuf:"bytes,5,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` MagnetUri string `protobuf:"bytes,6,opt,name=magnet_uri,json=magnetUri,proto3" json:"magnet_uri,omitempty"` ProtectedTopicPrivateKey []byte `protobuf:"bytes,7,opt,name=protected_topic_private_key,json=protectedTopicPrivateKey,proto3" json:"protected_topic_private_key,omitempty"` Shard *Shard `protobuf:"bytes,8,opt,name=shard,proto3" json:"shard,omitempty"` } func (x *CommunityRequestToJoinResponse) Reset() { *x = CommunityRequestToJoinResponse{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityRequestToJoinResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityRequestToJoinResponse) ProtoMessage() {} func (x *CommunityRequestToJoinResponse) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityRequestToJoinResponse.ProtoReflect.Descriptor instead. func (*CommunityRequestToJoinResponse) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{18} } func (x *CommunityRequestToJoinResponse) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityRequestToJoinResponse) GetCommunity() *CommunityDescription { if x != nil { return x.Community } return nil } func (x *CommunityRequestToJoinResponse) GetAccepted() bool { if x != nil { return x.Accepted } return false } func (x *CommunityRequestToJoinResponse) GetGrant() []byte { if x != nil { return x.Grant } return nil } func (x *CommunityRequestToJoinResponse) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunityRequestToJoinResponse) GetMagnetUri() string { if x != nil { return x.MagnetUri } return "" } func (x *CommunityRequestToJoinResponse) GetProtectedTopicPrivateKey() []byte { if x != nil { return x.ProtectedTopicPrivateKey } return nil } func (x *CommunityRequestToJoinResponse) GetShard() *Shard { if x != nil { return x.Shard } return nil } type CommunityRequestToLeave struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` CommunityId []byte `protobuf:"bytes,2,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` } func (x *CommunityRequestToLeave) Reset() { *x = CommunityRequestToLeave{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityRequestToLeave) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityRequestToLeave) ProtoMessage() {} func (x *CommunityRequestToLeave) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityRequestToLeave.ProtoReflect.Descriptor instead. func (*CommunityRequestToLeave) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{19} } func (x *CommunityRequestToLeave) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityRequestToLeave) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } type CommunityMessageArchiveMagnetlink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` MagnetUri string `protobuf:"bytes,2,opt,name=magnet_uri,json=magnetUri,proto3" json:"magnet_uri,omitempty"` } func (x *CommunityMessageArchiveMagnetlink) Reset() { *x = CommunityMessageArchiveMagnetlink{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityMessageArchiveMagnetlink) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityMessageArchiveMagnetlink) ProtoMessage() {} func (x *CommunityMessageArchiveMagnetlink) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityMessageArchiveMagnetlink.ProtoReflect.Descriptor instead. func (*CommunityMessageArchiveMagnetlink) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{20} } func (x *CommunityMessageArchiveMagnetlink) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityMessageArchiveMagnetlink) GetMagnetUri() string { if x != nil { return x.MagnetUri } return "" } type WakuMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sig []byte `protobuf:"bytes,1,opt,name=sig,proto3" json:"sig,omitempty"` Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Topic []byte `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"` Payload []byte `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"` Padding []byte `protobuf:"bytes,5,opt,name=padding,proto3" json:"padding,omitempty"` Hash []byte `protobuf:"bytes,6,opt,name=hash,proto3" json:"hash,omitempty"` ThirdPartyId string `protobuf:"bytes,7,opt,name=thirdPartyId,proto3" json:"thirdPartyId,omitempty"` } func (x *WakuMessage) Reset() { *x = WakuMessage{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WakuMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*WakuMessage) ProtoMessage() {} func (x *WakuMessage) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WakuMessage.ProtoReflect.Descriptor instead. func (*WakuMessage) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{21} } func (x *WakuMessage) GetSig() []byte { if x != nil { return x.Sig } return nil } func (x *WakuMessage) GetTimestamp() uint64 { if x != nil { return x.Timestamp } return 0 } func (x *WakuMessage) GetTopic() []byte { if x != nil { return x.Topic } return nil } func (x *WakuMessage) GetPayload() []byte { if x != nil { return x.Payload } return nil } func (x *WakuMessage) GetPadding() []byte { if x != nil { return x.Padding } return nil } func (x *WakuMessage) GetHash() []byte { if x != nil { return x.Hash } return nil } func (x *WakuMessage) GetThirdPartyId() string { if x != nil { return x.ThirdPartyId } return "" } type WakuMessageArchiveMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` From uint64 `protobuf:"varint,2,opt,name=from,proto3" json:"from,omitempty"` To uint64 `protobuf:"varint,3,opt,name=to,proto3" json:"to,omitempty"` ContentTopic [][]byte `protobuf:"bytes,4,rep,name=contentTopic,proto3" json:"contentTopic,omitempty"` } func (x *WakuMessageArchiveMetadata) Reset() { *x = WakuMessageArchiveMetadata{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WakuMessageArchiveMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*WakuMessageArchiveMetadata) ProtoMessage() {} func (x *WakuMessageArchiveMetadata) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WakuMessageArchiveMetadata.ProtoReflect.Descriptor instead. func (*WakuMessageArchiveMetadata) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{22} } func (x *WakuMessageArchiveMetadata) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *WakuMessageArchiveMetadata) GetFrom() uint64 { if x != nil { return x.From } return 0 } func (x *WakuMessageArchiveMetadata) GetTo() uint64 { if x != nil { return x.To } return 0 } func (x *WakuMessageArchiveMetadata) GetContentTopic() [][]byte { if x != nil { return x.ContentTopic } return nil } type WakuMessageArchive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Metadata *WakuMessageArchiveMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` Messages []*WakuMessage `protobuf:"bytes,3,rep,name=messages,proto3" json:"messages,omitempty"` } func (x *WakuMessageArchive) Reset() { *x = WakuMessageArchive{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WakuMessageArchive) String() string { return protoimpl.X.MessageStringOf(x) } func (*WakuMessageArchive) ProtoMessage() {} func (x *WakuMessageArchive) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WakuMessageArchive.ProtoReflect.Descriptor instead. func (*WakuMessageArchive) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{23} } func (x *WakuMessageArchive) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *WakuMessageArchive) GetMetadata() *WakuMessageArchiveMetadata { if x != nil { return x.Metadata } return nil } func (x *WakuMessageArchive) GetMessages() []*WakuMessage { if x != nil { return x.Messages } return nil } type WakuMessageArchiveIndexMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` Metadata *WakuMessageArchiveMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"` Size uint64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"` Padding uint64 `protobuf:"varint,5,opt,name=padding,proto3" json:"padding,omitempty"` } func (x *WakuMessageArchiveIndexMetadata) Reset() { *x = WakuMessageArchiveIndexMetadata{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WakuMessageArchiveIndexMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*WakuMessageArchiveIndexMetadata) ProtoMessage() {} func (x *WakuMessageArchiveIndexMetadata) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WakuMessageArchiveIndexMetadata.ProtoReflect.Descriptor instead. func (*WakuMessageArchiveIndexMetadata) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{24} } func (x *WakuMessageArchiveIndexMetadata) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *WakuMessageArchiveIndexMetadata) GetMetadata() *WakuMessageArchiveMetadata { if x != nil { return x.Metadata } return nil } func (x *WakuMessageArchiveIndexMetadata) GetOffset() uint64 { if x != nil { return x.Offset } return 0 } func (x *WakuMessageArchiveIndexMetadata) GetSize() uint64 { if x != nil { return x.Size } return 0 } func (x *WakuMessageArchiveIndexMetadata) GetPadding() uint64 { if x != nil { return x.Padding } return 0 } type WakuMessageArchiveIndex struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Archives map[string]*WakuMessageArchiveIndexMetadata `protobuf:"bytes,1,rep,name=archives,proto3" json:"archives,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *WakuMessageArchiveIndex) Reset() { *x = WakuMessageArchiveIndex{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WakuMessageArchiveIndex) String() string { return protoimpl.X.MessageStringOf(x) } func (*WakuMessageArchiveIndex) ProtoMessage() {} func (x *WakuMessageArchiveIndex) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WakuMessageArchiveIndex.ProtoReflect.Descriptor instead. func (*WakuMessageArchiveIndex) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{25} } func (x *WakuMessageArchiveIndex) GetArchives() map[string]*WakuMessageArchiveIndexMetadata { if x != nil { return x.Archives } return nil } type CommunityPublicStorenodesInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Signature of the payload field Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` // Marshaled CommunityStorenodes Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` } func (x *CommunityPublicStorenodesInfo) Reset() { *x = CommunityPublicStorenodesInfo{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityPublicStorenodesInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityPublicStorenodesInfo) ProtoMessage() {} func (x *CommunityPublicStorenodesInfo) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityPublicStorenodesInfo.ProtoReflect.Descriptor instead. func (*CommunityPublicStorenodesInfo) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{26} } func (x *CommunityPublicStorenodesInfo) GetSignature() []byte { if x != nil { return x.Signature } return nil } func (x *CommunityPublicStorenodesInfo) GetPayload() []byte { if x != nil { return x.Payload } return nil } type CommunityStorenodes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` CommunityId []byte `protobuf:"bytes,2,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` Storenodes []*Storenode `protobuf:"bytes,3,rep,name=storenodes,proto3" json:"storenodes,omitempty"` ChainId uint64 `protobuf:"varint,4,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` } func (x *CommunityStorenodes) Reset() { *x = CommunityStorenodes{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityStorenodes) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityStorenodes) ProtoMessage() {} func (x *CommunityStorenodes) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityStorenodes.ProtoReflect.Descriptor instead. func (*CommunityStorenodes) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{27} } func (x *CommunityStorenodes) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *CommunityStorenodes) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunityStorenodes) GetStorenodes() []*Storenode { if x != nil { return x.Storenodes } return nil } func (x *CommunityStorenodes) GetChainId() uint64 { if x != nil { return x.ChainId } return 0 } type Storenode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` StorenodeId string `protobuf:"bytes,2,opt,name=storenode_id,json=storenodeId,proto3" json:"storenode_id,omitempty"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` Fleet string `protobuf:"bytes,5,opt,name=fleet,proto3" json:"fleet,omitempty"` Version uint32 `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"` Removed bool `protobuf:"varint,7,opt,name=removed,proto3" json:"removed,omitempty"` DeletedAt int64 `protobuf:"varint,8,opt,name=deleted_at,json=deletedAt,proto3" json:"deleted_at,omitempty"` } func (x *Storenode) Reset() { *x = Storenode{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Storenode) String() string { return protoimpl.X.MessageStringOf(x) } func (*Storenode) ProtoMessage() {} func (x *Storenode) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Storenode.ProtoReflect.Descriptor instead. func (*Storenode) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{28} } func (x *Storenode) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *Storenode) GetStorenodeId() string { if x != nil { return x.StorenodeId } return "" } func (x *Storenode) GetName() string { if x != nil { return x.Name } return "" } func (x *Storenode) GetAddress() string { if x != nil { return x.Address } return "" } func (x *Storenode) GetFleet() string { if x != nil { return x.Fleet } return "" } func (x *Storenode) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *Storenode) GetRemoved() bool { if x != nil { return x.Removed } return false } func (x *Storenode) GetDeletedAt() int64 { if x != nil { return x.DeletedAt } return 0 } type CommunityReevaluatePermissionsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` } func (x *CommunityReevaluatePermissionsRequest) Reset() { *x = CommunityReevaluatePermissionsRequest{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityReevaluatePermissionsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityReevaluatePermissionsRequest) ProtoMessage() {} func (x *CommunityReevaluatePermissionsRequest) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityReevaluatePermissionsRequest.ProtoReflect.Descriptor instead. func (*CommunityReevaluatePermissionsRequest) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{29} } func (x *CommunityReevaluatePermissionsRequest) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } type DeleteCommunityMemberMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` ChatId string `protobuf:"bytes,2,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` } func (x *DeleteCommunityMemberMessage) Reset() { *x = DeleteCommunityMemberMessage{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteCommunityMemberMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteCommunityMemberMessage) ProtoMessage() {} func (x *DeleteCommunityMemberMessage) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteCommunityMemberMessage.ProtoReflect.Descriptor instead. func (*DeleteCommunityMemberMessage) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{30} } func (x *DeleteCommunityMemberMessage) GetId() string { if x != nil { return x.Id } return "" } func (x *DeleteCommunityMemberMessage) GetChatId() string { if x != nil { return x.ChatId } return "" } type DeleteCommunityMemberMessages struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` CommunityId []byte `protobuf:"bytes,2,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` MemberId string `protobuf:"bytes,3,opt,name=member_id,json=memberId,proto3" json:"member_id,omitempty"` Messages []*DeleteCommunityMemberMessage `protobuf:"bytes,4,rep,name=messages,proto3" json:"messages,omitempty"` } func (x *DeleteCommunityMemberMessages) Reset() { *x = DeleteCommunityMemberMessages{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteCommunityMemberMessages) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteCommunityMemberMessages) ProtoMessage() {} func (x *DeleteCommunityMemberMessages) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteCommunityMemberMessages.ProtoReflect.Descriptor instead. func (*DeleteCommunityMemberMessages) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{31} } func (x *DeleteCommunityMemberMessages) GetClock() uint64 { if x != nil { return x.Clock } return 0 } func (x *DeleteCommunityMemberMessages) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *DeleteCommunityMemberMessages) GetMemberId() string { if x != nil { return x.MemberId } return "" } func (x *DeleteCommunityMemberMessages) GetMessages() []*DeleteCommunityMemberMessage { if x != nil { return x.Messages } return nil } type CommunityUpdateGrant struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` CommunityId []byte `protobuf:"bytes,2,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` Grants map[uint32][]byte `protobuf:"bytes,3,rep,name=grants,proto3" json:"grants,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CommunityUpdateGrant) Reset() { *x = CommunityUpdateGrant{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityUpdateGrant) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityUpdateGrant) ProtoMessage() {} func (x *CommunityUpdateGrant) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityUpdateGrant.ProtoReflect.Descriptor instead. func (*CommunityUpdateGrant) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{32} } func (x *CommunityUpdateGrant) GetTimestamp() uint64 { if x != nil { return x.Timestamp } return 0 } func (x *CommunityUpdateGrant) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunityUpdateGrant) GetGrants() map[uint32][]byte { if x != nil { return x.Grants } return nil } type CommunityEncryptionKeysRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` ChatIds []string `protobuf:"bytes,2,rep,name=chat_ids,json=chatIds,proto3" json:"chat_ids,omitempty"` } func (x *CommunityEncryptionKeysRequest) Reset() { *x = CommunityEncryptionKeysRequest{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunityEncryptionKeysRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunityEncryptionKeysRequest) ProtoMessage() {} func (x *CommunityEncryptionKeysRequest) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunityEncryptionKeysRequest.ProtoReflect.Descriptor instead. func (*CommunityEncryptionKeysRequest) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{33} } func (x *CommunityEncryptionKeysRequest) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunityEncryptionKeysRequest) GetChatIds() []string { if x != nil { return x.ChatIds } return nil } type CommunitySharedAddressesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` } func (x *CommunitySharedAddressesRequest) Reset() { *x = CommunitySharedAddressesRequest{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunitySharedAddressesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunitySharedAddressesRequest) ProtoMessage() {} func (x *CommunitySharedAddressesRequest) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunitySharedAddressesRequest.ProtoReflect.Descriptor instead. func (*CommunitySharedAddressesRequest) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{34} } func (x *CommunitySharedAddressesRequest) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } type CommunitySharedAddressesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` RevealedAccounts []*RevealedAccount `protobuf:"bytes,3,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"` } func (x *CommunitySharedAddressesResponse) Reset() { *x = CommunitySharedAddressesResponse{} if protoimpl.UnsafeEnabled { mi := &file_communities_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CommunitySharedAddressesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CommunitySharedAddressesResponse) ProtoMessage() {} func (x *CommunitySharedAddressesResponse) ProtoReflect() protoreflect.Message { mi := &file_communities_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CommunitySharedAddressesResponse.ProtoReflect.Descriptor instead. func (*CommunitySharedAddressesResponse) Descriptor() ([]byte, []int) { return file_communities_proto_rawDescGZIP(), []int{35} } func (x *CommunitySharedAddressesResponse) GetCommunityId() []byte { if x != nil { return x.CommunityId } return nil } func (x *CommunitySharedAddressesResponse) GetRevealedAccounts() []*RevealedAccount { if x != nil { return x.RevealedAccounts } return nil } var File_communities_proto protoreflect.FileDescriptor var file_communities_proto_rawDesc = []byte{ 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x13, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x22, 0xd1, 0x03, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x11, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x48, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x05, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4d, 0x41, 0x53, 0x54, 0x45, 0x52, 0x10, 0x05, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x2a, 0x11, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x53, 0x2a, 0x15, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x22, 0x3f, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x45, 0x52, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x45, 0x52, 0x10, 0x01, 0x22, 0x9c, 0x03, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x44, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfb, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x51, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x49, 0x52, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x55, 0x52, 0x4e, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x03, 0x22, 0xe5, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x59, 0x0a, 0x06, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x03, 0x22, 0xaa, 0x03, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x5d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x73, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x57, 0x65, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x57, 0x65, 0x69, 0x1a, 0x44, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x93, 0x03, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x45, 0x43, 0x4f, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x45, 0x43, 0x4f, 0x4d, 0x45, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x41, 0x4e, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x41, 0x4e, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x45, 0x43, 0x4f, 0x4d, 0x45, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4d, 0x41, 0x53, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x45, 0x43, 0x4f, 0x4d, 0x45, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x10, 0x06, 0x22, 0x8d, 0x0d, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x45, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x05, 0x63, 0x68, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x68, 0x61, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x08, 0x62, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x47, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x72, 0x6f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x72, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x61, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x17, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, 0x12, 0x58, 0x0a, 0x0e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x64, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x55, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x51, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x0f, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x15, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x70, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x70, 0x69, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x97, 0x04, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x1a, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x73, 0x43, 0x61, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x68, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x69, 0x64, 0x65, 0x49, 0x66, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x12, 0x41, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x55, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0c, 0x0a, 0x01, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x01, 0x6d, 0x12, 0x0c, 0x0a, 0x01, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x01, 0x6b, 0x22, 0x64, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x41, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x41, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x45, 0x64, 0x69, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x11, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x4e, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x55, 0x73, 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0xce, 0x02, 0x0a, 0x1e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x55, 0x72, 0x69, 0x12, 0x3d, 0x0a, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x22, 0x52, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x6f, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x21, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x55, 0x72, 0x69, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x1a, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xc3, 0x01, 0x0a, 0x1f, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x17, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4b, 0x0a, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x1a, 0x66, 0x0a, 0x0d, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x61, 0x6b, 0x75, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x57, 0x0a, 0x1d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xe8, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4a, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x22, 0xb9, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5e, 0x0a, 0x1e, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x73, 0x22, 0x44, 0x0a, 0x1f, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x11, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_communities_proto_rawDescOnce sync.Once file_communities_proto_rawDescData = file_communities_proto_rawDesc ) func file_communities_proto_rawDescGZIP() []byte { file_communities_proto_rawDescOnce.Do(func() { file_communities_proto_rawDescData = protoimpl.X.CompressGZIP(file_communities_proto_rawDescData) }) return file_communities_proto_rawDescData } var file_communities_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_communities_proto_msgTypes = make([]protoimpl.MessageInfo, 47) var file_communities_proto_goTypes = []interface{}{ (CommunityMember_Roles)(0), // 0: protobuf.CommunityMember.Roles (CommunityMember_ChannelRole)(0), // 1: protobuf.CommunityMember.ChannelRole (CommunityTokenAction_ActionType)(0), // 2: protobuf.CommunityTokenAction.ActionType (CommunityPermissions_Access)(0), // 3: protobuf.CommunityPermissions.Access (CommunityTokenPermission_Type)(0), // 4: protobuf.CommunityTokenPermission.Type (*Grant)(nil), // 5: protobuf.Grant (*CommunityMember)(nil), // 6: protobuf.CommunityMember (*CommunityTokenMetadata)(nil), // 7: protobuf.CommunityTokenMetadata (*CommunityTokenAction)(nil), // 8: protobuf.CommunityTokenAction (*CommunityPermissions)(nil), // 9: protobuf.CommunityPermissions (*TokenCriteria)(nil), // 10: protobuf.TokenCriteria (*CommunityTokenPermission)(nil), // 11: protobuf.CommunityTokenPermission (*CommunityDescription)(nil), // 12: protobuf.CommunityDescription (*CommunityBanInfo)(nil), // 13: protobuf.CommunityBanInfo (*CommunityAdminSettings)(nil), // 14: protobuf.CommunityAdminSettings (*CommunityChat)(nil), // 15: protobuf.CommunityChat (*CommunityBloomFilter)(nil), // 16: protobuf.CommunityBloomFilter (*CommunityCategory)(nil), // 17: protobuf.CommunityCategory (*RevealedAccount)(nil), // 18: protobuf.RevealedAccount (*CommunityRequestToJoin)(nil), // 19: protobuf.CommunityRequestToJoin (*CommunityEditSharedAddresses)(nil), // 20: protobuf.CommunityEditSharedAddresses (*CommunityCancelRequestToJoin)(nil), // 21: protobuf.CommunityCancelRequestToJoin (*CommunityUserKicked)(nil), // 22: protobuf.CommunityUserKicked (*CommunityRequestToJoinResponse)(nil), // 23: protobuf.CommunityRequestToJoinResponse (*CommunityRequestToLeave)(nil), // 24: protobuf.CommunityRequestToLeave (*CommunityMessageArchiveMagnetlink)(nil), // 25: protobuf.CommunityMessageArchiveMagnetlink (*WakuMessage)(nil), // 26: protobuf.WakuMessage (*WakuMessageArchiveMetadata)(nil), // 27: protobuf.WakuMessageArchiveMetadata (*WakuMessageArchive)(nil), // 28: protobuf.WakuMessageArchive (*WakuMessageArchiveIndexMetadata)(nil), // 29: protobuf.WakuMessageArchiveIndexMetadata (*WakuMessageArchiveIndex)(nil), // 30: protobuf.WakuMessageArchiveIndex (*CommunityPublicStorenodesInfo)(nil), // 31: protobuf.CommunityPublicStorenodesInfo (*CommunityStorenodes)(nil), // 32: protobuf.CommunityStorenodes (*Storenode)(nil), // 33: protobuf.Storenode (*CommunityReevaluatePermissionsRequest)(nil), // 34: protobuf.CommunityReevaluatePermissionsRequest (*DeleteCommunityMemberMessage)(nil), // 35: protobuf.DeleteCommunityMemberMessage (*DeleteCommunityMemberMessages)(nil), // 36: protobuf.DeleteCommunityMemberMessages (*CommunityUpdateGrant)(nil), // 37: protobuf.CommunityUpdateGrant (*CommunityEncryptionKeysRequest)(nil), // 38: protobuf.CommunityEncryptionKeysRequest (*CommunitySharedAddressesRequest)(nil), // 39: protobuf.CommunitySharedAddressesRequest (*CommunitySharedAddressesResponse)(nil), // 40: protobuf.CommunitySharedAddressesResponse nil, // 41: protobuf.CommunityTokenMetadata.ContractAddressesEntry nil, // 42: protobuf.TokenCriteria.ContractAddressesEntry nil, // 43: protobuf.CommunityDescription.MembersEntry nil, // 44: protobuf.CommunityDescription.ChatsEntry nil, // 45: protobuf.CommunityDescription.CategoriesEntry nil, // 46: protobuf.CommunityDescription.TokenPermissionsEntry nil, // 47: protobuf.CommunityDescription.BannedMembersEntry nil, // 48: protobuf.CommunityDescription.PrivateDataEntry nil, // 49: protobuf.CommunityChat.MembersEntry nil, // 50: protobuf.WakuMessageArchiveIndex.ArchivesEntry nil, // 51: protobuf.CommunityUpdateGrant.GrantsEntry (CommunityTokenType)(0), // 52: protobuf.CommunityTokenType (*ChatIdentity)(nil), // 53: protobuf.ChatIdentity (*Shard)(nil), // 54: protobuf.Shard } var file_communities_proto_depIdxs = []int32{ 0, // 0: protobuf.CommunityMember.roles:type_name -> protobuf.CommunityMember.Roles 18, // 1: protobuf.CommunityMember.revealed_accounts:type_name -> protobuf.RevealedAccount 1, // 2: protobuf.CommunityMember.channel_role:type_name -> protobuf.CommunityMember.ChannelRole 41, // 3: protobuf.CommunityTokenMetadata.contract_addresses:type_name -> protobuf.CommunityTokenMetadata.ContractAddressesEntry 52, // 4: protobuf.CommunityTokenMetadata.tokenType:type_name -> protobuf.CommunityTokenType 2, // 5: protobuf.CommunityTokenAction.action_type:type_name -> protobuf.CommunityTokenAction.ActionType 3, // 6: protobuf.CommunityPermissions.access:type_name -> protobuf.CommunityPermissions.Access 42, // 7: protobuf.TokenCriteria.contract_addresses:type_name -> protobuf.TokenCriteria.ContractAddressesEntry 52, // 8: protobuf.TokenCriteria.type:type_name -> protobuf.CommunityTokenType 4, // 9: protobuf.CommunityTokenPermission.type:type_name -> protobuf.CommunityTokenPermission.Type 10, // 10: protobuf.CommunityTokenPermission.token_criteria:type_name -> protobuf.TokenCriteria 43, // 11: protobuf.CommunityDescription.members:type_name -> protobuf.CommunityDescription.MembersEntry 9, // 12: protobuf.CommunityDescription.permissions:type_name -> protobuf.CommunityPermissions 53, // 13: protobuf.CommunityDescription.identity:type_name -> protobuf.ChatIdentity 44, // 14: protobuf.CommunityDescription.chats:type_name -> protobuf.CommunityDescription.ChatsEntry 45, // 15: protobuf.CommunityDescription.categories:type_name -> protobuf.CommunityDescription.CategoriesEntry 14, // 16: protobuf.CommunityDescription.admin_settings:type_name -> protobuf.CommunityAdminSettings 46, // 17: protobuf.CommunityDescription.token_permissions:type_name -> protobuf.CommunityDescription.TokenPermissionsEntry 7, // 18: protobuf.CommunityDescription.community_tokens_metadata:type_name -> protobuf.CommunityTokenMetadata 47, // 19: protobuf.CommunityDescription.banned_members:type_name -> protobuf.CommunityDescription.BannedMembersEntry 48, // 20: protobuf.CommunityDescription.privateData:type_name -> protobuf.CommunityDescription.PrivateDataEntry 49, // 21: protobuf.CommunityChat.members:type_name -> protobuf.CommunityChat.MembersEntry 9, // 22: protobuf.CommunityChat.permissions:type_name -> protobuf.CommunityPermissions 53, // 23: protobuf.CommunityChat.identity:type_name -> protobuf.ChatIdentity 16, // 24: protobuf.CommunityChat.members_list:type_name -> protobuf.CommunityBloomFilter 18, // 25: protobuf.CommunityRequestToJoin.revealed_accounts:type_name -> protobuf.RevealedAccount 18, // 26: protobuf.CommunityEditSharedAddresses.revealed_accounts:type_name -> protobuf.RevealedAccount 12, // 27: protobuf.CommunityRequestToJoinResponse.community:type_name -> protobuf.CommunityDescription 54, // 28: protobuf.CommunityRequestToJoinResponse.shard:type_name -> protobuf.Shard 27, // 29: protobuf.WakuMessageArchive.metadata:type_name -> protobuf.WakuMessageArchiveMetadata 26, // 30: protobuf.WakuMessageArchive.messages:type_name -> protobuf.WakuMessage 27, // 31: protobuf.WakuMessageArchiveIndexMetadata.metadata:type_name -> protobuf.WakuMessageArchiveMetadata 50, // 32: protobuf.WakuMessageArchiveIndex.archives:type_name -> protobuf.WakuMessageArchiveIndex.ArchivesEntry 33, // 33: protobuf.CommunityStorenodes.storenodes:type_name -> protobuf.Storenode 35, // 34: protobuf.DeleteCommunityMemberMessages.messages:type_name -> protobuf.DeleteCommunityMemberMessage 51, // 35: protobuf.CommunityUpdateGrant.grants:type_name -> protobuf.CommunityUpdateGrant.GrantsEntry 18, // 36: protobuf.CommunitySharedAddressesResponse.revealed_accounts:type_name -> protobuf.RevealedAccount 6, // 37: protobuf.CommunityDescription.MembersEntry.value:type_name -> protobuf.CommunityMember 15, // 38: protobuf.CommunityDescription.ChatsEntry.value:type_name -> protobuf.CommunityChat 17, // 39: protobuf.CommunityDescription.CategoriesEntry.value:type_name -> protobuf.CommunityCategory 11, // 40: protobuf.CommunityDescription.TokenPermissionsEntry.value:type_name -> protobuf.CommunityTokenPermission 13, // 41: protobuf.CommunityDescription.BannedMembersEntry.value:type_name -> protobuf.CommunityBanInfo 6, // 42: protobuf.CommunityChat.MembersEntry.value:type_name -> protobuf.CommunityMember 29, // 43: protobuf.WakuMessageArchiveIndex.ArchivesEntry.value:type_name -> protobuf.WakuMessageArchiveIndexMetadata 44, // [44:44] is the sub-list for method output_type 44, // [44:44] is the sub-list for method input_type 44, // [44:44] is the sub-list for extension type_name 44, // [44:44] is the sub-list for extension extendee 0, // [0:44] is the sub-list for field type_name } func init() { file_communities_proto_init() } func file_communities_proto_init() { if File_communities_proto != nil { return } file_chat_identity_proto_init() file_enums_proto_init() file_shard_proto_init() if !protoimpl.UnsafeEnabled { file_communities_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Grant); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityMember); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityTokenMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityTokenAction); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityPermissions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenCriteria); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityTokenPermission); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityDescription); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityBanInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityAdminSettings); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityChat); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityBloomFilter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityCategory); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RevealedAccount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityRequestToJoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityEditSharedAddresses); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityCancelRequestToJoin); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityUserKicked); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityRequestToJoinResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityRequestToLeave); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityMessageArchiveMagnetlink); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WakuMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WakuMessageArchiveMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WakuMessageArchive); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WakuMessageArchiveIndexMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WakuMessageArchiveIndex); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityPublicStorenodesInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityStorenodes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Storenode); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityReevaluatePermissionsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteCommunityMemberMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteCommunityMemberMessages); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityUpdateGrant); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunityEncryptionKeysRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunitySharedAddressesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_communities_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommunitySharedAddressesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_communities_proto_rawDesc, NumEnums: 5, NumMessages: 47, NumExtensions: 0, NumServices: 0, }, GoTypes: file_communities_proto_goTypes, DependencyIndexes: file_communities_proto_depIdxs, EnumInfos: file_communities_proto_enumTypes, MessageInfos: file_communities_proto_msgTypes, }.Build() File_communities_proto = out.File file_communities_proto_rawDesc = nil file_communities_proto_goTypes = nil file_communities_proto_depIdxs = nil }