// Copyright IBM Corp. All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.29.1
// 	protoc        v3.21.12
// source: messages.proto

package smartbftprotos

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

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

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

	// Types that are assignable to Content:
	//	*Message_PrePrepare
	//	*Message_Prepare
	//	*Message_Commit
	//	*Message_ViewChange
	//	*Message_ViewData
	//	*Message_NewView
	//	*Message_HeartBeat
	//	*Message_HeartBeatResponse
	//	*Message_StateTransferRequest
	//	*Message_StateTransferResponse
	Content isMessage_Content `protobuf_oneof:"content"`
}

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

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

func (*Message) ProtoMessage() {}

func (x *Message) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 Message.ProtoReflect.Descriptor instead.
func (*Message) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{0}
}

func (m *Message) GetContent() isMessage_Content {
	if m != nil {
		return m.Content
	}
	return nil
}

func (x *Message) GetPrePrepare() *PrePrepare {
	if x, ok := x.GetContent().(*Message_PrePrepare); ok {
		return x.PrePrepare
	}
	return nil
}

func (x *Message) GetPrepare() *Prepare {
	if x, ok := x.GetContent().(*Message_Prepare); ok {
		return x.Prepare
	}
	return nil
}

func (x *Message) GetCommit() *Commit {
	if x, ok := x.GetContent().(*Message_Commit); ok {
		return x.Commit
	}
	return nil
}

func (x *Message) GetViewChange() *ViewChange {
	if x, ok := x.GetContent().(*Message_ViewChange); ok {
		return x.ViewChange
	}
	return nil
}

func (x *Message) GetViewData() *SignedViewData {
	if x, ok := x.GetContent().(*Message_ViewData); ok {
		return x.ViewData
	}
	return nil
}

func (x *Message) GetNewView() *NewView {
	if x, ok := x.GetContent().(*Message_NewView); ok {
		return x.NewView
	}
	return nil
}

func (x *Message) GetHeartBeat() *HeartBeat {
	if x, ok := x.GetContent().(*Message_HeartBeat); ok {
		return x.HeartBeat
	}
	return nil
}

func (x *Message) GetHeartBeatResponse() *HeartBeatResponse {
	if x, ok := x.GetContent().(*Message_HeartBeatResponse); ok {
		return x.HeartBeatResponse
	}
	return nil
}

func (x *Message) GetStateTransferRequest() *StateTransferRequest {
	if x, ok := x.GetContent().(*Message_StateTransferRequest); ok {
		return x.StateTransferRequest
	}
	return nil
}

func (x *Message) GetStateTransferResponse() *StateTransferResponse {
	if x, ok := x.GetContent().(*Message_StateTransferResponse); ok {
		return x.StateTransferResponse
	}
	return nil
}

type isMessage_Content interface {
	isMessage_Content()
}

type Message_PrePrepare struct {
	PrePrepare *PrePrepare `protobuf:"bytes,1,opt,name=pre_prepare,json=prePrepare,proto3,oneof"`
}

type Message_Prepare struct {
	Prepare *Prepare `protobuf:"bytes,2,opt,name=prepare,proto3,oneof"`
}

type Message_Commit struct {
	Commit *Commit `protobuf:"bytes,3,opt,name=commit,proto3,oneof"`
}

type Message_ViewChange struct {
	ViewChange *ViewChange `protobuf:"bytes,4,opt,name=view_change,json=viewChange,proto3,oneof"`
}

type Message_ViewData struct {
	ViewData *SignedViewData `protobuf:"bytes,5,opt,name=view_data,json=viewData,proto3,oneof"`
}

type Message_NewView struct {
	NewView *NewView `protobuf:"bytes,6,opt,name=new_view,json=newView,proto3,oneof"`
}

type Message_HeartBeat struct {
	HeartBeat *HeartBeat `protobuf:"bytes,7,opt,name=heart_beat,json=heartBeat,proto3,oneof"`
}

