// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.26.0
// 	protoc        v3.9.1
// source: tendermint.proto

package types

import (
	reflect "reflect"
	sync "sync"

	types "github.com/33cn/chain33/types"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type BlockID struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
}

func (x *BlockID) Reset() {
	*x = BlockID{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BlockID) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BlockID) ProtoMessage() {}

func (x *BlockID) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockID.ProtoReflect.Descriptor instead.
func (*BlockID) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{0}
}

func (x *BlockID) GetHash() []byte {
	if x != nil {
		return x.Hash
	}
	return nil
}

type TendermintBitArray struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Bits  int32    `protobuf:"varint,1,opt,name=bits,proto3" json:"bits,omitempty"`
	Elems []uint64 `protobuf:"varint,2,rep,packed,name=elems,proto3" json:"elems,omitempty"`
}

func (x *TendermintBitArray) Reset() {
	*x = TendermintBitArray{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TendermintBitArray) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TendermintBitArray) ProtoMessage() {}

func (x *TendermintBitArray) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TendermintBitArray.ProtoReflect.Descriptor instead.
func (*TendermintBitArray) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{1}
}

func (x *TendermintBitArray) GetBits() int32 {
	if x != nil {
		return x.Bits
	}
	return 0
}

func (x *TendermintBitArray) GetElems() []uint64 {
	if x != nil {
		return x.Elems
	}
	return nil
}

type Vote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ValidatorAddress []byte   `protobuf:"bytes,1,opt,name=validatorAddress,proto3" json:"validatorAddress,omitempty"`
	ValidatorIndex   int32    `protobuf:"varint,2,opt,name=validatorIndex,proto3" json:"validatorIndex,omitempty"`
	Height           int64    `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Round            int32    `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"`
	Timestamp        int64    `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Type             uint32   `protobuf:"varint,6,opt,name=type,proto3" json:"type,omitempty"`
	BlockID          *BlockID `protobuf:"bytes,7,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Signature        []byte   `protobuf:"bytes,8,opt,name=signature,proto3" json:"signature,omitempty"`
	UseAggSig        bool     `protobuf:"varint,9,opt,name=useAggSig,proto3" json:"useAggSig,omitempty"`
}

func (x *Vote) Reset() {
	*x = Vote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Vote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Vote) ProtoMessage() {}

func (x *Vote) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Vote.ProtoReflect.Descriptor instead.
func (*Vote) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{2}
}

func (x *Vote) GetValidatorAddress() []byte {
	if x != nil {
		return x.ValidatorAddress
	}
	return nil
}

func (x *Vote) GetValidatorIndex() int32 {
	if x != nil {
		return x.ValidatorIndex
	}
	return 0
}

func (x *Vote) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *Vote) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *Vote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Vote) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *Vote) GetBlockID() *BlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *Vote) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *Vote) GetUseAggSig() bool {
	if x != nil {
		return x.UseAggSig
	}
	return false
}

type TendermintCommit struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockID    *BlockID `protobuf:"bytes,1,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Precommits []*Vote  `protobuf:"bytes,2,rep,name=precommits,proto3" json:"precommits,omitempty"`
	AggVote    *AggVote `protobuf:"bytes,3,opt,name=aggVote,proto3" json:"aggVote,omitempty"`
}

func (x *TendermintCommit) Reset() {
	*x = TendermintCommit{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TendermintCommit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TendermintCommit) ProtoMessage() {}

func (x *TendermintCommit) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TendermintCommit.ProtoReflect.Descriptor instead.
func (*TendermintCommit) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{3}
}

func (x *TendermintCommit) GetBlockID() *BlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *TendermintCommit) GetPrecommits() []*Vote {
	if x != nil {
		return x.Precommits
	}
	return nil
}

func (x *TendermintCommit) GetAggVote() *AggVote {
	if x != nil {
		return x.AggVote
	}
	return nil
}

type TendermintBlockInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	State    *State           `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	Proposal *Proposal        `protobuf:"bytes,3,opt,name=proposal,proto3" json:"proposal,omitempty"`
	Block    *TendermintBlock `protobuf:"bytes,4,opt,name=block,proto3" json:"block,omitempty"`
}

func (x *TendermintBlockInfo) Reset() {
	*x = TendermintBlockInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TendermintBlockInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TendermintBlockInfo) ProtoMessage() {}

func (x *TendermintBlockInfo) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TendermintBlockInfo.ProtoReflect.Descriptor instead.
func (*TendermintBlockInfo) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{4}
}

func (x *TendermintBlockInfo) GetState() *State {
	if x != nil {
		return x.State
	}
	return nil
}

func (x *TendermintBlockInfo) GetProposal() *Proposal {
	if x != nil {
		return x.Proposal
	}
	return nil
}

func (x *TendermintBlockInfo) GetBlock() *TendermintBlock {
	if x != nil {
		return x.Block
	}
	return nil
}

type BlockSize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MaxBytes int32 `protobuf:"varint,1,opt,name=maxBytes,proto3" json:"maxBytes,omitempty"`
	MaxTxs   int32 `protobuf:"varint,2,opt,name=maxTxs,proto3" json:"maxTxs,omitempty"`
	MaxGas   int64 `protobuf:"varint,3,opt,name=maxGas,proto3" json:"maxGas,omitempty"`
}

