// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: v1/raft.proto

package v1

import (
	context "context"
	fmt "fmt"
	_ "github.com/gogo/protobuf/gogoproto"
	proto "github.com/gogo/protobuf/proto"
	_ "github.com/gogo/protobuf/types"
	github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	io "io"
	math "math"
	math_bits "math/bits"
	time "time"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
var _ = time.Kitchen

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

type MemberRole int32

const (
	MemberRole_UNKNOWN  MemberRole = 0
	MemberRole_MEMBER   MemberRole = 1
	MemberRole_OBSERVER MemberRole = 2
	MemberRole_WITNESS  MemberRole = 3
	MemberRole_REMOVED  MemberRole = 4
)

var MemberRole_name = map[int32]string{
	0: "UNKNOWN",
	1: "MEMBER",
	2: "OBSERVER",
	3: "WITNESS",
	4: "REMOVED",
}

var MemberRole_value = map[string]int32{
	"UNKNOWN":  0,
	"MEMBER":   1,
	"OBSERVER": 2,
	"WITNESS":  3,
	"REMOVED":  4,
}

func (x MemberRole) String() string {
	return proto.EnumName(MemberRole_name, int32(x))
}

func (MemberRole) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{0}
}

type GroupConfig struct {
	GroupID GroupID        `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
	Members []MemberConfig `protobuf:"bytes,2,rep,name=members,proto3" json:"members"`
	Version uint64         `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
}

func (m *GroupConfig) Reset()         { *m = GroupConfig{} }
func (m *GroupConfig) String() string { return proto.CompactTextString(m) }
func (*GroupConfig) ProtoMessage()    {}
func (*GroupConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{0}
}
func (m *GroupConfig) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GroupConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GroupConfig.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *GroupConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupConfig.Merge(m, src)
}
func (m *GroupConfig) XXX_Size() int {
	return m.Size()
}
func (m *GroupConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupConfig.DiscardUnknown(m)
}

var xxx_messageInfo_GroupConfig proto.InternalMessageInfo

func (m *GroupConfig) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

func (m *GroupConfig) GetMembers() []MemberConfig {
	if m != nil {
		return m.Members
	}
	return nil
}

func (m *GroupConfig) GetVersion() uint64 {
	if m != nil {
		return m.Version
	}
	return 0
}

type MemberConfig struct {
	MemberID MemberID   `protobuf:"varint,1,opt,name=member_id,json=memberId,proto3,casttype=MemberID" json:"member_id,omitempty"`
	Host     string     `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
	Port     int32      `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	Role     MemberRole `protobuf:"varint,4,opt,name=role,proto3,enum=atomix.stores.raft.v1.MemberRole" json:"role,omitempty"`
}

func (m *MemberConfig) Reset()         { *m = MemberConfig{} }
func (m *MemberConfig) String() string { return proto.CompactTextString(m) }
func (*MemberConfig) ProtoMessage()    {}
func (*MemberConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{1}
}
func (m *MemberConfig) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *MemberConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_MemberConfig.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *MemberConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberConfig.Merge(m, src)
}
func (m *MemberConfig) XXX_Size() int {
	return m.Size()
}
func (m *MemberConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberConfig.DiscardUnknown(m)
}

var xxx_messageInfo_MemberConfig proto.InternalMessageInfo

func (m *MemberConfig) GetMemberID() MemberID {
	if m != nil {
		return m.MemberID
	}
	return 0
}

func (m *MemberConfig) GetHost() string {
	if m != nil {
		return m.Host
	}
	return ""
}

func (m *MemberConfig) GetPort() int32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *MemberConfig) GetRole() MemberRole {
	if m != nil {
		return m.Role
	}
	return MemberRole_UNKNOWN
}

type RaftConfig struct {
	ElectionRTT            uint64 `protobuf:"varint,1,opt,name=election_rtt,json=electionRtt,proto3" json:"election_rtt,omitempty"`
	HeartbeatRTT           uint64 `protobuf:"varint,2,opt,name=heartbeat_rtt,json=heartbeatRtt,proto3" json:"heartbeat_rtt,omitempty"`
	SnapshotEntries        uint64 `protobuf:"varint,3,opt,name=snapshot_entries,json=snapshotEntries,proto3" json:"snapshot_entries,omitempty"`
	CompactionOverhead     uint64 `protobuf:"varint,4,opt,name=compaction_overhead,json=compactionOverhead,proto3" json:"compaction_overhead,omitempty"`
	MaxInMemLogSize        uint64 `protobuf:"varint,5,opt,name=max_in_mem_log_size,json=maxInMemLogSize,proto3" json:"max_in_mem_log_size,omitempty"`
	DisableAutoCompactions bool   `protobuf:"varint,6,opt,name=disable_auto_compactions,json=disableAutoCompactions,proto3" json:"disable_auto_compactions,omitempty"`
	OrderedConfigChange    bool   `protobuf:"varint,7,opt,name=ordered_config_change,json=orderedConfigChange,proto3" json:"ordered_config_change,omitempty"`
}

func (m *RaftConfig) Reset()         { *m = RaftConfig{} }
func (m *RaftConfig) String() string { return proto.CompactTextString(m) }
func (*RaftConfig) ProtoMessage()    {}
func (*RaftConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{2}
}
func (m *RaftConfig) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RaftConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RaftConfig.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RaftConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RaftConfig.Merge(m, src)
}
func (m *RaftConfig) XXX_Size() int {
	return m.Size()
}
func (m *RaftConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_RaftConfig.DiscardUnknown(m)
}

var xxx_messageInfo_RaftConfig proto.InternalMessageInfo

func (m *RaftConfig) GetElectionRTT() uint64 {
	if m != nil {
		return m.ElectionRTT
	}
	return 0
}

func (m *RaftConfig) GetHeartbeatRTT() uint64 {
	if m != nil {
		return m.HeartbeatRTT
	}
	return 0
}

func (m *RaftConfig) GetSnapshotEntries() uint64 {
	if m != nil {
		return m.SnapshotEntries
	}
	return 0
}

func (m *RaftConfig) GetCompactionOverhead() uint64 {
	if m != nil {
		return m.CompactionOverhead
	}
	return 0
}

func (m *RaftConfig) GetMaxInMemLogSize() uint64 {
	if m != nil {
		return m.MaxInMemLogSize
	}
	return 0
}

func (m *RaftConfig) GetDisableAutoCompactions() bool {
	if m != nil {
		return m.DisableAutoCompactions
	}
	return false
}

func (m *RaftConfig) GetOrderedConfigChange() bool {
	if m != nil {
		return m.OrderedConfigChange
	}
	return false
}

type RaftProposal struct {
	Term        Term        `protobuf:"varint,1,opt,name=term,proto3,casttype=Term" json:"term,omitempty"`
	SequenceNum SequenceNum `protobuf:"varint,2,opt,name=sequence_num,json=sequenceNum,proto3,casttype=SequenceNum" json:"sequence_num,omitempty"`
	Data        []byte      `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
}

func (m *RaftProposal) Reset()         { *m = RaftProposal{} }
func (m *RaftProposal) String() string { return proto.CompactTextString(m) }
func (*RaftProposal) ProtoMessage()    {}
func (*RaftProposal) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{3}
}
func (m *RaftProposal) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RaftProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RaftProposal.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RaftProposal) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RaftProposal.Merge(m, src)
}
func (m *RaftProposal) XXX_Size() int {
	return m.Size()
}
func (m *RaftProposal) XXX_DiscardUnknown() {
	xxx_messageInfo_RaftProposal.DiscardUnknown(m)
}

var xxx_messageInfo_RaftProposal proto.InternalMessageInfo

func (m *RaftProposal) GetTerm() Term {
	if m != nil {
		return m.Term
	}
	return 0
}

func (m *RaftProposal) GetSequenceNum() SequenceNum {
	if m != nil {
		return m.SequenceNum
	}
	return 0
}

func (m *RaftProposal) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type GetConfigRequest struct {
	GroupID GroupID `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
}