type Message_HeartBeatResponse struct {
	HeartBeatResponse *HeartBeatResponse `protobuf:"bytes,8,opt,name=heart_beat_response,json=heartBeatResponse,proto3,oneof"`
}

type Message_StateTransferRequest struct {
	StateTransferRequest *StateTransferRequest `protobuf:"bytes,9,opt,name=state_transfer_request,json=stateTransferRequest,proto3,oneof"`
}

type Message_StateTransferResponse struct {
	StateTransferResponse *StateTransferResponse `protobuf:"bytes,10,opt,name=state_transfer_response,json=stateTransferResponse,proto3,oneof"`
}

func (*Message_PrePrepare) isMessage_Content() {}

func (*Message_Prepare) isMessage_Content() {}

func (*Message_Commit) isMessage_Content() {}

func (*Message_ViewChange) isMessage_Content() {}

func (*Message_ViewData) isMessage_Content() {}

func (*Message_NewView) isMessage_Content() {}

func (*Message_HeartBeat) isMessage_Content() {}

func (*Message_HeartBeatResponse) isMessage_Content() {}

func (*Message_StateTransferRequest) isMessage_Content() {}

func (*Message_StateTransferResponse) isMessage_Content() {}

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

	View                 uint64       `protobuf:"varint,1,opt,name=view,proto3" json:"view,omitempty"`
	Seq                  uint64       `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"`
	Proposal             *Proposal    `protobuf:"bytes,3,opt,name=proposal,proto3" json:"proposal,omitempty"`
	PrevCommitSignatures []*Signature `protobuf:"bytes,4,rep,name=prev_commit_signatures,json=prevCommitSignatures,proto3" json:"prev_commit_signatures,omitempty"`
}

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

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

func (*PrePrepare) ProtoMessage() {}

func (x *PrePrepare) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 PrePrepare.ProtoReflect.Descriptor instead.
func (*PrePrepare) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{1}
}

func (x *PrePrepare) GetView() uint64 {
	if x != nil {
		return x.View
	}
	return 0
}

func (x *PrePrepare) GetSeq() uint64 {
	if x != nil {
		return x.Seq
	}
	return 0
}

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

func (x *PrePrepare) GetPrevCommitSignatures() []*Signature {
	if x != nil {
		return x.PrevCommitSignatures
	}
	return nil
}

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

	View   uint64 `protobuf:"varint,1,opt,name=view,proto3" json:"view,omitempty"`
	Seq    uint64 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"`
	Digest string `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"`
	Assist bool   `protobuf:"varint,4,opt,name=assist,proto3" json:"assist,omitempty"`
}

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

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

func (*Prepare) ProtoMessage() {}

func (x *Prepare) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 Prepare.ProtoReflect.Descriptor instead.
func (*Prepare) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{2}
}

func (x *Prepare) GetView() uint64 {
	if x != nil {
		return x.View
	}
	return 0
}

func (x *Prepare) GetSeq() uint64 {
	if x != nil {
		return x.Seq
	}
	return 0
}

func (x *Prepare) GetDigest() string {
	if x != nil {
		return x.Digest
	}
	return ""
}

func (x *Prepare) GetAssist() bool {
	if x != nil {
		return x.Assist
	}
	return false
}

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

	PrePrepare *PrePrepare `protobuf:"bytes,1,opt,name=pre_prepare,json=prePrepare,proto3" json:"pre_prepare,omitempty"`
	Prepare    *Prepare    `protobuf:"bytes,2,opt,name=prepare,proto3" json:"prepare,omitempty"`
}

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

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

func (*ProposedRecord) ProtoMessage() {}

func (x *ProposedRecord) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 ProposedRecord.ProtoReflect.Descriptor instead.
func (*ProposedRecord) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{3}
}

func (x *ProposedRecord) GetPrePrepare() *PrePrepare {
	if x != nil {
		return x.PrePrepare
	}
	return nil
}