func (x *BlockSize) Reset() {
	*x = BlockSize{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BlockSize) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BlockSize) ProtoMessage() {}

func (x *BlockSize) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockSize.ProtoReflect.Descriptor instead.
func (*BlockSize) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{5}
}

func (x *BlockSize) GetMaxBytes() int32 {
	if x != nil {
		return x.MaxBytes
	}
	return 0
}

func (x *BlockSize) GetMaxTxs() int32 {
	if x != nil {
		return x.MaxTxs
	}
	return 0
}

func (x *BlockSize) GetMaxGas() int64 {
	if x != nil {
		return x.MaxGas
	}
	return 0
}

type TxSize struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MaxBytes int32 `protobuf:"varint,1,opt,name=maxBytes,proto3" json:"maxBytes,omitempty"`
	MaxGas   int64 `protobuf:"varint,2,opt,name=maxGas,proto3" json:"maxGas,omitempty"`
}

func (x *TxSize) Reset() {
	*x = TxSize{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TxSize) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TxSize) ProtoMessage() {}

func (x *TxSize) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TxSize.ProtoReflect.Descriptor instead.
func (*TxSize) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{6}
}

func (x *TxSize) GetMaxBytes() int32 {
	if x != nil {
		return x.MaxBytes
	}
	return 0
}

func (x *TxSize) GetMaxGas() int64 {
	if x != nil {
		return x.MaxGas
	}
	return 0
}

type BlockGossip struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockPartSizeBytes int32 `protobuf:"varint,1,opt,name=blockPartSizeBytes,proto3" json:"blockPartSizeBytes,omitempty"`
}

func (x *BlockGossip) Reset() {
	*x = BlockGossip{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BlockGossip) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BlockGossip) ProtoMessage() {}

func (x *BlockGossip) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockGossip.ProtoReflect.Descriptor instead.
func (*BlockGossip) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{7}
}

func (x *BlockGossip) GetBlockPartSizeBytes() int32 {
	if x != nil {
		return x.BlockPartSizeBytes
	}
	return 0
}

type EvidenceParams struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MaxAge int64 `protobuf:"varint,1,opt,name=maxAge,proto3" json:"maxAge,omitempty"`
}

func (x *EvidenceParams) Reset() {
	*x = EvidenceParams{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *EvidenceParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EvidenceParams) ProtoMessage() {}

func (x *EvidenceParams) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EvidenceParams.ProtoReflect.Descriptor instead.
func (*EvidenceParams) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{8}
}

func (x *EvidenceParams) GetMaxAge() int64 {
	if x != nil {
		return x.MaxAge
	}
	return 0
}

type ConsensusParams struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	BlockSize      *BlockSize      `protobuf:"bytes,1,opt,name=blockSize,proto3" json:"blockSize,omitempty"`
	TxSize         *TxSize         `protobuf:"bytes,2,opt,name=txSize,proto3" json:"txSize,omitempty"`
	BlockGossip    *BlockGossip    `protobuf:"bytes,3,opt,name=blockGossip,proto3" json:"blockGossip,omitempty"`
	EvidenceParams *EvidenceParams `protobuf:"bytes,4,opt,name=evidenceParams,proto3" json:"evidenceParams,omitempty"`
}

func (x *ConsensusParams) Reset() {
	*x = ConsensusParams{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConsensusParams) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConsensusParams) ProtoMessage() {}

func (x *ConsensusParams) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ConsensusParams.ProtoReflect.Descriptor instead.
func (*ConsensusParams) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{9}
}

func (x *ConsensusParams) GetBlockSize() *BlockSize {
	if x != nil {
		return x.BlockSize
	}
	return nil
}

func (x *ConsensusParams) GetTxSize() *TxSize {
	if x != nil {
		return x.TxSize
	}
	return nil
}

func (x *ConsensusParams) GetBlockGossip() *BlockGossip {
	if x != nil {
		return x.BlockGossip
	}
	return nil
}

func (x *ConsensusParams) GetEvidenceParams() *EvidenceParams {
	if x != nil {
		return x.EvidenceParams
	}
	return nil
}

type Validator struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Address     []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	PubKey      []byte `protobuf:"bytes,2,opt,name=pubKey,proto3" json:"pubKey,omitempty"`
	VotingPower int64  `protobuf:"varint,3,opt,name=votingPower,proto3" json:"votingPower,omitempty"`
	Accum       int64  `protobuf:"varint,4,opt,name=accum,proto3" json:"accum,omitempty"`
}

func (x *Validator) Reset() {
	*x = Validator{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Validator) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Validator) ProtoMessage() {}

func (x *Validator) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Validator.ProtoReflect.Descriptor instead.
func (*Validator) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{10}
}

func (x *Validator) GetAddress() []byte {
	if x != nil {
		return x.Address
	}
	return nil
}

func (x *Validator) GetPubKey() []byte {
	if x != nil {
		return x.PubKey
	}
	return nil
}

func (x *Validator) GetVotingPower() int64 {
	if x != nil {
		return x.VotingPower
	}
	return 0
}

func (x *Validator) GetAccum() int64 {
	if x != nil {
		return x.Accum
	}
	return 0
}

type ValidatorSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Validators []*Validator `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators,omitempty"`
	Proposer   *Validator   `protobuf:"bytes,2,opt,name=proposer,proto3" json:"proposer,omitempty"`
}

func (x *ValidatorSet) Reset() {
	*x = ValidatorSet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ValidatorSet) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ValidatorSet) ProtoMessage() {}

func (x *ValidatorSet) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ValidatorSet.ProtoReflect.Descriptor instead.
func (*ValidatorSet) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{11}
}

func (x *ValidatorSet) GetValidators() []*Validator {
	if x != nil {
		return x.Validators
	}
	return nil
}

func (x *ValidatorSet) GetProposer() *Validator {
	if x != nil {
		return x.Proposer
	}
	return nil
}

type State struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChainID                          string           `protobuf:"bytes,1,opt,name=chainID,proto3" json:"chainID,omitempty"`
	LastBlockHeight                  int64            `protobuf:"varint,2,opt,name=lastBlockHeight,proto3" json:"lastBlockHeight,omitempty"`
	LastBlockTotalTx                 int64            `protobuf:"varint,3,opt,name=lastBlockTotalTx,proto3" json:"lastBlockTotalTx,omitempty"`
	LastBlockID                      *BlockID         `protobuf:"bytes,4,opt,name=lastBlockID,proto3" json:"lastBlockID,omitempty"`
	LastBlockTime                    int64            `protobuf:"varint,5,opt,name=lastBlockTime,proto3" json:"lastBlockTime,omitempty"`
	Validators                       *ValidatorSet    `protobuf:"bytes,6,opt,name=validators,proto3" json:"validators,omitempty"`
	LastValidators                   *ValidatorSet    `protobuf:"bytes,7,opt,name=lastValidators,proto3" json:"lastValidators,omitempty"`
	LastHeightValidatorsChanged      int64            `protobuf:"varint,8,opt,name=lastHeightValidatorsChanged,proto3" json:"lastHeightValidatorsChanged,omitempty"`
	ConsensusParams                  *ConsensusParams `protobuf:"bytes,9,opt,name=consensusParams,proto3" json:"consensusParams,omitempty"`
	LastHeightConsensusParamsChanged int64            `protobuf:"varint,10,opt,name=lastHeightConsensusParamsChanged,proto3" json:"lastHeightConsensusParamsChanged,omitempty"`
	LastResultsHash                  []byte           `protobuf:"bytes,11,opt,name=lastResultsHash,proto3" json:"lastResultsHash,omitempty"`
	AppHash                          []byte           `protobuf:"bytes,12,opt,name=appHash,proto3" json:"appHash,omitempty"`
}

func (x *State) Reset() {
	*x = State{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *State) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*State) ProtoMessage() {}

func (x *State) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use State.ProtoReflect.Descriptor instead.
func (*State) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{12}
}

func (x *State) GetChainID() string {
	if x != nil {
		return x.ChainID
	}
	return ""
}

func (x *State) GetLastBlockHeight() int64 {
	if x != nil {
		return x.LastBlockHeight
	}
	return 0
}

func (x *State) GetLastBlockTotalTx() int64 {
	if x != nil {
		return x.LastBlockTotalTx
	}
	return 0
}

func (x *State) GetLastBlockID() *BlockID {
	if x != nil {
		return x.LastBlockID
	}
	return nil
}

func (x *State) GetLastBlockTime() int64 {
	if x != nil {
		return x.LastBlockTime
	}
	return 0
}

func (x *State) GetValidators() *ValidatorSet {
	if x != nil {
		return x.Validators
	}
	return nil
}

func (x *State) GetLastValidators() *ValidatorSet {
	if x != nil {
		return x.LastValidators
	}
	return nil
}

func (x *State) GetLastHeightValidatorsChanged() int64 {
	if x != nil {
		return x.LastHeightValidatorsChanged
	}
	return 0
}

func (x *State) GetConsensusParams() *ConsensusParams {
	if x != nil {
		return x.ConsensusParams
	}
	return nil
}

func (x *State) GetLastHeightConsensusParamsChanged() int64 {
	if x != nil {
		return x.LastHeightConsensusParamsChanged
	}
	return 0
}

func (x *State) GetLastResultsHash() []byte {
	if x != nil {
		return x.LastResultsHash
	}
	return nil
}

func (x *State) GetAppHash() []byte {
	if x != nil {
		return x.AppHash
	}
	return nil
}

type TendermintBlockHeader struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ChainID         string   `protobuf:"bytes,1,opt,name=chainID,proto3" json:"chainID,omitempty"`
	Height          int64    `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
	Round           int64    `protobuf:"varint,3,opt,name=round,proto3" json:"round,omitempty"`
	Time            int64    `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"`
	NumTxs          int64    `protobuf:"varint,5,opt,name=numTxs,proto3" json:"numTxs,omitempty"`
	LastBlockID     *BlockID `protobuf:"bytes,6,opt,name=lastBlockID,proto3" json:"lastBlockID,omitempty"`
	TotalTxs        int64    `protobuf:"varint,7,opt,name=totalTxs,proto3" json:"totalTxs,omitempty"`
	LastCommitHash  []byte   `protobuf:"bytes,8,opt,name=lastCommitHash,proto3" json:"lastCommitHash,omitempty"`
	ValidatorsHash  []byte   `protobuf:"bytes,9,opt,name=validatorsHash,proto3" json:"validatorsHash,omitempty"`
	ConsensusHash   []byte   `protobuf:"bytes,10,opt,name=consensusHash,proto3" json:"consensusHash,omitempty"`
	AppHash         []byte   `protobuf:"bytes,11,opt,name=appHash,proto3" json:"appHash,omitempty"`
	LastResultsHash []byte   `protobuf:"bytes,12,opt,name=lastResultsHash,proto3" json:"lastResultsHash,omitempty"`
	ProposerAddr    []byte   `protobuf:"bytes,13,opt,name=proposerAddr,proto3" json:"proposerAddr,omitempty"`
}