func (m *GetConfigRequest) Reset()         { *m = GetConfigRequest{} }
func (m *GetConfigRequest) String() string { return proto.CompactTextString(m) }
func (*GetConfigRequest) ProtoMessage()    {}
func (*GetConfigRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{4}
}
func (m *GetConfigRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GetConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GetConfigRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *GetConfigRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetConfigRequest.Merge(m, src)
}
func (m *GetConfigRequest) XXX_Size() int {
	return m.Size()
}
func (m *GetConfigRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetConfigRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetConfigRequest proto.InternalMessageInfo

func (m *GetConfigRequest) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

type GetConfigResponse struct {
	Group GroupConfig `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
}

func (m *GetConfigResponse) Reset()         { *m = GetConfigResponse{} }
func (m *GetConfigResponse) String() string { return proto.CompactTextString(m) }
func (*GetConfigResponse) ProtoMessage()    {}
func (*GetConfigResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{5}
}
func (m *GetConfigResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GetConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GetConfigResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *GetConfigResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetConfigResponse.Merge(m, src)
}
func (m *GetConfigResponse) XXX_Size() int {
	return m.Size()
}
func (m *GetConfigResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetConfigResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetConfigResponse proto.InternalMessageInfo

func (m *GetConfigResponse) GetGroup() GroupConfig {
	if m != nil {
		return m.Group
	}
	return GroupConfig{}
}

type BootstrapGroupRequest struct {
	GroupID  GroupID        `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
	MemberID MemberID       `protobuf:"varint,2,opt,name=member_id,json=memberId,proto3,casttype=MemberID" json:"member_id,omitempty"`
	Members  []MemberConfig `protobuf:"bytes,3,rep,name=members,proto3" json:"members"`
	Config   RaftConfig     `protobuf:"bytes,4,opt,name=config,proto3" json:"config"`
}

func (m *BootstrapGroupRequest) Reset()         { *m = BootstrapGroupRequest{} }
func (m *BootstrapGroupRequest) String() string { return proto.CompactTextString(m) }
func (*BootstrapGroupRequest) ProtoMessage()    {}
func (*BootstrapGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{6}
}
func (m *BootstrapGroupRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *BootstrapGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_BootstrapGroupRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *BootstrapGroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BootstrapGroupRequest.Merge(m, src)
}
func (m *BootstrapGroupRequest) XXX_Size() int {
	return m.Size()
}
func (m *BootstrapGroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_BootstrapGroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_BootstrapGroupRequest proto.InternalMessageInfo

func (m *BootstrapGroupRequest) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

func (m *BootstrapGroupRequest) GetMemberID() MemberID {
	if m != nil {
		return m.MemberID
	}
	return 0
}

func (m *BootstrapGroupRequest) GetMembers() []MemberConfig {
	if m != nil {
		return m.Members
	}
	return nil
}

func (m *BootstrapGroupRequest) GetConfig() RaftConfig {
	if m != nil {
		return m.Config
	}
	return RaftConfig{}
}

type BootstrapGroupResponse struct {
}

func (m *BootstrapGroupResponse) Reset()         { *m = BootstrapGroupResponse{} }
func (m *BootstrapGroupResponse) String() string { return proto.CompactTextString(m) }
func (*BootstrapGroupResponse) ProtoMessage()    {}
func (*BootstrapGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{7}
}
func (m *BootstrapGroupResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *BootstrapGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_BootstrapGroupResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *BootstrapGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BootstrapGroupResponse.Merge(m, src)
}
func (m *BootstrapGroupResponse) XXX_Size() int {
	return m.Size()
}
func (m *BootstrapGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_BootstrapGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_BootstrapGroupResponse proto.InternalMessageInfo

type AddMemberRequest struct {
	GroupID GroupID      `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
	Member  MemberConfig `protobuf:"bytes,2,opt,name=member,proto3" json:"member"`
	Version uint64       `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
}

func (m *AddMemberRequest) Reset()         { *m = AddMemberRequest{} }
func (m *AddMemberRequest) String() string { return proto.CompactTextString(m) }
func (*AddMemberRequest) ProtoMessage()    {}
func (*AddMemberRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{8}
}
func (m *AddMemberRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *AddMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_AddMemberRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *AddMemberRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AddMemberRequest.Merge(m, src)
}
func (m *AddMemberRequest) XXX_Size() int {
	return m.Size()
}
func (m *AddMemberRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_AddMemberRequest.DiscardUnknown(m)
}

var xxx_messageInfo_AddMemberRequest proto.InternalMessageInfo

func (m *AddMemberRequest) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

func (m *AddMemberRequest) GetMember() MemberConfig {
	if m != nil {
		return m.Member
	}
	return MemberConfig{}
}

func (m *AddMemberRequest) GetVersion() uint64 {
	if m != nil {
		return m.Version
	}
	return 0
}

type AddMemberResponse struct {
}

func (m *AddMemberResponse) Reset()         { *m = AddMemberResponse{} }
func (m *AddMemberResponse) String() string { return proto.CompactTextString(m) }
func (*AddMemberResponse) ProtoMessage()    {}
func (*AddMemberResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{9}
}
func (m *AddMemberResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *AddMemberResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_AddMemberResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *AddMemberResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AddMemberResponse.Merge(m, src)
}
func (m *AddMemberResponse) XXX_Size() int {
	return m.Size()
}
func (m *AddMemberResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_AddMemberResponse.DiscardUnknown(m)
}

var xxx_messageInfo_AddMemberResponse proto.InternalMessageInfo

type RemoveMemberRequest struct {
	GroupID  GroupID  `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
	MemberID MemberID `protobuf:"varint,2,opt,name=member_id,json=memberId,proto3,casttype=MemberID" json:"member_id,omitempty"`
	Version  uint64   `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
}

func (m *RemoveMemberRequest) Reset()         { *m = RemoveMemberRequest{} }
func (m *RemoveMemberRequest) String() string { return proto.CompactTextString(m) }
func (*RemoveMemberRequest) ProtoMessage()    {}
func (*RemoveMemberRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{10}
}
func (m *RemoveMemberRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RemoveMemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RemoveMemberRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RemoveMemberRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RemoveMemberRequest.Merge(m, src)
}
func (m *RemoveMemberRequest) XXX_Size() int {
	return m.Size()
}
func (m *RemoveMemberRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_RemoveMemberRequest.DiscardUnknown(m)
}

var xxx_messageInfo_RemoveMemberRequest proto.InternalMessageInfo

func (m *RemoveMemberRequest) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

func (m *RemoveMemberRequest) GetMemberID() MemberID {
	if m != nil {
		return m.MemberID
	}
	return 0
}

func (m *RemoveMemberRequest) GetVersion() uint64 {
	if m != nil {
		return m.Version
	}
	return 0
}

type RemoveMemberResponse struct {
}

func (m *RemoveMemberResponse) Reset()         { *m = RemoveMemberResponse{} }
func (m *RemoveMemberResponse) String() string { return proto.CompactTextString(m) }
func (*RemoveMemberResponse) ProtoMessage()    {}
func (*RemoveMemberResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{11}
}
func (m *RemoveMemberResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RemoveMemberResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RemoveMemberResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RemoveMemberResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RemoveMemberResponse.Merge(m, src)
}
func (m *RemoveMemberResponse) XXX_Size() int {
	return m.Size()
}
func (m *RemoveMemberResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_RemoveMemberResponse.DiscardUnknown(m)
}

var xxx_messageInfo_RemoveMemberResponse proto.InternalMessageInfo

type JoinGroupRequest struct {
	GroupID  GroupID    `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
	MemberID MemberID   `protobuf:"varint,2,opt,name=member_id,json=memberId,proto3,casttype=MemberID" json:"member_id,omitempty"`
	Config   RaftConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config"`
}

func (m *JoinGroupRequest) Reset()         { *m = JoinGroupRequest{} }
func (m *JoinGroupRequest) String() string { return proto.CompactTextString(m) }
func (*JoinGroupRequest) ProtoMessage()    {}
func (*JoinGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{12}
}
func (m *JoinGroupRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *JoinGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_JoinGroupRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *JoinGroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JoinGroupRequest.Merge(m, src)
}
func (m *JoinGroupRequest) XXX_Size() int {
	return m.Size()
}
func (m *JoinGroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_JoinGroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_JoinGroupRequest proto.InternalMessageInfo

func (m *JoinGroupRequest) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

func (m *JoinGroupRequest) GetMemberID() MemberID {
	if m != nil {
		return m.MemberID
	}
	return 0
}

func (m *JoinGroupRequest) GetConfig() RaftConfig {
	if m != nil {
		return m.Config
	}
	return RaftConfig{}
}

type JoinGroupResponse struct {
}

func (m *JoinGroupResponse) Reset()         { *m = JoinGroupResponse{} }
func (m *JoinGroupResponse) String() string { return proto.CompactTextString(m) }
func (*JoinGroupResponse) ProtoMessage()    {}
func (*JoinGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{13}
}
func (m *JoinGroupResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *JoinGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_JoinGroupResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *JoinGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JoinGroupResponse.Merge(m, src)
}
func (m *JoinGroupResponse) XXX_Size() int {
	return m.Size()
}
func (m *JoinGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_JoinGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_JoinGroupResponse proto.InternalMessageInfo

type LeaveGroupRequest struct {
	GroupID GroupID `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
}

func (m *LeaveGroupRequest) Reset()         { *m = LeaveGroupRequest{} }
func (m *LeaveGroupRequest) String() string { return proto.CompactTextString(m) }
func (*LeaveGroupRequest) ProtoMessage()    {}
func (*LeaveGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{14}
}
func (m *LeaveGroupRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *LeaveGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_LeaveGroupRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *LeaveGroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LeaveGroupRequest.Merge(m, src)
}
func (m *LeaveGroupRequest) XXX_Size() int {
	return m.Size()
}
func (m *LeaveGroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_LeaveGroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_LeaveGroupRequest proto.InternalMessageInfo

func (m *LeaveGroupRequest) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

type LeaveGroupResponse struct {
}

func (m *LeaveGroupResponse) Reset()         { *m = LeaveGroupResponse{} }
func (m *LeaveGroupResponse) String() string { return proto.CompactTextString(m) }
func (*LeaveGroupResponse) ProtoMessage()    {}
func (*LeaveGroupResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{15}
}
func (m *LeaveGroupResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *LeaveGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_LeaveGroupResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *LeaveGroupResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LeaveGroupResponse.Merge(m, src)
}
func (m *LeaveGroupResponse) XXX_Size() int {
	return m.Size()
}
func (m *LeaveGroupResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_LeaveGroupResponse.DiscardUnknown(m)
}

var xxx_messageInfo_LeaveGroupResponse proto.InternalMessageInfo

type DeleteDataRequest struct {
	GroupID  GroupID  `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
	MemberID MemberID `protobuf:"varint,2,opt,name=member_id,json=memberId,proto3,casttype=MemberID" json:"member_id,omitempty"`
}

func (m *DeleteDataRequest) Reset()         { *m = DeleteDataRequest{} }
func (m *DeleteDataRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteDataRequest) ProtoMessage()    {}
func (*DeleteDataRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{16}
}
func (m *DeleteDataRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DeleteDataRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DeleteDataRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DeleteDataRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteDataRequest.Merge(m, src)
}
func (m *DeleteDataRequest) XXX_Size() int {
	return m.Size()
}
func (m *DeleteDataRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteDataRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteDataRequest proto.InternalMessageInfo

func (m *DeleteDataRequest) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

func (m *DeleteDataRequest) GetMemberID() MemberID {
	if m != nil {
		return m.MemberID
	}
	return 0
}

type DeleteDataResponse struct {
}

func (m *DeleteDataResponse) Reset()         { *m = DeleteDataResponse{} }
func (m *DeleteDataResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteDataResponse) ProtoMessage()    {}
func (*DeleteDataResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{17}
}
func (m *DeleteDataResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DeleteDataResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DeleteDataResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DeleteDataResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteDataResponse.Merge(m, src)
}
func (m *DeleteDataResponse) XXX_Size() int {
	return m.Size()
}
func (m *DeleteDataResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteDataResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteDataResponse proto.InternalMessageInfo

type WatchRequest struct {
}

func (m *WatchRequest) Reset()         { *m = WatchRequest{} }
func (m *WatchRequest) String() string { return proto.CompactTextString(m) }
func (*WatchRequest) ProtoMessage()    {}
func (*WatchRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{18}
}
func (m *WatchRequest) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *WatchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_WatchRequest.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *WatchRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WatchRequest.Merge(m, src)
}
func (m *WatchRequest) XXX_Size() int {
	return m.Size()
}
func (m *WatchRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_WatchRequest.DiscardUnknown(m)
}

var xxx_messageInfo_WatchRequest proto.InternalMessageInfo

type Event struct {
	Timestamp time.Time `protobuf:"bytes,1,opt,name=timestamp,proto3,stdtime" json:"timestamp"`
	// Types that are valid to be assigned to Event:
	//	*Event_MemberReady
	//	*Event_LeaderUpdated
	//	*Event_ConfigurationChanged
	//	*Event_SendSnapshotStarted
	//	*Event_SendSnapshotCompleted
	//	*Event_SendSnapshotAborted
	//	*Event_SnapshotReceived
	//	*Event_SnapshotRecovered
	//	*Event_SnapshotCreated
	//	*Event_SnapshotCompacted
	//	*Event_LogCompacted
	//	*Event_LogdbCompacted
	//	*Event_ConnectionEstablished
	//	*Event_ConnectionFailed
	Event isEvent_Event `protobuf_oneof:"event"`
}

func (m *Event) Reset()         { *m = Event{} }
func (m *Event) String() string { return proto.CompactTextString(m) }
func (*Event) ProtoMessage()    {}
func (*Event) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{19}
}
func (m *Event) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Event.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Event) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Event.Merge(m, src)
}
func (m *Event) XXX_Size() int {
	return m.Size()
}
func (m *Event) XXX_DiscardUnknown() {
	xxx_messageInfo_Event.DiscardUnknown(m)
}

var xxx_messageInfo_Event proto.InternalMessageInfo

type isEvent_Event interface {
	isEvent_Event()
	MarshalTo([]byte) (int, error)
	Size() int
}

type Event_MemberReady struct {
	MemberReady *MemberReadyEvent `protobuf:"bytes,2,opt,name=member_ready,json=memberReady,proto3,oneof" json:"member_ready,omitempty"`
}
type Event_LeaderUpdated struct {
	LeaderUpdated *LeaderUpdatedEvent `protobuf:"bytes,3,opt,name=leader_updated,json=leaderUpdated,proto3,oneof" json:"leader_updated,omitempty"`
}
type Event_ConfigurationChanged struct {
	ConfigurationChanged *ConfigurationChangedEvent `protobuf:"bytes,4,opt,name=configuration_changed,json=configurationChanged,proto3,oneof" json:"configuration_changed,omitempty"`
}
type Event_SendSnapshotStarted struct {
	SendSnapshotStarted *SendSnapshotStartedEvent `protobuf:"bytes,5,opt,name=send_snapshot_started,json=sendSnapshotStarted,proto3,oneof" json:"send_snapshot_started,omitempty"`
}
type Event_SendSnapshotCompleted struct {
	SendSnapshotCompleted *SendSnapshotCompletedEvent `protobuf:"bytes,6,opt,name=send_snapshot_completed,json=sendSnapshotCompleted,proto3,oneof" json:"send_snapshot_completed,omitempty"`
}
type Event_SendSnapshotAborted struct {
	SendSnapshotAborted *SendSnapshotAbortedEvent `protobuf:"bytes,7,opt,name=send_snapshot_aborted,json=sendSnapshotAborted,proto3,oneof" json:"send_snapshot_aborted,omitempty"`
}
type Event_SnapshotReceived struct {
	SnapshotReceived *SnapshotReceivedEvent `protobuf:"bytes,8,opt,name=snapshot_received,json=snapshotReceived,proto3,oneof" json:"snapshot_received,omitempty"`
}
type Event_SnapshotRecovered struct {
	SnapshotRecovered *SnapshotRecoveredEvent `protobuf:"bytes,9,opt,name=snapshot_recovered,json=snapshotRecovered,proto3,oneof" json:"snapshot_recovered,omitempty"`
}
type Event_SnapshotCreated struct {
	SnapshotCreated *SnapshotCreatedEvent `protobuf:"bytes,10,opt,name=snapshot_created,json=snapshotCreated,proto3,oneof" json:"snapshot_created,omitempty"`
}
type Event_SnapshotCompacted struct {
	SnapshotCompacted *SnapshotCompactedEvent `protobuf:"bytes,11,opt,name=snapshot_compacted,json=snapshotCompacted,proto3,oneof" json:"snapshot_compacted,omitempty"`
}
type Event_LogCompacted struct {
	LogCompacted *LogCompactedEvent `protobuf:"bytes,12,opt,name=log_compacted,json=logCompacted,proto3,oneof" json:"log_compacted,omitempty"`
}
type Event_LogdbCompacted struct {
	LogdbCompacted *LogDBCompactedEvent `protobuf:"bytes,13,opt,name=logdb_compacted,json=logdbCompacted,proto3,oneof" json:"logdb_compacted,omitempty"`
}
type Event_ConnectionEstablished struct {
	ConnectionEstablished *ConnectionEstablishedEvent `protobuf:"bytes,14,opt,name=connection_established,json=connectionEstablished,proto3,oneof" json:"connection_established,omitempty"`
}
type Event_ConnectionFailed struct {
	ConnectionFailed *ConnectionFailedEvent `protobuf:"bytes,15,opt,name=connection_failed,json=connectionFailed,proto3,oneof" json:"connection_failed,omitempty"`
}

func (*Event_MemberReady) isEvent_Event()           {}
func (*Event_LeaderUpdated) isEvent_Event()         {}
func (*Event_ConfigurationChanged) isEvent_Event()  {}
func (*Event_SendSnapshotStarted) isEvent_Event()   {}
func (*Event_SendSnapshotCompleted) isEvent_Event() {}
func (*Event_SendSnapshotAborted) isEvent_Event()   {}
func (*Event_SnapshotReceived) isEvent_Event()      {}
func (*Event_SnapshotRecovered) isEvent_Event()     {}
func (*Event_SnapshotCreated) isEvent_Event()       {}
func (*Event_SnapshotCompacted) isEvent_Event()     {}
func (*Event_LogCompacted) isEvent_Event()          {}
func (*Event_LogdbCompacted) isEvent_Event()        {}
func (*Event_ConnectionEstablished) isEvent_Event() {}
func (*Event_ConnectionFailed) isEvent_Event()      {}

func (m *Event) GetEvent() isEvent_Event {
	if m != nil {
		return m.Event
	}
	return nil
}

func (m *Event) GetTimestamp() time.Time {
	if m != nil {
		return m.Timestamp
	}
	return time.Time{}
}

func (m *Event) GetMemberReady() *MemberReadyEvent {
	if x, ok := m.GetEvent().(*Event_MemberReady); ok {
		return x.MemberReady
	}
	return nil
}

func (m *Event) GetLeaderUpdated() *LeaderUpdatedEvent {
	if x, ok := m.GetEvent().(*Event_LeaderUpdated); ok {
		return x.LeaderUpdated
	}
	return nil
}

func (m *Event) GetConfigurationChanged() *ConfigurationChangedEvent {
	if x, ok := m.GetEvent().(*Event_ConfigurationChanged); ok {
		return x.ConfigurationChanged
	}
	return nil
}

func (m *Event) GetSendSnapshotStarted() *SendSnapshotStartedEvent {
	if x, ok := m.GetEvent().(*Event_SendSnapshotStarted); ok {
		return x.SendSnapshotStarted
	}
	return nil
}

func (m *Event) GetSendSnapshotCompleted() *SendSnapshotCompletedEvent {
	if x, ok := m.GetEvent().(*Event_SendSnapshotCompleted); ok {
		return x.SendSnapshotCompleted
	}
	return nil
}

func (m *Event) GetSendSnapshotAborted() *SendSnapshotAbortedEvent {
	if x, ok := m.GetEvent().(*Event_SendSnapshotAborted); ok {
		return x.SendSnapshotAborted
	}
	return nil
}

func (m *Event) GetSnapshotReceived() *SnapshotReceivedEvent {
	if x, ok := m.GetEvent().(*Event_SnapshotReceived); ok {
		return x.SnapshotReceived
	}
	return nil
}

func (m *Event) GetSnapshotRecovered() *SnapshotRecoveredEvent {
	if x, ok := m.GetEvent().(*Event_SnapshotRecovered); ok {
		return x.SnapshotRecovered
	}
	return nil
}

func (m *Event) GetSnapshotCreated() *SnapshotCreatedEvent {
	if x, ok := m.GetEvent().(*Event_SnapshotCreated); ok {
		return x.SnapshotCreated
	}
	return nil
}

func (m *Event) GetSnapshotCompacted() *SnapshotCompactedEvent {
	if x, ok := m.GetEvent().(*Event_SnapshotCompacted); ok {
		return x.SnapshotCompacted
	}
	return nil
}

func (m *Event) GetLogCompacted() *LogCompactedEvent {
	if x, ok := m.GetEvent().(*Event_LogCompacted); ok {
		return x.LogCompacted
	}
	return nil
}

func (m *Event) GetLogdbCompacted() *LogDBCompactedEvent {
	if x, ok := m.GetEvent().(*Event_LogdbCompacted); ok {
		return x.LogdbCompacted
	}
	return nil
}

func (m *Event) GetConnectionEstablished() *ConnectionEstablishedEvent {
	if x, ok := m.GetEvent().(*Event_ConnectionEstablished); ok {
		return x.ConnectionEstablished
	}
	return nil
}

func (m *Event) GetConnectionFailed() *ConnectionFailedEvent {
	if x, ok := m.GetEvent().(*Event_ConnectionFailed); ok {
		return x.ConnectionFailed
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Event) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Event_MemberReady)(nil),
		(*Event_LeaderUpdated)(nil),
		(*Event_ConfigurationChanged)(nil),
		(*Event_SendSnapshotStarted)(nil),
		(*Event_SendSnapshotCompleted)(nil),
		(*Event_SendSnapshotAborted)(nil),
		(*Event_SnapshotReceived)(nil),
		(*Event_SnapshotRecovered)(nil),
		(*Event_SnapshotCreated)(nil),
		(*Event_SnapshotCompacted)(nil),
		(*Event_LogCompacted)(nil),
		(*Event_LogdbCompacted)(nil),
		(*Event_ConnectionEstablished)(nil),
		(*Event_ConnectionFailed)(nil),
	}
}

type ConnectionInfo struct {
	Address  string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	Snapshot bool   `protobuf:"varint,2,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
}

func (m *ConnectionInfo) Reset()         { *m = ConnectionInfo{} }
func (m *ConnectionInfo) String() string { return proto.CompactTextString(m) }
func (*ConnectionInfo) ProtoMessage()    {}
func (*ConnectionInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{20}
}
func (m *ConnectionInfo) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ConnectionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ConnectionInfo.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ConnectionInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ConnectionInfo.Merge(m, src)
}
func (m *ConnectionInfo) XXX_Size() int {
	return m.Size()
}
func (m *ConnectionInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_ConnectionInfo.DiscardUnknown(m)
}

var xxx_messageInfo_ConnectionInfo proto.InternalMessageInfo

func (m *ConnectionInfo) GetAddress() string {
	if m != nil {
		return m.Address
	}
	return ""
}

func (m *ConnectionInfo) GetSnapshot() bool {
	if m != nil {
		return m.Snapshot
	}
	return false
}

type MemberEvent struct {
	GroupID  GroupID  `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3,casttype=GroupID" json:"group_id,omitempty"`
	MemberID MemberID `protobuf:"varint,2,opt,name=member_id,json=memberId,proto3,casttype=MemberID" json:"member_id,omitempty"`
}

func (m *MemberEvent) Reset()         { *m = MemberEvent{} }
func (m *MemberEvent) String() string { return proto.CompactTextString(m) }
func (*MemberEvent) ProtoMessage()    {}
func (*MemberEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{21}
}
func (m *MemberEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *MemberEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_MemberEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *MemberEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberEvent.Merge(m, src)
}
func (m *MemberEvent) XXX_Size() int {
	return m.Size()
}
func (m *MemberEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberEvent.DiscardUnknown(m)
}

var xxx_messageInfo_MemberEvent proto.InternalMessageInfo

func (m *MemberEvent) GetGroupID() GroupID {
	if m != nil {
		return m.GroupID
	}
	return 0
}

func (m *MemberEvent) GetMemberID() MemberID {
	if m != nil {
		return m.MemberID
	}
	return 0
}

type MemberReadyEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
}