func (x *ProposedRecord) GetPrepare() *Prepare {
	if x != nil {
		return x.Prepare
	}
	return nil
}

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

	View      uint64     `protobuf:"varint,1,opt,name=view,proto3" json:"view,omitempty"`
	Seq       uint64     `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"`
	Digest    string     `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"`
	Signature *Signature `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
	Assist    bool       `protobuf:"varint,5,opt,name=assist,proto3" json:"assist,omitempty"`
}

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

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

func (*Commit) ProtoMessage() {}

func (x *Commit) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 Commit.ProtoReflect.Descriptor instead.
func (*Commit) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{4}
}

func (x *Commit) GetView() uint64 {
	if x != nil {
		return x.View
	}
	return 0
}

func (x *Commit) GetSeq() uint64 {
	if x != nil {
		return x.Seq
	}
	return 0
}

func (x *Commit) GetDigest() string {
	if x != nil {
		return x.Digest
	}
	return ""
}

func (x *Commit) GetSignature() *Signature {
	if x != nil {
		return x.Signature
	}
	return nil
}

func (x *Commit) GetAssist() bool {
	if x != nil {
		return x.Assist
	}
	return false
}

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

	Ids []uint64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"`
}

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

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

func (*PreparesFrom) ProtoMessage() {}

func (x *PreparesFrom) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 PreparesFrom.ProtoReflect.Descriptor instead.
func (*PreparesFrom) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{5}
}

func (x *PreparesFrom) GetIds() []uint64 {
	if x != nil {
		return x.Ids
	}
	return nil
}

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

	NextView uint64 `protobuf:"varint,1,opt,name=next_view,json=nextView,proto3" json:"next_view,omitempty"`
	Reason   string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
}

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

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

func (*ViewChange) ProtoMessage() {}

func (x *ViewChange) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 ViewChange.ProtoReflect.Descriptor instead.
func (*ViewChange) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{6}
}

func (x *ViewChange) GetNextView() uint64 {
	if x != nil {
		return x.NextView
	}
	return 0
}

func (x *ViewChange) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

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

	NextView               uint64       `protobuf:"varint,1,opt,name=next_view,json=nextView,proto3" json:"next_view,omitempty"`
	LastDecision           *Proposal    `protobuf:"bytes,2,opt,name=last_decision,json=lastDecision,proto3" json:"last_decision,omitempty"`
	LastDecisionSignatures []*Signature `protobuf:"bytes,3,rep,name=last_decision_signatures,json=lastDecisionSignatures,proto3" json:"last_decision_signatures,omitempty"`
	InFlightProposal       *Proposal    `protobuf:"bytes,4,opt,name=in_flight_proposal,json=inFlightProposal,proto3" json:"in_flight_proposal,omitempty"`
	InFlightPrepared       bool         `protobuf:"varint,5,opt,name=in_flight_prepared,json=inFlightPrepared,proto3" json:"in_flight_prepared,omitempty"`
}

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

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

func (*ViewData) ProtoMessage() {}

func (x *ViewData) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 ViewData.ProtoReflect.Descriptor instead.
func (*ViewData) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{7}
}

func (x *ViewData) GetNextView() uint64 {
	if x != nil {
		return x.NextView
	}
	return 0
}

func (x *ViewData) GetLastDecision() *Proposal {
	if x != nil {
		return x.LastDecision
	}
	return nil
}

func (x *ViewData) GetLastDecisionSignatures() []*Signature {
	if x != nil {
		return x.LastDecisionSignatures
	}
	return nil
}

func (x *ViewData) GetInFlightProposal() *Proposal {
	if x != nil {
		return x.InFlightProposal
	}
	return nil
}

func (x *ViewData) GetInFlightPrepared() bool {
	if x != nil {
		return x.InFlightPrepared
	}
	return false
}

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

	RawViewData []byte `protobuf:"bytes,1,opt,name=raw_view_data,json=rawViewData,proto3" json:"raw_view_data,omitempty"`
	Signer      uint64 `protobuf:"varint,2,opt,name=signer,proto3" json:"signer,omitempty"`
	Signature   []byte `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"`
}

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

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

func (*SignedViewData) ProtoMessage() {}

