// Code generated by protoc-gen-go. DO NOT EDIT.
// source: qbft.proto

package types

import (
	fmt "fmt"
	math "math"

	types "github.com/33cn/chain33/types"
	proto "github.com/golang/protobuf/proto"
)

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

// 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.ProtoPackageIsVersion3 // please upgrade the proto package

type QbftBlockID struct {
	Hash                 []byte   `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftBlockID) Reset()         { *m = QbftBlockID{} }
func (m *QbftBlockID) String() string { return proto.CompactTextString(m) }
func (*QbftBlockID) ProtoMessage()    {}
func (*QbftBlockID) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{0}
}

func (m *QbftBlockID) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftBlockID.Unmarshal(m, b)
}
func (m *QbftBlockID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftBlockID.Marshal(b, m, deterministic)
}
func (m *QbftBlockID) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftBlockID.Merge(m, src)
}
func (m *QbftBlockID) XXX_Size() int {
	return xxx_messageInfo_QbftBlockID.Size(m)
}
func (m *QbftBlockID) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftBlockID.DiscardUnknown(m)
}

var xxx_messageInfo_QbftBlockID proto.InternalMessageInfo

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

type QbftBitArray struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftBitArray) Reset()         { *m = QbftBitArray{} }
func (m *QbftBitArray) String() string { return proto.CompactTextString(m) }
func (*QbftBitArray) ProtoMessage()    {}
func (*QbftBitArray) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{1}
}

func (m *QbftBitArray) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftBitArray.Unmarshal(m, b)
}
func (m *QbftBitArray) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftBitArray.Marshal(b, m, deterministic)
}
func (m *QbftBitArray) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftBitArray.Merge(m, src)
}
func (m *QbftBitArray) XXX_Size() int {
	return xxx_messageInfo_QbftBitArray.Size(m)
}
func (m *QbftBitArray) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftBitArray.DiscardUnknown(m)
}

var xxx_messageInfo_QbftBitArray proto.InternalMessageInfo

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

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

type QbftVote struct {
	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              *QbftBlockID `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"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *QbftVote) Reset()         { *m = QbftVote{} }
func (m *QbftVote) String() string { return proto.CompactTextString(m) }
func (*QbftVote) ProtoMessage()    {}
func (*QbftVote) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{2}
}

func (m *QbftVote) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftVote.Unmarshal(m, b)
}
func (m *QbftVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftVote.Marshal(b, m, deterministic)
}
func (m *QbftVote) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftVote.Merge(m, src)
}
func (m *QbftVote) XXX_Size() int {
	return xxx_messageInfo_QbftVote.Size(m)
}
func (m *QbftVote) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftVote.DiscardUnknown(m)
}

var xxx_messageInfo_QbftVote proto.InternalMessageInfo

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

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

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

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

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

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

func (m *QbftVote) GetBlockID() *QbftBlockID {
	if m != nil {
		return m.BlockID
	}
	return nil
}

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

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

type QbftCommit struct {
	BlockID              *QbftBlockID `protobuf:"bytes,1,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Prevotes             []*QbftVote  `protobuf:"bytes,2,rep,name=prevotes,proto3" json:"prevotes,omitempty"`
	Precommits           []*QbftVote  `protobuf:"bytes,3,rep,name=precommits,proto3" json:"precommits,omitempty"`
	AggVote              *QbftAggVote `protobuf:"bytes,4,opt,name=aggVote,proto3" json:"aggVote,omitempty"`
	VoteType             uint32       `protobuf:"varint,5,opt,name=voteType,proto3" json:"voteType,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *QbftCommit) Reset()         { *m = QbftCommit{} }
func (m *QbftCommit) String() string { return proto.CompactTextString(m) }
func (*QbftCommit) ProtoMessage()    {}
func (*QbftCommit) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{3}
}

func (m *QbftCommit) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftCommit.Unmarshal(m, b)
}
func (m *QbftCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftCommit.Marshal(b, m, deterministic)
}
func (m *QbftCommit) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftCommit.Merge(m, src)
}
func (m *QbftCommit) XXX_Size() int {
	return xxx_messageInfo_QbftCommit.Size(m)
}
func (m *QbftCommit) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftCommit.DiscardUnknown(m)
}

var xxx_messageInfo_QbftCommit proto.InternalMessageInfo

func (m *QbftCommit) GetBlockID() *QbftBlockID {
	if m != nil {
		return m.BlockID
	}
	return nil
}