func (m *MemberReadyEvent) Reset()         { *m = MemberReadyEvent{} }
func (m *MemberReadyEvent) String() string { return proto.CompactTextString(m) }
func (*MemberReadyEvent) ProtoMessage()    {}
func (*MemberReadyEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{22}
}
func (m *MemberReadyEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *MemberReadyEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_MemberReadyEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *MemberReadyEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberReadyEvent.Merge(m, src)
}
func (m *MemberReadyEvent) XXX_Size() int {
	return m.Size()
}
func (m *MemberReadyEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberReadyEvent.DiscardUnknown(m)
}

var xxx_messageInfo_MemberReadyEvent proto.InternalMessageInfo

type ConfigurationChangedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
}

func (m *ConfigurationChangedEvent) Reset()         { *m = ConfigurationChangedEvent{} }
func (m *ConfigurationChangedEvent) String() string { return proto.CompactTextString(m) }
func (*ConfigurationChangedEvent) ProtoMessage()    {}
func (*ConfigurationChangedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{23}
}
func (m *ConfigurationChangedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ConfigurationChangedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ConfigurationChangedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ConfigurationChangedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ConfigurationChangedEvent.Merge(m, src)
}
func (m *ConfigurationChangedEvent) XXX_Size() int {
	return m.Size()
}
func (m *ConfigurationChangedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_ConfigurationChangedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_ConfigurationChangedEvent proto.InternalMessageInfo

type LeaderUpdatedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Term        Term     `protobuf:"varint,2,opt,name=term,proto3,casttype=Term" json:"term,omitempty"`
	Leader      MemberID `protobuf:"varint,3,opt,name=leader,proto3,casttype=MemberID" json:"leader,omitempty"`
}

func (m *LeaderUpdatedEvent) Reset()         { *m = LeaderUpdatedEvent{} }
func (m *LeaderUpdatedEvent) String() string { return proto.CompactTextString(m) }
func (*LeaderUpdatedEvent) ProtoMessage()    {}
func (*LeaderUpdatedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{24}
}
func (m *LeaderUpdatedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *LeaderUpdatedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_LeaderUpdatedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *LeaderUpdatedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LeaderUpdatedEvent.Merge(m, src)
}
func (m *LeaderUpdatedEvent) XXX_Size() int {
	return m.Size()
}
func (m *LeaderUpdatedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_LeaderUpdatedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_LeaderUpdatedEvent proto.InternalMessageInfo

func (m *LeaderUpdatedEvent) GetTerm() Term {
	if m != nil {
		return m.Term
	}
	return 0
}

func (m *LeaderUpdatedEvent) GetLeader() MemberID {
	if m != nil {
		return m.Leader
	}
	return 0
}

type SendSnapshotStartedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index    `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
	To          MemberID `protobuf:"varint,3,opt,name=to,proto3,casttype=MemberID" json:"to,omitempty"`
}

func (m *SendSnapshotStartedEvent) Reset()         { *m = SendSnapshotStartedEvent{} }
func (m *SendSnapshotStartedEvent) String() string { return proto.CompactTextString(m) }
func (*SendSnapshotStartedEvent) ProtoMessage()    {}
func (*SendSnapshotStartedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{25}
}
func (m *SendSnapshotStartedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SendSnapshotStartedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SendSnapshotStartedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SendSnapshotStartedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendSnapshotStartedEvent.Merge(m, src)
}
func (m *SendSnapshotStartedEvent) XXX_Size() int {
	return m.Size()
}
func (m *SendSnapshotStartedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SendSnapshotStartedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SendSnapshotStartedEvent proto.InternalMessageInfo

func (m *SendSnapshotStartedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *SendSnapshotStartedEvent) GetTo() MemberID {
	if m != nil {
		return m.To
	}
	return 0
}

type SendSnapshotCompletedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index    `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
	To          MemberID `protobuf:"varint,3,opt,name=to,proto3,casttype=MemberID" json:"to,omitempty"`
}

func (m *SendSnapshotCompletedEvent) Reset()         { *m = SendSnapshotCompletedEvent{} }
func (m *SendSnapshotCompletedEvent) String() string { return proto.CompactTextString(m) }
func (*SendSnapshotCompletedEvent) ProtoMessage()    {}
func (*SendSnapshotCompletedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{26}
}
func (m *SendSnapshotCompletedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SendSnapshotCompletedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SendSnapshotCompletedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SendSnapshotCompletedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendSnapshotCompletedEvent.Merge(m, src)
}
func (m *SendSnapshotCompletedEvent) XXX_Size() int {
	return m.Size()
}
func (m *SendSnapshotCompletedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SendSnapshotCompletedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SendSnapshotCompletedEvent proto.InternalMessageInfo

func (m *SendSnapshotCompletedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *SendSnapshotCompletedEvent) GetTo() MemberID {
	if m != nil {
		return m.To
	}
	return 0
}

type SendSnapshotAbortedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index    `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
	To          MemberID `protobuf:"varint,3,opt,name=to,proto3,casttype=MemberID" json:"to,omitempty"`
}

func (m *SendSnapshotAbortedEvent) Reset()         { *m = SendSnapshotAbortedEvent{} }
func (m *SendSnapshotAbortedEvent) String() string { return proto.CompactTextString(m) }
func (*SendSnapshotAbortedEvent) ProtoMessage()    {}
func (*SendSnapshotAbortedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{27}
}
func (m *SendSnapshotAbortedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SendSnapshotAbortedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SendSnapshotAbortedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SendSnapshotAbortedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendSnapshotAbortedEvent.Merge(m, src)
}
func (m *SendSnapshotAbortedEvent) XXX_Size() int {
	return m.Size()
}
func (m *SendSnapshotAbortedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SendSnapshotAbortedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SendSnapshotAbortedEvent proto.InternalMessageInfo

func (m *SendSnapshotAbortedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *SendSnapshotAbortedEvent) GetTo() MemberID {
	if m != nil {
		return m.To
	}
	return 0
}

type SnapshotReceivedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index    `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
	From        MemberID `protobuf:"varint,3,opt,name=from,proto3,casttype=MemberID" json:"from,omitempty"`
}