func (x *TendermintBlockHeader) Reset() {
	*x = TendermintBlockHeader{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TendermintBlockHeader) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TendermintBlockHeader) ProtoMessage() {}

func (x *TendermintBlockHeader) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TendermintBlockHeader.ProtoReflect.Descriptor instead.
func (*TendermintBlockHeader) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{13}
}

func (x *TendermintBlockHeader) GetChainID() string {
	if x != nil {
		return x.ChainID
	}
	return ""
}

func (x *TendermintBlockHeader) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *TendermintBlockHeader) GetRound() int64 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *TendermintBlockHeader) GetTime() int64 {
	if x != nil {
		return x.Time
	}
	return 0
}

func (x *TendermintBlockHeader) GetNumTxs() int64 {
	if x != nil {
		return x.NumTxs
	}
	return 0
}

func (x *TendermintBlockHeader) GetLastBlockID() *BlockID {
	if x != nil {
		return x.LastBlockID
	}
	return nil
}

func (x *TendermintBlockHeader) GetTotalTxs() int64 {
	if x != nil {
		return x.TotalTxs
	}
	return 0
}

func (x *TendermintBlockHeader) GetLastCommitHash() []byte {
	if x != nil {
		return x.LastCommitHash
	}
	return nil
}

func (x *TendermintBlockHeader) GetValidatorsHash() []byte {
	if x != nil {
		return x.ValidatorsHash
	}
	return nil
}

func (x *TendermintBlockHeader) GetConsensusHash() []byte {
	if x != nil {
		return x.ConsensusHash
	}
	return nil
}

func (x *TendermintBlockHeader) GetAppHash() []byte {
	if x != nil {
		return x.AppHash
	}
	return nil
}

func (x *TendermintBlockHeader) GetLastResultsHash() []byte {
	if x != nil {
		return x.LastResultsHash
	}
	return nil
}

func (x *TendermintBlockHeader) GetProposerAddr() []byte {
	if x != nil {
		return x.ProposerAddr
	}
	return nil
}

type TendermintBlock struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header     *TendermintBlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	Data       *types.Block           `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	LastCommit *TendermintCommit      `protobuf:"bytes,4,opt,name=lastCommit,proto3" json:"lastCommit,omitempty"`
}

func (x *TendermintBlock) Reset() {
	*x = TendermintBlock{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TendermintBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TendermintBlock) ProtoMessage() {}

func (x *TendermintBlock) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TendermintBlock.ProtoReflect.Descriptor instead.
func (*TendermintBlock) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{14}
}

func (x *TendermintBlock) GetHeader() *TendermintBlockHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *TendermintBlock) GetData() *types.Block {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *TendermintBlock) GetLastCommit() *TendermintCommit {
	if x != nil {
		return x.LastCommit
	}
	return nil
}

type Proposal struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height     int64    `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round      int32    `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Timestamp  int64    `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	POLRound   int32    `protobuf:"varint,4,opt,name=POLRound,proto3" json:"POLRound,omitempty"`
	POLBlockID *BlockID `protobuf:"bytes,5,opt,name=POLBlockID,proto3" json:"POLBlockID,omitempty"`
	Signature  []byte   `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
	Blockhash  []byte   `protobuf:"bytes,7,opt,name=blockhash,proto3" json:"blockhash,omitempty"`
}

func (x *Proposal) Reset() {
	*x = Proposal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Proposal) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Proposal) ProtoMessage() {}

func (x *Proposal) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Proposal.ProtoReflect.Descriptor instead.
func (*Proposal) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{15}
}

func (x *Proposal) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *Proposal) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *Proposal) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Proposal) GetPOLRound() int32 {
	if x != nil {
		return x.POLRound
	}
	return 0
}

func (x *Proposal) GetPOLBlockID() *BlockID {
	if x != nil {
		return x.POLBlockID
	}
	return nil
}

func (x *Proposal) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *Proposal) GetBlockhash() []byte {
	if x != nil {
		return x.Blockhash
	}
	return nil
}

type NewRoundStepMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height                int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round                 int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Step                  int32 `protobuf:"varint,3,opt,name=step,proto3" json:"step,omitempty"`
	SecondsSinceStartTime int32 `protobuf:"varint,4,opt,name=secondsSinceStartTime,proto3" json:"secondsSinceStartTime,omitempty"`
	LastCommitRound       int32 `protobuf:"varint,5,opt,name=lastCommitRound,proto3" json:"lastCommitRound,omitempty"`
}

func (x *NewRoundStepMsg) Reset() {
	*x = NewRoundStepMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NewRoundStepMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NewRoundStepMsg) ProtoMessage() {}

func (x *NewRoundStepMsg) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NewRoundStepMsg.ProtoReflect.Descriptor instead.
func (*NewRoundStepMsg) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{16}
}

func (x *NewRoundStepMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *NewRoundStepMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *NewRoundStepMsg) GetStep() int32 {
	if x != nil {
		return x.Step
	}
	return 0
}

func (x *NewRoundStepMsg) GetSecondsSinceStartTime() int32 {
	if x != nil {
		return x.SecondsSinceStartTime
	}
	return 0
}

func (x *NewRoundStepMsg) GetLastCommitRound() int32 {
	if x != nil {
		return x.LastCommitRound
	}
	return 0
}

type ValidBlockMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height    int64  `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round     int32  `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Blockhash []byte `protobuf:"bytes,3,opt,name=blockhash,proto3" json:"blockhash,omitempty"`
	IsCommit  bool   `protobuf:"varint,4,opt,name=isCommit,proto3" json:"isCommit,omitempty"`
}

func (x *ValidBlockMsg) Reset() {
	*x = ValidBlockMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ValidBlockMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ValidBlockMsg) ProtoMessage() {}

func (x *ValidBlockMsg) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ValidBlockMsg.ProtoReflect.Descriptor instead.
func (*ValidBlockMsg) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{17}
}

func (x *ValidBlockMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *ValidBlockMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *ValidBlockMsg) GetBlockhash() []byte {
	if x != nil {
		return x.Blockhash
	}
	return nil
}

func (x *ValidBlockMsg) GetIsCommit() bool {
	if x != nil {
		return x.IsCommit
	}
	return false
}

type ProposalPOLMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height           int64               `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	ProposalPOLRound int32               `protobuf:"varint,2,opt,name=proposalPOLRound,proto3" json:"proposalPOLRound,omitempty"`
	ProposalPOL      *TendermintBitArray `protobuf:"bytes,3,opt,name=proposalPOL,proto3" json:"proposalPOL,omitempty"`
}