func (m *QbftCommit) GetPrevotes() []*QbftVote {
	if m != nil {
		return m.Prevotes
	}
	return nil
}

func (m *QbftCommit) GetPrecommits() []*QbftVote {
	if m != nil {
		return m.Precommits
	}
	return nil
}

func (m *QbftCommit) GetAggVote() *QbftAggVote {
	if m != nil {
		return m.AggVote
	}
	return nil
}

func (m *QbftCommit) GetVoteType() uint32 {
	if m != nil {
		return m.VoteType
	}
	return 0
}

type QbftBlockInfo struct {
	State                *QbftState    `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
	Proposal             *QbftProposal `protobuf:"bytes,2,opt,name=proposal,proto3" json:"proposal,omitempty"`
	Block                *QbftBlock    `protobuf:"bytes,3,opt,name=block,proto3" json:"block,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *QbftBlockInfo) Reset()         { *m = QbftBlockInfo{} }
func (m *QbftBlockInfo) String() string { return proto.CompactTextString(m) }
func (*QbftBlockInfo) ProtoMessage()    {}
func (*QbftBlockInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{4}
}

func (m *QbftBlockInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftBlockInfo.Unmarshal(m, b)
}
func (m *QbftBlockInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftBlockInfo.Marshal(b, m, deterministic)
}
func (m *QbftBlockInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftBlockInfo.Merge(m, src)
}
func (m *QbftBlockInfo) XXX_Size() int {
	return xxx_messageInfo_QbftBlockInfo.Size(m)
}
func (m *QbftBlockInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftBlockInfo.DiscardUnknown(m)
}

var xxx_messageInfo_QbftBlockInfo proto.InternalMessageInfo

func (m *QbftBlockInfo) GetState() *QbftState {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *QbftBlockInfo) GetProposal() *QbftProposal {
	if m != nil {
		return m.Proposal
	}
	return nil
}

func (m *QbftBlockInfo) GetBlock() *QbftBlock {
	if m != nil {
		return m.Block
	}
	return nil
}

type QbftBlockSize struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftBlockSize) Reset()         { *m = QbftBlockSize{} }
func (m *QbftBlockSize) String() string { return proto.CompactTextString(m) }
func (*QbftBlockSize) ProtoMessage()    {}
func (*QbftBlockSize) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{5}
}

func (m *QbftBlockSize) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftBlockSize.Unmarshal(m, b)
}
func (m *QbftBlockSize) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftBlockSize.Marshal(b, m, deterministic)
}
func (m *QbftBlockSize) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftBlockSize.Merge(m, src)
}
func (m *QbftBlockSize) XXX_Size() int {
	return xxx_messageInfo_QbftBlockSize.Size(m)
}
func (m *QbftBlockSize) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftBlockSize.DiscardUnknown(m)
}

var xxx_messageInfo_QbftBlockSize proto.InternalMessageInfo

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

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

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

type QbftTxSize struct {
	MaxBytes             int32    `protobuf:"varint,1,opt,name=maxBytes,proto3" json:"maxBytes,omitempty"`
	MaxGas               int64    `protobuf:"varint,2,opt,name=maxGas,proto3" json:"maxGas,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftTxSize) Reset()         { *m = QbftTxSize{} }
func (m *QbftTxSize) String() string { return proto.CompactTextString(m) }
func (*QbftTxSize) ProtoMessage()    {}
func (*QbftTxSize) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{6}
}

func (m *QbftTxSize) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftTxSize.Unmarshal(m, b)
}
func (m *QbftTxSize) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftTxSize.Marshal(b, m, deterministic)
}
func (m *QbftTxSize) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftTxSize.Merge(m, src)
}
func (m *QbftTxSize) XXX_Size() int {
	return xxx_messageInfo_QbftTxSize.Size(m)
}
func (m *QbftTxSize) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftTxSize.DiscardUnknown(m)
}

var xxx_messageInfo_QbftTxSize proto.InternalMessageInfo

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

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

type QbftBlockGossip struct {
	BlockPartSizeBytes   int32    `protobuf:"varint,1,opt,name=blockPartSizeBytes,proto3" json:"blockPartSizeBytes,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftBlockGossip) Reset()         { *m = QbftBlockGossip{} }
func (m *QbftBlockGossip) String() string { return proto.CompactTextString(m) }
func (*QbftBlockGossip) ProtoMessage()    {}
func (*QbftBlockGossip) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{7}
}