func (m *SnapshotReceivedEvent) Reset()         { *m = SnapshotReceivedEvent{} }
func (m *SnapshotReceivedEvent) String() string { return proto.CompactTextString(m) }
func (*SnapshotReceivedEvent) ProtoMessage()    {}
func (*SnapshotReceivedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{28}
}
func (m *SnapshotReceivedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SnapshotReceivedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SnapshotReceivedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SnapshotReceivedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SnapshotReceivedEvent.Merge(m, src)
}
func (m *SnapshotReceivedEvent) XXX_Size() int {
	return m.Size()
}
func (m *SnapshotReceivedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SnapshotReceivedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SnapshotReceivedEvent proto.InternalMessageInfo

func (m *SnapshotReceivedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

func (m *SnapshotReceivedEvent) GetFrom() MemberID {
	if m != nil {
		return m.From
	}
	return 0
}

type SnapshotRecoveredEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
}

func (m *SnapshotRecoveredEvent) Reset()         { *m = SnapshotRecoveredEvent{} }
func (m *SnapshotRecoveredEvent) String() string { return proto.CompactTextString(m) }
func (*SnapshotRecoveredEvent) ProtoMessage()    {}
func (*SnapshotRecoveredEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{29}
}
func (m *SnapshotRecoveredEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SnapshotRecoveredEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SnapshotRecoveredEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SnapshotRecoveredEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SnapshotRecoveredEvent.Merge(m, src)
}
func (m *SnapshotRecoveredEvent) XXX_Size() int {
	return m.Size()
}
func (m *SnapshotRecoveredEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SnapshotRecoveredEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SnapshotRecoveredEvent proto.InternalMessageInfo

func (m *SnapshotRecoveredEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

type SnapshotCreatedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
}

func (m *SnapshotCreatedEvent) Reset()         { *m = SnapshotCreatedEvent{} }
func (m *SnapshotCreatedEvent) String() string { return proto.CompactTextString(m) }
func (*SnapshotCreatedEvent) ProtoMessage()    {}
func (*SnapshotCreatedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{30}
}
func (m *SnapshotCreatedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SnapshotCreatedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SnapshotCreatedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SnapshotCreatedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SnapshotCreatedEvent.Merge(m, src)
}
func (m *SnapshotCreatedEvent) XXX_Size() int {
	return m.Size()
}
func (m *SnapshotCreatedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SnapshotCreatedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SnapshotCreatedEvent proto.InternalMessageInfo

func (m *SnapshotCreatedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

type SnapshotCompactedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
}

func (m *SnapshotCompactedEvent) Reset()         { *m = SnapshotCompactedEvent{} }
func (m *SnapshotCompactedEvent) String() string { return proto.CompactTextString(m) }
func (*SnapshotCompactedEvent) ProtoMessage()    {}
func (*SnapshotCompactedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{31}
}
func (m *SnapshotCompactedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *SnapshotCompactedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_SnapshotCompactedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *SnapshotCompactedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SnapshotCompactedEvent.Merge(m, src)
}
func (m *SnapshotCompactedEvent) XXX_Size() int {
	return m.Size()
}
func (m *SnapshotCompactedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_SnapshotCompactedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_SnapshotCompactedEvent proto.InternalMessageInfo

func (m *SnapshotCompactedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

type LogEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
}

func (m *LogEvent) Reset()         { *m = LogEvent{} }
func (m *LogEvent) String() string { return proto.CompactTextString(m) }
func (*LogEvent) ProtoMessage()    {}
func (*LogEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{32}
}
func (m *LogEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *LogEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_LogEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *LogEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LogEvent.Merge(m, src)
}
func (m *LogEvent) XXX_Size() int {
	return m.Size()
}
func (m *LogEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_LogEvent.DiscardUnknown(m)
}

var xxx_messageInfo_LogEvent proto.InternalMessageInfo

func (m *LogEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

type LogCompactedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
}

func (m *LogCompactedEvent) Reset()         { *m = LogCompactedEvent{} }
func (m *LogCompactedEvent) String() string { return proto.CompactTextString(m) }
func (*LogCompactedEvent) ProtoMessage()    {}
func (*LogCompactedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{33}
}
func (m *LogCompactedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *LogCompactedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_LogCompactedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *LogCompactedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LogCompactedEvent.Merge(m, src)
}
func (m *LogCompactedEvent) XXX_Size() int {
	return m.Size()
}
func (m *LogCompactedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_LogCompactedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_LogCompactedEvent proto.InternalMessageInfo

func (m *LogCompactedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

type LogDBCompactedEvent struct {
	MemberEvent `protobuf:"bytes,1,opt,name=member,proto3,embedded=member" json:"member"`
	Index       Index `protobuf:"varint,2,opt,name=index,proto3,casttype=Index" json:"index,omitempty"`
}

func (m *LogDBCompactedEvent) Reset()         { *m = LogDBCompactedEvent{} }
func (m *LogDBCompactedEvent) String() string { return proto.CompactTextString(m) }
func (*LogDBCompactedEvent) ProtoMessage()    {}
func (*LogDBCompactedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{34}
}
func (m *LogDBCompactedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *LogDBCompactedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_LogDBCompactedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *LogDBCompactedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LogDBCompactedEvent.Merge(m, src)
}
func (m *LogDBCompactedEvent) XXX_Size() int {
	return m.Size()
}
func (m *LogDBCompactedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_LogDBCompactedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_LogDBCompactedEvent proto.InternalMessageInfo

func (m *LogDBCompactedEvent) GetIndex() Index {
	if m != nil {
		return m.Index
	}
	return 0
}

type ConnectionEstablishedEvent struct {
	ConnectionInfo `protobuf:"bytes,1,opt,name=info,proto3,embedded=info" json:"info"`
}

func (m *ConnectionEstablishedEvent) Reset()         { *m = ConnectionEstablishedEvent{} }
func (m *ConnectionEstablishedEvent) String() string { return proto.CompactTextString(m) }
func (*ConnectionEstablishedEvent) ProtoMessage()    {}
func (*ConnectionEstablishedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{35}
}
func (m *ConnectionEstablishedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ConnectionEstablishedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ConnectionEstablishedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ConnectionEstablishedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ConnectionEstablishedEvent.Merge(m, src)
}
func (m *ConnectionEstablishedEvent) XXX_Size() int {
	return m.Size()
}
func (m *ConnectionEstablishedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_ConnectionEstablishedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_ConnectionEstablishedEvent proto.InternalMessageInfo

type ConnectionFailedEvent struct {
	ConnectionInfo `protobuf:"bytes,1,opt,name=info,proto3,embedded=info" json:"info"`
}

func (m *ConnectionFailedEvent) Reset()         { *m = ConnectionFailedEvent{} }
func (m *ConnectionFailedEvent) String() string { return proto.CompactTextString(m) }
func (*ConnectionFailedEvent) ProtoMessage()    {}
func (*ConnectionFailedEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_078208a31684120b, []int{36}
}
func (m *ConnectionFailedEvent) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ConnectionFailedEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ConnectionFailedEvent.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ConnectionFailedEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ConnectionFailedEvent.Merge(m, src)
}
func (m *ConnectionFailedEvent) XXX_Size() int {
	return m.Size()
}
func (m *ConnectionFailedEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_ConnectionFailedEvent.DiscardUnknown(m)
}

var xxx_messageInfo_ConnectionFailedEvent proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("atomix.stores.raft.v1.MemberRole", MemberRole_name, MemberRole_value)
	proto.RegisterType((*GroupConfig)(nil), "atomix.stores.raft.v1.GroupConfig")
	proto.RegisterType((*MemberConfig)(nil), "atomix.stores.raft.v1.MemberConfig")
	proto.RegisterType((*RaftConfig)(nil), "atomix.stores.raft.v1.RaftConfig")
	proto.RegisterType((*RaftProposal)(nil), "atomix.stores.raft.v1.RaftProposal")
	proto.RegisterType((*GetConfigRequest)(nil), "atomix.stores.raft.v1.GetConfigRequest")
	proto.RegisterType((*GetConfigResponse)(nil), "atomix.stores.raft.v1.GetConfigResponse")
	proto.RegisterType((*BootstrapGroupRequest)(nil), "atomix.stores.raft.v1.BootstrapGroupRequest")
	proto.RegisterType((*BootstrapGroupResponse)(nil), "atomix.stores.raft.v1.BootstrapGroupResponse")
	proto.RegisterType((*AddMemberRequest)(nil), "atomix.stores.raft.v1.AddMemberRequest")
	proto.RegisterType((*AddMemberResponse)(nil), "atomix.stores.raft.v1.AddMemberResponse")
	proto.RegisterType((*RemoveMemberRequest)(nil), "atomix.stores.raft.v1.RemoveMemberRequest")
	proto.RegisterType((*RemoveMemberResponse)(nil), "atomix.stores.raft.v1.RemoveMemberResponse")
	proto.RegisterType((*JoinGroupRequest)(nil), "atomix.stores.raft.v1.JoinGroupRequest")
	proto.RegisterType((*JoinGroupResponse)(nil), "atomix.stores.raft.v1.JoinGroupResponse")
	proto.RegisterType((*LeaveGroupRequest)(nil), "atomix.stores.raft.v1.LeaveGroupRequest")
	proto.RegisterType((*LeaveGroupResponse)(nil), "atomix.stores.raft.v1.LeaveGroupResponse")
	proto.RegisterType((*DeleteDataRequest)(nil), "atomix.stores.raft.v1.DeleteDataRequest")
	proto.RegisterType((*DeleteDataResponse)(nil), "atomix.stores.raft.v1.DeleteDataResponse")
	proto.RegisterType((*WatchRequest)(nil), "atomix.stores.raft.v1.WatchRequest")
	proto.RegisterType((*Event)(nil), "atomix.stores.raft.v1.Event")
	proto.RegisterType((*ConnectionInfo)(nil), "atomix.stores.raft.v1.ConnectionInfo")
	proto.RegisterType((*MemberEvent)(nil), "atomix.stores.raft.v1.MemberEvent")
	proto.RegisterType((*MemberReadyEvent)(nil), "atomix.stores.raft.v1.MemberReadyEvent")
	proto.RegisterType((*ConfigurationChangedEvent)(nil), "atomix.stores.raft.v1.ConfigurationChangedEvent")
	proto.RegisterType((*LeaderUpdatedEvent)(nil), "atomix.stores.raft.v1.LeaderUpdatedEvent")
	proto.RegisterType((*SendSnapshotStartedEvent)(nil), "atomix.stores.raft.v1.SendSnapshotStartedEvent")
	proto.RegisterType((*SendSnapshotCompletedEvent)(nil), "atomix.stores.raft.v1.SendSnapshotCompletedEvent")
	proto.RegisterType((*SendSnapshotAbortedEvent)(nil), "atomix.stores.raft.v1.SendSnapshotAbortedEvent")
	proto.RegisterType((*SnapshotReceivedEvent)(nil), "atomix.stores.raft.v1.SnapshotReceivedEvent")
	proto.RegisterType((*SnapshotRecoveredEvent)(nil), "atomix.stores.raft.v1.SnapshotRecoveredEvent")
	proto.RegisterType((*SnapshotCreatedEvent)(nil), "atomix.stores.raft.v1.SnapshotCreatedEvent")
	proto.RegisterType((*SnapshotCompactedEvent)(nil), "atomix.stores.raft.v1.SnapshotCompactedEvent")
	proto.RegisterType((*LogEvent)(nil), "atomix.stores.raft.v1.LogEvent")
	proto.RegisterType((*LogCompactedEvent)(nil), "atomix.stores.raft.v1.LogCompactedEvent")
	proto.RegisterType((*LogDBCompactedEvent)(nil), "atomix.stores.raft.v1.LogDBCompactedEvent")
	proto.RegisterType((*ConnectionEstablishedEvent)(nil), "atomix.stores.raft.v1.ConnectionEstablishedEvent")
	proto.RegisterType((*ConnectionFailedEvent)(nil), "atomix.stores.raft.v1.ConnectionFailedEvent")
}

func init() { proto.RegisterFile("v1/raft.proto", fileDescriptor_078208a31684120b) }

var fileDescriptor_078208a31684120b = []byte{
	// 1709 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcd, 0x6f, 0x23, 0x4b,
	0x11, 0xcf, 0x38, 0x76, 0x6c, 0x97, 0x9d, 0xc4, 0x6e, 0xc7, 0x61, 0xb0, 0x56, 0x71, 0x18, 0x40,
	0x78, 0xdf, 0x87, 0xf3, 0x12, 0xf4, 0x24, 0x4e, 0xa0, 0xd8, 0xf1, 0xbe, 0x17, 0xc8, 0x07, 0x1a,
	0x67, 0xdf, 0x3e, 0x09, 0xb4, 0x56, 0xdb, 0xd3, 0x76, 0x06, 0x3c, 0xd3, 0xde, 0x99, 0xb6, 0x09,
	0x2b, 0x56, 0x48, 0x5c, 0xb8, 0xae, 0xb8, 0x71, 0xe1, 0x4b, 0xfc, 0x1b, 0xdc, 0xf7, 0xb8, 0x47,
	0x4e, 0x06, 0x65, 0xff, 0x00, 0xee, 0x39, 0xa1, 0xe9, 0xe9, 0xf9, 0xf0, 0xc7, 0x24, 0x26, 0x1b,
	0x99, 0xbd, 0xcd, 0x74, 0x55, 0xfd, 0xea, 0x57, 0x35, 0xdd, 0x5d, 0x35, 0x05, 0xeb, 0xa3, 0xfd,
	0x3d, 0x0b, 0x77, 0x59, 0x75, 0x60, 0x51, 0x46, 0x51, 0x11, 0x33, 0x6a, 0xe8, 0x57, 0x55, 0x9b,
	0x51, 0x8b, 0xd8, 0x55, 0x2e, 0x19, 0xed, 0x97, 0xca, 0x3d, 0x4a, 0x7b, 0x7d, 0xb2, 0xc7, 0x95,
	0xda, 0xc3, 0xee, 0x1e, 0xd3, 0x0d, 0x62, 0x33, 0x6c, 0x0c, 0x5c, 0xbb, 0xd2, 0x56, 0x8f, 0xf6,
	0x28, 0x7f, 0xdc, 0x73, 0x9e, 0xdc, 0x55, 0xe5, 0xcf, 0x12, 0x64, 0xbe, 0xb0, 0xe8, 0x70, 0x50,
	0xa7, 0x66, 0x57, 0xef, 0xa1, 0x7d, 0x48, 0xf5, 0x9c, 0xd7, 0x96, 0xae, 0xc9, 0xd2, 0xae, 0x54,
	0x59, 0xaf, 0x6d, 0x5f, 0x8f, 0xcb, 0x49, 0xae, 0x72, 0x7c, 0x74, 0x13, 0x3c, 0xaa, 0x49, 0xae,
	0x77, 0xac, 0xa1, 0x3a, 0x24, 0x0d, 0x62, 0xb4, 0x89, 0x65, 0xcb, 0xb1, 0xdd, 0xd5, 0x4a, 0xe6,
	0xe0, 0xdb, 0xd5, 0xb9, 0x14, 0xab, 0xa7, 0x5c, 0xcb, 0x75, 0x54, 0x8b, 0xbf, 0x19, 0x97, 0x57,
	0x54, 0xcf, 0x12, 0xc9, 0x90, 0x1c, 0x11, 0xcb, 0xd6, 0xa9, 0x29, 0xaf, 0xee, 0x4a, 0x95, 0xb8,
	0xea, 0xbd, 0x2a, 0x7f, 0x97, 0x20, 0x1b, 0xb6, 0x44, 0x9f, 0x43, 0xda, 0xb5, 0x0a, 0x38, 0xca,
	0xd7, 0xe3, 0x72, 0xca, 0x55, 0xe2, 0x24, 0xfd, 0x67, 0x35, 0xe5, 0xaa, 0x1e, 0x6b, 0x08, 0x41,
	0xfc, 0x92, 0xda, 0x4c, 0x8e, 0xed, 0x4a, 0x95, 0xb4, 0xca, 0x9f, 0x9d, 0xb5, 0x01, 0xb5, 0x18,
	0x77, 0x99, 0x50, 0xf9, 0x33, 0xfa, 0x1c, 0xe2, 0x16, 0xed, 0x13, 0x39, 0xbe, 0x2b, 0x55, 0x36,
	0x0e, 0xbe, 0x75, 0x6b, 0x2c, 0x2a, 0xed, 0x13, 0x95, 0xab, 0x2b, 0xff, 0x89, 0x01, 0xa8, 0xb8,
	0xcb, 0x04, 0xc9, 0x03, 0xc8, 0x92, 0x3e, 0xe9, 0x30, 0x9d, 0x9a, 0x2d, 0x8b, 0x31, 0xce, 0x33,
	0x5e, 0xdb, 0xbc, 0x1e, 0x97, 0x33, 0x0d, 0xb1, 0xae, 0x5e, 0x5c, 0xa8, 0x19, 0x4f, 0x49, 0x65,
	0x8e, 0xe7, 0xf5, 0x4b, 0x82, 0x2d, 0xd6, 0x26, 0x98, 0x71, 0xa3, 0x18, 0x37, 0xca, 0x5d, 0x8f,
	0xcb, 0xd9, 0x2f, 0x3d, 0x81, 0x63, 0x95, 0xf5, 0xd5, 0x1c, 0xb3, 0xc7, 0x90, 0xb3, 0x4d, 0x3c,
	0xb0, 0x2f, 0x29, 0x6b, 0x11, 0x93, 0x59, 0x3a, 0xb1, 0x45, 0x0e, 0x37, 0xbd, 0xf5, 0x86, 0xbb,
	0x8c, 0xf6, 0xa0, 0xd0, 0xa1, 0xc6, 0x00, 0xbb, 0xbc, 0xe8, 0x88, 0x58, 0x97, 0x04, 0x6b, 0x3c,
	0xd4, 0xb8, 0x8a, 0x02, 0xd1, 0xb9, 0x90, 0xa0, 0x4f, 0xa0, 0x60, 0xe0, 0xab, 0x96, 0x6e, 0xb6,
	0x0c, 0x62, 0xb4, 0xfa, 0xb4, 0xd7, 0xb2, 0xf5, 0x97, 0x44, 0x4e, 0xb8, 0xf0, 0x06, 0xbe, 0x3a,
	0x36, 0x4f, 0x89, 0x71, 0x42, 0x7b, 0x4d, 0xfd, 0x25, 0x41, 0x3f, 0x00, 0x59, 0xd3, 0x6d, 0xdc,
	0xee, 0x93, 0x16, 0x1e, 0x32, 0xda, 0x0a, 0x00, 0x6d, 0x79, 0x6d, 0x57, 0xaa, 0xa4, 0xd4, 0x6d,
	0x21, 0x3f, 0x1c, 0x32, 0x5a, 0x0f, 0xa4, 0xe8, 0x00, 0x8a, 0xd4, 0xd2, 0x88, 0x45, 0xb4, 0x56,
	0x87, 0x27, 0xb0, 0xd5, 0xb9, 0xc4, 0x66, 0x8f, 0xc8, 0x49, 0x6e, 0x56, 0x10, 0x42, 0x37, 0xb9,
	0x75, 0x2e, 0x52, 0x18, 0x64, 0x9d, 0x84, 0xff, 0xd4, 0xa2, 0x03, 0x6a, 0xe3, 0x3e, 0x7a, 0x04,
	0x71, 0x46, 0x2c, 0x43, 0xa4, 0x3a, 0x75, 0x33, 0x2e, 0xc7, 0x2f, 0x88, 0x65, 0xa8, 0x7c, 0xd5,
	0xf9, 0x20, 0x36, 0x79, 0x31, 0x24, 0x66, 0x87, 0xb4, 0xcc, 0xa1, 0x21, 0x72, 0xbb, 0x79, 0x33,
	0x2e, 0x67, 0x9a, 0x62, 0xfd, 0x6c, 0x68, 0xa8, 0x19, 0x3b, 0x78, 0x71, 0xb6, 0x87, 0x86, 0x19,
	0xe6, 0xd9, 0xcc, 0xaa, 0xfc, 0x59, 0x69, 0x40, 0xee, 0x0b, 0x22, 0xbe, 0xb2, 0xea, 0xe8, 0xda,
	0xec, 0x1e, 0x87, 0x46, 0x69, 0x42, 0x3e, 0x04, 0x63, 0x0f, 0xa8, 0x69, 0x13, 0xf4, 0x43, 0x48,
	0x70, 0x39, 0x07, 0xc9, 0x1c, 0x28, 0x11, 0x7b, 0x2f, 0x74, 0x5e, 0xc5, 0x31, 0x72, 0xcd, 0x94,
	0xdf, 0xc7, 0xa0, 0x58, 0xa3, 0x94, 0xd9, 0xcc, 0xc2, 0x03, 0xae, 0x75, 0x7f, 0x86, 0x93, 0xc7,
	0x2c, 0xb6, 0xf0, 0x31, 0x0b, 0xdd, 0x06, 0xab, 0xf7, 0xbe, 0x0d, 0x7e, 0x04, 0x6b, 0xee, 0x36,
	0xe0, 0x5b, 0x33, 0x13, 0x79, 0x0a, 0x83, 0x03, 0x27, 0x10, 0x84, 0x99, 0x22, 0xc3, 0xf6, 0x74,
	0x22, 0xdc, 0x1c, 0x2b, 0x7f, 0x93, 0x20, 0x77, 0xa8, 0x69, 0xe2, 0xfc, 0xde, 0x3f, 0x3d, 0x87,
	0xb0, 0xe6, 0xb2, 0xe5, 0xb9, 0xf9, 0x9f, 0xc2, 0x14, 0x86, 0xb7, 0xdc, 0x79, 0x05, 0xc8, 0x87,
	0x38, 0x0a, 0xe6, 0x7f, 0x94, 0xa0, 0xa0, 0x12, 0x83, 0x8e, 0xc8, 0x7b, 0x93, 0xbf, 0xe7, 0xb7,
	0x8d, 0x26, 0xbc, 0x0d, 0x5b, 0x93, 0xd4, 0x04, 0xe7, 0x7f, 0x48, 0x90, 0xfb, 0x31, 0xd5, 0xcd,
	0xff, 0xd3, 0x66, 0x0c, 0xf6, 0xd1, 0xea, 0xfd, 0xf6, 0x51, 0x01, 0xf2, 0x21, 0xfa, 0x22, 0xa8,
	0x27, 0x90, 0x3f, 0x21, 0x78, 0x44, 0xde, 0x33, 0x28, 0x65, 0x0b, 0x50, 0x18, 0x47, 0xa0, 0xbf,
	0x82, 0xfc, 0x11, 0xe9, 0x13, 0x46, 0x8e, 0x30, 0xc3, 0x4b, 0x4f, 0x99, 0x43, 0x2a, 0xec, 0x5e,
	0x90, 0xda, 0x80, 0xec, 0x33, 0xcc, 0x3a, 0x97, 0x82, 0x8f, 0xf2, 0xbb, 0x0c, 0x24, 0x1a, 0x23,
	0x62, 0x32, 0x54, 0x83, 0xb4, 0xdf, 0x69, 0x88, 0x7b, 0xab, 0x54, 0x75, 0x7b, 0x91, 0xaa, 0xd7,
	0x8b, 0x54, 0x2f, 0x3c, 0x8d, 0x5a, 0xca, 0x49, 0xef, 0xeb, 0x7f, 0x95, 0x25, 0x35, 0x30, 0x43,
	0x27, 0x90, 0x15, 0x54, 0x2d, 0x82, 0xb5, 0x5f, 0x8b, 0x13, 0xf5, 0xbd, 0xdb, 0x4b, 0xaf, 0xa3,
	0xc9, 0x29, 0x7c, 0xb9, 0xa2, 0x66, 0x8c, 0x60, 0x0d, 0xa9, 0xb0, 0xd1, 0x27, 0x58, 0x23, 0x56,
	0x6b, 0x38, 0xd0, 0x30, 0x23, 0x9a, 0xf8, 0xf8, 0x8f, 0x23, 0xf0, 0x4e, 0xb8, 0xf2, 0x53, 0x57,
	0xd7, 0x43, 0x5c, 0xef, 0x87, 0x57, 0x51, 0x0f, 0x8a, 0xee, 0x8e, 0x18, 0x5a, 0x98, 0xd7, 0x4e,
	0xb7, 0x3c, 0x69, 0xe2, 0x7e, 0xfa, 0x2c, 0x02, 0xba, 0x1e, 0xb6, 0x71, 0xcb, 0x96, 0xef, 0x61,
	0xab, 0x33, 0x47, 0x88, 0x08, 0x14, 0x6d, 0x62, 0x6a, 0x2d, 0xbf, 0xa2, 0xdb, 0x0c, 0x5b, 0x4e,
	0x0c, 0x09, 0xee, 0x68, 0x2f, 0xc2, 0x51, 0x93, 0x98, 0x5a, 0x53, 0x98, 0x34, 0x5d, 0x0b, 0xcf,
	0x4f, 0xc1, 0x9e, 0x95, 0xa1, 0x5f, 0xc2, 0x37, 0x26, 0xdd, 0x38, 0xa5, 0xda, 0xf9, 0xea, 0x1a,
	0x2f, 0xd4, 0x99, 0x83, 0xfd, 0x05, 0x1c, 0xd5, 0x3d, 0x1b, 0xcf, 0x55, 0xd1, 0x9e, 0x27, 0x9d,
	0x8d, 0x09, 0xb7, 0x29, 0x8f, 0x29, 0xb9, 0x70, 0x4c, 0x87, 0xae, 0xc5, 0xdc, 0x98, 0x84, 0x0c,
	0xfd, 0x0c, 0xf2, 0xbe, 0x07, 0x8b, 0x74, 0x88, 0x3e, 0x22, 0x9a, 0x9c, 0xe2, 0x2e, 0x3e, 0x89,
	0x72, 0x21, 0xf4, 0x55, 0xa1, 0xee, 0xe1, 0xfb, 0x0d, 0x95, 0x27, 0x40, 0xcf, 0x01, 0x85, 0xc1,
	0x9d, 0xd6, 0x89, 0x68, 0x72, 0x9a, 0xa3, 0x7f, 0x7a, 0x37, 0xba, 0xab, 0xef, 0xc1, 0xe7, 0xed,
	0x69, 0x09, 0xfa, 0x3a, 0xd4, 0xc4, 0x75, 0x2c, 0xc2, 0xb7, 0x2d, 0x70, 0xf4, 0x8f, 0xef, 0x40,
	0xaf, 0xbb, 0xda, 0x1e, 0xb6, 0xdf, 0xf3, 0x89, 0xf5, 0x09, 0xe6, 0xa2, 0x21, 0x23, 0x9a, 0x9c,
	0x59, 0x88, 0x79, 0xdd, 0xd3, 0x9f, 0x61, 0xee, 0x4b, 0xd0, 0x39, 0xac, 0x3b, 0x7d, 0x61, 0x00,
	0x9d, 0xe5, 0xd0, 0x95, 0xa8, 0xd3, 0x46, 0x7b, 0x33, 0xa8, 0xd9, 0x7e, 0x68, 0x11, 0x3d, 0x85,
	0xcd, 0x3e, 0xed, 0x69, 0xed, 0x10, 0xe4, 0x3a, 0x87, 0xfc, 0x28, 0x1a, 0xf2, 0xa8, 0x36, 0x03,
	0xba, 0xc1, 0x41, 0x02, 0xd8, 0x5f, 0xc0, 0x76, 0x87, 0x9a, 0xa6, 0xe8, 0xc9, 0x9d, 0x9b, 0xa7,
	0xdd, 0xd7, 0xed, 0x4b, 0xa2, 0xc9, 0x1b, 0xb7, 0xee, 0xf8, 0xba, 0x6f, 0xd4, 0x08, 0x6c, 0xfc,
	0x1d, 0xdf, 0x99, 0x27, 0x75, 0xb6, 0x62, 0xc8, 0x57, 0x17, 0xeb, 0x7d, 0xa2, 0xc9, 0x9b, 0xb7,
	0x6e, 0xc5, 0xc0, 0xcd, 0x13, 0xae, 0xee, 0x6f, 0xc5, 0xce, 0x94, 0xa0, 0x96, 0x84, 0x04, 0x71,
	0x84, 0xca, 0x13, 0xd8, 0x08, 0xac, 0x8e, 0xcd, 0x2e, 0x75, 0x0a, 0x34, 0xd6, 0x34, 0x8b, 0xd8,
	0x36, 0xbf, 0x8a, 0xd3, 0xaa, 0xf7, 0x8a, 0x4a, 0x90, 0xf2, 0x3e, 0x1d, 0xbf, 0x5e, 0x53, 0xaa,
	0xff, 0xae, 0xfc, 0x0a, 0x32, 0xee, 0x9d, 0xea, 0xde, 0xe8, 0x0f, 0x51, 0x6b, 0xe2, 0x0b, 0xd5,
	0x9a, 0xaf, 0x21, 0x37, 0x7d, 0x99, 0xa3, 0x23, 0xbf, 0xaf, 0xba, 0xbd, 0x09, 0x0e, 0x31, 0x76,
	0x8b, 0xca, 0xdb, 0x71, 0x59, 0xf2, 0x5a, 0x2b, 0x05, 0xc3, 0x37, 0x23, 0xef, 0xde, 0x07, 0x72,
	0xf1, 0x27, 0x89, 0x97, 0xef, 0xa9, 0xd2, 0xf1, 0x30, 0xe0, 0xfe, 0xbf, 0x4c, 0x6c, 0xee, 0xbf,
	0xcc, 0x77, 0x60, 0xcd, 0x2d, 0x4f, 0x6e, 0x1b, 0x56, 0xcb, 0x4e, 0xe4, 0x57, 0xc8, 0x9c, 0x5f,
	0x7b, 0x39, 0xaa, 0x2e, 0x3c, 0x10, 0xcd, 0x32, 0x24, 0x74, 0x53, 0x23, 0x57, 0x82, 0x67, 0xfa,
	0x66, 0x5c, 0x4e, 0x1c, 0x3b, 0x0b, 0xaa, 0xbb, 0x8e, 0x1e, 0x41, 0x8c, 0xd1, 0xb9, 0x2c, 0x63,
	0x8c, 0x2a, 0x7f, 0x95, 0xa0, 0x14, 0x5d, 0x50, 0x3e, 0x0c, 0x8e, 0xd3, 0x59, 0x0c, 0x57, 0xa2,
	0x0f, 0x83, 0xe1, 0x5f, 0x24, 0x28, 0xce, 0x2d, 0x64, 0xcb, 0xa2, 0xb7, 0x0b, 0xf1, 0xae, 0x45,
	0x8d, 0xb9, 0x04, 0xb9, 0x44, 0xf9, 0x2d, 0x6c, 0xcf, 0x2f, 0x86, 0x4b, 0xa2, 0xa8, 0xbc, 0x82,
	0xad, 0x79, 0xf5, 0x72, 0x59, 0xee, 0x43, 0xf1, 0x4f, 0xd6, 0xa9, 0x65, 0x11, 0x78, 0x01, 0xa9,
	0x13, 0xda, 0x5b, 0xaa, 0xcb, 0x97, 0x90, 0x9f, 0xa9, 0xf5, 0xcb, 0xf2, 0xfd, 0x1b, 0x28, 0xcc,
	0x69, 0x0a, 0x96, 0xe5, 0x1d, 0x43, 0x29, 0xba, 0x69, 0x40, 0x75, 0x88, 0xeb, 0x66, 0x97, 0x0a,
	0x0a, 0xdf, 0xbd, 0xb3, 0x1d, 0x70, 0x0a, 0x7b, 0x88, 0x05, 0x37, 0x56, 0x7e, 0x0e, 0xc5, 0xb9,
	0x0d, 0xc3, 0x83, 0xa0, 0x7f, 0x74, 0x0a, 0x10, 0xcc, 0x37, 0x51, 0x06, 0x92, 0x4f, 0xcf, 0x7e,
	0x72, 0x76, 0xfe, 0xec, 0x2c, 0xb7, 0x82, 0x00, 0xd6, 0x4e, 0x1b, 0xa7, 0xb5, 0x86, 0x9a, 0x93,
	0x50, 0x16, 0x52, 0xe7, 0xb5, 0x66, 0x43, 0xfd, 0xaa, 0xa1, 0xe6, 0x62, 0x8e, 0xda, 0xb3, 0xe3,
	0x8b, 0xb3, 0x46, 0xb3, 0x99, 0x5b, 0x75, 0x5e, 0xd4, 0xc6, 0xe9, 0xf9, 0x57, 0x8d, 0xa3, 0x5c,
	0xfc, 0xe0, 0x0f, 0x6b, 0x10, 0x3f, 0xa3, 0x1a, 0x41, 0xcf, 0x21, 0xed, 0x0f, 0xbd, 0x50, 0xd4,
	0xef, 0xdd, 0xf4, 0x74, 0xad, 0x54, 0xb9, 0x5b, 0x51, 0xcc, 0xcf, 0x0c, 0xd8, 0x98, 0x9c, 0xfa,
	0xa0, 0xa8, 0x6e, 0x6b, 0xee, 0x94, 0xac, 0xf4, 0xe9, 0x82, 0xda, 0xc2, 0xdd, 0x73, 0x48, 0xfb,
	0x53, 0x9a, 0xc8, 0x70, 0xa6, 0x67, 0x4d, 0x91, 0xe1, 0xcc, 0x0c, 0x7c, 0x50, 0x0f, 0xb2, 0xe1,
	0xa1, 0x0a, 0x8a, 0xea, 0x7f, 0xe7, 0x0c, 0x85, 0x4a, 0x1f, 0x2f, 0xa4, 0x1b, 0x04, 0xe2, 0x4f,
	0x39, 0x22, 0x03, 0x99, 0x1e, 0xe3, 0x44, 0x06, 0x32, 0x33, 0x30, 0x41, 0x18, 0x20, 0x18, 0x74,
	0xa0, 0x4a, 0xf4, 0x7f, 0xf8, 0xe4, 0x4c, 0xa5, 0xf4, 0x78, 0x01, 0xcd, 0xc0, 0x45, 0x30, 0xb6,
	0x88, 0x74, 0x31, 0x33, 0x58, 0x89, 0x74, 0x31, 0x3b, 0x03, 0x41, 0x27, 0x90, 0xe0, 0x33, 0x10,
	0x14, 0x35, 0xea, 0x0b, 0x4f, 0x48, 0x4a, 0x8f, 0x22, 0x94, 0xf8, 0x31, 0xfd, 0x4c, 0xaa, 0xc9,
	0x6f, 0xae, 0x77, 0xa4, 0xb7, 0xd7, 0x3b, 0xd2, 0xbf, 0xaf, 0x77, 0xa4, 0xd7, 0xef, 0x76, 0x56,
	0xde, 0xbe, 0xdb, 0x59, 0xf9, 0xe7, 0xbb, 0x9d, 0x95, 0xf6, 0x1a, 0x1f, 0x9b, 0x7c, 0xff, 0xbf,
	0x01, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x99, 0x52, 0xf9, 0xf8, 0x19, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// NodeClient is the client API for Node service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type NodeClient interface {
	GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigResponse, error)
	BootstrapGroup(ctx context.Context, in *BootstrapGroupRequest, opts ...grpc.CallOption) (*BootstrapGroupResponse, error)
	AddMember(ctx context.Context, in *AddMemberRequest, opts ...grpc.CallOption) (*AddMemberResponse, error)
	RemoveMember(ctx context.Context, in *RemoveMemberRequest, opts ...grpc.CallOption) (*RemoveMemberResponse, error)
	JoinGroup(ctx context.Context, in *JoinGroupRequest, opts ...grpc.CallOption) (*JoinGroupResponse, error)
	LeaveGroup(ctx context.Context, in *LeaveGroupRequest, opts ...grpc.CallOption) (*LeaveGroupResponse, error)
	DeleteData(ctx context.Context, in *DeleteDataRequest, opts ...grpc.CallOption) (*DeleteDataResponse, error)
	Watch(ctx context.Context, in *WatchRequest, opts ...grpc.CallOption) (Node_WatchClient, error)
}

type nodeClient struct {
	cc *grpc.ClientConn
}

func NewNodeClient(cc *grpc.ClientConn) NodeClient {
	return &nodeClient{cc}
}

func (c *nodeClient) GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigResponse, error) {
	out := new(GetConfigResponse)
	err := c.cc.Invoke(ctx, "/atomix.stores.raft.v1.Node/GetConfig", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) BootstrapGroup(ctx context.Context, in *BootstrapGroupRequest, opts ...grpc.CallOption) (*BootstrapGroupResponse, error) {
	out := new(BootstrapGroupResponse)
	err := c.cc.Invoke(ctx, "/atomix.stores.raft.v1.Node/BootstrapGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) AddMember(ctx context.Context, in *AddMemberRequest, opts ...grpc.CallOption) (*AddMemberResponse, error) {
	out := new(AddMemberResponse)
	err := c.cc.Invoke(ctx, "/atomix.stores.raft.v1.Node/AddMember", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) RemoveMember(ctx context.Context, in *RemoveMemberRequest, opts ...grpc.CallOption) (*RemoveMemberResponse, error) {
	out := new(RemoveMemberResponse)
	err := c.cc.Invoke(ctx, "/atomix.stores.raft.v1.Node/RemoveMember", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) JoinGroup(ctx context.Context, in *JoinGroupRequest, opts ...grpc.CallOption) (*JoinGroupResponse, error) {
	out := new(JoinGroupResponse)
	err := c.cc.Invoke(ctx, "/atomix.stores.raft.v1.Node/JoinGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) LeaveGroup(ctx context.Context, in *LeaveGroupRequest, opts ...grpc.CallOption) (*LeaveGroupResponse, error) {
	out := new(LeaveGroupResponse)
	err := c.cc.Invoke(ctx, "/atomix.stores.raft.v1.Node/LeaveGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) DeleteData(ctx context.Context, in *DeleteDataRequest, opts ...grpc.CallOption) (*DeleteDataResponse, error) {
	out := new(DeleteDataResponse)
	err := c.cc.Invoke(ctx, "/atomix.stores.raft.v1.Node/DeleteData", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *nodeClient) Watch(ctx context.Context, in *WatchRequest, opts ...grpc.CallOption) (Node_WatchClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Node_serviceDesc.Streams[0], "/atomix.stores.raft.v1.Node/Watch", opts...)
	if err != nil {
		return nil, err
	}
	x := &nodeWatchClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Node_WatchClient interface {
	Recv() (*Event, error)
	grpc.ClientStream
}

type nodeWatchClient struct {
	grpc.ClientStream
}

func (x *nodeWatchClient) Recv() (*Event, error) {
	m := new(Event)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// NodeServer is the server API for Node service.
type NodeServer interface {
	GetConfig(context.Context, *GetConfigRequest) (*GetConfigResponse, error)
	BootstrapGroup(context.Context, *BootstrapGroupRequest) (*BootstrapGroupResponse, error)
	AddMember(context.Context, *AddMemberRequest) (*AddMemberResponse, error)
	RemoveMember(context.Context, *RemoveMemberRequest) (*RemoveMemberResponse, error)
	JoinGroup(context.Context, *JoinGroupRequest) (*JoinGroupResponse, error)
	LeaveGroup(context.Context, *LeaveGroupRequest) (*LeaveGroupResponse, error)
	DeleteData(context.Context, *DeleteDataRequest) (*DeleteDataResponse, error)
	Watch(*WatchRequest, Node_WatchServer) error
}

// UnimplementedNodeServer can be embedded to have forward compatible implementations.
type UnimplementedNodeServer struct {
}

func (*UnimplementedNodeServer) GetConfig(ctx context.Context, req *GetConfigRequest) (*GetConfigResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetConfig not implemented")
}
func (*UnimplementedNodeServer) BootstrapGroup(ctx context.Context, req *BootstrapGroupRequest) (*BootstrapGroupResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BootstrapGroup not implemented")
}
func (*UnimplementedNodeServer) AddMember(ctx context.Context, req *AddMemberRequest) (*AddMemberResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddMember not implemented")
}
func (*UnimplementedNodeServer) RemoveMember(ctx context.Context, req *RemoveMemberRequest) (*RemoveMemberResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveMember not implemented")
}
func (*UnimplementedNodeServer) JoinGroup(ctx context.Context, req *JoinGroupRequest) (*JoinGroupResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method JoinGroup not implemented")
}
func (*UnimplementedNodeServer) LeaveGroup(ctx context.Context, req *LeaveGroupRequest) (*LeaveGroupResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method LeaveGroup not implemented")
}
func (*UnimplementedNodeServer) DeleteData(ctx context.Context, req *DeleteDataRequest) (*DeleteDataResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteData not implemented")
}
func (*UnimplementedNodeServer) Watch(req *WatchRequest, srv Node_WatchServer) error {
	return status.Errorf(codes.Unimplemented, "method Watch not implemented")
}

func RegisterNodeServer(s *grpc.Server, srv NodeServer) {
	s.RegisterService(&_Node_serviceDesc, srv)
}

func _Node_GetConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).GetConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/atomix.stores.raft.v1.Node/GetConfig",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).GetConfig(ctx, req.(*GetConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_BootstrapGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BootstrapGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).BootstrapGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/atomix.stores.raft.v1.Node/BootstrapGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).BootstrapGroup(ctx, req.(*BootstrapGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_AddMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddMemberRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).AddMember(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/atomix.stores.raft.v1.Node/AddMember",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).AddMember(ctx, req.(*AddMemberRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_RemoveMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveMemberRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).RemoveMember(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/atomix.stores.raft.v1.Node/RemoveMember",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).RemoveMember(ctx, req.(*RemoveMemberRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_JoinGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(JoinGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).JoinGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/atomix.stores.raft.v1.Node/JoinGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).JoinGroup(ctx, req.(*JoinGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_LeaveGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LeaveGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).LeaveGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/atomix.stores.raft.v1.Node/LeaveGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).LeaveGroup(ctx, req.(*LeaveGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_DeleteData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteDataRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NodeServer).DeleteData(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/atomix.stores.raft.v1.Node/DeleteData",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NodeServer).DeleteData(ctx, req.(*DeleteDataRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Node_Watch_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(WatchRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(NodeServer).Watch(m, &nodeWatchServer{stream})
}

type Node_WatchServer interface {
	Send(*Event) error
	grpc.ServerStream
}

type nodeWatchServer struct {
	grpc.ServerStream
}

func (x *nodeWatchServer) Send(m *Event) error {
	return x.ServerStream.SendMsg(m)
}

var _Node_serviceDesc = grpc.ServiceDesc{
	ServiceName: "atomix.stores.raft.v1.Node",
	HandlerType: (*NodeServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetConfig",
			Handler:    _Node_GetConfig_Handler,
		},
		{
			MethodName: "BootstrapGroup",
			Handler:    _Node_BootstrapGroup_Handler,
		},
		{
			MethodName: "AddMember",
			Handler:    _Node_AddMember_Handler,
		},
		{
			MethodName: "RemoveMember",
			Handler:    _Node_RemoveMember_Handler,
		},
		{
			MethodName: "JoinGroup",
			Handler:    _Node_JoinGroup_Handler,
		},
		{
			MethodName: "LeaveGroup",
			Handler:    _Node_LeaveGroup_Handler,
		},
		{
			MethodName: "DeleteData",
			Handler:    _Node_DeleteData_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Watch",
			Handler:       _Node_Watch_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "v1/raft.proto",
}

func (m *GroupConfig) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *GroupConfig) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *GroupConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Version != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Version))
		i--
		dAtA[i] = 0x18
	}
	if len(m.Members) > 0 {
		for iNdEx := len(m.Members) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Members[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintRaft(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *MemberConfig) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *MemberConfig) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *MemberConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Role != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Role))
		i--
		dAtA[i] = 0x20
	}
	if m.Port != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Port))
		i--
		dAtA[i] = 0x18
	}
	if len(m.Host) > 0 {
		i -= len(m.Host)
		copy(dAtA[i:], m.Host)
		i = encodeVarintRaft(dAtA, i, uint64(len(m.Host)))
		i--
		dAtA[i] = 0x12
	}
	if m.MemberID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.MemberID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *RaftConfig) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RaftConfig) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RaftConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.OrderedConfigChange {
		i--
		if m.OrderedConfigChange {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x38
	}
	if m.DisableAutoCompactions {
		i--
		if m.DisableAutoCompactions {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x30
	}
	if m.MaxInMemLogSize != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.MaxInMemLogSize))
		i--
		dAtA[i] = 0x28
	}
	if m.CompactionOverhead != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.CompactionOverhead))
		i--
		dAtA[i] = 0x20
	}
	if m.SnapshotEntries != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.SnapshotEntries))
		i--
		dAtA[i] = 0x18
	}
	if m.HeartbeatRTT != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.HeartbeatRTT))
		i--
		dAtA[i] = 0x10
	}
	if m.ElectionRTT != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.ElectionRTT))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *RaftProposal) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RaftProposal) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RaftProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Data) > 0 {
		i -= len(m.Data)
		copy(dAtA[i:], m.Data)
		i = encodeVarintRaft(dAtA, i, uint64(len(m.Data)))
		i--
		dAtA[i] = 0x1a
	}
	if m.SequenceNum != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.SequenceNum))
		i--
		dAtA[i] = 0x10
	}
	if m.Term != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Term))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *GetConfigRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *GetConfigRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *GetConfigRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *GetConfigResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *GetConfigResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *GetConfigResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.Group.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *BootstrapGroupRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *BootstrapGroupRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *BootstrapGroupRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.Config.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x22
	if len(m.Members) > 0 {
		for iNdEx := len(m.Members) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Members[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintRaft(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x1a
		}
	}
	if m.MemberID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.MemberID))
		i--
		dAtA[i] = 0x10
	}
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *BootstrapGroupResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *BootstrapGroupResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *BootstrapGroupResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	return len(dAtA) - i, nil
}

