github.com/adnan-c/fabric_e2e_couchdb@v0.6.1-preview.0.20170228180935-21ce6b23cf91/protos/gossip/message.pb.go (about)

     1  // Code generated by protoc-gen-go.
     2  // source: gossip/message.proto
     3  // DO NOT EDIT!
     4  
     5  /*
     6  Package gossip is a generated protocol buffer package.
     7  
     8  It is generated from these files:
     9  	gossip/message.proto
    10  
    11  It has these top-level messages:
    12  	Envelope
    13  	SecretEnvelope
    14  	Secret
    15  	GossipMessage
    16  	StateInfo
    17  	StateInfoSnapshot
    18  	StateInfoPullRequest
    19  	ConnEstablish
    20  	PeerIdentity
    21  	DataRequest
    22  	GossipHello
    23  	DataUpdate
    24  	DataDigest
    25  	DataMessage
    26  	Payload
    27  	AliveMessage
    28  	LeadershipMessage
    29  	PeerTime
    30  	MembershipRequest
    31  	MembershipResponse
    32  	Member
    33  	Empty
    34  	RemoteStateRequest
    35  	RemoteStateResponse
    36  */
    37  package gossip
    38  
    39  import proto "github.com/golang/protobuf/proto"
    40  import fmt "fmt"
    41  import math "math"
    42  
    43  import (
    44  	context "golang.org/x/net/context"
    45  	grpc "google.golang.org/grpc"
    46  )
    47  
    48  // Reference imports to suppress errors if they are not otherwise used.
    49  var _ = proto.Marshal
    50  var _ = fmt.Errorf
    51  var _ = math.Inf
    52  
    53  // This is a compile-time assertion to ensure that this generated file
    54  // is compatible with the proto package it is being compiled against.
    55  // A compilation error at this line likely means your copy of the
    56  // proto package needs to be updated.
    57  const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
    58  
    59  type PullMsgType int32
    60  
    61  const (
    62  	PullMsgType_Undefined    PullMsgType = 0
    63  	PullMsgType_BlockMessage PullMsgType = 1
    64  	PullMsgType_IdentityMsg  PullMsgType = 2
    65  )
    66  
    67  var PullMsgType_name = map[int32]string{
    68  	0: "Undefined",
    69  	1: "BlockMessage",
    70  	2: "IdentityMsg",
    71  }
    72  var PullMsgType_value = map[string]int32{
    73  	"Undefined":    0,
    74  	"BlockMessage": 1,
    75  	"IdentityMsg":  2,
    76  }
    77  
    78  func (x PullMsgType) String() string {
    79  	return proto.EnumName(PullMsgType_name, int32(x))
    80  }
    81  func (PullMsgType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
    82  
    83  type GossipMessage_Tag int32
    84  
    85  const (
    86  	GossipMessage_UNDEFINED    GossipMessage_Tag = 0
    87  	GossipMessage_EMPTY        GossipMessage_Tag = 1
    88  	GossipMessage_ORG_ONLY     GossipMessage_Tag = 2
    89  	GossipMessage_CHAN_ONLY    GossipMessage_Tag = 3
    90  	GossipMessage_CHAN_AND_ORG GossipMessage_Tag = 4
    91  	GossipMessage_CHAN_OR_ORG  GossipMessage_Tag = 5
    92  )
    93  
    94  var GossipMessage_Tag_name = map[int32]string{
    95  	0: "UNDEFINED",
    96  	1: "EMPTY",
    97  	2: "ORG_ONLY",
    98  	3: "CHAN_ONLY",
    99  	4: "CHAN_AND_ORG",
   100  	5: "CHAN_OR_ORG",
   101  }
   102  var GossipMessage_Tag_value = map[string]int32{
   103  	"UNDEFINED":    0,
   104  	"EMPTY":        1,
   105  	"ORG_ONLY":     2,
   106  	"CHAN_ONLY":    3,
   107  	"CHAN_AND_ORG": 4,
   108  	"CHAN_OR_ORG":  5,
   109  }
   110  
   111  func (x GossipMessage_Tag) String() string {
   112  	return proto.EnumName(GossipMessage_Tag_name, int32(x))
   113  }
   114  func (GossipMessage_Tag) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} }
   115  
   116  // Envelope contains a marshalled
   117  // GossipMessage and a signature over it.
   118  // It may also contain a SecretEnvelope
   119  // which is a marshalled Secret
   120  type Envelope struct {
   121  	Payload        []byte          `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
   122  	Signature      []byte          `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   123  	SecretEnvelope *SecretEnvelope `protobuf:"bytes,3,opt,name=secretEnvelope" json:"secretEnvelope,omitempty"`
   124  }
   125  
   126  func (m *Envelope) Reset()                    { *m = Envelope{} }
   127  func (m *Envelope) String() string            { return proto.CompactTextString(m) }
   128  func (*Envelope) ProtoMessage()               {}
   129  func (*Envelope) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
   130  
   131  func (m *Envelope) GetSecretEnvelope() *SecretEnvelope {
   132  	if m != nil {
   133  		return m.SecretEnvelope
   134  	}
   135  	return nil
   136  }
   137  
   138  // SecretEnvelope is a marshalled Secret
   139  // and a signature over it.
   140  // The signature should be validated by the peer
   141  // that signed the Envelope the SecretEnvelope
   142  // came with
   143  type SecretEnvelope struct {
   144  	Payload   []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
   145  	Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   146  }
   147  
   148  func (m *SecretEnvelope) Reset()                    { *m = SecretEnvelope{} }
   149  func (m *SecretEnvelope) String() string            { return proto.CompactTextString(m) }
   150  func (*SecretEnvelope) ProtoMessage()               {}
   151  func (*SecretEnvelope) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
   152  
   153  // Secret is an entity that might be omitted
   154  // from an Envelope when the remote peer that is receiving
   155  // the Envelope shouldn't know the secret's content.
   156  type Secret struct {
   157  	// Types that are valid to be assigned to Content:
   158  	//	*Secret_InternalEndpoint
   159  	Content isSecret_Content `protobuf_oneof:"content"`
   160  }
   161  
   162  func (m *Secret) Reset()                    { *m = Secret{} }
   163  func (m *Secret) String() string            { return proto.CompactTextString(m) }
   164  func (*Secret) ProtoMessage()               {}
   165  func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
   166  
   167  type isSecret_Content interface {
   168  	isSecret_Content()
   169  }
   170  
   171  type Secret_InternalEndpoint struct {
   172  	InternalEndpoint string `protobuf:"bytes,1,opt,name=internalEndpoint,oneof"`
   173  }
   174  
   175  func (*Secret_InternalEndpoint) isSecret_Content() {}
   176  
   177  func (m *Secret) GetContent() isSecret_Content {
   178  	if m != nil {
   179  		return m.Content
   180  	}
   181  	return nil
   182  }
   183  
   184  func (m *Secret) GetInternalEndpoint() string {
   185  	if x, ok := m.GetContent().(*Secret_InternalEndpoint); ok {
   186  		return x.InternalEndpoint
   187  	}
   188  	return ""
   189  }
   190  
   191  // XXX_OneofFuncs is for the internal use of the proto package.
   192  func (*Secret) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
   193  	return _Secret_OneofMarshaler, _Secret_OneofUnmarshaler, _Secret_OneofSizer, []interface{}{
   194  		(*Secret_InternalEndpoint)(nil),
   195  	}
   196  }
   197  
   198  func _Secret_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
   199  	m := msg.(*Secret)
   200  	// content
   201  	switch x := m.Content.(type) {
   202  	case *Secret_InternalEndpoint:
   203  		b.EncodeVarint(1<<3 | proto.WireBytes)
   204  		b.EncodeStringBytes(x.InternalEndpoint)
   205  	case nil:
   206  	default:
   207  		return fmt.Errorf("Secret.Content has unexpected type %T", x)
   208  	}
   209  	return nil
   210  }
   211  
   212  func _Secret_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
   213  	m := msg.(*Secret)
   214  	switch tag {
   215  	case 1: // content.internalEndpoint
   216  		if wire != proto.WireBytes {
   217  			return true, proto.ErrInternalBadWireType
   218  		}
   219  		x, err := b.DecodeStringBytes()
   220  		m.Content = &Secret_InternalEndpoint{x}
   221  		return true, err
   222  	default:
   223  		return false, nil
   224  	}
   225  }
   226  
   227  func _Secret_OneofSizer(msg proto.Message) (n int) {
   228  	m := msg.(*Secret)
   229  	// content
   230  	switch x := m.Content.(type) {
   231  	case *Secret_InternalEndpoint:
   232  		n += proto.SizeVarint(1<<3 | proto.WireBytes)
   233  		n += proto.SizeVarint(uint64(len(x.InternalEndpoint)))
   234  		n += len(x.InternalEndpoint)
   235  	case nil:
   236  	default:
   237  		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
   238  	}
   239  	return n
   240  }
   241  
   242  // GossipMessage defines the message sent in a gossip network
   243  type GossipMessage struct {
   244  	// used mainly for testing, but will might be used in the future
   245  	// for ensuring message delivery by acking
   246  	Nonce uint64 `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"`
   247  	// The channel of the message.
   248  	// Some GossipMessages may set this to nil, because
   249  	// they are cross-channels but some may not
   250  	Channel []byte `protobuf:"bytes,2,opt,name=channel,proto3" json:"channel,omitempty"`
   251  	// determines to which peers it is allowed
   252  	// to forward the message
   253  	Tag GossipMessage_Tag `protobuf:"varint,3,opt,name=tag,enum=gossip.GossipMessage_Tag" json:"tag,omitempty"`
   254  	// Types that are valid to be assigned to Content:
   255  	//	*GossipMessage_AliveMsg
   256  	//	*GossipMessage_MemReq
   257  	//	*GossipMessage_MemRes
   258  	//	*GossipMessage_DataMsg
   259  	//	*GossipMessage_Hello
   260  	//	*GossipMessage_DataDig
   261  	//	*GossipMessage_DataReq
   262  	//	*GossipMessage_DataUpdate
   263  	//	*GossipMessage_Empty
   264  	//	*GossipMessage_Conn
   265  	//	*GossipMessage_StateInfo
   266  	//	*GossipMessage_StateSnapshot
   267  	//	*GossipMessage_StateInfoPullReq
   268  	//	*GossipMessage_StateRequest
   269  	//	*GossipMessage_StateResponse
   270  	//	*GossipMessage_LeadershipMsg
   271  	//	*GossipMessage_PeerIdentity
   272  	Content isGossipMessage_Content `protobuf_oneof:"content"`
   273  }
   274  
   275  func (m *GossipMessage) Reset()                    { *m = GossipMessage{} }
   276  func (m *GossipMessage) String() string            { return proto.CompactTextString(m) }
   277  func (*GossipMessage) ProtoMessage()               {}
   278  func (*GossipMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
   279  
   280  type isGossipMessage_Content interface {
   281  	isGossipMessage_Content()
   282  }
   283  
   284  type GossipMessage_AliveMsg struct {
   285  	AliveMsg *AliveMessage `protobuf:"bytes,5,opt,name=aliveMsg,oneof"`
   286  }
   287  type GossipMessage_MemReq struct {
   288  	MemReq *MembershipRequest `protobuf:"bytes,6,opt,name=memReq,oneof"`
   289  }
   290  type GossipMessage_MemRes struct {
   291  	MemRes *MembershipResponse `protobuf:"bytes,7,opt,name=memRes,oneof"`
   292  }
   293  type GossipMessage_DataMsg struct {
   294  	DataMsg *DataMessage `protobuf:"bytes,8,opt,name=dataMsg,oneof"`
   295  }
   296  type GossipMessage_Hello struct {
   297  	Hello *GossipHello `protobuf:"bytes,9,opt,name=hello,oneof"`
   298  }
   299  type GossipMessage_DataDig struct {
   300  	DataDig *DataDigest `protobuf:"bytes,10,opt,name=dataDig,oneof"`
   301  }
   302  type GossipMessage_DataReq struct {
   303  	DataReq *DataRequest `protobuf:"bytes,11,opt,name=dataReq,oneof"`
   304  }
   305  type GossipMessage_DataUpdate struct {
   306  	DataUpdate *DataUpdate `protobuf:"bytes,12,opt,name=dataUpdate,oneof"`
   307  }
   308  type GossipMessage_Empty struct {
   309  	Empty *Empty `protobuf:"bytes,13,opt,name=empty,oneof"`
   310  }
   311  type GossipMessage_Conn struct {
   312  	Conn *ConnEstablish `protobuf:"bytes,14,opt,name=conn,oneof"`
   313  }
   314  type GossipMessage_StateInfo struct {
   315  	StateInfo *StateInfo `protobuf:"bytes,15,opt,name=stateInfo,oneof"`
   316  }
   317  type GossipMessage_StateSnapshot struct {
   318  	StateSnapshot *StateInfoSnapshot `protobuf:"bytes,16,opt,name=stateSnapshot,oneof"`
   319  }
   320  type GossipMessage_StateInfoPullReq struct {
   321  	StateInfoPullReq *StateInfoPullRequest `protobuf:"bytes,17,opt,name=stateInfoPullReq,oneof"`
   322  }
   323  type GossipMessage_StateRequest struct {
   324  	StateRequest *RemoteStateRequest `protobuf:"bytes,18,opt,name=stateRequest,oneof"`
   325  }
   326  type GossipMessage_StateResponse struct {
   327  	StateResponse *RemoteStateResponse `protobuf:"bytes,19,opt,name=stateResponse,oneof"`
   328  }
   329  type GossipMessage_LeadershipMsg struct {
   330  	LeadershipMsg *LeadershipMessage `protobuf:"bytes,20,opt,name=leadershipMsg,oneof"`
   331  }
   332  type GossipMessage_PeerIdentity struct {
   333  	PeerIdentity *PeerIdentity `protobuf:"bytes,21,opt,name=peerIdentity,oneof"`
   334  }
   335  
   336  func (*GossipMessage_AliveMsg) isGossipMessage_Content()         {}
   337  func (*GossipMessage_MemReq) isGossipMessage_Content()           {}
   338  func (*GossipMessage_MemRes) isGossipMessage_Content()           {}
   339  func (*GossipMessage_DataMsg) isGossipMessage_Content()          {}
   340  func (*GossipMessage_Hello) isGossipMessage_Content()            {}
   341  func (*GossipMessage_DataDig) isGossipMessage_Content()          {}
   342  func (*GossipMessage_DataReq) isGossipMessage_Content()          {}
   343  func (*GossipMessage_DataUpdate) isGossipMessage_Content()       {}
   344  func (*GossipMessage_Empty) isGossipMessage_Content()            {}
   345  func (*GossipMessage_Conn) isGossipMessage_Content()             {}
   346  func (*GossipMessage_StateInfo) isGossipMessage_Content()        {}
   347  func (*GossipMessage_StateSnapshot) isGossipMessage_Content()    {}
   348  func (*GossipMessage_StateInfoPullReq) isGossipMessage_Content() {}
   349  func (*GossipMessage_StateRequest) isGossipMessage_Content()     {}
   350  func (*GossipMessage_StateResponse) isGossipMessage_Content()    {}
   351  func (*GossipMessage_LeadershipMsg) isGossipMessage_Content()    {}
   352  func (*GossipMessage_PeerIdentity) isGossipMessage_Content()     {}
   353  
   354  func (m *GossipMessage) GetContent() isGossipMessage_Content {
   355  	if m != nil {
   356  		return m.Content
   357  	}
   358  	return nil
   359  }
   360  
   361  func (m *GossipMessage) GetAliveMsg() *AliveMessage {
   362  	if x, ok := m.GetContent().(*GossipMessage_AliveMsg); ok {
   363  		return x.AliveMsg
   364  	}
   365  	return nil
   366  }
   367  
   368  func (m *GossipMessage) GetMemReq() *MembershipRequest {
   369  	if x, ok := m.GetContent().(*GossipMessage_MemReq); ok {
   370  		return x.MemReq
   371  	}
   372  	return nil
   373  }
   374  
   375  func (m *GossipMessage) GetMemRes() *MembershipResponse {
   376  	if x, ok := m.GetContent().(*GossipMessage_MemRes); ok {
   377  		return x.MemRes
   378  	}
   379  	return nil
   380  }
   381  
   382  func (m *GossipMessage) GetDataMsg() *DataMessage {
   383  	if x, ok := m.GetContent().(*GossipMessage_DataMsg); ok {
   384  		return x.DataMsg
   385  	}
   386  	return nil
   387  }
   388  
   389  func (m *GossipMessage) GetHello() *GossipHello {
   390  	if x, ok := m.GetContent().(*GossipMessage_Hello); ok {
   391  		return x.Hello
   392  	}
   393  	return nil
   394  }
   395  
   396  func (m *GossipMessage) GetDataDig() *DataDigest {
   397  	if x, ok := m.GetContent().(*GossipMessage_DataDig); ok {
   398  		return x.DataDig
   399  	}
   400  	return nil
   401  }
   402  
   403  func (m *GossipMessage) GetDataReq() *DataRequest {
   404  	if x, ok := m.GetContent().(*GossipMessage_DataReq); ok {
   405  		return x.DataReq
   406  	}
   407  	return nil
   408  }
   409  
   410  func (m *GossipMessage) GetDataUpdate() *DataUpdate {
   411  	if x, ok := m.GetContent().(*GossipMessage_DataUpdate); ok {
   412  		return x.DataUpdate
   413  	}
   414  	return nil
   415  }
   416  
   417  func (m *GossipMessage) GetEmpty() *Empty {
   418  	if x, ok := m.GetContent().(*GossipMessage_Empty); ok {
   419  		return x.Empty
   420  	}
   421  	return nil
   422  }
   423  
   424  func (m *GossipMessage) GetConn() *ConnEstablish {
   425  	if x, ok := m.GetContent().(*GossipMessage_Conn); ok {
   426  		return x.Conn
   427  	}
   428  	return nil
   429  }
   430  
   431  func (m *GossipMessage) GetStateInfo() *StateInfo {
   432  	if x, ok := m.GetContent().(*GossipMessage_StateInfo); ok {
   433  		return x.StateInfo
   434  	}
   435  	return nil
   436  }
   437  
   438  func (m *GossipMessage) GetStateSnapshot() *StateInfoSnapshot {
   439  	if x, ok := m.GetContent().(*GossipMessage_StateSnapshot); ok {
   440  		return x.StateSnapshot
   441  	}
   442  	return nil
   443  }
   444  
   445  func (m *GossipMessage) GetStateInfoPullReq() *StateInfoPullRequest {
   446  	if x, ok := m.GetContent().(*GossipMessage_StateInfoPullReq); ok {
   447  		return x.StateInfoPullReq
   448  	}
   449  	return nil
   450  }
   451  
   452  func (m *GossipMessage) GetStateRequest() *RemoteStateRequest {
   453  	if x, ok := m.GetContent().(*GossipMessage_StateRequest); ok {
   454  		return x.StateRequest
   455  	}
   456  	return nil
   457  }
   458  
   459  func (m *GossipMessage) GetStateResponse() *RemoteStateResponse {
   460  	if x, ok := m.GetContent().(*GossipMessage_StateResponse); ok {
   461  		return x.StateResponse
   462  	}
   463  	return nil
   464  }
   465  
   466  func (m *GossipMessage) GetLeadershipMsg() *LeadershipMessage {
   467  	if x, ok := m.GetContent().(*GossipMessage_LeadershipMsg); ok {
   468  		return x.LeadershipMsg
   469  	}
   470  	return nil
   471  }
   472  
   473  func (m *GossipMessage) GetPeerIdentity() *PeerIdentity {
   474  	if x, ok := m.GetContent().(*GossipMessage_PeerIdentity); ok {
   475  		return x.PeerIdentity
   476  	}
   477  	return nil
   478  }
   479  
   480  // XXX_OneofFuncs is for the internal use of the proto package.
   481  func (*GossipMessage) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
   482  	return _GossipMessage_OneofMarshaler, _GossipMessage_OneofUnmarshaler, _GossipMessage_OneofSizer, []interface{}{
   483  		(*GossipMessage_AliveMsg)(nil),
   484  		(*GossipMessage_MemReq)(nil),
   485  		(*GossipMessage_MemRes)(nil),
   486  		(*GossipMessage_DataMsg)(nil),
   487  		(*GossipMessage_Hello)(nil),
   488  		(*GossipMessage_DataDig)(nil),
   489  		(*GossipMessage_DataReq)(nil),
   490  		(*GossipMessage_DataUpdate)(nil),
   491  		(*GossipMessage_Empty)(nil),
   492  		(*GossipMessage_Conn)(nil),
   493  		(*GossipMessage_StateInfo)(nil),
   494  		(*GossipMessage_StateSnapshot)(nil),
   495  		(*GossipMessage_StateInfoPullReq)(nil),
   496  		(*GossipMessage_StateRequest)(nil),
   497  		(*GossipMessage_StateResponse)(nil),
   498  		(*GossipMessage_LeadershipMsg)(nil),
   499  		(*GossipMessage_PeerIdentity)(nil),
   500  	}
   501  }
   502  
   503  func _GossipMessage_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
   504  	m := msg.(*GossipMessage)
   505  	// content
   506  	switch x := m.Content.(type) {
   507  	case *GossipMessage_AliveMsg:
   508  		b.EncodeVarint(5<<3 | proto.WireBytes)
   509  		if err := b.EncodeMessage(x.AliveMsg); err != nil {
   510  			return err
   511  		}
   512  	case *GossipMessage_MemReq:
   513  		b.EncodeVarint(6<<3 | proto.WireBytes)
   514  		if err := b.EncodeMessage(x.MemReq); err != nil {
   515  			return err
   516  		}
   517  	case *GossipMessage_MemRes:
   518  		b.EncodeVarint(7<<3 | proto.WireBytes)
   519  		if err := b.EncodeMessage(x.MemRes); err != nil {
   520  			return err
   521  		}
   522  	case *GossipMessage_DataMsg:
   523  		b.EncodeVarint(8<<3 | proto.WireBytes)
   524  		if err := b.EncodeMessage(x.DataMsg); err != nil {
   525  			return err
   526  		}
   527  	case *GossipMessage_Hello:
   528  		b.EncodeVarint(9<<3 | proto.WireBytes)
   529  		if err := b.EncodeMessage(x.Hello); err != nil {
   530  			return err
   531  		}
   532  	case *GossipMessage_DataDig:
   533  		b.EncodeVarint(10<<3 | proto.WireBytes)
   534  		if err := b.EncodeMessage(x.DataDig); err != nil {
   535  			return err
   536  		}
   537  	case *GossipMessage_DataReq:
   538  		b.EncodeVarint(11<<3 | proto.WireBytes)
   539  		if err := b.EncodeMessage(x.DataReq); err != nil {
   540  			return err
   541  		}
   542  	case *GossipMessage_DataUpdate:
   543  		b.EncodeVarint(12<<3 | proto.WireBytes)
   544  		if err := b.EncodeMessage(x.DataUpdate); err != nil {
   545  			return err
   546  		}
   547  	case *GossipMessage_Empty:
   548  		b.EncodeVarint(13<<3 | proto.WireBytes)
   549  		if err := b.EncodeMessage(x.Empty); err != nil {
   550  			return err
   551  		}
   552  	case *GossipMessage_Conn:
   553  		b.EncodeVarint(14<<3 | proto.WireBytes)
   554  		if err := b.EncodeMessage(x.Conn); err != nil {
   555  			return err
   556  		}
   557  	case *GossipMessage_StateInfo:
   558  		b.EncodeVarint(15<<3 | proto.WireBytes)
   559  		if err := b.EncodeMessage(x.StateInfo); err != nil {
   560  			return err
   561  		}
   562  	case *GossipMessage_StateSnapshot:
   563  		b.EncodeVarint(16<<3 | proto.WireBytes)
   564  		if err := b.EncodeMessage(x.StateSnapshot); err != nil {
   565  			return err
   566  		}
   567  	case *GossipMessage_StateInfoPullReq:
   568  		b.EncodeVarint(17<<3 | proto.WireBytes)
   569  		if err := b.EncodeMessage(x.StateInfoPullReq); err != nil {
   570  			return err
   571  		}
   572  	case *GossipMessage_StateRequest:
   573  		b.EncodeVarint(18<<3 | proto.WireBytes)
   574  		if err := b.EncodeMessage(x.StateRequest); err != nil {
   575  			return err
   576  		}
   577  	case *GossipMessage_StateResponse:
   578  		b.EncodeVarint(19<<3 | proto.WireBytes)
   579  		if err := b.EncodeMessage(x.StateResponse); err != nil {
   580  			return err
   581  		}
   582  	case *GossipMessage_LeadershipMsg:
   583  		b.EncodeVarint(20<<3 | proto.WireBytes)
   584  		if err := b.EncodeMessage(x.LeadershipMsg); err != nil {
   585  			return err
   586  		}
   587  	case *GossipMessage_PeerIdentity:
   588  		b.EncodeVarint(21<<3 | proto.WireBytes)
   589  		if err := b.EncodeMessage(x.PeerIdentity); err != nil {
   590  			return err
   591  		}
   592  	case nil:
   593  	default:
   594  		return fmt.Errorf("GossipMessage.Content has unexpected type %T", x)
   595  	}
   596  	return nil
   597  }
   598  
   599  func _GossipMessage_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
   600  	m := msg.(*GossipMessage)
   601  	switch tag {
   602  	case 5: // content.aliveMsg
   603  		if wire != proto.WireBytes {
   604  			return true, proto.ErrInternalBadWireType
   605  		}
   606  		msg := new(AliveMessage)
   607  		err := b.DecodeMessage(msg)
   608  		m.Content = &GossipMessage_AliveMsg{msg}
   609  		return true, err
   610  	case 6: // content.memReq
   611  		if wire != proto.WireBytes {
   612  			return true, proto.ErrInternalBadWireType
   613  		}
   614  		msg := new(MembershipRequest)
   615  		err := b.DecodeMessage(msg)
   616  		m.Content = &GossipMessage_MemReq{msg}
   617  		return true, err
   618  	case 7: // content.memRes
   619  		if wire != proto.WireBytes {
   620  			return true, proto.ErrInternalBadWireType
   621  		}
   622  		msg := new(MembershipResponse)
   623  		err := b.DecodeMessage(msg)
   624  		m.Content = &GossipMessage_MemRes{msg}
   625  		return true, err
   626  	case 8: // content.dataMsg
   627  		if wire != proto.WireBytes {
   628  			return true, proto.ErrInternalBadWireType
   629  		}
   630  		msg := new(DataMessage)
   631  		err := b.DecodeMessage(msg)
   632  		m.Content = &GossipMessage_DataMsg{msg}
   633  		return true, err
   634  	case 9: // content.hello
   635  		if wire != proto.WireBytes {
   636  			return true, proto.ErrInternalBadWireType
   637  		}
   638  		msg := new(GossipHello)
   639  		err := b.DecodeMessage(msg)
   640  		m.Content = &GossipMessage_Hello{msg}
   641  		return true, err
   642  	case 10: // content.dataDig
   643  		if wire != proto.WireBytes {
   644  			return true, proto.ErrInternalBadWireType
   645  		}
   646  		msg := new(DataDigest)
   647  		err := b.DecodeMessage(msg)
   648  		m.Content = &GossipMessage_DataDig{msg}
   649  		return true, err
   650  	case 11: // content.dataReq
   651  		if wire != proto.WireBytes {
   652  			return true, proto.ErrInternalBadWireType
   653  		}
   654  		msg := new(DataRequest)
   655  		err := b.DecodeMessage(msg)
   656  		m.Content = &GossipMessage_DataReq{msg}
   657  		return true, err
   658  	case 12: // content.dataUpdate
   659  		if wire != proto.WireBytes {
   660  			return true, proto.ErrInternalBadWireType
   661  		}
   662  		msg := new(DataUpdate)
   663  		err := b.DecodeMessage(msg)
   664  		m.Content = &GossipMessage_DataUpdate{msg}
   665  		return true, err
   666  	case 13: // content.empty
   667  		if wire != proto.WireBytes {
   668  			return true, proto.ErrInternalBadWireType
   669  		}
   670  		msg := new(Empty)
   671  		err := b.DecodeMessage(msg)
   672  		m.Content = &GossipMessage_Empty{msg}
   673  		return true, err
   674  	case 14: // content.conn
   675  		if wire != proto.WireBytes {
   676  			return true, proto.ErrInternalBadWireType
   677  		}
   678  		msg := new(ConnEstablish)
   679  		err := b.DecodeMessage(msg)
   680  		m.Content = &GossipMessage_Conn{msg}
   681  		return true, err
   682  	case 15: // content.stateInfo
   683  		if wire != proto.WireBytes {
   684  			return true, proto.ErrInternalBadWireType
   685  		}
   686  		msg := new(StateInfo)
   687  		err := b.DecodeMessage(msg)
   688  		m.Content = &GossipMessage_StateInfo{msg}
   689  		return true, err
   690  	case 16: // content.stateSnapshot
   691  		if wire != proto.WireBytes {
   692  			return true, proto.ErrInternalBadWireType
   693  		}
   694  		msg := new(StateInfoSnapshot)
   695  		err := b.DecodeMessage(msg)
   696  		m.Content = &GossipMessage_StateSnapshot{msg}
   697  		return true, err
   698  	case 17: // content.stateInfoPullReq
   699  		if wire != proto.WireBytes {
   700  			return true, proto.ErrInternalBadWireType
   701  		}
   702  		msg := new(StateInfoPullRequest)
   703  		err := b.DecodeMessage(msg)
   704  		m.Content = &GossipMessage_StateInfoPullReq{msg}
   705  		return true, err
   706  	case 18: // content.stateRequest
   707  		if wire != proto.WireBytes {
   708  			return true, proto.ErrInternalBadWireType
   709  		}
   710  		msg := new(RemoteStateRequest)
   711  		err := b.DecodeMessage(msg)
   712  		m.Content = &GossipMessage_StateRequest{msg}
   713  		return true, err
   714  	case 19: // content.stateResponse
   715  		if wire != proto.WireBytes {
   716  			return true, proto.ErrInternalBadWireType
   717  		}
   718  		msg := new(RemoteStateResponse)
   719  		err := b.DecodeMessage(msg)
   720  		m.Content = &GossipMessage_StateResponse{msg}
   721  		return true, err
   722  	case 20: // content.leadershipMsg
   723  		if wire != proto.WireBytes {
   724  			return true, proto.ErrInternalBadWireType
   725  		}
   726  		msg := new(LeadershipMessage)
   727  		err := b.DecodeMessage(msg)
   728  		m.Content = &GossipMessage_LeadershipMsg{msg}
   729  		return true, err
   730  	case 21: // content.peerIdentity
   731  		if wire != proto.WireBytes {
   732  			return true, proto.ErrInternalBadWireType
   733  		}
   734  		msg := new(PeerIdentity)
   735  		err := b.DecodeMessage(msg)
   736  		m.Content = &GossipMessage_PeerIdentity{msg}
   737  		return true, err
   738  	default:
   739  		return false, nil
   740  	}
   741  }
   742  
   743  func _GossipMessage_OneofSizer(msg proto.Message) (n int) {
   744  	m := msg.(*GossipMessage)
   745  	// content
   746  	switch x := m.Content.(type) {
   747  	case *GossipMessage_AliveMsg:
   748  		s := proto.Size(x.AliveMsg)
   749  		n += proto.SizeVarint(5<<3 | proto.WireBytes)
   750  		n += proto.SizeVarint(uint64(s))
   751  		n += s
   752  	case *GossipMessage_MemReq:
   753  		s := proto.Size(x.MemReq)
   754  		n += proto.SizeVarint(6<<3 | proto.WireBytes)
   755  		n += proto.SizeVarint(uint64(s))
   756  		n += s
   757  	case *GossipMessage_MemRes:
   758  		s := proto.Size(x.MemRes)
   759  		n += proto.SizeVarint(7<<3 | proto.WireBytes)
   760  		n += proto.SizeVarint(uint64(s))
   761  		n += s
   762  	case *GossipMessage_DataMsg:
   763  		s := proto.Size(x.DataMsg)
   764  		n += proto.SizeVarint(8<<3 | proto.WireBytes)
   765  		n += proto.SizeVarint(uint64(s))
   766  		n += s
   767  	case *GossipMessage_Hello:
   768  		s := proto.Size(x.Hello)
   769  		n += proto.SizeVarint(9<<3 | proto.WireBytes)
   770  		n += proto.SizeVarint(uint64(s))
   771  		n += s
   772  	case *GossipMessage_DataDig:
   773  		s := proto.Size(x.DataDig)
   774  		n += proto.SizeVarint(10<<3 | proto.WireBytes)
   775  		n += proto.SizeVarint(uint64(s))
   776  		n += s
   777  	case *GossipMessage_DataReq:
   778  		s := proto.Size(x.DataReq)
   779  		n += proto.SizeVarint(11<<3 | proto.WireBytes)
   780  		n += proto.SizeVarint(uint64(s))
   781  		n += s
   782  	case *GossipMessage_DataUpdate:
   783  		s := proto.Size(x.DataUpdate)
   784  		n += proto.SizeVarint(12<<3 | proto.WireBytes)
   785  		n += proto.SizeVarint(uint64(s))
   786  		n += s
   787  	case *GossipMessage_Empty:
   788  		s := proto.Size(x.Empty)
   789  		n += proto.SizeVarint(13<<3 | proto.WireBytes)
   790  		n += proto.SizeVarint(uint64(s))
   791  		n += s
   792  	case *GossipMessage_Conn:
   793  		s := proto.Size(x.Conn)
   794  		n += proto.SizeVarint(14<<3 | proto.WireBytes)
   795  		n += proto.SizeVarint(uint64(s))
   796  		n += s
   797  	case *GossipMessage_StateInfo:
   798  		s := proto.Size(x.StateInfo)
   799  		n += proto.SizeVarint(15<<3 | proto.WireBytes)
   800  		n += proto.SizeVarint(uint64(s))
   801  		n += s
   802  	case *GossipMessage_StateSnapshot:
   803  		s := proto.Size(x.StateSnapshot)
   804  		n += proto.SizeVarint(16<<3 | proto.WireBytes)
   805  		n += proto.SizeVarint(uint64(s))
   806  		n += s
   807  	case *GossipMessage_StateInfoPullReq:
   808  		s := proto.Size(x.StateInfoPullReq)
   809  		n += proto.SizeVarint(17<<3 | proto.WireBytes)
   810  		n += proto.SizeVarint(uint64(s))
   811  		n += s
   812  	case *GossipMessage_StateRequest:
   813  		s := proto.Size(x.StateRequest)
   814  		n += proto.SizeVarint(18<<3 | proto.WireBytes)
   815  		n += proto.SizeVarint(uint64(s))
   816  		n += s
   817  	case *GossipMessage_StateResponse:
   818  		s := proto.Size(x.StateResponse)
   819  		n += proto.SizeVarint(19<<3 | proto.WireBytes)
   820  		n += proto.SizeVarint(uint64(s))
   821  		n += s
   822  	case *GossipMessage_LeadershipMsg:
   823  		s := proto.Size(x.LeadershipMsg)
   824  		n += proto.SizeVarint(20<<3 | proto.WireBytes)
   825  		n += proto.SizeVarint(uint64(s))
   826  		n += s
   827  	case *GossipMessage_PeerIdentity:
   828  		s := proto.Size(x.PeerIdentity)
   829  		n += proto.SizeVarint(21<<3 | proto.WireBytes)
   830  		n += proto.SizeVarint(uint64(s))
   831  		n += s
   832  	case nil:
   833  	default:
   834  		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
   835  	}
   836  	return n
   837  }
   838  
   839  // StateInfo is used for a peer to relay its state information
   840  // to other peers
   841  type StateInfo struct {
   842  	Metadata  []byte    `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
   843  	Timestamp *PeerTime `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
   844  	PkiID     []byte    `protobuf:"bytes,3,opt,name=pkiID,proto3" json:"pkiID,omitempty"`
   845  }
   846  
   847  func (m *StateInfo) Reset()                    { *m = StateInfo{} }
   848  func (m *StateInfo) String() string            { return proto.CompactTextString(m) }
   849  func (*StateInfo) ProtoMessage()               {}
   850  func (*StateInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
   851  
   852  func (m *StateInfo) GetTimestamp() *PeerTime {
   853  	if m != nil {
   854  		return m.Timestamp
   855  	}
   856  	return nil
   857  }
   858  
   859  // StateInfoSnapshot is an aggregation of StateInfo messages
   860  type StateInfoSnapshot struct {
   861  	Elements []*Envelope `protobuf:"bytes,1,rep,name=elements" json:"elements,omitempty"`
   862  }
   863  
   864  func (m *StateInfoSnapshot) Reset()                    { *m = StateInfoSnapshot{} }
   865  func (m *StateInfoSnapshot) String() string            { return proto.CompactTextString(m) }
   866  func (*StateInfoSnapshot) ProtoMessage()               {}
   867  func (*StateInfoSnapshot) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
   868  
   869  func (m *StateInfoSnapshot) GetElements() []*Envelope {
   870  	if m != nil {
   871  		return m.Elements
   872  	}
   873  	return nil
   874  }
   875  
   876  // StateInfoPullRequest is used to fetch a StateInfoSnapshot
   877  // from a remote peer
   878  type StateInfoPullRequest struct {
   879  }
   880  
   881  func (m *StateInfoPullRequest) Reset()                    { *m = StateInfoPullRequest{} }
   882  func (m *StateInfoPullRequest) String() string            { return proto.CompactTextString(m) }
   883  func (*StateInfoPullRequest) ProtoMessage()               {}
   884  func (*StateInfoPullRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
   885  
   886  // ConnEstablish is the message used for the gossip handshake
   887  // Whenever a peer connects to another peer, it handshakes
   888  // with it by sending this message that proves its identity
   889  type ConnEstablish struct {
   890  	PkiID []byte `protobuf:"bytes,1,opt,name=pkiID,proto3" json:"pkiID,omitempty"`
   891  	Cert  []byte `protobuf:"bytes,2,opt,name=cert,proto3" json:"cert,omitempty"`
   892  	Hash  []byte `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"`
   893  }
   894  
   895  func (m *ConnEstablish) Reset()                    { *m = ConnEstablish{} }
   896  func (m *ConnEstablish) String() string            { return proto.CompactTextString(m) }
   897  func (*ConnEstablish) ProtoMessage()               {}
   898  func (*ConnEstablish) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
   899  
   900  // PeerIdentity defines the identity of the peer
   901  // Used to make other peers learn of the identity
   902  // of a certain peer
   903  type PeerIdentity struct {
   904  	PkiID    []byte `protobuf:"bytes,1,opt,name=pkiID,proto3" json:"pkiID,omitempty"`
   905  	Cert     []byte `protobuf:"bytes,2,opt,name=cert,proto3" json:"cert,omitempty"`
   906  	Metadata []byte `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
   907  }
   908  
   909  func (m *PeerIdentity) Reset()                    { *m = PeerIdentity{} }
   910  func (m *PeerIdentity) String() string            { return proto.CompactTextString(m) }
   911  func (*PeerIdentity) ProtoMessage()               {}
   912  func (*PeerIdentity) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
   913  
   914  // DataRequest is a message used for a peer to request
   915  // certain data blocks from a remote peer
   916  type DataRequest struct {
   917  	Nonce   uint64      `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"`
   918  	Digests []string    `protobuf:"bytes,2,rep,name=digests" json:"digests,omitempty"`
   919  	MsgType PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"`
   920  }
   921  
   922  func (m *DataRequest) Reset()                    { *m = DataRequest{} }
   923  func (m *DataRequest) String() string            { return proto.CompactTextString(m) }
   924  func (*DataRequest) ProtoMessage()               {}
   925  func (*DataRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
   926  
   927  // GossipHello is the message that is used for the peer to initiate
   928  // a pull round with another peer
   929  type GossipHello struct {
   930  	Nonce    uint64      `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"`
   931  	Metadata []byte      `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
   932  	MsgType  PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"`
   933  }
   934  
   935  func (m *GossipHello) Reset()                    { *m = GossipHello{} }
   936  func (m *GossipHello) String() string            { return proto.CompactTextString(m) }
   937  func (*GossipHello) ProtoMessage()               {}
   938  func (*GossipHello) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
   939  
   940  // DataUpdate is the the final message in the pull phase
   941  // sent from the receiver to the initiator
   942  type DataUpdate struct {
   943  	Nonce   uint64      `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"`
   944  	Data    []*Envelope `protobuf:"bytes,2,rep,name=data" json:"data,omitempty"`
   945  	MsgType PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"`
   946  }
   947  
   948  func (m *DataUpdate) Reset()                    { *m = DataUpdate{} }
   949  func (m *DataUpdate) String() string            { return proto.CompactTextString(m) }
   950  func (*DataUpdate) ProtoMessage()               {}
   951  func (*DataUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
   952  
   953  func (m *DataUpdate) GetData() []*Envelope {
   954  	if m != nil {
   955  		return m.Data
   956  	}
   957  	return nil
   958  }
   959  
   960  // DataDigest is the message sent from the receiver peer
   961  // to the initator peer and contains the data items it has
   962  type DataDigest struct {
   963  	Nonce   uint64      `protobuf:"varint,1,opt,name=nonce" json:"nonce,omitempty"`
   964  	Digests []string    `protobuf:"bytes,2,rep,name=digests" json:"digests,omitempty"`
   965  	MsgType PullMsgType `protobuf:"varint,3,opt,name=msgType,enum=gossip.PullMsgType" json:"msgType,omitempty"`
   966  }
   967  
   968  func (m *DataDigest) Reset()                    { *m = DataDigest{} }
   969  func (m *DataDigest) String() string            { return proto.CompactTextString(m) }
   970  func (*DataDigest) ProtoMessage()               {}
   971  func (*DataDigest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
   972  
   973  // DataMessage is the message that contains a block
   974  type DataMessage struct {
   975  	Payload *Payload `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
   976  }
   977  
   978  func (m *DataMessage) Reset()                    { *m = DataMessage{} }
   979  func (m *DataMessage) String() string            { return proto.CompactTextString(m) }
   980  func (*DataMessage) ProtoMessage()               {}
   981  func (*DataMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
   982  
   983  func (m *DataMessage) GetPayload() *Payload {
   984  	if m != nil {
   985  		return m.Payload
   986  	}
   987  	return nil
   988  }
   989  
   990  // Payload contains a block
   991  type Payload struct {
   992  	SeqNum uint64 `protobuf:"varint,1,opt,name=seqNum" json:"seqNum,omitempty"`
   993  	Hash   string `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"`
   994  	Data   []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
   995  }
   996  
   997  func (m *Payload) Reset()                    { *m = Payload{} }
   998  func (m *Payload) String() string            { return proto.CompactTextString(m) }
   999  func (*Payload) ProtoMessage()               {}
  1000  func (*Payload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
  1001  
  1002  // AliveMessage is sent to inform remote peers
  1003  // of a peer's existence and activity
  1004  type AliveMessage struct {
  1005  	Membership *Member   `protobuf:"bytes,1,opt,name=membership" json:"membership,omitempty"`
  1006  	Timestamp  *PeerTime `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
  1007  	Identity   []byte    `protobuf:"bytes,4,opt,name=identity,proto3" json:"identity,omitempty"`
  1008  }
  1009  
  1010  func (m *AliveMessage) Reset()                    { *m = AliveMessage{} }
  1011  func (m *AliveMessage) String() string            { return proto.CompactTextString(m) }
  1012  func (*AliveMessage) ProtoMessage()               {}
  1013  func (*AliveMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
  1014  
  1015  func (m *AliveMessage) GetMembership() *Member {
  1016  	if m != nil {
  1017  		return m.Membership
  1018  	}
  1019  	return nil
  1020  }
  1021  
  1022  func (m *AliveMessage) GetTimestamp() *PeerTime {
  1023  	if m != nil {
  1024  		return m.Timestamp
  1025  	}
  1026  	return nil
  1027  }
  1028  
  1029  // Leadership Message is sent during leader election to inform
  1030  // remote peers about intent of peer to proclaim itself as leader
  1031  type LeadershipMessage struct {
  1032  	PkiID         []byte    `protobuf:"bytes,1,opt,name=pkiID,proto3" json:"pkiID,omitempty"`
  1033  	Timestamp     *PeerTime `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
  1034  	IsDeclaration bool      `protobuf:"varint,3,opt,name=isDeclaration" json:"isDeclaration,omitempty"`
  1035  }
  1036  
  1037  func (m *LeadershipMessage) Reset()                    { *m = LeadershipMessage{} }
  1038  func (m *LeadershipMessage) String() string            { return proto.CompactTextString(m) }
  1039  func (*LeadershipMessage) ProtoMessage()               {}
  1040  func (*LeadershipMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
  1041  
  1042  func (m *LeadershipMessage) GetTimestamp() *PeerTime {
  1043  	if m != nil {
  1044  		return m.Timestamp
  1045  	}
  1046  	return nil
  1047  }
  1048  
  1049  // PeerTime defines the logical time of a peer's life
  1050  type PeerTime struct {
  1051  	IncNumber uint64 `protobuf:"varint,1,opt,name=inc_number,json=incNumber" json:"inc_number,omitempty"`
  1052  	SeqNum    uint64 `protobuf:"varint,2,opt,name=seqNum" json:"seqNum,omitempty"`
  1053  }
  1054  
  1055  func (m *PeerTime) Reset()                    { *m = PeerTime{} }
  1056  func (m *PeerTime) String() string            { return proto.CompactTextString(m) }
  1057  func (*PeerTime) ProtoMessage()               {}
  1058  func (*PeerTime) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
  1059  
  1060  // MembershipRequest is used to ask membership information
  1061  // from a remote peer
  1062  type MembershipRequest struct {
  1063  	SelfInformation *Envelope `protobuf:"bytes,1,opt,name=selfInformation" json:"selfInformation,omitempty"`
  1064  	Known           [][]byte  `protobuf:"bytes,2,rep,name=known,proto3" json:"known,omitempty"`
  1065  }
  1066  
  1067  func (m *MembershipRequest) Reset()                    { *m = MembershipRequest{} }
  1068  func (m *MembershipRequest) String() string            { return proto.CompactTextString(m) }
  1069  func (*MembershipRequest) ProtoMessage()               {}
  1070  func (*MembershipRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
  1071  
  1072  func (m *MembershipRequest) GetSelfInformation() *Envelope {
  1073  	if m != nil {
  1074  		return m.SelfInformation
  1075  	}
  1076  	return nil
  1077  }
  1078  
  1079  // MembershipResponse is used for replying to MembershipRequests
  1080  type MembershipResponse struct {
  1081  	Alive []*Envelope `protobuf:"bytes,1,rep,name=alive" json:"alive,omitempty"`
  1082  	Dead  []*Envelope `protobuf:"bytes,2,rep,name=dead" json:"dead,omitempty"`
  1083  }
  1084  
  1085  func (m *MembershipResponse) Reset()                    { *m = MembershipResponse{} }
  1086  func (m *MembershipResponse) String() string            { return proto.CompactTextString(m) }
  1087  func (*MembershipResponse) ProtoMessage()               {}
  1088  func (*MembershipResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
  1089  
  1090  func (m *MembershipResponse) GetAlive() []*Envelope {
  1091  	if m != nil {
  1092  		return m.Alive
  1093  	}
  1094  	return nil
  1095  }
  1096  
  1097  func (m *MembershipResponse) GetDead() []*Envelope {
  1098  	if m != nil {
  1099  		return m.Dead
  1100  	}
  1101  	return nil
  1102  }
  1103  
  1104  // Member holds membership-related information
  1105  // about a peer
  1106  type Member struct {
  1107  	Endpoint string `protobuf:"bytes,1,opt,name=endpoint" json:"endpoint,omitempty"`
  1108  	Metadata []byte `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
  1109  	PkiID    []byte `protobuf:"bytes,3,opt,name=pkiID,proto3" json:"pkiID,omitempty"`
  1110  }
  1111  
  1112  func (m *Member) Reset()                    { *m = Member{} }
  1113  func (m *Member) String() string            { return proto.CompactTextString(m) }
  1114  func (*Member) ProtoMessage()               {}
  1115  func (*Member) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
  1116  
  1117  // Empty is used for pinging and in tests
  1118  type Empty struct {
  1119  }
  1120  
  1121  func (m *Empty) Reset()                    { *m = Empty{} }
  1122  func (m *Empty) String() string            { return proto.CompactTextString(m) }
  1123  func (*Empty) ProtoMessage()               {}
  1124  func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
  1125  
  1126  // RemoteStateRequest is used to ask a set of blocks
  1127  // from a remote peer
  1128  type RemoteStateRequest struct {
  1129  	SeqNums []uint64 `protobuf:"varint,1,rep,packed,name=seqNums" json:"seqNums,omitempty"`
  1130  }
  1131  
  1132  func (m *RemoteStateRequest) Reset()                    { *m = RemoteStateRequest{} }
  1133  func (m *RemoteStateRequest) String() string            { return proto.CompactTextString(m) }
  1134  func (*RemoteStateRequest) ProtoMessage()               {}
  1135  func (*RemoteStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
  1136  
  1137  // RemoteStateResponse is used to send a set of blocks
  1138  // to a remote peer
  1139  type RemoteStateResponse struct {
  1140  	Payloads []*Payload `protobuf:"bytes,1,rep,name=payloads" json:"payloads,omitempty"`
  1141  }
  1142  
  1143  func (m *RemoteStateResponse) Reset()                    { *m = RemoteStateResponse{} }
  1144  func (m *RemoteStateResponse) String() string            { return proto.CompactTextString(m) }
  1145  func (*RemoteStateResponse) ProtoMessage()               {}
  1146  func (*RemoteStateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
  1147  
  1148  func (m *RemoteStateResponse) GetPayloads() []*Payload {
  1149  	if m != nil {
  1150  		return m.Payloads
  1151  	}
  1152  	return nil
  1153  }
  1154  
  1155  func init() {
  1156  	proto.RegisterType((*Envelope)(nil), "gossip.Envelope")
  1157  	proto.RegisterType((*SecretEnvelope)(nil), "gossip.SecretEnvelope")
  1158  	proto.RegisterType((*Secret)(nil), "gossip.Secret")
  1159  	proto.RegisterType((*GossipMessage)(nil), "gossip.GossipMessage")
  1160  	proto.RegisterType((*StateInfo)(nil), "gossip.StateInfo")
  1161  	proto.RegisterType((*StateInfoSnapshot)(nil), "gossip.StateInfoSnapshot")
  1162  	proto.RegisterType((*StateInfoPullRequest)(nil), "gossip.StateInfoPullRequest")
  1163  	proto.RegisterType((*ConnEstablish)(nil), "gossip.ConnEstablish")
  1164  	proto.RegisterType((*PeerIdentity)(nil), "gossip.PeerIdentity")
  1165  	proto.RegisterType((*DataRequest)(nil), "gossip.DataRequest")
  1166  	proto.RegisterType((*GossipHello)(nil), "gossip.GossipHello")
  1167  	proto.RegisterType((*DataUpdate)(nil), "gossip.DataUpdate")
  1168  	proto.RegisterType((*DataDigest)(nil), "gossip.DataDigest")
  1169  	proto.RegisterType((*DataMessage)(nil), "gossip.DataMessage")
  1170  	proto.RegisterType((*Payload)(nil), "gossip.Payload")
  1171  	proto.RegisterType((*AliveMessage)(nil), "gossip.AliveMessage")
  1172  	proto.RegisterType((*LeadershipMessage)(nil), "gossip.LeadershipMessage")
  1173  	proto.RegisterType((*PeerTime)(nil), "gossip.PeerTime")
  1174  	proto.RegisterType((*MembershipRequest)(nil), "gossip.MembershipRequest")
  1175  	proto.RegisterType((*MembershipResponse)(nil), "gossip.MembershipResponse")
  1176  	proto.RegisterType((*Member)(nil), "gossip.Member")
  1177  	proto.RegisterType((*Empty)(nil), "gossip.Empty")
  1178  	proto.RegisterType((*RemoteStateRequest)(nil), "gossip.RemoteStateRequest")
  1179  	proto.RegisterType((*RemoteStateResponse)(nil), "gossip.RemoteStateResponse")
  1180  	proto.RegisterEnum("gossip.PullMsgType", PullMsgType_name, PullMsgType_value)
  1181  	proto.RegisterEnum("gossip.GossipMessage_Tag", GossipMessage_Tag_name, GossipMessage_Tag_value)
  1182  }
  1183  
  1184  // Reference imports to suppress errors if they are not otherwise used.
  1185  var _ context.Context
  1186  var _ grpc.ClientConn
  1187  
  1188  // This is a compile-time assertion to ensure that this generated file
  1189  // is compatible with the grpc package it is being compiled against.
  1190  const _ = grpc.SupportPackageIsVersion3
  1191  
  1192  // Client API for Gossip service
  1193  
  1194  type GossipClient interface {
  1195  	// GossipStream is the gRPC stream used for sending and receiving messages
  1196  	GossipStream(ctx context.Context, opts ...grpc.CallOption) (Gossip_GossipStreamClient, error)
  1197  	// Ping is used to probe a remote peer's aliveness
  1198  	Ping(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
  1199  }
  1200  
  1201  type gossipClient struct {
  1202  	cc *grpc.ClientConn
  1203  }
  1204  
  1205  func NewGossipClient(cc *grpc.ClientConn) GossipClient {
  1206  	return &gossipClient{cc}
  1207  }
  1208  
  1209  func (c *gossipClient) GossipStream(ctx context.Context, opts ...grpc.CallOption) (Gossip_GossipStreamClient, error) {
  1210  	stream, err := grpc.NewClientStream(ctx, &_Gossip_serviceDesc.Streams[0], c.cc, "/gossip.Gossip/GossipStream", opts...)
  1211  	if err != nil {
  1212  		return nil, err
  1213  	}
  1214  	x := &gossipGossipStreamClient{stream}
  1215  	return x, nil
  1216  }
  1217  
  1218  type Gossip_GossipStreamClient interface {
  1219  	Send(*Envelope) error
  1220  	Recv() (*Envelope, error)
  1221  	grpc.ClientStream
  1222  }
  1223  
  1224  type gossipGossipStreamClient struct {
  1225  	grpc.ClientStream
  1226  }
  1227  
  1228  func (x *gossipGossipStreamClient) Send(m *Envelope) error {
  1229  	return x.ClientStream.SendMsg(m)
  1230  }
  1231  
  1232  func (x *gossipGossipStreamClient) Recv() (*Envelope, error) {
  1233  	m := new(Envelope)
  1234  	if err := x.ClientStream.RecvMsg(m); err != nil {
  1235  		return nil, err
  1236  	}
  1237  	return m, nil
  1238  }
  1239  
  1240  func (c *gossipClient) Ping(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
  1241  	out := new(Empty)
  1242  	err := grpc.Invoke(ctx, "/gossip.Gossip/Ping", in, out, c.cc, opts...)
  1243  	if err != nil {
  1244  		return nil, err
  1245  	}
  1246  	return out, nil
  1247  }
  1248  
  1249  // Server API for Gossip service
  1250  
  1251  type GossipServer interface {
  1252  	// GossipStream is the gRPC stream used for sending and receiving messages
  1253  	GossipStream(Gossip_GossipStreamServer) error
  1254  	// Ping is used to probe a remote peer's aliveness
  1255  	Ping(context.Context, *Empty) (*Empty, error)
  1256  }
  1257  
  1258  func RegisterGossipServer(s *grpc.Server, srv GossipServer) {
  1259  	s.RegisterService(&_Gossip_serviceDesc, srv)
  1260  }
  1261  
  1262  func _Gossip_GossipStream_Handler(srv interface{}, stream grpc.ServerStream) error {
  1263  	return srv.(GossipServer).GossipStream(&gossipGossipStreamServer{stream})
  1264  }
  1265  
  1266  type Gossip_GossipStreamServer interface {
  1267  	Send(*Envelope) error
  1268  	Recv() (*Envelope, error)
  1269  	grpc.ServerStream
  1270  }
  1271  
  1272  type gossipGossipStreamServer struct {
  1273  	grpc.ServerStream
  1274  }
  1275  
  1276  func (x *gossipGossipStreamServer) Send(m *Envelope) error {
  1277  	return x.ServerStream.SendMsg(m)
  1278  }
  1279  
  1280  func (x *gossipGossipStreamServer) Recv() (*Envelope, error) {
  1281  	m := new(Envelope)
  1282  	if err := x.ServerStream.RecvMsg(m); err != nil {
  1283  		return nil, err
  1284  	}
  1285  	return m, nil
  1286  }
  1287  
  1288  func _Gossip_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1289  	in := new(Empty)
  1290  	if err := dec(in); err != nil {
  1291  		return nil, err
  1292  	}
  1293  	if interceptor == nil {
  1294  		return srv.(GossipServer).Ping(ctx, in)
  1295  	}
  1296  	info := &grpc.UnaryServerInfo{
  1297  		Server:     srv,
  1298  		FullMethod: "/gossip.Gossip/Ping",
  1299  	}
  1300  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1301  		return srv.(GossipServer).Ping(ctx, req.(*Empty))
  1302  	}
  1303  	return interceptor(ctx, in, info, handler)
  1304  }
  1305  
  1306  var _Gossip_serviceDesc = grpc.ServiceDesc{
  1307  	ServiceName: "gossip.Gossip",
  1308  	HandlerType: (*GossipServer)(nil),
  1309  	Methods: []grpc.MethodDesc{
  1310  		{
  1311  			MethodName: "Ping",
  1312  			Handler:    _Gossip_Ping_Handler,
  1313  		},
  1314  	},
  1315  	Streams: []grpc.StreamDesc{
  1316  		{
  1317  			StreamName:    "GossipStream",
  1318  			Handler:       _Gossip_GossipStream_Handler,
  1319  			ServerStreams: true,
  1320  			ClientStreams: true,
  1321  		},
  1322  	},
  1323  	Metadata: fileDescriptor0,
  1324  }
  1325  
  1326  func init() { proto.RegisterFile("gossip/message.proto", fileDescriptor0) }
  1327  
  1328  var fileDescriptor0 = []byte{
  1329  	// 1256 bytes of a gzipped FileDescriptorProto
  1330  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6f, 0xdb, 0x36,
  1331  	0x10, 0x97, 0xe3, 0x4f, 0x9d, 0xed, 0xc4, 0x61, 0xd3, 0x42, 0xcb, 0x3a, 0x20, 0x10, 0xba, 0x22,
  1332  	0x5b, 0x5a, 0x67, 0x4b, 0xfb, 0x50, 0xf4, 0x61, 0x9b, 0x53, 0x7b, 0x75, 0x86, 0xda, 0x0d, 0x98,
  1333  	0x74, 0x40, 0xf7, 0x12, 0x30, 0x36, 0x23, 0x6b, 0x91, 0x28, 0x55, 0x64, 0x5a, 0xe4, 0x69, 0xc0,
  1334  	0x9e, 0x86, 0xfd, 0xd5, 0x03, 0x49, 0x51, 0x96, 0x22, 0xa7, 0x40, 0x0a, 0xec, 0x4d, 0x77, 0xfc,
  1335  	0xdd, 0x07, 0x8f, 0x77, 0x3f, 0x52, 0xb0, 0xe5, 0x45, 0x9c, 0xfb, 0xf1, 0x7e, 0x48, 0x39, 0x27,
  1336  	0x1e, 0xed, 0xc7, 0x49, 0x24, 0x22, 0xd4, 0xd0, 0x5a, 0xf7, 0xef, 0x0a, 0xb4, 0x46, 0xec, 0x23,
  1337  	0x0d, 0xa2, 0x98, 0x22, 0x07, 0x9a, 0x31, 0xb9, 0x0e, 0x22, 0x32, 0x77, 0x2a, 0x3b, 0x95, 0xdd,
  1338  	0x0e, 0x36, 0x22, 0x7a, 0x08, 0x36, 0xf7, 0x3d, 0x46, 0xc4, 0x55, 0x42, 0x9d, 0x35, 0xb5, 0xb6,
  1339  	0x54, 0xa0, 0x9f, 0x60, 0x9d, 0xd3, 0x59, 0x42, 0x85, 0xf1, 0xe4, 0x54, 0x77, 0x2a, 0xbb, 0xed,
  1340  	0x83, 0x07, 0x7d, 0x1d, 0xa5, 0x7f, 0x52, 0x58, 0xc5, 0x37, 0xd0, 0xee, 0x18, 0xd6, 0x8b, 0x88,
  1341  	0x2f, 0xcd, 0xc4, 0x1d, 0x40, 0x43, 0x7b, 0x42, 0x4f, 0xa0, 0xe7, 0x33, 0x41, 0x13, 0x46, 0x82,
  1342  	0x11, 0x9b, 0xc7, 0x91, 0xcf, 0x84, 0x72, 0x65, 0x8f, 0x2d, 0x5c, 0x5a, 0x39, 0xb4, 0xa1, 0x39,
  1343  	0x8b, 0x98, 0xa0, 0x4c, 0xb8, 0xff, 0xd8, 0xd0, 0x7d, 0xad, 0xd2, 0x9e, 0xe8, 0x8a, 0xa1, 0x2d,
  1344  	0xa8, 0xb3, 0x88, 0xcd, 0xa8, 0xb2, 0xaf, 0x61, 0x2d, 0xc8, 0x14, 0x67, 0x0b, 0xc2, 0x18, 0x0d,
  1345  	0xd2, 0x34, 0x8c, 0x88, 0xf6, 0xa0, 0x2a, 0x88, 0xa7, 0x6a, 0xb0, 0x7e, 0xf0, 0x95, 0xa9, 0x41,
  1346  	0xc1, 0x67, 0xff, 0x94, 0x78, 0x58, 0xa2, 0xd0, 0x01, 0xb4, 0x48, 0xe0, 0x7f, 0xa4, 0x13, 0xee,
  1347  	0x39, 0x75, 0x55, 0xb5, 0x2d, 0x63, 0x31, 0x50, 0x7a, 0x6d, 0x30, 0xb6, 0x70, 0x86, 0x43, 0xcf,
  1348  	0xa0, 0x11, 0xd2, 0x10, 0xd3, 0x0f, 0x4e, 0x43, 0x59, 0x64, 0x31, 0x26, 0x34, 0x3c, 0xa7, 0x09,
  1349  	0x5f, 0xf8, 0x31, 0xa6, 0x1f, 0xae, 0x28, 0x17, 0x63, 0x0b, 0xa7, 0x50, 0xf4, 0x3c, 0x35, 0xe2,
  1350  	0x4e, 0x53, 0x19, 0x6d, 0xaf, 0x32, 0xe2, 0x71, 0xc4, 0x38, 0xcd, 0xac, 0x38, 0xda, 0x87, 0xe6,
  1351  	0x9c, 0x08, 0x22, 0xb3, 0x6b, 0x29, 0xb3, 0x7b, 0xc6, 0x6c, 0x28, 0xd5, 0x59, 0x72, 0x06, 0x85,
  1352  	0xf6, 0xa0, 0xbe, 0xa0, 0x41, 0x10, 0x39, 0x76, 0x11, 0xae, 0xb7, 0x3f, 0x96, 0x4b, 0x63, 0x0b,
  1353  	0x6b, 0x0c, 0xea, 0x6b, 0xef, 0x43, 0xdf, 0x73, 0x40, 0xc1, 0x51, 0xde, 0xfb, 0xd0, 0xf7, 0xf4,
  1354  	0x16, 0x0c, 0xc8, 0x64, 0x23, 0x77, 0xde, 0x2e, 0x67, 0xb3, 0xdc, 0xb3, 0x41, 0xa1, 0xe7, 0x00,
  1355  	0xf2, 0xf3, 0x5d, 0x3c, 0x27, 0x82, 0x3a, 0x9d, 0x72, 0x0c, 0xbd, 0x32, 0xb6, 0x70, 0x0e, 0x87,
  1356  	0xbe, 0x85, 0x3a, 0x0d, 0x63, 0x71, 0xed, 0x74, 0x95, 0x41, 0xd7, 0x18, 0x8c, 0xa4, 0x52, 0x66,
  1357  	0xaf, 0x56, 0xd1, 0x1e, 0xd4, 0x66, 0x11, 0x63, 0xce, 0xba, 0x42, 0xdd, 0x37, 0xa8, 0x57, 0x11,
  1358  	0x63, 0x23, 0x2e, 0xc8, 0x79, 0xe0, 0xf3, 0xc5, 0xd8, 0xc2, 0x0a, 0x84, 0x7e, 0x04, 0x9b, 0x0b,
  1359  	0x22, 0xe8, 0x11, 0xbb, 0x88, 0x9c, 0x0d, 0x65, 0xb1, 0x99, 0x8d, 0x87, 0x59, 0x18, 0x5b, 0x78,
  1360  	0x89, 0x42, 0x03, 0xe8, 0x2a, 0xe1, 0x84, 0x91, 0x98, 0x2f, 0x22, 0xe1, 0xf4, 0x8a, 0xa7, 0x9d,
  1361  	0x99, 0x19, 0xc0, 0xd8, 0xc2, 0x45, 0x0b, 0xf4, 0x1b, 0xf4, 0x32, 0x7f, 0xc7, 0x57, 0x41, 0x20,
  1362  	0x2b, 0xb7, 0xa9, 0xbc, 0x3c, 0x2c, 0x79, 0x49, 0xd7, 0xd3, 0x12, 0x96, 0xec, 0xd0, 0x2f, 0xd0,
  1363  	0x51, 0xba, 0x14, 0xe3, 0xa0, 0x62, 0x1b, 0x61, 0x1a, 0x46, 0x82, 0x9e, 0xe4, 0x10, 0x63, 0x0b,
  1364  	0x17, 0x2c, 0xd0, 0xab, 0x74, 0x43, 0xa6, 0xcf, 0x9c, 0x7b, 0xca, 0xc5, 0xd7, 0x2b, 0x5d, 0x64,
  1365  	0xad, 0x58, 0xb4, 0x91, 0x55, 0x09, 0x28, 0x99, 0xeb, 0x8e, 0x95, 0x7d, 0xb9, 0x55, 0xac, 0xca,
  1366  	0x9b, 0xe5, 0x62, 0xd6, 0x9d, 0x45, 0x0b, 0xf4, 0x12, 0x3a, 0x31, 0xa5, 0xc9, 0xd1, 0x9c, 0x32,
  1367  	0xe1, 0x8b, 0x6b, 0xe7, 0x7e, 0x71, 0xee, 0x8e, 0x73, 0x6b, 0x72, 0x0f, 0x79, 0xac, 0x7b, 0x06,
  1368  	0xd5, 0x53, 0xe2, 0xa1, 0x2e, 0xd8, 0xef, 0xa6, 0xc3, 0xd1, 0xaf, 0x47, 0xd3, 0xd1, 0xb0, 0x67,
  1369  	0x21, 0x1b, 0xea, 0xa3, 0xc9, 0xf1, 0xe9, 0xfb, 0x5e, 0x05, 0x75, 0xa0, 0xf5, 0x16, 0xbf, 0x3e,
  1370  	0x7b, 0x3b, 0x7d, 0xf3, 0xbe, 0xb7, 0x26, 0x71, 0xaf, 0xc6, 0x83, 0xa9, 0x16, 0xab, 0xa8, 0x07,
  1371  	0x1d, 0x25, 0x0e, 0xa6, 0xc3, 0xb3, 0xb7, 0xf8, 0x75, 0xaf, 0x86, 0x36, 0xa0, 0xad, 0x01, 0x58,
  1372  	0x29, 0xea, 0x79, 0x2a, 0x0a, 0xc1, 0xce, 0x4e, 0x07, 0x6d, 0x43, 0x2b, 0xa4, 0x82, 0xc8, 0x36,
  1373  	0x4d, 0x39, 0x31, 0x93, 0x51, 0x1f, 0x6c, 0xe1, 0x87, 0x94, 0x0b, 0x12, 0xc6, 0x8a, 0x8d, 0xda,
  1374  	0x07, 0xbd, 0xfc, 0x6e, 0x4e, 0xfd, 0x90, 0xe2, 0x25, 0x44, 0x32, 0x5a, 0x7c, 0xe9, 0x1f, 0x0d,
  1375  	0x15, 0x47, 0x75, 0xb0, 0x16, 0xdc, 0x01, 0x6c, 0x96, 0x5a, 0x0a, 0x3d, 0x81, 0x16, 0x0d, 0x68,
  1376  	0x48, 0x99, 0xe0, 0x4e, 0x65, 0xa7, 0x9a, 0xf7, 0x9c, 0xf1, 0x79, 0x86, 0x70, 0x1f, 0xc0, 0xd6,
  1377  	0xaa, 0x7e, 0x72, 0x27, 0xd0, 0x2d, 0x8c, 0xc5, 0x32, 0x83, 0x4a, 0x2e, 0x03, 0x84, 0xa0, 0x36,
  1378  	0xa3, 0x89, 0x48, 0x09, 0x55, 0x7d, 0x4b, 0xdd, 0x82, 0xf0, 0x45, 0x9a, 0xaa, 0xfa, 0x76, 0x4f,
  1379  	0xa1, 0x93, 0x3f, 0xa4, 0x3b, 0x78, 0xcb, 0x57, 0xb1, 0x5a, 0xac, 0xa2, 0x1b, 0x40, 0x3b, 0x47,
  1380  	0x23, 0xb7, 0xd3, 0xfe, 0x5c, 0xf1, 0x12, 0x77, 0xd6, 0x76, 0xaa, 0xbb, 0x36, 0x36, 0x22, 0x7a,
  1381  	0x0a, 0xcd, 0x90, 0x7b, 0xa7, 0xd7, 0xe9, 0xf5, 0xb7, 0xbe, 0x24, 0x27, 0x59, 0x89, 0x89, 0x5e,
  1382  	0xc2, 0x06, 0xe3, 0x32, 0x68, 0xe7, 0x38, 0xf1, 0x96, 0x68, 0xf9, 0x74, 0xd7, 0x6e, 0x1c, 0xfa,
  1383  	0x1d, 0xe3, 0x7d, 0x02, 0x58, 0x12, 0xde, 0x2d, 0xe1, 0x1e, 0x41, 0x2d, 0x0d, 0xb5, 0xfa, 0xa0,
  1384  	0x6b, 0x5f, 0x12, 0xf8, 0x52, 0x07, 0xd6, 0x6c, 0xfe, 0x7f, 0x57, 0xf5, 0x85, 0x3e, 0x43, 0x73,
  1385  	0x75, 0x7f, 0x57, 0x7c, 0x47, 0xb4, 0x0f, 0x36, 0x32, 0x6b, 0xad, 0xce, 0x1e, 0x16, 0xee, 0x11,
  1386  	0x34, 0x53, 0x1d, 0x7a, 0x00, 0x0d, 0x4e, 0x3f, 0x4c, 0xaf, 0xc2, 0x34, 0xc9, 0x54, 0xca, 0x5a,
  1387  	0x51, 0x9e, 0x84, 0xad, 0x5b, 0x51, 0xea, 0x72, 0xcd, 0xa4, 0xbe, 0xdd, 0x7f, 0x2b, 0xd0, 0xc9,
  1388  	0x5f, 0xde, 0xa8, 0x0f, 0x10, 0x66, 0xb7, 0x6c, 0x9a, 0xc9, 0x7a, 0xf1, 0xfe, 0xc5, 0x39, 0xc4,
  1389  	0x9d, 0xe7, 0x79, 0x1b, 0x5a, 0xbe, 0x21, 0xb3, 0x9a, 0x6e, 0x13, 0x23, 0xbb, 0x7f, 0xc1, 0x66,
  1390  	0x89, 0x12, 0x6f, 0x19, 0x98, 0xbb, 0x86, 0x7d, 0x04, 0x5d, 0x9f, 0x0f, 0xe9, 0x2c, 0x20, 0x09,
  1391  	0x11, 0x7e, 0xc4, 0x54, 0x11, 0x5a, 0xb8, 0xa8, 0x74, 0x07, 0xd0, 0x32, 0xc6, 0xe8, 0x1b, 0x00,
  1392  	0x9f, 0xcd, 0xce, 0xd8, 0x95, 0xdc, 0x6a, 0x5a, 0x5d, 0xdb, 0x67, 0xb3, 0xa9, 0x52, 0xe4, 0x0a,
  1393  	0xbf, 0x96, 0x2f, 0xbc, 0x4b, 0x61, 0xb3, 0xf4, 0xb4, 0x41, 0x2f, 0x61, 0x83, 0xd3, 0xe0, 0x42,
  1394  	0x52, 0x4d, 0x12, 0xea, 0xf8, 0x95, 0x62, 0xce, 0x59, 0xdf, 0xde, 0x04, 0xca, 0xfd, 0x5f, 0xb2,
  1395  	0xe8, 0x13, 0x53, 0xdd, 0xd6, 0xc1, 0x5a, 0x70, 0xcf, 0x01, 0x95, 0x1f, 0x43, 0xe8, 0x31, 0xd4,
  1396  	0xd5, 0xcb, 0xeb, 0x56, 0xfa, 0xd3, 0xcb, 0x6a, 0x78, 0x28, 0x99, 0x7f, 0x66, 0x78, 0x28, 0x99,
  1397  	0xbb, 0xbf, 0x43, 0x43, 0xc7, 0x90, 0x87, 0x46, 0x0b, 0x2f, 0x53, 0x9c, 0xc9, 0x9f, 0x9d, 0xfb,
  1398  	0xd5, 0xe4, 0xdd, 0x84, 0xba, 0x7a, 0x9e, 0xb8, 0x7d, 0x40, 0xe5, 0xab, 0x58, 0x0e, 0x98, 0xae,
  1399  	0xa5, 0x66, 0xf1, 0x1a, 0x36, 0xa2, 0x7b, 0x08, 0xf7, 0x56, 0xdc, 0xbb, 0x68, 0x0f, 0x5a, 0xe9,
  1400  	0x64, 0x18, 0xde, 0x2f, 0x8d, 0x4e, 0x06, 0xf8, 0xfe, 0x67, 0x68, 0xe7, 0xa6, 0x51, 0x5d, 0x8e,
  1401  	0x6c, 0x4e, 0x2f, 0x7c, 0x46, 0xe7, 0x3d, 0x4b, 0x5e, 0x7a, 0x87, 0x41, 0x34, 0xbb, 0x4c, 0x9b,
  1402  	0xaf, 0x57, 0x91, 0x97, 0x9e, 0xe1, 0xee, 0x09, 0xf7, 0x7a, 0x6b, 0x07, 0x7f, 0x42, 0x43, 0x93,
  1403  	0x21, 0x7a, 0x01, 0x1d, 0xfd, 0x75, 0x22, 0x12, 0x4a, 0x42, 0x54, 0xaa, 0xe3, 0x76, 0x49, 0xe3,
  1404  	0x5a, 0xbb, 0x95, 0x1f, 0x2a, 0xe8, 0x31, 0xd4, 0x8e, 0x7d, 0xe6, 0xa1, 0xe2, 0x73, 0x6d, 0xbb,
  1405  	0x28, 0xba, 0xd6, 0xe1, 0xd3, 0x3f, 0xf6, 0x3c, 0x5f, 0x2c, 0xae, 0xce, 0xfb, 0xb3, 0x28, 0xdc,
  1406  	0x5f, 0x5c, 0xc7, 0x34, 0x09, 0xe8, 0xdc, 0xa3, 0xc9, 0xfe, 0x05, 0x39, 0x4f, 0xfc, 0xd9, 0xbe,
  1407  	0xfa, 0x43, 0xe2, 0xfb, 0xda, 0xec, 0xbc, 0xa1, 0xc4, 0x67, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff,
  1408  	0x9b, 0xa7, 0x27, 0x70, 0x48, 0x0d, 0x00, 0x00,
  1409  }