func (x *ProposalPOLMsg) Reset() {
	*x = ProposalPOLMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ProposalPOLMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ProposalPOLMsg) ProtoMessage() {}

func (x *ProposalPOLMsg) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ProposalPOLMsg.ProtoReflect.Descriptor instead.
func (*ProposalPOLMsg) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{18}
}

func (x *ProposalPOLMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *ProposalPOLMsg) GetProposalPOLRound() int32 {
	if x != nil {
		return x.ProposalPOLRound
	}
	return 0
}

func (x *ProposalPOLMsg) GetProposalPOL() *TendermintBitArray {
	if x != nil {
		return x.ProposalPOL
	}
	return nil
}

type HasVoteMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round  int32 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Type   int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
	Index  int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
}

func (x *HasVoteMsg) Reset() {
	*x = HasVoteMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *HasVoteMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HasVoteMsg) ProtoMessage() {}

func (x *HasVoteMsg) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HasVoteMsg.ProtoReflect.Descriptor instead.
func (*HasVoteMsg) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{19}
}

func (x *HasVoteMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *HasVoteMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *HasVoteMsg) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *HasVoteMsg) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

type VoteSetMaj23Msg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height  int64    `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round   int32    `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Type    int32    `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
	BlockID *BlockID `protobuf:"bytes,4,opt,name=blockID,proto3" json:"blockID,omitempty"`
}

func (x *VoteSetMaj23Msg) Reset() {
	*x = VoteSetMaj23Msg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VoteSetMaj23Msg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VoteSetMaj23Msg) ProtoMessage() {}

func (x *VoteSetMaj23Msg) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VoteSetMaj23Msg.ProtoReflect.Descriptor instead.
func (*VoteSetMaj23Msg) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{20}
}

func (x *VoteSetMaj23Msg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *VoteSetMaj23Msg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *VoteSetMaj23Msg) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *VoteSetMaj23Msg) GetBlockID() *BlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

type VoteSetBitsMsg struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Height  int64               `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	Round   int32               `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"`
	Type    int32               `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"`
	BlockID *BlockID            `protobuf:"bytes,4,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Votes   *TendermintBitArray `protobuf:"bytes,5,opt,name=votes,proto3" json:"votes,omitempty"`
}

func (x *VoteSetBitsMsg) Reset() {
	*x = VoteSetBitsMsg{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VoteSetBitsMsg) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VoteSetBitsMsg) ProtoMessage() {}

func (x *VoteSetBitsMsg) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VoteSetBitsMsg.ProtoReflect.Descriptor instead.
func (*VoteSetBitsMsg) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{21}
}

func (x *VoteSetBitsMsg) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *VoteSetBitsMsg) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *VoteSetBitsMsg) GetType() int32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *VoteSetBitsMsg) GetBlockID() *BlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *VoteSetBitsMsg) GetVotes() *TendermintBitArray {
	if x != nil {
		return x.Votes
	}
	return nil
}

type Heartbeat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ValidatorAddress []byte `protobuf:"bytes,1,opt,name=validatorAddress,proto3" json:"validatorAddress,omitempty"`
	ValidatorIndex   int32  `protobuf:"varint,2,opt,name=validatorIndex,proto3" json:"validatorIndex,omitempty"`
	Height           int64  `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Round            int32  `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"`
	Sequence         int32  `protobuf:"varint,5,opt,name=sequence,proto3" json:"sequence,omitempty"`
	Signature        []byte `protobuf:"bytes,6,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (x *Heartbeat) Reset() {
	*x = Heartbeat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Heartbeat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Heartbeat) ProtoMessage() {}

func (x *Heartbeat) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Heartbeat.ProtoReflect.Descriptor instead.
func (*Heartbeat) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{22}
}

func (x *Heartbeat) GetValidatorAddress() []byte {
	if x != nil {
		return x.ValidatorAddress
	}
	return nil
}

func (x *Heartbeat) GetValidatorIndex() int32 {
	if x != nil {
		return x.ValidatorIndex
	}
	return 0
}

func (x *Heartbeat) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *Heartbeat) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *Heartbeat) GetSequence() int32 {
	if x != nil {
		return x.Sequence
	}
	return 0
}

func (x *Heartbeat) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

type IsHealthy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IsHealthy bool `protobuf:"varint,1,opt,name=isHealthy,proto3" json:"isHealthy,omitempty"`
}

func (x *IsHealthy) Reset() {
	*x = IsHealthy{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *IsHealthy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*IsHealthy) ProtoMessage() {}

func (x *IsHealthy) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IsHealthy.ProtoReflect.Descriptor instead.
func (*IsHealthy) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{23}
}

func (x *IsHealthy) GetIsHealthy() bool {
	if x != nil {
		return x.IsHealthy
	}
	return false
}

type AggVote struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ValidatorAddress []byte              `protobuf:"bytes,1,opt,name=validatorAddress,proto3" json:"validatorAddress,omitempty"`
	ValidatorArray   *TendermintBitArray `protobuf:"bytes,2,opt,name=validatorArray,proto3" json:"validatorArray,omitempty"`
	Height           int64               `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"`
	Round            int32               `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"`
	Timestamp        int64               `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Type             uint32              `protobuf:"varint,6,opt,name=type,proto3" json:"type,omitempty"`
	BlockID          *BlockID            `protobuf:"bytes,7,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Signature        []byte              `protobuf:"bytes,8,opt,name=signature,proto3" json:"signature,omitempty"`
}