func (m *AddMemberRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *AddMemberRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *AddMemberRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Version != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Version))
		i--
		dAtA[i] = 0x18
	}
	{
		size, err := m.Member.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *AddMemberResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *AddMemberResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *AddMemberResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	return len(dAtA) - i, nil
}

func (m *RemoveMemberRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RemoveMemberRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RemoveMemberRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Version != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Version))
		i--
		dAtA[i] = 0x18
	}
	if m.MemberID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.MemberID))
		i--
		dAtA[i] = 0x10
	}
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *RemoveMemberResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RemoveMemberResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RemoveMemberResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	return len(dAtA) - i, nil
}

func (m *JoinGroupRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *JoinGroupRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *JoinGroupRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.Config.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x1a
	if m.MemberID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.MemberID))
		i--
		dAtA[i] = 0x10
	}
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *JoinGroupResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *JoinGroupResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *JoinGroupResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	return len(dAtA) - i, nil
}

func (m *LeaveGroupRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *LeaveGroupRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *LeaveGroupRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *LeaveGroupResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *LeaveGroupResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *LeaveGroupResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	return len(dAtA) - i, nil
}

func (m *DeleteDataRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DeleteDataRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DeleteDataRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.MemberID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.MemberID))
		i--
		dAtA[i] = 0x10
	}
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *DeleteDataResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DeleteDataResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DeleteDataResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	return len(dAtA) - i, nil
}