func (m *QbftBlockGossip) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftBlockGossip.Unmarshal(m, b)
}
func (m *QbftBlockGossip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftBlockGossip.Marshal(b, m, deterministic)
}
func (m *QbftBlockGossip) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftBlockGossip.Merge(m, src)
}
func (m *QbftBlockGossip) XXX_Size() int {
	return xxx_messageInfo_QbftBlockGossip.Size(m)
}
func (m *QbftBlockGossip) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftBlockGossip.DiscardUnknown(m)
}

var xxx_messageInfo_QbftBlockGossip proto.InternalMessageInfo

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

type QbftEvidenceParams struct {
	MaxAge               int64    `protobuf:"varint,1,opt,name=maxAge,proto3" json:"maxAge,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftEvidenceParams) Reset()         { *m = QbftEvidenceParams{} }
func (m *QbftEvidenceParams) String() string { return proto.CompactTextString(m) }
func (*QbftEvidenceParams) ProtoMessage()    {}
func (*QbftEvidenceParams) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{8}
}

func (m *QbftEvidenceParams) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftEvidenceParams.Unmarshal(m, b)
}
func (m *QbftEvidenceParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftEvidenceParams.Marshal(b, m, deterministic)
}
func (m *QbftEvidenceParams) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftEvidenceParams.Merge(m, src)
}
func (m *QbftEvidenceParams) XXX_Size() int {
	return xxx_messageInfo_QbftEvidenceParams.Size(m)
}
func (m *QbftEvidenceParams) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftEvidenceParams.DiscardUnknown(m)
}

var xxx_messageInfo_QbftEvidenceParams proto.InternalMessageInfo

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

type QbftConsensusParams struct {
	BlockSize            *QbftBlockSize      `protobuf:"bytes,1,opt,name=blockSize,proto3" json:"blockSize,omitempty"`
	TxSize               *QbftTxSize         `protobuf:"bytes,2,opt,name=txSize,proto3" json:"txSize,omitempty"`
	BlockGossip          *QbftBlockGossip    `protobuf:"bytes,3,opt,name=blockGossip,proto3" json:"blockGossip,omitempty"`
	EvidenceParams       *QbftEvidenceParams `protobuf:"bytes,4,opt,name=evidenceParams,proto3" json:"evidenceParams,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *QbftConsensusParams) Reset()         { *m = QbftConsensusParams{} }
func (m *QbftConsensusParams) String() string { return proto.CompactTextString(m) }
func (*QbftConsensusParams) ProtoMessage()    {}
func (*QbftConsensusParams) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{9}
}

func (m *QbftConsensusParams) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftConsensusParams.Unmarshal(m, b)
}
func (m *QbftConsensusParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftConsensusParams.Marshal(b, m, deterministic)
}
func (m *QbftConsensusParams) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftConsensusParams.Merge(m, src)
}
func (m *QbftConsensusParams) XXX_Size() int {
	return xxx_messageInfo_QbftConsensusParams.Size(m)
}
func (m *QbftConsensusParams) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftConsensusParams.DiscardUnknown(m)
}

var xxx_messageInfo_QbftConsensusParams proto.InternalMessageInfo

func (m *QbftConsensusParams) GetBlockSize() *QbftBlockSize {
	if m != nil {
		return m.BlockSize
	}
	return nil
}

func (m *QbftConsensusParams) GetTxSize() *QbftTxSize {
	if m != nil {
		return m.TxSize
	}
	return nil
}

func (m *QbftConsensusParams) GetBlockGossip() *QbftBlockGossip {
	if m != nil {
		return m.BlockGossip
	}
	return nil
}

func (m *QbftConsensusParams) GetEvidenceParams() *QbftEvidenceParams {
	if m != nil {
		return m.EvidenceParams
	}
	return nil
}

type QbftValidator struct {
	Address              string   `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	PubKey               string   `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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftValidator) Reset()         { *m = QbftValidator{} }
func (m *QbftValidator) String() string { return proto.CompactTextString(m) }
func (*QbftValidator) ProtoMessage()    {}
func (*QbftValidator) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{10}
}

func (m *QbftValidator) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftValidator.Unmarshal(m, b)
}
func (m *QbftValidator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftValidator.Marshal(b, m, deterministic)
}
func (m *QbftValidator) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftValidator.Merge(m, src)
}
func (m *QbftValidator) XXX_Size() int {
	return xxx_messageInfo_QbftValidator.Size(m)
}
func (m *QbftValidator) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftValidator.DiscardUnknown(m)
}

var xxx_messageInfo_QbftValidator proto.InternalMessageInfo

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