func (x *AggVote) Reset() {
	*x = AggVote{}
	if protoimpl.UnsafeEnabled {
		mi := &file_tendermint_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AggVote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AggVote) ProtoMessage() {}

func (x *AggVote) ProtoReflect() protoreflect.Message {
	mi := &file_tendermint_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AggVote.ProtoReflect.Descriptor instead.
func (*AggVote) Descriptor() ([]byte, []int) {
	return file_tendermint_proto_rawDescGZIP(), []int{24}
}

func (x *AggVote) GetValidatorAddress() []byte {
	if x != nil {
		return x.ValidatorAddress
	}
	return nil
}

func (x *AggVote) GetValidatorArray() *TendermintBitArray {
	if x != nil {
		return x.ValidatorArray
	}
	return nil
}

func (x *AggVote) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *AggVote) GetRound() int32 {
	if x != nil {
		return x.Round
	}
	return 0
}

func (x *AggVote) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *AggVote) GetType() uint32 {
	if x != nil {
		return x.Type
	}
	return 0
}

func (x *AggVote) GetBlockID() *BlockID {
	if x != nil {
		return x.BlockID
	}
	return nil
}

func (x *AggVote) GetSignature() []byte {
	if x != nil {
		return x.Signature
	}
	return nil
}

var File_tendermint_proto protoreflect.FileDescriptor