func (m *WatchRequest) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *WatchRequest) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *WatchRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	return len(dAtA) - i, nil
}

func (m *Event) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Event) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Event != nil {
		{
			size := m.Event.Size()
			i -= size
			if _, err := m.Event.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
		}
	}
	n5, err5 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp):])
	if err5 != nil {
		return 0, err5
	}
	i -= n5
	i = encodeVarintRaft(dAtA, i, uint64(n5))
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *Event_MemberReady) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_MemberReady) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.MemberReady != nil {
		{
			size, err := m.MemberReady.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	return len(dAtA) - i, nil
}
func (m *Event_LeaderUpdated) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_LeaderUpdated) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.LeaderUpdated != nil {
		{
			size, err := m.LeaderUpdated.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x1a
	}
	return len(dAtA) - i, nil
}
func (m *Event_ConfigurationChanged) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_ConfigurationChanged) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.ConfigurationChanged != nil {
		{
			size, err := m.ConfigurationChanged.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x22
	}
	return len(dAtA) - i, nil
}
func (m *Event_SendSnapshotStarted) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_SendSnapshotStarted) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.SendSnapshotStarted != nil {
		{
			size, err := m.SendSnapshotStarted.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x2a
	}
	return len(dAtA) - i, nil
}
func (m *Event_SendSnapshotCompleted) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_SendSnapshotCompleted) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.SendSnapshotCompleted != nil {
		{
			size, err := m.SendSnapshotCompleted.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x32
	}
	return len(dAtA) - i, nil
}
func (m *Event_SendSnapshotAborted) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_SendSnapshotAborted) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.SendSnapshotAborted != nil {
		{
			size, err := m.SendSnapshotAborted.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x3a
	}
	return len(dAtA) - i, nil
}
func (m *Event_SnapshotReceived) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_SnapshotReceived) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.SnapshotReceived != nil {
		{
			size, err := m.SnapshotReceived.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x42
	}
	return len(dAtA) - i, nil
}
func (m *Event_SnapshotRecovered) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_SnapshotRecovered) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.SnapshotRecovered != nil {
		{
			size, err := m.SnapshotRecovered.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x4a
	}
	return len(dAtA) - i, nil
}
func (m *Event_SnapshotCreated) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_SnapshotCreated) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.SnapshotCreated != nil {
		{
			size, err := m.SnapshotCreated.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x52
	}
	return len(dAtA) - i, nil
}
func (m *Event_SnapshotCompacted) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_SnapshotCompacted) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.SnapshotCompacted != nil {
		{
			size, err := m.SnapshotCompacted.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x5a
	}
	return len(dAtA) - i, nil
}
func (m *Event_LogCompacted) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_LogCompacted) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.LogCompacted != nil {
		{
			size, err := m.LogCompacted.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x62
	}
	return len(dAtA) - i, nil
}
func (m *Event_LogdbCompacted) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_LogdbCompacted) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.LogdbCompacted != nil {
		{
			size, err := m.LogdbCompacted.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x6a
	}
	return len(dAtA) - i, nil
}
func (m *Event_ConnectionEstablished) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_ConnectionEstablished) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.ConnectionEstablished != nil {
		{
			size, err := m.ConnectionEstablished.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x72
	}
	return len(dAtA) - i, nil
}
func (m *Event_ConnectionFailed) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Event_ConnectionFailed) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.ConnectionFailed != nil {
		{
			size, err := m.ConnectionFailed.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintRaft(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x7a
	}
	return len(dAtA) - i, nil
}
func (m *ConnectionInfo) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ConnectionInfo) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ConnectionInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Snapshot {
		i--
		if m.Snapshot {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x10
	}
	if len(m.Address) > 0 {
		i -= len(m.Address)
		copy(dAtA[i:], m.Address)
		i = encodeVarintRaft(dAtA, i, uint64(len(m.Address)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *MemberEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *MemberEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *MemberEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.MemberID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.MemberID))
		i--
		dAtA[i] = 0x10
	}
	if m.GroupID != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.GroupID))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *MemberReadyEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *MemberReadyEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *MemberReadyEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *ConfigurationChangedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ConfigurationChangedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ConfigurationChangedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *LeaderUpdatedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *LeaderUpdatedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *LeaderUpdatedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Leader != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Leader))
		i--
		dAtA[i] = 0x18
	}
	if m.Term != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Term))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *SendSnapshotStartedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SendSnapshotStartedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SendSnapshotStartedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.To != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.To))
		i--
		dAtA[i] = 0x18
	}
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *SendSnapshotCompletedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SendSnapshotCompletedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SendSnapshotCompletedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.To != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.To))
		i--
		dAtA[i] = 0x18
	}
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *SendSnapshotAbortedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SendSnapshotAbortedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SendSnapshotAbortedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.To != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.To))
		i--
		dAtA[i] = 0x18
	}
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *SnapshotReceivedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SnapshotReceivedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SnapshotReceivedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.From != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.From))
		i--
		dAtA[i] = 0x18
	}
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *SnapshotRecoveredEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SnapshotRecoveredEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SnapshotRecoveredEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *SnapshotCreatedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SnapshotCreatedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SnapshotCreatedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *SnapshotCompactedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *SnapshotCompactedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *SnapshotCompactedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *LogEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *LogEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *LogEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *LogCompactedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *LogCompactedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *LogCompactedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *LogDBCompactedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *LogDBCompactedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *LogDBCompactedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Index != 0 {
		i = encodeVarintRaft(dAtA, i, uint64(m.Index))
		i--
		dAtA[i] = 0x10
	}
	{
		size, err := m.MemberEvent.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *ConnectionEstablishedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ConnectionEstablishedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ConnectionEstablishedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.ConnectionInfo.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *ConnectionFailedEvent) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ConnectionFailedEvent) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ConnectionFailedEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.ConnectionInfo.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintRaft(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func encodeVarintRaft(dAtA []byte, offset int, v uint64) int {
	offset -= sovRaft(v)
	base := offset
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return base
}
func (m *GroupConfig) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	if len(m.Members) > 0 {
		for _, e := range m.Members {
			l = e.Size()
			n += 1 + l + sovRaft(uint64(l))
		}
	}
	if m.Version != 0 {
		n += 1 + sovRaft(uint64(m.Version))
	}
	return n
}