func (m *QbftValidator) GetPubKey() string {
	if m != nil {
		return m.PubKey
	}
	return ""
}

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

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

type QbftValidatorSet struct {
	Validators           []*QbftValidator `protobuf:"bytes,1,rep,name=validators,proto3" json:"validators,omitempty"`
	Proposer             *QbftValidator   `protobuf:"bytes,2,opt,name=proposer,proto3" json:"proposer,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *QbftValidatorSet) Reset()         { *m = QbftValidatorSet{} }
func (m *QbftValidatorSet) String() string { return proto.CompactTextString(m) }
func (*QbftValidatorSet) ProtoMessage()    {}
func (*QbftValidatorSet) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{11}
}

func (m *QbftValidatorSet) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftValidatorSet.Unmarshal(m, b)
}
func (m *QbftValidatorSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftValidatorSet.Marshal(b, m, deterministic)
}
func (m *QbftValidatorSet) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftValidatorSet.Merge(m, src)
}
func (m *QbftValidatorSet) XXX_Size() int {
	return xxx_messageInfo_QbftValidatorSet.Size(m)
}
func (m *QbftValidatorSet) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftValidatorSet.DiscardUnknown(m)
}

var xxx_messageInfo_QbftValidatorSet proto.InternalMessageInfo

func (m *QbftValidatorSet) GetValidators() []*QbftValidator {
	if m != nil {
		return m.Validators
	}
	return nil
}

func (m *QbftValidatorSet) GetProposer() *QbftValidator {
	if m != nil {
		return m.Proposer
	}
	return nil
}

type QbftState struct {
	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                      *QbftBlockID         `protobuf:"bytes,4,opt,name=lastBlockID,proto3" json:"lastBlockID,omitempty"`
	LastBlockTime                    int64                `protobuf:"varint,5,opt,name=lastBlockTime,proto3" json:"lastBlockTime,omitempty"`
	Validators                       *QbftValidatorSet    `protobuf:"bytes,6,opt,name=validators,proto3" json:"validators,omitempty"`
	LastValidators                   *QbftValidatorSet    `protobuf:"bytes,7,opt,name=lastValidators,proto3" json:"lastValidators,omitempty"`
	LastHeightValidatorsChanged      int64                `protobuf:"varint,8,opt,name=lastHeightValidatorsChanged,proto3" json:"lastHeightValidatorsChanged,omitempty"`
	ConsensusParams                  *QbftConsensusParams `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"`
	Sequence                         int64                `protobuf:"varint,13,opt,name=sequence,proto3" json:"sequence,omitempty"`
	LastSequence                     int64                `protobuf:"varint,14,opt,name=lastSequence,proto3" json:"lastSequence,omitempty"`
	LastCommitRound                  int64                `protobuf:"varint,15,opt,name=lastCommitRound,proto3" json:"lastCommitRound,omitempty"`
	XXX_NoUnkeyedLiteral             struct{}             `json:"-"`
	XXX_unrecognized                 []byte               `json:"-"`
	XXX_sizecache                    int32                `json:"-"`
}

func (m *QbftState) Reset()         { *m = QbftState{} }
func (m *QbftState) String() string { return proto.CompactTextString(m) }
func (*QbftState) ProtoMessage()    {}
func (*QbftState) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{12}
}

func (m *QbftState) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftState.Unmarshal(m, b)
}
func (m *QbftState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftState.Marshal(b, m, deterministic)
}
func (m *QbftState) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftState.Merge(m, src)
}
func (m *QbftState) XXX_Size() int {
	return xxx_messageInfo_QbftState.Size(m)
}
func (m *QbftState) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftState.DiscardUnknown(m)
}

var xxx_messageInfo_QbftState proto.InternalMessageInfo

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

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

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

func (m *QbftState) GetLastBlockID() *QbftBlockID {
	if m != nil {
		return m.LastBlockID
	}
	return nil
}

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

func (m *QbftState) GetValidators() *QbftValidatorSet {
	if m != nil {
		return m.Validators
	}
	return nil
}

func (m *QbftState) GetLastValidators() *QbftValidatorSet {
	if m != nil {
		return m.LastValidators
	}
	return nil
}

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

func (m *QbftState) GetConsensusParams() *QbftConsensusParams {
	if m != nil {
		return m.ConsensusParams
	}
	return nil
}

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

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

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

func (m *QbftState) GetSequence() int64 {
	if m != nil {
		return m.Sequence
	}
	return 0
}

func (m *QbftState) GetLastSequence() int64 {
	if m != nil {
		return m.LastSequence
	}
	return 0
}