func (x *SignedViewData) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 SignedViewData.ProtoReflect.Descriptor instead.
func (*SignedViewData) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{8}
}

func (x *SignedViewData) GetRawViewData() []byte {
	if x != nil {
		return x.RawViewData
	}
	return nil
}

func (x *SignedViewData) GetSigner() uint64 {
	if x != nil {
		return x.Signer
	}
	return 0
}

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

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

	SignedViewData []*SignedViewData `protobuf:"bytes,2,rep,name=signed_view_data,json=signedViewData,proto3" json:"signed_view_data,omitempty"`
}

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

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

func (*NewView) ProtoMessage() {}

func (x *NewView) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 NewView.ProtoReflect.Descriptor instead.
func (*NewView) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{9}
}

func (x *NewView) GetSignedViewData() []*SignedViewData {
	if x != nil {
		return x.SignedViewData
	}
	return nil
}

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

	View uint64 `protobuf:"varint,1,opt,name=view,proto3" json:"view,omitempty"`
	Seq  uint64 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"`
}

func (x *HeartBeat) Reset() {
	*x = HeartBeat{}
	if protoimpl.UnsafeEnabled {
		mi := &file_messages_proto_msgTypes[10]
		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_messages_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 HeartBeat.ProtoReflect.Descriptor instead.
func (*HeartBeat) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{10}
}

func (x *HeartBeat) GetView() uint64 {
	if x != nil {
		return x.View
	}
	return 0
}

func (x *HeartBeat) GetSeq() uint64 {
	if x != nil {
		return x.Seq
	}
	return 0
}

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

	View uint64 `protobuf:"varint,1,opt,name=view,proto3" json:"view,omitempty"`
}

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

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

func (*HeartBeatResponse) ProtoMessage() {}

func (x *HeartBeatResponse) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 HeartBeatResponse.ProtoReflect.Descriptor instead.
func (*HeartBeatResponse) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{11}
}