func (m *MemberConfig) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.MemberID != 0 {
		n += 1 + sovRaft(uint64(m.MemberID))
	}
	l = len(m.Host)
	if l > 0 {
		n += 1 + l + sovRaft(uint64(l))
	}
	if m.Port != 0 {
		n += 1 + sovRaft(uint64(m.Port))
	}
	if m.Role != 0 {
		n += 1 + sovRaft(uint64(m.Role))
	}
	return n
}

func (m *RaftConfig) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.ElectionRTT != 0 {
		n += 1 + sovRaft(uint64(m.ElectionRTT))
	}
	if m.HeartbeatRTT != 0 {
		n += 1 + sovRaft(uint64(m.HeartbeatRTT))
	}
	if m.SnapshotEntries != 0 {
		n += 1 + sovRaft(uint64(m.SnapshotEntries))
	}
	if m.CompactionOverhead != 0 {
		n += 1 + sovRaft(uint64(m.CompactionOverhead))
	}
	if m.MaxInMemLogSize != 0 {
		n += 1 + sovRaft(uint64(m.MaxInMemLogSize))
	}
	if m.DisableAutoCompactions {
		n += 2
	}
	if m.OrderedConfigChange {
		n += 2
	}
	return n
}

func (m *RaftProposal) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Term != 0 {
		n += 1 + sovRaft(uint64(m.Term))
	}
	if m.SequenceNum != 0 {
		n += 1 + sovRaft(uint64(m.SequenceNum))
	}
	l = len(m.Data)
	if l > 0 {
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}