func (m *QbftState) GetLastCommitRound() int64 {
	if m != nil {
		return m.LastCommitRound
	}
	return 0
}

type QbftBlockHeader struct {
	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          *QbftBlockID `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"`
	Sequence             int64        `protobuf:"varint,14,opt,name=sequence,proto3" json:"sequence,omitempty"`
	LastSequence         int64        `protobuf:"varint,15,opt,name=lastSequence,proto3" json:"lastSequence,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *QbftBlockHeader) Reset()         { *m = QbftBlockHeader{} }
func (m *QbftBlockHeader) String() string { return proto.CompactTextString(m) }
func (*QbftBlockHeader) ProtoMessage()    {}
func (*QbftBlockHeader) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{13}
}

func (m *QbftBlockHeader) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftBlockHeader.Unmarshal(m, b)
}
func (m *QbftBlockHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftBlockHeader.Marshal(b, m, deterministic)
}
func (m *QbftBlockHeader) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftBlockHeader.Merge(m, src)
}
func (m *QbftBlockHeader) XXX_Size() int {
	return xxx_messageInfo_QbftBlockHeader.Size(m)
}
func (m *QbftBlockHeader) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftBlockHeader.DiscardUnknown(m)
}

var xxx_messageInfo_QbftBlockHeader proto.InternalMessageInfo

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

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

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

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

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

func (m *QbftBlockHeader) GetLastBlockID() *QbftBlockID {
	if m != nil {
		return m.LastBlockID
	}
	return nil
}

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

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

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

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

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

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

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

func (m *QbftBlockHeader) GetSequence() int64 {
	if m != nil {
		return m.Sequence
	}
	return 0
}

func (m *QbftBlockHeader) GetLastSequence() int64 {
	if m != nil {
		return m.LastSequence
	}
	return 0
}

type QbftBlock struct {
	Header               *QbftBlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	Data                 *types.Block     `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	LastCommit           *QbftCommit      `protobuf:"bytes,4,opt,name=lastCommit,proto3" json:"lastCommit,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *QbftBlock) Reset()         { *m = QbftBlock{} }
func (m *QbftBlock) String() string { return proto.CompactTextString(m) }
func (*QbftBlock) ProtoMessage()    {}
func (*QbftBlock) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{14}
}

func (m *QbftBlock) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftBlock.Unmarshal(m, b)
}
func (m *QbftBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftBlock.Marshal(b, m, deterministic)
}
func (m *QbftBlock) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftBlock.Merge(m, src)
}
func (m *QbftBlock) XXX_Size() int {
	return xxx_messageInfo_QbftBlock.Size(m)
}
func (m *QbftBlock) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftBlock.DiscardUnknown(m)
}

var xxx_messageInfo_QbftBlock proto.InternalMessageInfo

func (m *QbftBlock) GetHeader() *QbftBlockHeader {
	if m != nil {
		return m.Header
	}
	return nil
}

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

func (m *QbftBlock) GetLastCommit() *QbftCommit {
	if m != nil {
		return m.LastCommit
	}
	return nil
}

type QbftProposal struct {
	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           *QbftBlockID `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"`
	Sequence             int64        `protobuf:"varint,8,opt,name=sequence,proto3" json:"sequence,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *QbftProposal) Reset()         { *m = QbftProposal{} }
func (m *QbftProposal) String() string { return proto.CompactTextString(m) }
func (*QbftProposal) ProtoMessage()    {}
func (*QbftProposal) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{15}
}

func (m *QbftProposal) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftProposal.Unmarshal(m, b)
}
func (m *QbftProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftProposal.Marshal(b, m, deterministic)
}
func (m *QbftProposal) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftProposal.Merge(m, src)
}
func (m *QbftProposal) XXX_Size() int {
	return xxx_messageInfo_QbftProposal.Size(m)
}
func (m *QbftProposal) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftProposal.DiscardUnknown(m)
}

var xxx_messageInfo_QbftProposal proto.InternalMessageInfo

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

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

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

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

func (m *QbftProposal) GetPOLBlockID() *QbftBlockID {
	if m != nil {
		return m.POLBlockID
	}
	return nil
}

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

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

func (m *QbftProposal) GetSequence() int64 {
	if m != nil {
		return m.Sequence
	}
	return 0
}

type QbftNewRoundStepMsg struct {
	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"`
	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
	XXX_unrecognized      []byte   `json:"-"`
	XXX_sizecache         int32    `json:"-"`
}