func (x *HeartBeatResponse) GetView() uint64 {
	if x != nil {
		return x.View
	}
	return 0
}

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

	Signer uint64 `protobuf:"varint,1,opt,name=signer,proto3" json:"signer,omitempty"`
	Value  []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	Msg    []byte `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
}

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

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

func (*Signature) ProtoMessage() {}

func (x *Signature) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 Signature.ProtoReflect.Descriptor instead.
func (*Signature) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{12}
}

func (x *Signature) GetSigner() uint64 {
	if x != nil {
		return x.Signer
	}
	return 0
}

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

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

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

	Header               []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	Payload              []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
	Metadata             []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	VerificationSequence uint64 `protobuf:"varint,4,opt,name=verification_sequence,json=verificationSequence,proto3" json:"verification_sequence,omitempty"`
}

func (x *Proposal) Reset() {
	*x = Proposal{}
	if protoimpl.UnsafeEnabled {
		mi := &file_messages_proto_msgTypes[13]
		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_messages_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 Proposal.ProtoReflect.Descriptor instead.
func (*Proposal) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{13}
}

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

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

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

func (x *Proposal) GetVerificationSequence() uint64 {
	if x != nil {
		return x.VerificationSequence
	}
	return 0
}

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

	ViewId                    uint64   `protobuf:"varint,1,opt,name=view_id,json=viewId,proto3" json:"view_id,omitempty"`
	LatestSequence            uint64   `protobuf:"varint,2,opt,name=latest_sequence,json=latestSequence,proto3" json:"latest_sequence,omitempty"`
	DecisionsInView           uint64   `protobuf:"varint,3,opt,name=decisions_in_view,json=decisionsInView,proto3" json:"decisions_in_view,omitempty"`
	BlackList                 []uint64 `protobuf:"varint,4,rep,packed,name=black_list,json=blackList,proto3" json:"black_list,omitempty"`
	PrevCommitSignatureDigest []byte   `protobuf:"bytes,5,opt,name=prev_commit_signature_digest,json=prevCommitSignatureDigest,proto3" json:"prev_commit_signature_digest,omitempty"`
}

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

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

func (*ViewMetadata) ProtoMessage() {}

func (x *ViewMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 ViewMetadata.ProtoReflect.Descriptor instead.
func (*ViewMetadata) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{14}
}

func (x *ViewMetadata) GetViewId() uint64 {
	if x != nil {
		return x.ViewId
	}
	return 0
}

func (x *ViewMetadata) GetLatestSequence() uint64 {
	if x != nil {
		return x.LatestSequence
	}
	return 0
}

func (x *ViewMetadata) GetDecisionsInView() uint64 {
	if x != nil {
		return x.DecisionsInView
	}
	return 0
}

func (x *ViewMetadata) GetBlackList() []uint64 {
	if x != nil {
		return x.BlackList
	}
	return nil
}

func (x *ViewMetadata) GetPrevCommitSignatureDigest() []byte {
	if x != nil {
		return x.PrevCommitSignatureDigest
	}
	return nil
}

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

	// Types that are assignable to Content:
	//	*SavedMessage_ProposedRecord
	//	*SavedMessage_Commit
	//	*SavedMessage_NewView
	//	*SavedMessage_ViewChange
	Content isSavedMessage_Content `protobuf_oneof:"content"`
}

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

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

func (*SavedMessage) ProtoMessage() {}

func (x *SavedMessage) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 SavedMessage.ProtoReflect.Descriptor instead.
func (*SavedMessage) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{15}
}

func (m *SavedMessage) GetContent() isSavedMessage_Content {
	if m != nil {
		return m.Content
	}
	return nil
}

func (x *SavedMessage) GetProposedRecord() *ProposedRecord {
	if x, ok := x.GetContent().(*SavedMessage_ProposedRecord); ok {
		return x.ProposedRecord
	}
	return nil
}

func (x *SavedMessage) GetCommit() *Message {
	if x, ok := x.GetContent().(*SavedMessage_Commit); ok {
		return x.Commit
	}
	return nil
}

func (x *SavedMessage) GetNewView() *ViewMetadata {
	if x, ok := x.GetContent().(*SavedMessage_NewView); ok {
		return x.NewView
	}
	return nil
}

func (x *SavedMessage) GetViewChange() *ViewChange {
	if x, ok := x.GetContent().(*SavedMessage_ViewChange); ok {
		return x.ViewChange
	}
	return nil
}

type isSavedMessage_Content interface {
	isSavedMessage_Content()
}

type SavedMessage_ProposedRecord struct {
	ProposedRecord *ProposedRecord `protobuf:"bytes,1,opt,name=proposed_record,json=proposedRecord,proto3,oneof"`
}

type SavedMessage_Commit struct {
	Commit *Message `protobuf:"bytes,2,opt,name=commit,proto3,oneof"`
}

type SavedMessage_NewView struct {
	NewView *ViewMetadata `protobuf:"bytes,3,opt,name=new_view,json=newView,proto3,oneof"`
}

type SavedMessage_ViewChange struct {
	ViewChange *ViewChange `protobuf:"bytes,4,opt,name=view_change,json=viewChange,proto3,oneof"`
}

func (*SavedMessage_ProposedRecord) isSavedMessage_Content() {}

func (*SavedMessage_Commit) isSavedMessage_Content() {}

func (*SavedMessage_NewView) isSavedMessage_Content() {}

func (*SavedMessage_ViewChange) isSavedMessage_Content() {}

type StateTransferRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*StateTransferRequest) ProtoMessage() {}

func (x *StateTransferRequest) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 StateTransferRequest.ProtoReflect.Descriptor instead.
func (*StateTransferRequest) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{16}
}

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

	ViewNum  uint64 `protobuf:"varint,1,opt,name=view_num,json=viewNum,proto3" json:"view_num,omitempty"`
	Sequence uint64 `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"`
}

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

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

func (*StateTransferResponse) ProtoMessage() {}