func (m *GetConfigRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	return n
}

func (m *GetConfigResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Group.Size()
	n += 1 + l + sovRaft(uint64(l))
	return n
}

func (m *BootstrapGroupRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	if m.MemberID != 0 {
		n += 1 + sovRaft(uint64(m.MemberID))
	}
	if len(m.Members) > 0 {
		for _, e := range m.Members {
			l = e.Size()
			n += 1 + l + sovRaft(uint64(l))
		}
	}
	l = m.Config.Size()
	n += 1 + l + sovRaft(uint64(l))
	return n
}

func (m *BootstrapGroupResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	return n
}

func (m *AddMemberRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	l = m.Member.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Version != 0 {
		n += 1 + sovRaft(uint64(m.Version))
	}
	return n
}

func (m *AddMemberResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	return n
}

func (m *RemoveMemberRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	if m.MemberID != 0 {
		n += 1 + sovRaft(uint64(m.MemberID))
	}
	if m.Version != 0 {
		n += 1 + sovRaft(uint64(m.Version))
	}
	return n
}

func (m *RemoveMemberResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	return n
}

func (m *JoinGroupRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	if m.MemberID != 0 {
		n += 1 + sovRaft(uint64(m.MemberID))
	}
	l = m.Config.Size()
	n += 1 + l + sovRaft(uint64(l))
	return n
}

func (m *JoinGroupResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	return n
}

func (m *LeaveGroupRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	return n
}

func (m *LeaveGroupResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	return n
}

func (m *DeleteDataRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	if m.MemberID != 0 {
		n += 1 + sovRaft(uint64(m.MemberID))
	}
	return n
}

func (m *DeleteDataResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	return n
}

func (m *WatchRequest) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	return n
}

func (m *Event) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp)
	n += 1 + l + sovRaft(uint64(l))
	if m.Event != nil {
		n += m.Event.Size()
	}
	return n
}

func (m *Event_MemberReady) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.MemberReady != nil {
		l = m.MemberReady.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_LeaderUpdated) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.LeaderUpdated != nil {
		l = m.LeaderUpdated.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_ConfigurationChanged) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.ConfigurationChanged != nil {
		l = m.ConfigurationChanged.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_SendSnapshotStarted) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SendSnapshotStarted != nil {
		l = m.SendSnapshotStarted.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_SendSnapshotCompleted) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SendSnapshotCompleted != nil {
		l = m.SendSnapshotCompleted.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_SendSnapshotAborted) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SendSnapshotAborted != nil {
		l = m.SendSnapshotAborted.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_SnapshotReceived) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SnapshotReceived != nil {
		l = m.SnapshotReceived.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_SnapshotRecovered) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SnapshotRecovered != nil {
		l = m.SnapshotRecovered.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_SnapshotCreated) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SnapshotCreated != nil {
		l = m.SnapshotCreated.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_SnapshotCompacted) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SnapshotCompacted != nil {
		l = m.SnapshotCompacted.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_LogCompacted) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.LogCompacted != nil {
		l = m.LogCompacted.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_LogdbCompacted) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.LogdbCompacted != nil {
		l = m.LogdbCompacted.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_ConnectionEstablished) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.ConnectionEstablished != nil {
		l = m.ConnectionEstablished.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *Event_ConnectionFailed) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.ConnectionFailed != nil {
		l = m.ConnectionFailed.Size()
		n += 1 + l + sovRaft(uint64(l))
	}
	return n
}
func (m *ConnectionInfo) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Address)
	if l > 0 {
		n += 1 + l + sovRaft(uint64(l))
	}
	if m.Snapshot {
		n += 2
	}
	return n
}

func (m *MemberEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.GroupID != 0 {
		n += 1 + sovRaft(uint64(m.GroupID))
	}
	if m.MemberID != 0 {
		n += 1 + sovRaft(uint64(m.MemberID))
	}
	return n
}

func (m *MemberReadyEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	return n
}

func (m *ConfigurationChangedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	return n
}

func (m *LeaderUpdatedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Term != 0 {
		n += 1 + sovRaft(uint64(m.Term))
	}
	if m.Leader != 0 {
		n += 1 + sovRaft(uint64(m.Leader))
	}
	return n
}

func (m *SendSnapshotStartedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	if m.To != 0 {
		n += 1 + sovRaft(uint64(m.To))
	}
	return n
}

func (m *SendSnapshotCompletedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	if m.To != 0 {
		n += 1 + sovRaft(uint64(m.To))
	}
	return n
}

func (m *SendSnapshotAbortedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	if m.To != 0 {
		n += 1 + sovRaft(uint64(m.To))
	}
	return n
}

func (m *SnapshotReceivedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	if m.From != 0 {
		n += 1 + sovRaft(uint64(m.From))
	}
	return n
}

func (m *SnapshotRecoveredEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	return n
}

func (m *SnapshotCreatedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	return n
}

func (m *SnapshotCompactedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	return n
}

func (m *LogEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	return n
}

func (m *LogCompactedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	return n
}

func (m *LogDBCompactedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.MemberEvent.Size()
	n += 1 + l + sovRaft(uint64(l))
	if m.Index != 0 {
		n += 1 + sovRaft(uint64(m.Index))
	}
	return n
}

func (m *ConnectionEstablishedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.ConnectionInfo.Size()
	n += 1 + l + sovRaft(uint64(l))
	return n
}

func (m *ConnectionFailedEvent) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.ConnectionInfo.Size()
	n += 1 + l + sovRaft(uint64(l))
	return n
}

func sovRaft(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozRaft(x uint64) (n int) {
	return sovRaft(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *GroupConfig) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: GroupConfig: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: GroupConfig: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Members", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Members = append(m.Members, MemberConfig{})
			if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
			}
			m.Version = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Version |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *MemberConfig) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: MemberConfig: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: MemberConfig: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberID", wireType)
			}
			m.MemberID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MemberID |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Host", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Host = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType)
			}
			m.Port = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Port |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType)
			}
			m.Role = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Role |= MemberRole(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *RaftConfig) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RaftConfig: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RaftConfig: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field ElectionRTT", wireType)
			}
			m.ElectionRTT = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.ElectionRTT |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field HeartbeatRTT", wireType)
			}
			m.HeartbeatRTT = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.HeartbeatRTT |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotEntries", wireType)
			}
			m.SnapshotEntries = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.SnapshotEntries |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field CompactionOverhead", wireType)
			}
			m.CompactionOverhead = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.CompactionOverhead |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MaxInMemLogSize", wireType)
			}
			m.MaxInMemLogSize = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MaxInMemLogSize |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field DisableAutoCompactions", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.DisableAutoCompactions = bool(v != 0)
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field OrderedConfigChange", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.OrderedConfigChange = bool(v != 0)
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *RaftProposal) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RaftProposal: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RaftProposal: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Term", wireType)
			}
			m.Term = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Term |= Term(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field SequenceNum", wireType)
			}
			m.SequenceNum = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.SequenceNum |= SequenceNum(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
			if m.Data == nil {
				m.Data = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *GetConfigRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: GetConfigRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: GetConfigRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *GetConfigResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: GetConfigResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: GetConfigResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *BootstrapGroupRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: BootstrapGroupRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: BootstrapGroupRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberID", wireType)
			}
			m.MemberID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MemberID |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Members", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Members = append(m.Members, MemberConfig{})
			if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *BootstrapGroupResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: BootstrapGroupResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: BootstrapGroupResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *AddMemberRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: AddMemberRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AddMemberRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Member", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Member.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
			}
			m.Version = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Version |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *AddMemberResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: AddMemberResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AddMemberResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *RemoveMemberRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RemoveMemberRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RemoveMemberRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberID", wireType)
			}
			m.MemberID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MemberID |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
			}
			m.Version = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Version |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *RemoveMemberResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RemoveMemberResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RemoveMemberResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *JoinGroupRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: JoinGroupRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: JoinGroupRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberID", wireType)
			}
			m.MemberID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MemberID |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *JoinGroupResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: JoinGroupResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: JoinGroupResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *LeaveGroupRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: LeaveGroupRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: LeaveGroupRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *LeaveGroupResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: LeaveGroupResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: LeaveGroupResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DeleteDataRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DeleteDataRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DeleteDataRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberID", wireType)
			}
			m.MemberID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MemberID |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DeleteDataResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DeleteDataResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DeleteDataResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *WatchRequest) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: WatchRequest: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: WatchRequest: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Event) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Event: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberReady", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &MemberReadyEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_MemberReady{v}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field LeaderUpdated", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &LeaderUpdatedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_LeaderUpdated{v}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConfigurationChanged", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &ConfigurationChangedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_ConfigurationChanged{v}
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SendSnapshotStarted", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &SendSnapshotStartedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_SendSnapshotStarted{v}
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SendSnapshotCompleted", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &SendSnapshotCompletedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_SendSnapshotCompleted{v}
			iNdEx = postIndex
		case 7:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SendSnapshotAborted", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &SendSnapshotAbortedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_SendSnapshotAborted{v}
			iNdEx = postIndex
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotReceived", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &SnapshotReceivedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_SnapshotReceived{v}
			iNdEx = postIndex
		case 9:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotRecovered", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &SnapshotRecoveredEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_SnapshotRecovered{v}
			iNdEx = postIndex
		case 10:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotCreated", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &SnapshotCreatedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_SnapshotCreated{v}
			iNdEx = postIndex
		case 11:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SnapshotCompacted", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &SnapshotCompactedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_SnapshotCompacted{v}
			iNdEx = postIndex
		case 12:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field LogCompacted", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &LogCompactedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_LogCompacted{v}
			iNdEx = postIndex
		case 13:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field LogdbCompacted", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &LogDBCompactedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_LogdbCompacted{v}
			iNdEx = postIndex
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConnectionEstablished", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &ConnectionEstablishedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_ConnectionEstablished{v}
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConnectionFailed", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &ConnectionFailedEvent{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Event = &Event_ConnectionFailed{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ConnectionInfo) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ConnectionInfo: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ConnectionInfo: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Address = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Snapshot", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Snapshot = bool(v != 0)
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *MemberEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: MemberEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: MemberEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field GroupID", wireType)
			}
			m.GroupID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.GroupID |= GroupID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberID", wireType)
			}
			m.MemberID = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MemberID |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *MemberReadyEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: MemberReadyEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: MemberReadyEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ConfigurationChangedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ConfigurationChangedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ConfigurationChangedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *LeaderUpdatedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: LeaderUpdatedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: LeaderUpdatedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Term", wireType)
			}
			m.Term = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Term |= Term(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Leader", wireType)
			}
			m.Leader = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Leader |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SendSnapshotStartedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SendSnapshotStartedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SendSnapshotStartedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
			}
			m.To = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.To |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SendSnapshotCompletedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SendSnapshotCompletedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SendSnapshotCompletedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
			}
			m.To = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.To |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SendSnapshotAbortedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SendSnapshotAbortedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SendSnapshotAbortedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field To", wireType)
			}
			m.To = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.To |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SnapshotReceivedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SnapshotReceivedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SnapshotReceivedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field From", wireType)
			}
			m.From = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.From |= MemberID(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SnapshotRecoveredEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SnapshotRecoveredEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SnapshotRecoveredEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SnapshotCreatedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SnapshotCreatedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SnapshotCreatedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *SnapshotCompactedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: SnapshotCompactedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SnapshotCompactedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *LogEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: LogEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: LogEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *LogCompactedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: LogCompactedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: LogCompactedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *LogDBCompactedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: LogDBCompactedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: LogDBCompactedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MemberEvent", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MemberEvent.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType)
			}
			m.Index = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Index |= Index(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ConnectionEstablishedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ConnectionEstablishedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ConnectionEstablishedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConnectionInfo", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.ConnectionInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ConnectionFailedEvent) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ConnectionFailedEvent: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ConnectionFailedEvent: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConnectionInfo", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthRaft
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthRaft
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.ConnectionInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipRaft(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthRaft
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipRaft(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	depth := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowRaft
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
		case 1:
			iNdEx += 8
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowRaft
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthRaft
			}
			iNdEx += length
		case 3:
			depth++
		case 4:
			if depth == 0 {
				return 0, ErrUnexpectedEndOfGroupRaft
			}
			depth--
		case 5:
			iNdEx += 4
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
		if iNdEx < 0 {
			return 0, ErrInvalidLengthRaft
		}
		if depth == 0 {
			return iNdEx, nil
		}
	}
	return 0, io.ErrUnexpectedEOF
}

var (
	ErrInvalidLengthRaft        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowRaft          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupRaft = fmt.Errorf("proto: unexpected end of group")
)