func (m *QbftNewRoundStepMsg) Reset()         { *m = QbftNewRoundStepMsg{} }
func (m *QbftNewRoundStepMsg) String() string { return proto.CompactTextString(m) }
func (*QbftNewRoundStepMsg) ProtoMessage()    {}
func (*QbftNewRoundStepMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{16}
}

func (m *QbftNewRoundStepMsg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftNewRoundStepMsg.Unmarshal(m, b)
}
func (m *QbftNewRoundStepMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftNewRoundStepMsg.Marshal(b, m, deterministic)
}
func (m *QbftNewRoundStepMsg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftNewRoundStepMsg.Merge(m, src)
}
func (m *QbftNewRoundStepMsg) XXX_Size() int {
	return xxx_messageInfo_QbftNewRoundStepMsg.Size(m)
}
func (m *QbftNewRoundStepMsg) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftNewRoundStepMsg.DiscardUnknown(m)
}

var xxx_messageInfo_QbftNewRoundStepMsg proto.InternalMessageInfo

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

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

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

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

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

type QbftValidBlockMsg struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftValidBlockMsg) Reset()         { *m = QbftValidBlockMsg{} }
func (m *QbftValidBlockMsg) String() string { return proto.CompactTextString(m) }
func (*QbftValidBlockMsg) ProtoMessage()    {}
func (*QbftValidBlockMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{17}
}

func (m *QbftValidBlockMsg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftValidBlockMsg.Unmarshal(m, b)
}
func (m *QbftValidBlockMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftValidBlockMsg.Marshal(b, m, deterministic)
}
func (m *QbftValidBlockMsg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftValidBlockMsg.Merge(m, src)
}
func (m *QbftValidBlockMsg) XXX_Size() int {
	return xxx_messageInfo_QbftValidBlockMsg.Size(m)
}
func (m *QbftValidBlockMsg) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftValidBlockMsg.DiscardUnknown(m)
}

var xxx_messageInfo_QbftValidBlockMsg proto.InternalMessageInfo

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

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

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

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

type QbftProposalPOLMsg struct {
	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          *QbftBitArray `protobuf:"bytes,3,opt,name=proposalPOL,proto3" json:"proposalPOL,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *QbftProposalPOLMsg) Reset()         { *m = QbftProposalPOLMsg{} }
func (m *QbftProposalPOLMsg) String() string { return proto.CompactTextString(m) }
func (*QbftProposalPOLMsg) ProtoMessage()    {}
func (*QbftProposalPOLMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{18}
}

func (m *QbftProposalPOLMsg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftProposalPOLMsg.Unmarshal(m, b)
}
func (m *QbftProposalPOLMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftProposalPOLMsg.Marshal(b, m, deterministic)
}
func (m *QbftProposalPOLMsg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftProposalPOLMsg.Merge(m, src)
}
func (m *QbftProposalPOLMsg) XXX_Size() int {
	return xxx_messageInfo_QbftProposalPOLMsg.Size(m)
}
func (m *QbftProposalPOLMsg) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftProposalPOLMsg.DiscardUnknown(m)
}

var xxx_messageInfo_QbftProposalPOLMsg proto.InternalMessageInfo

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

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

func (m *QbftProposalPOLMsg) GetProposalPOL() *QbftBitArray {
	if m != nil {
		return m.ProposalPOL
	}
	return nil
}

type QbftHasVoteMsg struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftHasVoteMsg) Reset()         { *m = QbftHasVoteMsg{} }
func (m *QbftHasVoteMsg) String() string { return proto.CompactTextString(m) }
func (*QbftHasVoteMsg) ProtoMessage()    {}
func (*QbftHasVoteMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{19}
}

func (m *QbftHasVoteMsg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftHasVoteMsg.Unmarshal(m, b)
}
func (m *QbftHasVoteMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftHasVoteMsg.Marshal(b, m, deterministic)
}
func (m *QbftHasVoteMsg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftHasVoteMsg.Merge(m, src)
}
func (m *QbftHasVoteMsg) XXX_Size() int {
	return xxx_messageInfo_QbftHasVoteMsg.Size(m)
}
func (m *QbftHasVoteMsg) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftHasVoteMsg.DiscardUnknown(m)
}

var xxx_messageInfo_QbftHasVoteMsg proto.InternalMessageInfo

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

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

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

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

type QbftVoteSetMaj23Msg struct {
	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              *QbftBlockID `protobuf:"bytes,4,opt,name=blockID,proto3" json:"blockID,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *QbftVoteSetMaj23Msg) Reset()         { *m = QbftVoteSetMaj23Msg{} }
func (m *QbftVoteSetMaj23Msg) String() string { return proto.CompactTextString(m) }
func (*QbftVoteSetMaj23Msg) ProtoMessage()    {}
func (*QbftVoteSetMaj23Msg) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{20}
}