var file_tendermint_proto_rawDesc = []byte{
	0x0a, 0x10, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1d, 0x0a, 0x07, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x3e, 0x0a, 0x12, 0x54, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x42, 0x69, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79,
	0x12, 0x12, 0x0a, 0x04, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x62, 0x69, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x04, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x22, 0xa0, 0x02, 0x0a, 0x04, 0x56,
	0x6f, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
	0x26, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
	0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
	0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
	0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x41, 0x67, 0x67, 0x53, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x09, 0x75, 0x73, 0x65, 0x41, 0x67, 0x67, 0x53, 0x69, 0x67, 0x22, 0x93, 0x01,
	0x0a, 0x10, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63,
	0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x0a,
	0x70, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x0a, 0x70,
	0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x07, 0x61, 0x67, 0x67,
	0x56, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x41, 0x67, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x07, 0x61, 0x67, 0x67, 0x56,
	0x6f, 0x74, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x05, 0x73,
	0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x2b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
	0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x05,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x57, 0x0a, 0x09, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79,
	0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79,
	0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x73, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x78, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d,
	0x61, 0x78, 0x47, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78,
	0x47, 0x61, 0x73, 0x22, 0x3c, 0x0a, 0x06, 0x54, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a,
	0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78,
	0x47, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x47, 0x61,
	0x73, 0x22, 0x3d, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70,
	0x12, 0x2e, 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x74, 0x53, 0x69, 0x7a,
	0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x62, 0x6c,
	0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73,
	0x22, 0x28, 0x0a, 0x0e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61,
	0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x0f, 0x43,
	0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e,
	0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53,
	0x69, 0x7a, 0x65, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x25,
	0x0a, 0x06, 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x06, 0x74,
	0x78, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f,
	0x73, 0x73, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x79, 0x70,
	0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x52, 0x0b,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x3d, 0x0a, 0x0e, 0x65,
	0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x45, 0x76, 0x69, 0x64,
	0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, 0x65, 0x76, 0x69, 0x64,
	0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x75, 0x0a, 0x09, 0x56, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
	0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
	0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x74,
	0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
	0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61,
	0x63, 0x63, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x61, 0x63, 0x63, 0x75,
	0x6d, 0x22, 0x6e, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65,
	0x74, 0x12, 0x30, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65,
	0x72, 0x22, 0xd5, 0x04, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63,
	0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68,
	0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f,
	0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f,
	0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
	0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x74, 0x61,
	0x6c, 0x54, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x78, 0x12, 0x30, 0x0a, 0x0b, 0x6c,
	0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44,
	0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x24, 0x0a,
	0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x6f, 0x72, 0x53, 0x65, 0x74, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x1b, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x6c, 0x61, 0x73, 0x74,
	0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73,
	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65,
	0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73,
	0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e,
	0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x20, 0x6c, 0x61, 0x73,
	0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73,
	0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43,
	0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x43, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f,
	0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12,
	0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x07, 0x61, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x22, 0xb7, 0x03, 0x0a, 0x15, 0x54, 0x65,
	0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a,
	0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12,
	0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x30, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x42,
	0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74,
	0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x0b, 0x6c, 0x61,
	0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x54, 0x78, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x6f, 0x74,
	0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6c,
	0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a,
	0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72,
	0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73,
	0x75, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x63, 0x6f,
	0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x61,
	0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70,
	0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f,
	0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x61, 0x73, 0x68, 0x12,
	0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x41,
	0x64, 0x64, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12,
	0x37, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x65, 0x6e, 0x64,
	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0a, 0x6c, 0x61,
	0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0xde, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f,
	0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f,
	0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x2e, 0x0a,
	0x0a, 0x50, 0x4f, 0x4c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x44, 0x52, 0x0a, 0x50, 0x4f, 0x4c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x1c, 0x0a,
	0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x62,
	0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09,
	0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68, 0x22, 0xb3, 0x01, 0x0a, 0x0f, 0x4e, 0x65,
	0x77, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x65, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a,
	0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73,
	0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x12,
	0x34, 0x0a, 0x15, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15,
	0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f,
	0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x22,
	0x77, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x73, 0x67,
	0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c,
	0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0c, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1a, 0x0a, 0x08,
	0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x69, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f,
	0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f, 0x4c, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x68,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50,
	0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x70,
	0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f, 0x4c, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12,
	0x3b, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f, 0x4c, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x65, 0x6e,
	0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x42, 0x69, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52,
	0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x50, 0x4f, 0x4c, 0x22, 0x64, 0x0a, 0x0a,
	0x48, 0x61, 0x73, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05,
	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64,
	0x65, 0x78, 0x22, 0x7d, 0x0a, 0x0f, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x6a,
	0x32, 0x33, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a,
	0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f,
	0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
	0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x44, 0x22, 0xad, 0x01, 0x0a, 0x0e, 0x56, 0x6f, 0x74, 0x65, 0x53, 0x65, 0x74, 0x42, 0x69, 0x74,
	0x73, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05,
	0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49,
	0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44,
	0x12, 0x2f, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x19, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69,
	0x6e, 0x74, 0x42, 0x69, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65,
	0x73, 0x22, 0xc7, 0x01, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12,
	0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72,
	0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e,
	0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a,
	0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x29, 0x0a, 0x09, 0x49,
	0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x48, 0x65,
	0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x48,
	0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x22, 0xa0, 0x02, 0x0a, 0x07, 0x41, 0x67, 0x67, 0x56, 0x6f,
	0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41,
	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41,
	0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x54,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x42, 0x69, 0x74, 0x41, 0x72, 0x72, 0x61,
	0x79, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x72, 0x72, 0x61,
	0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75,
	0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12,
	0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x12, 0x28, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
	0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73,
	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09,
	0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f,
	0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_tendermint_proto_rawDescOnce sync.Once
	file_tendermint_proto_rawDescData = file_tendermint_proto_rawDesc
)

func file_tendermint_proto_rawDescGZIP() []byte {
	file_tendermint_proto_rawDescOnce.Do(func() {
		file_tendermint_proto_rawDescData = protoimpl.X.CompressGZIP(file_tendermint_proto_rawDescData)
	})
	return file_tendermint_proto_rawDescData
}