func (x *StateTransferResponse) ProtoReflect() protoreflect.Message {
	mi := &file_messages_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 StateTransferResponse.ProtoReflect.Descriptor instead.
func (*StateTransferResponse) Descriptor() ([]byte, []int) {
	return file_messages_proto_rawDescGZIP(), []int{17}
}

func (x *StateTransferResponse) GetViewNum() uint64 {
	if x != nil {
		return x.ViewNum
	}
	return 0
}

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

var File_messages_proto protoreflect.FileDescriptor

var file_messages_proto_rawDesc = []byte{
	0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x12, 0x0e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
	0x22, 0xbe, 0x05, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0b,
	0x70, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x48, 0x00, 0x52,
	0x0a, 0x70, 0x72, 0x65, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x70,
	0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73,
	0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x72,
	0x65, 0x70, 0x61, 0x72, 0x65, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65,
	0x12, 0x30, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
	0x69, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62,
	0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x43, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x69, 0x65, 0x77, 0x43, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x12, 0x3d, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77,
	0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61,
	0x12, 0x34, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x73, 0x2e, 0x4e, 0x65, 0x77, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x07, 0x6e,
	0x65, 0x77, 0x56, 0x69, 0x65, 0x77, 0x12, 0x3a, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f,
	0x62, 0x65, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x6d, 0x61,
	0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x72,
	0x74, 0x42, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x42, 0x65,
	0x61, 0x74, 0x12, 0x53, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x62, 0x65, 0x61, 0x74,
	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x21, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
	0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x42, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x48, 0x00, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x42, 0x65, 0x61, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x16, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62,
	0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72,
	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x14, 0x73, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74,
	0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66,
	0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61,
	0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52,
	0x15, 0x73, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x22, 0xb9, 0x01, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,
	0x76, 0x69, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73,
	0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74,
	0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
	0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x4f, 0x0a, 0x16,
	0x70, 0x72, 0x65, 0x76, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73,
	0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x14, 0x70, 0x72, 0x65, 0x76, 0x43, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x5f, 0x0a,
	0x07, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03,
	0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x16,
	0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x22, 0x80,
	0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66,
	0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x50, 0x72, 0x65, 0x70, 0x61,
	0x72, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x12, 0x31,
	0x0a, 0x07, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x17, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
	0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x52, 0x07, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72,
	0x65, 0x22, 0x97, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04,
	0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77,
	0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73,
	0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x50,
	0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x69,
	0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x41, 0x0a,
	0x0a, 0x56, 0x69, 0x65, 0x77, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e,
	0x65, 0x78, 0x74, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08,
	0x6e, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
	0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x22, 0xb1, 0x02, 0x0a, 0x08, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a,
	0x09, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x6c, 0x61,
	0x73, 0x74, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x0c, 0x6c, 0x61, 0x73,
	0x74, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x18, 0x6c, 0x61, 0x73,
	0x74, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x6d,
	0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x63, 0x69,
	0x73, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x46,
	0x0a, 0x12, 0x69, 0x6e, 0x5f, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70,
	0x6f, 0x73, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x6d, 0x61,
	0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x70,
	0x6f, 0x73, 0x61, 0x6c, 0x52, 0x10, 0x69, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72,
	0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x5f, 0x66, 0x6c, 0x69,
	0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, 0x65, 0x70,
	0x61, 0x72, 0x65, 0x64, 0x22, 0x6a, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x69,
	0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x69,
	0x65, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72,
	0x61, 0x77, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69,
	0x67, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e,
	0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
	0x22, 0x53, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x56, 0x69, 0x65, 0x77, 0x12, 0x48, 0x0a, 0x10, 0x73,
	0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x69, 0x65,
	0x77, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x69, 0x65,
	0x77, 0x44, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x42, 0x65,
	0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0x27, 0x0a, 0x11, 0x48, 0x65, 0x61, 0x72,
	0x74, 0x42, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a,
	0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x76, 0x69, 0x65,
	0x77, 0x22, 0x4b, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06,
	0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03,
	0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x8d,
	0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a,
	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x15, 0x76, 0x65, 0x72,
	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
	0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69,
	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xdc,
	0x01, 0x0a, 0x0c, 0x56, 0x69, 0x65, 0x77, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
	0x17, 0x0a, 0x07, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x06, 0x76, 0x69, 0x65, 0x77, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65,
	0x73, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63,
	0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69,
	0x6e, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x64, 0x65,
	0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1d, 0x0a,
	0x0a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28,
	0x04, 0x52, 0x09, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x1c,
	0x70, 0x72, 0x65, 0x76, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0c, 0x52, 0x19, 0x70, 0x72, 0x65, 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x91, 0x02,
	0x0a, 0x0c, 0x53, 0x61, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x49,
	0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62,
	0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65,
	0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f,
	0x73, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6d,
	0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x6d, 0x61, 0x72,
	0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x39, 0x0a, 0x08,
	0x6e, 0x65, 0x77, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e,
	0x56, 0x69, 0x65, 0x77, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07,
	0x6e, 0x65, 0x77, 0x56, 0x69, 0x65, 0x77, 0x12, 0x3d, 0x0a, 0x0b, 0x76, 0x69, 0x65, 0x77, 0x5f,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73,
	0x6d, 0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x56, 0x69,
	0x65, 0x77, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x69, 0x65, 0x77,
	0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
	0x74, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x15, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x69, 0x65, 0x77, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a,
	0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74,
	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x42, 0x46, 0x54,
	0x2d, 0x47, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x73, 0x6d,
	0x61, 0x72, 0x74, 0x62, 0x66, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_messages_proto_rawDescOnce sync.Once
	file_messages_proto_rawDescData = file_messages_proto_rawDesc
)

func file_messages_proto_rawDescGZIP() []byte {
	file_messages_proto_rawDescOnce.Do(func() {
		file_messages_proto_rawDescData = protoimpl.X.CompressGZIP(file_messages_proto_rawDescData)
	})
	return file_messages_proto_rawDescData
}

var file_messages_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_messages_proto_goTypes = []interface{}{
	(*Message)(nil),               // 0: smartbftprotos.Message
	(*PrePrepare)(nil),            // 1: smartbftprotos.PrePrepare
	(*Prepare)(nil),               // 2: smartbftprotos.Prepare
	(*ProposedRecord)(nil),        // 3: smartbftprotos.ProposedRecord
	(*Commit)(nil),                // 4: smartbftprotos.Commit
	(*PreparesFrom)(nil),          // 5: smartbftprotos.PreparesFrom
	(*ViewChange)(nil),            // 6: smartbftprotos.ViewChange
	(*ViewData)(nil),              // 7: smartbftprotos.ViewData
	(*SignedViewData)(nil),        // 8: smartbftprotos.SignedViewData
	(*NewView)(nil),               // 9: smartbftprotos.NewView
	(*HeartBeat)(nil),             // 10: smartbftprotos.HeartBeat
	(*HeartBeatResponse)(nil),     // 11: smartbftprotos.HeartBeatResponse
	(*Signature)(nil),             // 12: smartbftprotos.Signature
	(*Proposal)(nil),              // 13: smartbftprotos.Proposal
	(*ViewMetadata)(nil),          // 14: smartbftprotos.ViewMetadata
	(*SavedMessage)(nil),          // 15: smartbftprotos.SavedMessage
	(*StateTransferRequest)(nil),  // 16: smartbftprotos.StateTransferRequest
	(*StateTransferResponse)(nil), // 17: smartbftprotos.StateTransferResponse
}
var file_messages_proto_depIdxs = []int32{
	1,  // 0: smartbftprotos.Message.pre_prepare:type_name -> smartbftprotos.PrePrepare
	2,  // 1: smartbftprotos.Message.prepare:type_name -> smartbftprotos.Prepare
	4,  // 2: smartbftprotos.Message.commit:type_name -> smartbftprotos.Commit
	6,  // 3: smartbftprotos.Message.view_change:type_name -> smartbftprotos.ViewChange
	8,  // 4: smartbftprotos.Message.view_data:type_name -> smartbftprotos.SignedViewData
	9,  // 5: smartbftprotos.Message.new_view:type_name -> smartbftprotos.NewView
	10, // 6: smartbftprotos.Message.heart_beat:type_name -> smartbftprotos.HeartBeat
	11, // 7: smartbftprotos.Message.heart_beat_response:type_name -> smartbftprotos.HeartBeatResponse
	16, // 8: smartbftprotos.Message.state_transfer_request:type_name -> smartbftprotos.StateTransferRequest
	17, // 9: smartbftprotos.Message.state_transfer_response:type_name -> smartbftprotos.StateTransferResponse
	13, // 10: smartbftprotos.PrePrepare.proposal:type_name -> smartbftprotos.Proposal
	12, // 11: smartbftprotos.PrePrepare.prev_commit_signatures:type_name -> smartbftprotos.Signature
	1,  // 12: smartbftprotos.ProposedRecord.pre_prepare:type_name -> smartbftprotos.PrePrepare
	2,  // 13: smartbftprotos.ProposedRecord.prepare:type_name -> smartbftprotos.Prepare
	12, // 14: smartbftprotos.Commit.signature:type_name -> smartbftprotos.Signature
	13, // 15: smartbftprotos.ViewData.last_decision:type_name -> smartbftprotos.Proposal
	12, // 16: smartbftprotos.ViewData.last_decision_signatures:type_name -> smartbftprotos.Signature
	13, // 17: smartbftprotos.ViewData.in_flight_proposal:type_name -> smartbftprotos.Proposal
	8,  // 18: smartbftprotos.NewView.signed_view_data:type_name -> smartbftprotos.SignedViewData
	3,  // 19: smartbftprotos.SavedMessage.proposed_record:type_name -> smartbftprotos.ProposedRecord
	0,  // 20: smartbftprotos.SavedMessage.commit:type_name -> smartbftprotos.Message
	14, // 21: smartbftprotos.SavedMessage.new_view:type_name -> smartbftprotos.ViewMetadata
	6,  // 22: smartbftprotos.SavedMessage.view_change:type_name -> smartbftprotos.ViewChange
	23, // [23:23] is the sub-list for method output_type
	23, // [23:23] is the sub-list for method input_type
	23, // [23:23] is the sub-list for extension type_name
	23, // [23:23] is the sub-list for extension extendee
	0,  // [0:23] is the sub-list for field type_name
}

func init() { file_messages_proto_init() }
func file_messages_proto_init() {
	if File_messages_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_messages_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Message); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PrePrepare); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Prepare); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ProposedRecord); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Commit); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PreparesFrom); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ViewChange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ViewData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignedViewData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NewView); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[10].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_messages_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*HeartBeatResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Signature); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[13].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_messages_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ViewMetadata); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SavedMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StateTransferRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_messages_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StateTransferResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_messages_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*Message_PrePrepare)(nil),
		(*Message_Prepare)(nil),
		(*Message_Commit)(nil),
		(*Message_ViewChange)(nil),
		(*Message_ViewData)(nil),
		(*Message_NewView)(nil),
		(*Message_HeartBeat)(nil),
		(*Message_HeartBeatResponse)(nil),
		(*Message_StateTransferRequest)(nil),
		(*Message_StateTransferResponse)(nil),
	}
	file_messages_proto_msgTypes[15].OneofWrappers = []interface{}{
		(*SavedMessage_ProposedRecord)(nil),
		(*SavedMessage_Commit)(nil),
		(*SavedMessage_NewView)(nil),
		(*SavedMessage_ViewChange)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_messages_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   18,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_messages_proto_goTypes,
		DependencyIndexes: file_messages_proto_depIdxs,
		MessageInfos:      file_messages_proto_msgTypes,
	}.Build()
	File_messages_proto = out.File
	file_messages_proto_rawDesc = nil
	file_messages_proto_goTypes = nil
	file_messages_proto_depIdxs = nil
}