func (m *QbftVoteSetMaj23Msg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftVoteSetMaj23Msg.Unmarshal(m, b)
}
func (m *QbftVoteSetMaj23Msg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftVoteSetMaj23Msg.Marshal(b, m, deterministic)
}
func (m *QbftVoteSetMaj23Msg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftVoteSetMaj23Msg.Merge(m, src)
}
func (m *QbftVoteSetMaj23Msg) XXX_Size() int {
	return xxx_messageInfo_QbftVoteSetMaj23Msg.Size(m)
}
func (m *QbftVoteSetMaj23Msg) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftVoteSetMaj23Msg.DiscardUnknown(m)
}

var xxx_messageInfo_QbftVoteSetMaj23Msg proto.InternalMessageInfo

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

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

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

func (m *QbftVoteSetMaj23Msg) GetBlockID() *QbftBlockID {
	if m != nil {
		return m.BlockID
	}
	return nil
}

type QbftVoteSetBitsMsg struct {
	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              *QbftBlockID  `protobuf:"bytes,4,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Votes                *QbftBitArray `protobuf:"bytes,5,opt,name=votes,proto3" json:"votes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *QbftVoteSetBitsMsg) Reset()         { *m = QbftVoteSetBitsMsg{} }
func (m *QbftVoteSetBitsMsg) String() string { return proto.CompactTextString(m) }
func (*QbftVoteSetBitsMsg) ProtoMessage()    {}
func (*QbftVoteSetBitsMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{21}
}

func (m *QbftVoteSetBitsMsg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftVoteSetBitsMsg.Unmarshal(m, b)
}
func (m *QbftVoteSetBitsMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftVoteSetBitsMsg.Marshal(b, m, deterministic)
}
func (m *QbftVoteSetBitsMsg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftVoteSetBitsMsg.Merge(m, src)
}
func (m *QbftVoteSetBitsMsg) XXX_Size() int {
	return xxx_messageInfo_QbftVoteSetBitsMsg.Size(m)
}
func (m *QbftVoteSetBitsMsg) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftVoteSetBitsMsg.DiscardUnknown(m)
}

var xxx_messageInfo_QbftVoteSetBitsMsg proto.InternalMessageInfo

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

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

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

func (m *QbftVoteSetBitsMsg) GetBlockID() *QbftBlockID {
	if m != nil {
		return m.BlockID
	}
	return nil
}

func (m *QbftVoteSetBitsMsg) GetVotes() *QbftBitArray {
	if m != nil {
		return m.Votes
	}
	return nil
}

type QbftHeartbeat struct {
	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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftHeartbeat) Reset()         { *m = QbftHeartbeat{} }
func (m *QbftHeartbeat) String() string { return proto.CompactTextString(m) }
func (*QbftHeartbeat) ProtoMessage()    {}
func (*QbftHeartbeat) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{22}
}

func (m *QbftHeartbeat) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftHeartbeat.Unmarshal(m, b)
}
func (m *QbftHeartbeat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftHeartbeat.Marshal(b, m, deterministic)
}
func (m *QbftHeartbeat) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftHeartbeat.Merge(m, src)
}
func (m *QbftHeartbeat) XXX_Size() int {
	return xxx_messageInfo_QbftHeartbeat.Size(m)
}
func (m *QbftHeartbeat) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftHeartbeat.DiscardUnknown(m)
}

var xxx_messageInfo_QbftHeartbeat proto.InternalMessageInfo

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

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

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

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

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

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