var file_tendermint_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_tendermint_proto_goTypes = []interface{}{
	(*BlockID)(nil),               // 0: types.BlockID
	(*TendermintBitArray)(nil),    // 1: types.TendermintBitArray
	(*Vote)(nil),                  // 2: types.Vote
	(*TendermintCommit)(nil),      // 3: types.TendermintCommit
	(*TendermintBlockInfo)(nil),   // 4: types.TendermintBlockInfo
	(*BlockSize)(nil),             // 5: types.BlockSize
	(*TxSize)(nil),                // 6: types.TxSize
	(*BlockGossip)(nil),           // 7: types.BlockGossip
	(*EvidenceParams)(nil),        // 8: types.EvidenceParams
	(*ConsensusParams)(nil),       // 9: types.ConsensusParams
	(*Validator)(nil),             // 10: types.Validator
	(*ValidatorSet)(nil),          // 11: types.ValidatorSet
	(*State)(nil),                 // 12: types.State
	(*TendermintBlockHeader)(nil), // 13: types.TendermintBlockHeader
	(*TendermintBlock)(nil),       // 14: types.TendermintBlock
	(*Proposal)(nil),              // 15: types.Proposal
	(*NewRoundStepMsg)(nil),       // 16: types.NewRoundStepMsg
	(*ValidBlockMsg)(nil),         // 17: types.ValidBlockMsg
	(*ProposalPOLMsg)(nil),        // 18: types.ProposalPOLMsg
	(*HasVoteMsg)(nil),            // 19: types.HasVoteMsg
	(*VoteSetMaj23Msg)(nil),       // 20: types.VoteSetMaj23Msg
	(*VoteSetBitsMsg)(nil),        // 21: types.VoteSetBitsMsg
	(*Heartbeat)(nil),             // 22: types.Heartbeat
	(*IsHealthy)(nil),             // 23: types.IsHealthy
	(*AggVote)(nil),               // 24: types.AggVote
	(*types.Block)(nil),           // 25: types.Block
}
var file_tendermint_proto_depIdxs = []int32{
	0,  // 0: types.Vote.blockID:type_name -> types.BlockID
	0,  // 1: types.TendermintCommit.blockID:type_name -> types.BlockID
	2,  // 2: types.TendermintCommit.precommits:type_name -> types.Vote
	24, // 3: types.TendermintCommit.aggVote:type_name -> types.AggVote
	12, // 4: types.TendermintBlockInfo.state:type_name -> types.State
	15, // 5: types.TendermintBlockInfo.proposal:type_name -> types.Proposal
	14, // 6: types.TendermintBlockInfo.block:type_name -> types.TendermintBlock
	5,  // 7: types.ConsensusParams.blockSize:type_name -> types.BlockSize
	6,  // 8: types.ConsensusParams.txSize:type_name -> types.TxSize
	7,  // 9: types.ConsensusParams.blockGossip:type_name -> types.BlockGossip
	8,  // 10: types.ConsensusParams.evidenceParams:type_name -> types.EvidenceParams
	10, // 11: types.ValidatorSet.validators:type_name -> types.Validator
	10, // 12: types.ValidatorSet.proposer:type_name -> types.Validator
	0,  // 13: types.State.lastBlockID:type_name -> types.BlockID
	11, // 14: types.State.validators:type_name -> types.ValidatorSet
	11, // 15: types.State.lastValidators:type_name -> types.ValidatorSet
	9,  // 16: types.State.consensusParams:type_name -> types.ConsensusParams
	0,  // 17: types.TendermintBlockHeader.lastBlockID:type_name -> types.BlockID
	13, // 18: types.TendermintBlock.header:type_name -> types.TendermintBlockHeader
	25, // 19: types.TendermintBlock.data:type_name -> types.Block
	3,  // 20: types.TendermintBlock.lastCommit:type_name -> types.TendermintCommit
	0,  // 21: types.Proposal.POLBlockID:type_name -> types.BlockID
	1,  // 22: types.ProposalPOLMsg.proposalPOL:type_name -> types.TendermintBitArray
	0,  // 23: types.VoteSetMaj23Msg.blockID:type_name -> types.BlockID
	0,  // 24: types.VoteSetBitsMsg.blockID:type_name -> types.BlockID
	1,  // 25: types.VoteSetBitsMsg.votes:type_name -> types.TendermintBitArray
	1,  // 26: types.AggVote.validatorArray:type_name -> types.TendermintBitArray
	0,  // 27: types.AggVote.blockID:type_name -> types.BlockID
	28, // [28:28] is the sub-list for method output_type
	28, // [28:28] is the sub-list for method input_type
	28, // [28:28] is the sub-list for extension type_name
	28, // [28:28] is the sub-list for extension extendee
	0,  // [0:28] is the sub-list for field type_name
}

func init() { file_tendermint_proto_init() }
func file_tendermint_proto_init() {
	if File_tendermint_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_tendermint_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlockID); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TendermintBitArray); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Vote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TendermintCommit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TendermintBlockInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlockSize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TxSize); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlockGossip); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EvidenceParams); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConsensusParams); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Validator); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValidatorSet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*State); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TendermintBlockHeader); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TendermintBlock); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Proposal); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NewRoundStepMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValidBlockMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProposalPOLMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HasVoteMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VoteSetMaj23Msg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VoteSetBitsMsg); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Heartbeat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IsHealthy); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_tendermint_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AggVote); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_tendermint_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_tendermint_proto_goTypes,
		DependencyIndexes: file_tendermint_proto_depIdxs,
		MessageInfos:      file_tendermint_proto_msgTypes,
	}.Build()
	File_tendermint_proto = out.File
	file_tendermint_proto_rawDesc = nil
	file_tendermint_proto_goTypes = nil
	file_tendermint_proto_depIdxs = nil
}