type QbftIsHealthy struct {
	IsHealthy            bool     `protobuf:"varint,1,opt,name=isHealthy,proto3" json:"isHealthy,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QbftIsHealthy) Reset()         { *m = QbftIsHealthy{} }
func (m *QbftIsHealthy) String() string { return proto.CompactTextString(m) }
func (*QbftIsHealthy) ProtoMessage()    {}
func (*QbftIsHealthy) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{23}
}

func (m *QbftIsHealthy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftIsHealthy.Unmarshal(m, b)
}
func (m *QbftIsHealthy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftIsHealthy.Marshal(b, m, deterministic)
}
func (m *QbftIsHealthy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftIsHealthy.Merge(m, src)
}
func (m *QbftIsHealthy) XXX_Size() int {
	return xxx_messageInfo_QbftIsHealthy.Size(m)
}
func (m *QbftIsHealthy) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftIsHealthy.DiscardUnknown(m)
}

var xxx_messageInfo_QbftIsHealthy proto.InternalMessageInfo

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

type QbftAggVote struct {
	ValidatorAddress     []byte        `protobuf:"bytes,1,opt,name=validatorAddress,proto3" json:"validatorAddress,omitempty"`
	ValidatorArray       *QbftBitArray `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              *QbftBlockID  `protobuf:"bytes,7,opt,name=blockID,proto3" json:"blockID,omitempty"`
	Signature            []byte        `protobuf:"bytes,8,opt,name=signature,proto3" json:"signature,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *QbftAggVote) Reset()         { *m = QbftAggVote{} }
func (m *QbftAggVote) String() string { return proto.CompactTextString(m) }
func (*QbftAggVote) ProtoMessage()    {}
func (*QbftAggVote) Descriptor() ([]byte, []int) {
	return fileDescriptor_431e4dd794eaebea, []int{24}
}

func (m *QbftAggVote) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QbftAggVote.Unmarshal(m, b)
}
func (m *QbftAggVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QbftAggVote.Marshal(b, m, deterministic)
}
func (m *QbftAggVote) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QbftAggVote.Merge(m, src)
}
func (m *QbftAggVote) XXX_Size() int {
	return xxx_messageInfo_QbftAggVote.Size(m)
}
func (m *QbftAggVote) XXX_DiscardUnknown() {
	xxx_messageInfo_QbftAggVote.DiscardUnknown(m)
}

var xxx_messageInfo_QbftAggVote proto.InternalMessageInfo

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

func (m *QbftAggVote) GetValidatorArray() *QbftBitArray {
	if m != nil {
		return m.ValidatorArray
	}
	return nil
}

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

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

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

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

func (m *QbftAggVote) GetBlockID() *QbftBlockID {
	if m != nil {
		return m.BlockID
	}
	return nil
}

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

func init() {
	proto.RegisterType((*QbftBlockID)(nil), "types.QbftBlockID")
	proto.RegisterType((*QbftBitArray)(nil), "types.QbftBitArray")
	proto.RegisterType((*QbftVote)(nil), "types.QbftVote")
	proto.RegisterType((*QbftCommit)(nil), "types.QbftCommit")
	proto.RegisterType((*QbftBlockInfo)(nil), "types.QbftBlockInfo")
	proto.RegisterType((*QbftBlockSize)(nil), "types.QbftBlockSize")
	proto.RegisterType((*QbftTxSize)(nil), "types.QbftTxSize")
	proto.RegisterType((*QbftBlockGossip)(nil), "types.QbftBlockGossip")
	proto.RegisterType((*QbftEvidenceParams)(nil), "types.QbftEvidenceParams")
	proto.RegisterType((*QbftConsensusParams)(nil), "types.QbftConsensusParams")
	proto.RegisterType((*QbftValidator)(nil), "types.QbftValidator")
	proto.RegisterType((*QbftValidatorSet)(nil), "types.QbftValidatorSet")
	proto.RegisterType((*QbftState)(nil), "types.QbftState")
	proto.RegisterType((*QbftBlockHeader)(nil), "types.QbftBlockHeader")
	proto.RegisterType((*QbftBlock)(nil), "types.QbftBlock")
	proto.RegisterType((*QbftProposal)(nil), "types.QbftProposal")
	proto.RegisterType((*QbftNewRoundStepMsg)(nil), "types.QbftNewRoundStepMsg")
	proto.RegisterType((*QbftValidBlockMsg)(nil), "types.QbftValidBlockMsg")
	proto.RegisterType((*QbftProposalPOLMsg)(nil), "types.QbftProposalPOLMsg")
	proto.RegisterType((*QbftHasVoteMsg)(nil), "types.QbftHasVoteMsg")
	proto.RegisterType((*QbftVoteSetMaj23Msg)(nil), "types.QbftVoteSetMaj23Msg")
	proto.RegisterType((*QbftVoteSetBitsMsg)(nil), "types.QbftVoteSetBitsMsg")
	proto.RegisterType((*QbftHeartbeat)(nil), "types.QbftHeartbeat")
	proto.RegisterType((*QbftIsHealthy)(nil), "types.QbftIsHealthy")
	proto.RegisterType((*QbftAggVote)(nil), "types.QbftAggVote")
}

func init() {
	proto.RegisterFile("qbft.proto", fileDescriptor_431e4dd794eaebea)
}

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