Inspector draw routing table (#1732)
This commit is contained in:
parent
b29d875326
commit
123bf291f2
@ -23,6 +23,7 @@ import (
|
||||
|
||||
"storj.io/storj/pkg/eestream"
|
||||
"storj.io/storj/pkg/identity"
|
||||
"storj.io/storj/pkg/kademlia/routinggraph"
|
||||
"storj.io/storj/pkg/pb"
|
||||
"storj.io/storj/pkg/process"
|
||||
"storj.io/storj/pkg/storj"
|
||||
@ -103,6 +104,11 @@ var (
|
||||
Short: "dump all nodes in the routing table",
|
||||
RunE: DumpNodes,
|
||||
}
|
||||
drawTableCmd = &cobra.Command{
|
||||
Use: "routing-graph",
|
||||
Short: "Dumps a graph of the routing table in the dot format",
|
||||
RunE: DrawTableAsGraph,
|
||||
}
|
||||
getStatsCmd = &cobra.Command{
|
||||
Use: "getstats <node_id>",
|
||||
Short: "Get node stats",
|
||||
@ -244,6 +250,26 @@ func NodeInfo(cmd *cobra.Command, args []string) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
// DrawTableAsGraph outputs the table routing as a graph
|
||||
func DrawTableAsGraph(cmd *cobra.Command, args []string) (err error) {
|
||||
i, err := NewInspector(*Addr, *IdentityPath)
|
||||
if err != nil {
|
||||
return ErrInspectorDial.Wrap(err)
|
||||
}
|
||||
// retrieve buckets
|
||||
info, err := i.kadclient.GetBucketList(context.Background(), &pb.GetBucketListRequest{})
|
||||
if err != nil {
|
||||
return ErrRequest.Wrap(err)
|
||||
}
|
||||
|
||||
err = routinggraph.Draw(os.Stdout, info)
|
||||
if err != nil {
|
||||
return ErrRequest.Wrap(err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// DumpNodes outputs a json list of every node in every bucket in the satellite
|
||||
func DumpNodes(cmd *cobra.Command, args []string) (err error) {
|
||||
i, err := NewInspector(*Addr, *IdentityPath)
|
||||
@ -732,6 +758,7 @@ func init() {
|
||||
kadCmd.AddCommand(lookupNodeCmd)
|
||||
kadCmd.AddCommand(nodeInfoCmd)
|
||||
kadCmd.AddCommand(dumpNodesCmd)
|
||||
kadCmd.AddCommand(drawTableCmd)
|
||||
|
||||
statsCmd.AddCommand(getStatsCmd)
|
||||
statsCmd.AddCommand(getCSVStatsCmd)
|
||||
|
@ -136,3 +136,31 @@ func (srv *Inspector) NodeInfo(ctx context.Context, req *pb.NodeInfoRequest) (*p
|
||||
Version: info.GetVersion(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// GetBucketList returns the list of buckets with their routing nodes and their cached nodes
|
||||
func (srv *Inspector) GetBucketList(ctx context.Context, req *pb.GetBucketListRequest) (*pb.GetBucketListResponse, error) {
|
||||
bucketIds, err := srv.dht.GetBucketIds()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
buckets := make([]*pb.GetBucketListResponse_Bucket, len(bucketIds))
|
||||
|
||||
for i, b := range bucketIds {
|
||||
bucketID := keyToBucketID(b)
|
||||
routingNodes, err := srv.dht.GetNodesWithinKBucket(bucketID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cachedNodes := srv.dht.GetCachedNodesWithinKBucket(bucketID)
|
||||
buckets[i] = &pb.GetBucketListResponse_Bucket{
|
||||
BucketId: keyToBucketID(b),
|
||||
RoutingNodes: routingNodes,
|
||||
CachedNodes: cachedNodes,
|
||||
}
|
||||
|
||||
}
|
||||
return &pb.GetBucketListResponse{
|
||||
Buckets: buckets,
|
||||
}, nil
|
||||
}
|
||||
|
@ -312,6 +312,16 @@ func (k *Kademlia) Seen() []*pb.Node {
|
||||
return nodes
|
||||
}
|
||||
|
||||
// GetNodesWithinKBucket returns all the routing nodes in the specified k-bucket
|
||||
func (k *Kademlia) GetNodesWithinKBucket(bID bucketID) ([]*pb.Node, error) {
|
||||
return k.routingTable.getUnmarshaledNodesFromBucket(bID)
|
||||
}
|
||||
|
||||
// GetCachedNodesWithinKBucket returns all the cached nodes in the specified k-bucket
|
||||
func (k *Kademlia) GetCachedNodesWithinKBucket(bID bucketID) []*pb.Node {
|
||||
return k.routingTable.replacementCache[bID]
|
||||
}
|
||||
|
||||
// SetBucketRefreshThreshold changes the threshold when buckets are considered stale and need refreshing.
|
||||
func (k *Kademlia) SetBucketRefreshThreshold(threshold time.Duration) {
|
||||
atomic.StoreInt64(&k.refreshThreshold, int64(threshold))
|
||||
|
102
pkg/kademlia/routinggraph/routinggraph.go
Normal file
102
pkg/kademlia/routinggraph/routinggraph.go
Normal file
@ -0,0 +1,102 @@
|
||||
// Copyright (C) 2019 Storj Labs, Inc.
|
||||
// See LICENSE for copying information.
|
||||
|
||||
package routinggraph
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"storj.io/storj/pkg/pb"
|
||||
)
|
||||
|
||||
type dot struct {
|
||||
out io.Writer
|
||||
err error
|
||||
}
|
||||
|
||||
func (dot *dot) printf(format string, args ...interface{}) {
|
||||
if dot.err != nil {
|
||||
return
|
||||
}
|
||||
_, dot.err = fmt.Fprintf(dot.out, format, args...)
|
||||
}
|
||||
|
||||
// Draw writes the routing graph obtained using a GetBucketListResponse in the specified file
|
||||
func Draw(w io.Writer, info *pb.GetBucketListResponse) (err error) {
|
||||
dot := dot{out: w}
|
||||
dot.printf(`digraph{node [shape=plaintext, fontname="Courier"];edge [dir=none];`)
|
||||
defer dot.printf("}")
|
||||
|
||||
buckets := info.GetBuckets()
|
||||
dot.addBuckets(buckets, 0, "")
|
||||
return dot.err
|
||||
}
|
||||
|
||||
func (dot *dot) addBuckets(b []*pb.GetBucketListResponse_Bucket, depth int, inPrefix string) {
|
||||
if len(b) == 1 {
|
||||
dot.Leaf(b[0], inPrefix)
|
||||
return
|
||||
}
|
||||
|
||||
left, right := splitBucket(b, depth)
|
||||
|
||||
outPrefix := extendPrefix(inPrefix, false)
|
||||
dot.printf("b%s [shape=point];", inPrefix)
|
||||
|
||||
dot.addBuckets(left, depth+1, outPrefix)
|
||||
dot.Edge(inPrefix, outPrefix, "0")
|
||||
|
||||
outPrefix = extendPrefix(inPrefix, true)
|
||||
dot.addBuckets(right, depth+1, outPrefix)
|
||||
dot.Edge(inPrefix, outPrefix, "1")
|
||||
}
|
||||
|
||||
func (dot *dot) Edge(inPrefix, outPrefix, label string) {
|
||||
dot.printf(`b%s -> b%s [label=<<b><font point-size="18">%s</font></b>>];`, inPrefix, outPrefix, label)
|
||||
}
|
||||
|
||||
func (dot *dot) Leaf(b *pb.GetBucketListResponse_Bucket, prefix string) {
|
||||
dot.printf(`b%s [label=< <table cellborder="0"><tr><td cellspacing="0" sides="b" border="1" colspan="2"><b><font point-size="18"> %s </font></b></td></tr>`, prefix, prefix)
|
||||
defer dot.printf("</table>>];")
|
||||
|
||||
dot.printf(`<tr><td colspan="2" align="left"><i><b><font point-size="16">routing:</font></b></i></td></tr>`)
|
||||
routingNodes := b.GetRoutingNodes()
|
||||
for _, n := range routingNodes {
|
||||
dot.Node(n)
|
||||
}
|
||||
dot.printf(`<tr><td colspan="2"></td></tr>`)
|
||||
dot.printf(`<tr><td colspan="2" align="left"><i><b><font point-size="16">cache:</font></b></i></td></tr>`)
|
||||
cachedNodes := b.GetCachedNodes()
|
||||
for _, c := range cachedNodes {
|
||||
dot.Node(c)
|
||||
}
|
||||
}
|
||||
|
||||
func (dot *dot) Node(node *pb.Node) {
|
||||
dot.printf(`<tr><td align="left"><font point-size="14">%s</font></td><td sides="r" align="left"><i>(%s)</i></td></tr>`, node.Id, node.Address.Address)
|
||||
}
|
||||
|
||||
func splitBucket(buckets []*pb.GetBucketListResponse_Bucket, bitDepth int) (left, right []*pb.GetBucketListResponse_Bucket) {
|
||||
for _, bucket := range buckets {
|
||||
bID := bucket.BucketId
|
||||
byteDepth := bitDepth / 8
|
||||
bitOffset := bitDepth % 8
|
||||
power := uint(7 - bitOffset)
|
||||
bitMask := byte(1 << power)
|
||||
b := bID[byteDepth]
|
||||
if b&bitMask > 0 {
|
||||
right = append(right, bucket)
|
||||
} else {
|
||||
left = append(left, bucket)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func extendPrefix(prefix string, bit bool) string {
|
||||
if bit {
|
||||
return prefix + "1"
|
||||
}
|
||||
return prefix + "0"
|
||||
}
|
@ -437,6 +437,121 @@ func (m *CountNodesRequest) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_CountNodesRequest proto.InternalMessageInfo
|
||||
|
||||
type GetBucketListRequest struct {
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GetBucketListRequest) Reset() { *m = GetBucketListRequest{} }
|
||||
func (m *GetBucketListRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetBucketListRequest) ProtoMessage() {}
|
||||
func (*GetBucketListRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{9}
|
||||
}
|
||||
func (m *GetBucketListRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetBucketListRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetBucketListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetBucketListRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GetBucketListRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetBucketListRequest.Merge(m, src)
|
||||
}
|
||||
func (m *GetBucketListRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_GetBucketListRequest.Size(m)
|
||||
}
|
||||
func (m *GetBucketListRequest) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GetBucketListRequest.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GetBucketListRequest proto.InternalMessageInfo
|
||||
|
||||
type GetBucketListResponse struct {
|
||||
Buckets []*GetBucketListResponse_Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GetBucketListResponse) Reset() { *m = GetBucketListResponse{} }
|
||||
func (m *GetBucketListResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetBucketListResponse) ProtoMessage() {}
|
||||
func (*GetBucketListResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{10}
|
||||
}
|
||||
func (m *GetBucketListResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetBucketListResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetBucketListResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetBucketListResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GetBucketListResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetBucketListResponse.Merge(m, src)
|
||||
}
|
||||
func (m *GetBucketListResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_GetBucketListResponse.Size(m)
|
||||
}
|
||||
func (m *GetBucketListResponse) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GetBucketListResponse.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GetBucketListResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *GetBucketListResponse) GetBuckets() []*GetBucketListResponse_Bucket {
|
||||
if m != nil {
|
||||
return m.Buckets
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type GetBucketListResponse_Bucket struct {
|
||||
BucketId NodeID `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3,customtype=NodeID" json:"bucket_id"`
|
||||
RoutingNodes []*Node `protobuf:"bytes,2,rep,name=routing_nodes,json=routingNodes,proto3" json:"routing_nodes,omitempty"`
|
||||
CachedNodes []*Node `protobuf:"bytes,3,rep,name=cached_nodes,json=cachedNodes,proto3" json:"cached_nodes,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GetBucketListResponse_Bucket) Reset() { *m = GetBucketListResponse_Bucket{} }
|
||||
func (m *GetBucketListResponse_Bucket) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetBucketListResponse_Bucket) ProtoMessage() {}
|
||||
func (*GetBucketListResponse_Bucket) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{10, 0}
|
||||
}
|
||||
func (m *GetBucketListResponse_Bucket) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetBucketListResponse_Bucket.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetBucketListResponse_Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetBucketListResponse_Bucket.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GetBucketListResponse_Bucket) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetBucketListResponse_Bucket.Merge(m, src)
|
||||
}
|
||||
func (m *GetBucketListResponse_Bucket) XXX_Size() int {
|
||||
return xxx_messageInfo_GetBucketListResponse_Bucket.Size(m)
|
||||
}
|
||||
func (m *GetBucketListResponse_Bucket) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GetBucketListResponse_Bucket.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GetBucketListResponse_Bucket proto.InternalMessageInfo
|
||||
|
||||
func (m *GetBucketListResponse_Bucket) GetRoutingNodes() []*Node {
|
||||
if m != nil {
|
||||
return m.RoutingNodes
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *GetBucketListResponse_Bucket) GetCachedNodes() []*Node {
|
||||
if m != nil {
|
||||
return m.CachedNodes
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetBuckets
|
||||
type GetBucketsRequest struct {
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
@ -448,7 +563,7 @@ func (m *GetBucketsRequest) Reset() { *m = GetBucketsRequest{} }
|
||||
func (m *GetBucketsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetBucketsRequest) ProtoMessage() {}
|
||||
func (*GetBucketsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{9}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{11}
|
||||
}
|
||||
func (m *GetBucketsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetBucketsRequest.Unmarshal(m, b)
|
||||
@ -480,7 +595,7 @@ func (m *GetBucketsResponse) Reset() { *m = GetBucketsResponse{} }
|
||||
func (m *GetBucketsResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetBucketsResponse) ProtoMessage() {}
|
||||
func (*GetBucketsResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{10}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{12}
|
||||
}
|
||||
func (m *GetBucketsResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetBucketsResponse.Unmarshal(m, b)
|
||||
@ -519,7 +634,7 @@ func (m *GetBucketRequest) Reset() { *m = GetBucketRequest{} }
|
||||
func (m *GetBucketRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetBucketRequest) ProtoMessage() {}
|
||||
func (*GetBucketRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{11}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{13}
|
||||
}
|
||||
func (m *GetBucketRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetBucketRequest.Unmarshal(m, b)
|
||||
@ -551,7 +666,7 @@ func (m *GetBucketResponse) Reset() { *m = GetBucketResponse{} }
|
||||
func (m *GetBucketResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetBucketResponse) ProtoMessage() {}
|
||||
func (*GetBucketResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{12}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{14}
|
||||
}
|
||||
func (m *GetBucketResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetBucketResponse.Unmarshal(m, b)
|
||||
@ -589,7 +704,7 @@ func (m *Bucket) Reset() { *m = Bucket{} }
|
||||
func (m *Bucket) String() string { return proto.CompactTextString(m) }
|
||||
func (*Bucket) ProtoMessage() {}
|
||||
func (*Bucket) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{13}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{15}
|
||||
}
|
||||
func (m *Bucket) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Bucket.Unmarshal(m, b)
|
||||
@ -627,7 +742,7 @@ func (m *BucketList) Reset() { *m = BucketList{} }
|
||||
func (m *BucketList) String() string { return proto.CompactTextString(m) }
|
||||
func (*BucketList) ProtoMessage() {}
|
||||
func (*BucketList) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{14}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{16}
|
||||
}
|
||||
func (m *BucketList) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_BucketList.Unmarshal(m, b)
|
||||
@ -667,7 +782,7 @@ func (m *PingNodeRequest) Reset() { *m = PingNodeRequest{} }
|
||||
func (m *PingNodeRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*PingNodeRequest) ProtoMessage() {}
|
||||
func (*PingNodeRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{15}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{17}
|
||||
}
|
||||
func (m *PingNodeRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_PingNodeRequest.Unmarshal(m, b)
|
||||
@ -705,7 +820,7 @@ func (m *PingNodeResponse) Reset() { *m = PingNodeResponse{} }
|
||||
func (m *PingNodeResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*PingNodeResponse) ProtoMessage() {}
|
||||
func (*PingNodeResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{16}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{18}
|
||||
}
|
||||
func (m *PingNodeResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_PingNodeResponse.Unmarshal(m, b)
|
||||
@ -744,7 +859,7 @@ func (m *LookupNodeRequest) Reset() { *m = LookupNodeRequest{} }
|
||||
func (m *LookupNodeRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*LookupNodeRequest) ProtoMessage() {}
|
||||
func (*LookupNodeRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{17}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{19}
|
||||
}
|
||||
func (m *LookupNodeRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_LookupNodeRequest.Unmarshal(m, b)
|
||||
@ -790,7 +905,7 @@ func (m *LookupNodeResponse) Reset() { *m = LookupNodeResponse{} }
|
||||
func (m *LookupNodeResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*LookupNodeResponse) ProtoMessage() {}
|
||||
func (*LookupNodeResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{18}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{20}
|
||||
}
|
||||
func (m *LookupNodeResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_LookupNodeResponse.Unmarshal(m, b)
|
||||
@ -836,7 +951,7 @@ func (m *NodeInfoRequest) Reset() { *m = NodeInfoRequest{} }
|
||||
func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*NodeInfoRequest) ProtoMessage() {}
|
||||
func (*NodeInfoRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{19}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{21}
|
||||
}
|
||||
func (m *NodeInfoRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_NodeInfoRequest.Unmarshal(m, b)
|
||||
@ -877,7 +992,7 @@ func (m *NodeInfoResponse) Reset() { *m = NodeInfoResponse{} }
|
||||
func (m *NodeInfoResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*NodeInfoResponse) ProtoMessage() {}
|
||||
func (*NodeInfoResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{20}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{22}
|
||||
}
|
||||
func (m *NodeInfoResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_NodeInfoResponse.Unmarshal(m, b)
|
||||
@ -938,7 +1053,7 @@ func (m *FindNearRequest) Reset() { *m = FindNearRequest{} }
|
||||
func (m *FindNearRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*FindNearRequest) ProtoMessage() {}
|
||||
func (*FindNearRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{21}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{23}
|
||||
}
|
||||
func (m *FindNearRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_FindNearRequest.Unmarshal(m, b)
|
||||
@ -976,7 +1091,7 @@ func (m *FindNearResponse) Reset() { *m = FindNearResponse{} }
|
||||
func (m *FindNearResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*FindNearResponse) ProtoMessage() {}
|
||||
func (*FindNearResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{22}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{24}
|
||||
}
|
||||
func (m *FindNearResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_FindNearResponse.Unmarshal(m, b)
|
||||
@ -1013,7 +1128,7 @@ func (m *DumpNodesRequest) Reset() { *m = DumpNodesRequest{} }
|
||||
func (m *DumpNodesRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*DumpNodesRequest) ProtoMessage() {}
|
||||
func (*DumpNodesRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{23}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{25}
|
||||
}
|
||||
func (m *DumpNodesRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DumpNodesRequest.Unmarshal(m, b)
|
||||
@ -1044,7 +1159,7 @@ func (m *DumpNodesResponse) Reset() { *m = DumpNodesResponse{} }
|
||||
func (m *DumpNodesResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*DumpNodesResponse) ProtoMessage() {}
|
||||
func (*DumpNodesResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{24}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{26}
|
||||
}
|
||||
func (m *DumpNodesResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DumpNodesResponse.Unmarshal(m, b)
|
||||
@ -1081,7 +1196,7 @@ func (m *StatsRequest) Reset() { *m = StatsRequest{} }
|
||||
func (m *StatsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*StatsRequest) ProtoMessage() {}
|
||||
func (*StatsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{25}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{27}
|
||||
}
|
||||
func (m *StatsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_StatsRequest.Unmarshal(m, b)
|
||||
@ -1117,7 +1232,7 @@ func (m *StatSummaryResponse) Reset() { *m = StatSummaryResponse{} }
|
||||
func (m *StatSummaryResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*StatSummaryResponse) ProtoMessage() {}
|
||||
func (*StatSummaryResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{26}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{28}
|
||||
}
|
||||
func (m *StatSummaryResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_StatSummaryResponse.Unmarshal(m, b)
|
||||
@ -1189,7 +1304,7 @@ func (m *DashboardRequest) Reset() { *m = DashboardRequest{} }
|
||||
func (m *DashboardRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*DashboardRequest) ProtoMessage() {}
|
||||
func (*DashboardRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{27}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{29}
|
||||
}
|
||||
func (m *DashboardRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DashboardRequest.Unmarshal(m, b)
|
||||
@ -1228,7 +1343,7 @@ func (m *DashboardResponse) Reset() { *m = DashboardResponse{} }
|
||||
func (m *DashboardResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*DashboardResponse) ProtoMessage() {}
|
||||
func (*DashboardResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{28}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{30}
|
||||
}
|
||||
func (m *DashboardResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DashboardResponse.Unmarshal(m, b)
|
||||
@ -1318,7 +1433,7 @@ func (m *SegmentHealthRequest) Reset() { *m = SegmentHealthRequest{} }
|
||||
func (m *SegmentHealthRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*SegmentHealthRequest) ProtoMessage() {}
|
||||
func (*SegmentHealthRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{29}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{31}
|
||||
}
|
||||
func (m *SegmentHealthRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SegmentHealthRequest.Unmarshal(m, b)
|
||||
@ -1378,7 +1493,7 @@ func (m *SegmentHealth) Reset() { *m = SegmentHealth{} }
|
||||
func (m *SegmentHealth) String() string { return proto.CompactTextString(m) }
|
||||
func (*SegmentHealth) ProtoMessage() {}
|
||||
func (*SegmentHealth) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{30}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{32}
|
||||
}
|
||||
func (m *SegmentHealth) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SegmentHealth.Unmarshal(m, b)
|
||||
@ -1424,7 +1539,7 @@ func (m *SegmentHealthResponse) Reset() { *m = SegmentHealthResponse{} }
|
||||
func (m *SegmentHealthResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*SegmentHealthResponse) ProtoMessage() {}
|
||||
func (*SegmentHealthResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{31}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{33}
|
||||
}
|
||||
func (m *SegmentHealthResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SegmentHealthResponse.Unmarshal(m, b)
|
||||
@ -1474,7 +1589,7 @@ func (m *ObjectHealthRequest) Reset() { *m = ObjectHealthRequest{} }
|
||||
func (m *ObjectHealthRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ObjectHealthRequest) ProtoMessage() {}
|
||||
func (*ObjectHealthRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{32}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{34}
|
||||
}
|
||||
func (m *ObjectHealthRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ObjectHealthRequest.Unmarshal(m, b)
|
||||
@ -1548,7 +1663,7 @@ func (m *ObjectHealthResponse) Reset() { *m = ObjectHealthResponse{} }
|
||||
func (m *ObjectHealthResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ObjectHealthResponse) ProtoMessage() {}
|
||||
func (*ObjectHealthResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{33}
|
||||
return fileDescriptor_a07d9034b2dd9d26, []int{35}
|
||||
}
|
||||
func (m *ObjectHealthResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ObjectHealthResponse.Unmarshal(m, b)
|
||||
@ -1592,6 +1707,9 @@ func init() {
|
||||
proto.RegisterType((*CreateStatsResponse)(nil), "inspector.CreateStatsResponse")
|
||||
proto.RegisterType((*CountNodesResponse)(nil), "inspector.CountNodesResponse")
|
||||
proto.RegisterType((*CountNodesRequest)(nil), "inspector.CountNodesRequest")
|
||||
proto.RegisterType((*GetBucketListRequest)(nil), "inspector.GetBucketListRequest")
|
||||
proto.RegisterType((*GetBucketListResponse)(nil), "inspector.GetBucketListResponse")
|
||||
proto.RegisterType((*GetBucketListResponse_Bucket)(nil), "inspector.GetBucketListResponse.Bucket")
|
||||
proto.RegisterType((*GetBucketsRequest)(nil), "inspector.GetBucketsRequest")
|
||||
proto.RegisterType((*GetBucketsResponse)(nil), "inspector.GetBucketsResponse")
|
||||
proto.RegisterType((*GetBucketRequest)(nil), "inspector.GetBucketRequest")
|
||||
@ -1622,113 +1740,119 @@ func init() {
|
||||
func init() { proto.RegisterFile("inspector.proto", fileDescriptor_a07d9034b2dd9d26) }
|
||||
|
||||
var fileDescriptor_a07d9034b2dd9d26 = []byte{
|
||||
// 1688 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x73, 0x1b, 0xc7,
|
||||
0x11, 0xd6, 0xe2, 0x25, 0xa2, 0x01, 0xe2, 0x31, 0xa0, 0x24, 0x04, 0x92, 0x08, 0x66, 0xf3, 0x10,
|
||||
0x25, 0xa5, 0x20, 0x05, 0x51, 0x0e, 0x8a, 0x4a, 0x07, 0x91, 0x8c, 0x24, 0x94, 0x18, 0x89, 0x5a,
|
||||
0x2a, 0x39, 0xa4, 0x54, 0x41, 0x0d, 0xb0, 0x43, 0x70, 0x43, 0x60, 0x67, 0xb5, 0x3b, 0x50, 0xc4,
|
||||
0x3f, 0x90, 0xb2, 0x7f, 0x82, 0x7d, 0xf5, 0x9f, 0x70, 0xd9, 0x47, 0x5f, 0x7c, 0xf3, 0xdd, 0x07,
|
||||
0x5d, 0x5c, 0x65, 0xff, 0x06, 0xdf, 0x5c, 0xd3, 0x33, 0xfb, 0x04, 0x60, 0xb2, 0xfc, 0xb8, 0x61,
|
||||
0xbf, 0xfe, 0xa6, 0xa7, 0xfb, 0x9b, 0x99, 0x9e, 0x1e, 0x40, 0xdd, 0x71, 0x03, 0x8f, 0x8d, 0x05,
|
||||
0xf7, 0x7b, 0x9e, 0xcf, 0x05, 0x27, 0xe5, 0x08, 0xe8, 0xc0, 0x84, 0x4f, 0xb8, 0x82, 0x3b, 0xe0,
|
||||
0x72, 0x9b, 0xe9, 0xdf, 0x75, 0x8f, 0x3b, 0xae, 0x60, 0xbe, 0x3d, 0xd2, 0xc0, 0xe6, 0x84, 0xf3,
|
||||
0xc9, 0x94, 0xdd, 0xc1, 0xaf, 0xd1, 0xfc, 0xe8, 0x8e, 0x3d, 0xf7, 0xa9, 0x70, 0xb8, 0xab, 0xed,
|
||||
0xdd, 0xac, 0x5d, 0x38, 0x33, 0x16, 0x08, 0x3a, 0xf3, 0x14, 0xc1, 0x7c, 0x0e, 0x9b, 0xfb, 0x4e,
|
||||
0x20, 0x06, 0xbe, 0xcf, 0x3c, 0xea, 0xd3, 0xd1, 0x94, 0x1d, 0xb2, 0xc9, 0x8c, 0xb9, 0x22, 0xb0,
|
||||
0xd8, 0x9b, 0x39, 0x0b, 0x04, 0xd9, 0x80, 0xe2, 0xd4, 0x99, 0x39, 0xa2, 0x6d, 0x6c, 0x19, 0xdb,
|
||||
0x45, 0x4b, 0x7d, 0x90, 0xcb, 0x50, 0xe2, 0x47, 0x47, 0x01, 0x13, 0xed, 0x1c, 0xc2, 0xfa, 0xcb,
|
||||
0xfc, 0xd6, 0x00, 0xb2, 0xe8, 0x8c, 0x10, 0x28, 0x78, 0x54, 0x1c, 0xa3, 0x8f, 0xaa, 0x85, 0xbf,
|
||||
0xc9, 0x7d, 0xa8, 0x05, 0xca, 0x3c, 0xb4, 0x99, 0xa0, 0xce, 0x14, 0x5d, 0x55, 0xfa, 0xa4, 0x17,
|
||||
0x67, 0x79, 0xa0, 0x7e, 0x59, 0xeb, 0x9a, 0xb9, 0x87, 0x44, 0xd2, 0x85, 0xca, 0x94, 0x07, 0x62,
|
||||
0xe8, 0x39, 0x6c, 0xcc, 0x82, 0x76, 0x1e, 0x43, 0x00, 0x09, 0x1d, 0x20, 0x42, 0x7a, 0xd0, 0x9a,
|
||||
0xd2, 0x40, 0x0c, 0x65, 0x20, 0x8e, 0x3f, 0xa4, 0x42, 0xb0, 0x99, 0x27, 0xda, 0x85, 0x2d, 0x63,
|
||||
0x3b, 0x6f, 0x35, 0xa5, 0xc9, 0x42, 0xcb, 0x23, 0x65, 0x20, 0x77, 0x61, 0x23, 0x4d, 0x1d, 0x8e,
|
||||
0xf9, 0xdc, 0x15, 0xed, 0x22, 0x0e, 0x20, 0x7e, 0x92, 0xbc, 0x2b, 0x2d, 0xe6, 0x6b, 0xe8, 0xae,
|
||||
0x14, 0x2e, 0xf0, 0xb8, 0x1b, 0x30, 0x72, 0x1f, 0xd6, 0x74, 0xd8, 0x41, 0xdb, 0xd8, 0xca, 0x6f,
|
||||
0x57, 0xfa, 0xd7, 0x7b, 0xf1, 0xa2, 0x2f, 0x8e, 0xb4, 0x22, 0xba, 0xf9, 0x37, 0xa8, 0x3f, 0x61,
|
||||
0xe2, 0x50, 0xd0, 0x78, 0x1d, 0x6e, 0xc0, 0x45, 0xb9, 0x13, 0x86, 0x8e, 0xad, 0x54, 0xdc, 0xa9,
|
||||
0x7d, 0xf9, 0xbe, 0x7b, 0xe1, 0xeb, 0xf7, 0xdd, 0xd2, 0x73, 0x6e, 0xb3, 0xc1, 0x9e, 0x55, 0x92,
|
||||
0xe6, 0x81, 0x6d, 0x7e, 0x6c, 0x40, 0x23, 0x1e, 0xac, 0x63, 0xe9, 0x42, 0x85, 0xce, 0x6d, 0x27,
|
||||
0xcc, 0xcb, 0xc0, 0xbc, 0x00, 0x21, 0xcc, 0x27, 0x26, 0xe0, 0xfe, 0xc1, 0xa5, 0x30, 0x34, 0xc1,
|
||||
0x92, 0x08, 0xf9, 0x2d, 0x54, 0xe7, 0x9e, 0xdc, 0x3e, 0xda, 0x45, 0x1e, 0x5d, 0x54, 0x14, 0xa6,
|
||||
0x7c, 0xc4, 0x14, 0xe5, 0xa4, 0x80, 0x4e, 0x34, 0x05, 0xbd, 0x98, 0xdf, 0x18, 0x40, 0x76, 0x7d,
|
||||
0x46, 0x05, 0xfb, 0x49, 0xc9, 0x65, 0xf3, 0xc8, 0x2d, 0xe4, 0xd1, 0x83, 0x96, 0x22, 0x04, 0xf3,
|
||||
0xf1, 0x98, 0x05, 0x41, 0x2a, 0xda, 0x26, 0x9a, 0x0e, 0x95, 0x25, 0x1b, 0xb3, 0x22, 0x16, 0x16,
|
||||
0xd3, 0xba, 0x0b, 0x1b, 0x9a, 0x92, 0xf6, 0xa9, 0x37, 0x87, 0xb2, 0x25, 0x9d, 0x9a, 0x97, 0xa0,
|
||||
0x95, 0x4a, 0x52, 0x2d, 0x82, 0x79, 0x0b, 0x08, 0xda, 0x65, 0x4e, 0xf1, 0xd2, 0x6c, 0x40, 0x31,
|
||||
0xb9, 0x28, 0xea, 0xc3, 0x6c, 0x41, 0x33, 0xc9, 0x45, 0x99, 0x24, 0xf8, 0x84, 0x89, 0x9d, 0xf9,
|
||||
0xf8, 0x84, 0x45, 0xda, 0x99, 0x4f, 0x81, 0x24, 0xc1, 0xd8, 0xab, 0xe0, 0x82, 0x4e, 0x43, 0xaf,
|
||||
0xf8, 0x41, 0xae, 0x41, 0xde, 0xb1, 0x83, 0x76, 0x6e, 0x2b, 0xbf, 0x5d, 0xdd, 0x81, 0x84, 0xbe,
|
||||
0x12, 0x36, 0xfb, 0xb8, 0x71, 0x94, 0xa7, 0x70, 0x65, 0x36, 0x21, 0xb7, 0x72, 0x51, 0x72, 0x8e,
|
||||
0x6d, 0xfe, 0x33, 0x11, 0x52, 0x34, 0xf9, 0x19, 0x83, 0xc8, 0x16, 0x14, 0xe5, 0x7a, 0xaa, 0x40,
|
||||
0x2a, 0x7d, 0xe8, 0x61, 0x8d, 0x93, 0x04, 0x4b, 0x19, 0xcc, 0x5b, 0x50, 0x52, 0x3e, 0xcf, 0xc1,
|
||||
0xed, 0x01, 0x28, 0xae, 0x3c, 0x90, 0x31, 0xdf, 0x58, 0xc5, 0x7f, 0x06, 0xf5, 0x03, 0xc7, 0x9d,
|
||||
0x20, 0x74, 0xbe, 0x2c, 0x49, 0x1b, 0x2e, 0x52, 0xdb, 0xf6, 0x59, 0x10, 0xe0, 0x96, 0x2b, 0x5b,
|
||||
0xe1, 0xa7, 0x69, 0x42, 0x23, 0x76, 0xa6, 0xd3, 0xaf, 0x41, 0x8e, 0x9f, 0xa0, 0xb7, 0x35, 0x2b,
|
||||
0xc7, 0x4f, 0xcc, 0x87, 0xd0, 0xdc, 0xe7, 0xfc, 0x64, 0xee, 0x25, 0xa7, 0xac, 0x45, 0x53, 0x96,
|
||||
0xcf, 0x98, 0xe2, 0x35, 0x90, 0xe4, 0xf0, 0x48, 0xe3, 0x82, 0x4c, 0x07, 0x3d, 0xa4, 0xd3, 0x44,
|
||||
0x9c, 0xfc, 0x11, 0x0a, 0x33, 0x26, 0x68, 0x54, 0x54, 0x23, 0xfb, 0x3f, 0x98, 0xa0, 0x36, 0x15,
|
||||
0xd4, 0x42, 0xbb, 0xf9, 0x1f, 0xa8, 0x63, 0xa2, 0xee, 0x11, 0x3f, 0xaf, 0x1a, 0xb7, 0xd3, 0xa1,
|
||||
0x56, 0xfa, 0xcd, 0xd8, 0xfb, 0x23, 0x65, 0x88, 0xa3, 0xff, 0xc2, 0x80, 0x46, 0x3c, 0x81, 0x0e,
|
||||
0xde, 0x84, 0x82, 0x38, 0xf5, 0x54, 0xf0, 0xb5, 0x7e, 0x2d, 0x1e, 0xfe, 0xea, 0xd4, 0x63, 0x16,
|
||||
0xda, 0x48, 0x0f, 0xd6, 0xb8, 0xc7, 0x7c, 0x2a, 0xb8, 0xbf, 0x98, 0xc4, 0x0b, 0x6d, 0xb1, 0x22,
|
||||
0x8e, 0xe4, 0x8f, 0xa9, 0x47, 0xc7, 0x8e, 0x38, 0xc5, 0xe3, 0x9e, 0xe2, 0xef, 0x6a, 0x8b, 0x15,
|
||||
0x71, 0x64, 0x16, 0x6f, 0x99, 0x1f, 0x38, 0xdc, 0xc5, 0x43, 0x9f, 0xca, 0xe2, 0x5f, 0xca, 0x60,
|
||||
0x85, 0x0c, 0x73, 0x06, 0xf5, 0xc7, 0x8e, 0x6b, 0x3f, 0x67, 0xd4, 0x3f, 0xaf, 0x4a, 0xbf, 0x87,
|
||||
0x62, 0x20, 0xa8, 0xaf, 0x8a, 0xd4, 0x22, 0x45, 0x19, 0xe3, 0xeb, 0x55, 0x55, 0x28, 0xf5, 0x61,
|
||||
0xde, 0x83, 0x46, 0x3c, 0x9d, 0xd6, 0xec, 0xec, 0x83, 0x40, 0xa0, 0xb1, 0x37, 0x9f, 0x79, 0xa9,
|
||||
0x92, 0xf1, 0x57, 0x68, 0x26, 0xb0, 0xac, 0xab, 0x95, 0x67, 0xa4, 0x06, 0xd5, 0x64, 0x81, 0x36,
|
||||
0xbf, 0x37, 0xa0, 0x25, 0x81, 0xc3, 0xf9, 0x6c, 0x46, 0xfd, 0xd3, 0xc8, 0xd3, 0x75, 0x80, 0x79,
|
||||
0xc0, 0xec, 0x61, 0xe0, 0xd1, 0x31, 0xd3, 0xb5, 0xa6, 0x2c, 0x91, 0x43, 0x09, 0x90, 0x1b, 0x50,
|
||||
0xa7, 0x6f, 0xa9, 0x33, 0x95, 0xb7, 0x9c, 0xe6, 0xa8, 0x92, 0x5d, 0x8b, 0x60, 0x45, 0x94, 0x65,
|
||||
0x58, 0xfa, 0x71, 0xdc, 0x09, 0xee, 0xab, 0xf0, 0x76, 0x09, 0x98, 0x3d, 0x50, 0x90, 0x2c, 0xfd,
|
||||
0x48, 0x61, 0x8a, 0xa1, 0x0a, 0x35, 0xce, 0xfe, 0x77, 0x45, 0xf8, 0x03, 0xd4, 0x90, 0x30, 0xa2,
|
||||
0xae, 0xfd, 0x3f, 0xc7, 0x16, 0xc7, 0xba, 0x42, 0xaf, 0x4b, 0x74, 0x27, 0x04, 0xc9, 0x1d, 0x68,
|
||||
0xc5, 0x31, 0xc5, 0xdc, 0x92, 0xaa, 0xe6, 0x91, 0x29, 0x1a, 0x80, 0xb2, 0xd2, 0xe0, 0x78, 0xc4,
|
||||
0xa9, 0x6f, 0x87, 0x7a, 0x7c, 0x95, 0x87, 0x66, 0x02, 0xd4, 0x6a, 0x9c, 0xfb, 0x1a, 0xbb, 0x09,
|
||||
0x0d, 0x24, 0x8e, 0xb9, 0xeb, 0xb2, 0xb1, 0x6c, 0xd8, 0x02, 0x2d, 0x4c, 0x5d, 0xe2, 0xbb, 0x31,
|
||||
0x4c, 0x6e, 0x43, 0x73, 0xc4, 0xb9, 0x08, 0x84, 0x4f, 0xbd, 0x61, 0x78, 0xec, 0xf2, 0x58, 0x21,
|
||||
0x1a, 0x91, 0x41, 0x9f, 0x3a, 0xe9, 0x17, 0x1b, 0x26, 0x97, 0x4e, 0x23, 0x6e, 0x01, 0xb9, 0xf5,
|
||||
0x10, 0x4f, 0x50, 0xd9, 0xbb, 0x0c, 0xb5, 0xa8, 0xa8, 0x21, 0x1e, 0x52, 0xef, 0xe1, 0x4e, 0x16,
|
||||
0x01, 0x6a, 0x54, 0xe9, 0x6f, 0x26, 0xba, 0x98, 0x25, 0x7b, 0xc2, 0x52, 0x64, 0xf2, 0x67, 0x28,
|
||||
0xa9, 0xab, 0xb1, 0x7d, 0x11, 0x87, 0xfd, 0xa6, 0xa7, 0x9a, 0xd1, 0x5e, 0xd8, 0x8c, 0xf6, 0xf6,
|
||||
0x74, 0xb3, 0x6a, 0x69, 0x22, 0x79, 0x00, 0x15, 0x6c, 0xdb, 0x3c, 0xc7, 0x9d, 0x30, 0xbb, 0xbd,
|
||||
0x86, 0xe3, 0x3a, 0x0b, 0xe3, 0x5e, 0x85, 0x4d, 0xac, 0x05, 0x92, 0x7e, 0x80, 0x6c, 0xf2, 0x10,
|
||||
0xaa, 0x38, 0xf8, 0xcd, 0x9c, 0xf9, 0x0e, 0xb3, 0xdb, 0xe5, 0x33, 0x47, 0xe3, 0x64, 0x2f, 0x15,
|
||||
0xdd, 0xfc, 0xc8, 0x80, 0x0d, 0xdd, 0x88, 0x3d, 0x65, 0x74, 0x2a, 0x8e, 0xc3, 0x73, 0x7e, 0x19,
|
||||
0x4a, 0x23, 0xbc, 0x5e, 0x74, 0xf7, 0xaa, 0xbf, 0xe4, 0x76, 0x63, 0xee, 0xd8, 0x3f, 0xf5, 0x04,
|
||||
0xb3, 0x87, 0xd8, 0xdd, 0xe2, 0x41, 0xb7, 0xd6, 0x23, 0xf4, 0x40, 0xb6, 0xb9, 0xbf, 0x83, 0xb0,
|
||||
0x79, 0x1d, 0x3a, 0xae, 0xcd, 0xde, 0xe9, 0xad, 0x5d, 0xd5, 0xe0, 0x40, 0x62, 0xf2, 0x18, 0x79,
|
||||
0x3e, 0xff, 0x2f, 0x1b, 0x0b, 0xb9, 0x77, 0x0a, 0xe8, 0xa7, 0xac, 0x91, 0x81, 0x6d, 0xee, 0xc3,
|
||||
0x7a, 0x2a, 0x34, 0x79, 0x5c, 0xb8, 0x3b, 0x75, 0x5c, 0x36, 0x0c, 0xcf, 0xb1, 0xec, 0x80, 0x2b,
|
||||
0x0a, 0xc3, 0xb3, 0x2e, 0xef, 0x13, 0x3d, 0x85, 0x8e, 0x2b, 0xfc, 0x34, 0xff, 0x6f, 0xc0, 0xa5,
|
||||
0x4c, 0xa6, 0x7a, 0xff, 0xde, 0x85, 0xd2, 0x31, 0x22, 0xfa, 0x56, 0x69, 0x27, 0x57, 0x3a, 0x35,
|
||||
0x42, 0xf3, 0xc8, 0x03, 0x00, 0x9f, 0xd9, 0x73, 0xd7, 0xa6, 0xee, 0xf8, 0x54, 0x97, 0xe9, 0xab,
|
||||
0x89, 0x06, 0xde, 0x8a, 0x8c, 0x87, 0xe3, 0x63, 0x36, 0x63, 0x56, 0x82, 0x6e, 0x7e, 0x67, 0x40,
|
||||
0xeb, 0xc5, 0x48, 0xe6, 0x98, 0x56, 0x7c, 0x51, 0x59, 0x63, 0x99, 0xb2, 0xf1, 0xc2, 0xe4, 0x52,
|
||||
0x0b, 0x93, 0x16, 0x33, 0x9f, 0x11, 0x53, 0x76, 0x88, 0x58, 0x7a, 0x87, 0xf4, 0x48, 0x30, 0x7f,
|
||||
0x18, 0x8a, 0xa4, 0xdf, 0x06, 0x68, 0x7a, 0x24, 0x2d, 0xe1, 0xdb, 0xe5, 0x4f, 0x40, 0x98, 0x6b,
|
||||
0x0f, 0x47, 0xec, 0x88, 0xfb, 0x2c, 0xa2, 0xab, 0xd2, 0xd2, 0x60, 0xae, 0xbd, 0x83, 0x86, 0x90,
|
||||
0x1d, 0xd5, 0xf3, 0x52, 0xe2, 0xb9, 0x64, 0x7e, 0x68, 0xc0, 0x46, 0x3a, 0x53, 0xad, 0xf8, 0xbd,
|
||||
0x85, 0x37, 0xc2, 0x6a, 0xcd, 0x23, 0xe6, 0xcf, 0x52, 0xbd, 0xff, 0x79, 0x1e, 0xaa, 0xcf, 0xa8,
|
||||
0x3d, 0x08, 0x67, 0x21, 0x03, 0x80, 0xb8, 0xd5, 0x24, 0xd7, 0x12, 0xf3, 0x2f, 0x74, 0xa0, 0x9d,
|
||||
0xeb, 0x2b, 0xac, 0x3a, 0x9d, 0x5d, 0x58, 0x0b, 0xbb, 0x21, 0xd2, 0x49, 0x50, 0x33, 0xfd, 0x56,
|
||||
0xe7, 0xea, 0x52, 0x9b, 0x76, 0x32, 0x00, 0x88, 0xfb, 0x9d, 0x54, 0x3c, 0x0b, 0x5d, 0x54, 0x2a,
|
||||
0x9e, 0x25, 0x4d, 0xd2, 0x2e, 0xac, 0x85, 0xbd, 0x47, 0x2a, 0x9e, 0x4c, 0xc7, 0x93, 0x8a, 0x67,
|
||||
0xa1, 0x59, 0xd9, 0x85, 0xb5, 0xf0, 0x32, 0x4e, 0x39, 0xc9, 0x34, 0x04, 0x29, 0x27, 0x0b, 0xb7,
|
||||
0xf7, 0x63, 0x28, 0x47, 0xf7, 0x30, 0x49, 0x32, 0xb3, 0x37, 0x76, 0xe7, 0xda, 0x72, 0xa3, 0xf2,
|
||||
0xd3, 0xff, 0x34, 0x07, 0x8d, 0x17, 0x6f, 0x99, 0x3f, 0xa5, 0xa7, 0xbf, 0xca, 0x0a, 0xfe, 0x42,
|
||||
0x71, 0x4a, 0xd1, 0xc2, 0x47, 0x68, 0x4a, 0xb4, 0xcc, 0xb3, 0x36, 0x25, 0xda, 0xc2, 0xab, 0x75,
|
||||
0x1f, 0x2a, 0x89, 0x77, 0x14, 0x49, 0x85, 0xbe, 0xf0, 0x88, 0xec, 0x6c, 0xae, 0x32, 0x6b, 0xe9,
|
||||
0x3e, 0x31, 0xa0, 0x85, 0xff, 0x0f, 0x1c, 0x0a, 0xee, 0xb3, 0x58, 0xbd, 0x1d, 0x28, 0x2a, 0xff,
|
||||
0x57, 0x32, 0x17, 0xdb, 0x52, 0xcf, 0x4b, 0x6e, 0x3c, 0xf3, 0x02, 0x79, 0x0a, 0xe5, 0xa8, 0x1d,
|
||||
0x48, 0xcb, 0x96, 0xe9, 0x1c, 0xd2, 0xb2, 0x65, 0x3b, 0x08, 0xf3, 0x42, 0xff, 0x03, 0x03, 0x36,
|
||||
0x12, 0xff, 0x0d, 0xc4, 0x61, 0x7a, 0x70, 0x65, 0xc5, 0x3f, 0x0e, 0xe4, 0x66, 0xf2, 0x14, 0xfc,
|
||||
0xe8, 0xdf, 0x39, 0x9d, 0x5b, 0xe7, 0xa1, 0x6a, 0xc1, 0x3e, 0x33, 0xa0, 0xae, 0x6a, 0x4f, 0x1c,
|
||||
0xc5, 0x4b, 0xa8, 0x26, 0x0b, 0x19, 0x49, 0x4a, 0xb3, 0xa4, 0x96, 0x77, 0xba, 0x2b, 0xed, 0x91,
|
||||
0x76, 0xaf, 0xb2, 0xb7, 0x5b, 0x77, 0x65, 0x09, 0xd4, 0x4e, 0xb7, 0x56, 0x13, 0x42, 0xaf, 0x3b,
|
||||
0x85, 0x7f, 0xe7, 0xbc, 0xd1, 0xa8, 0x84, 0xd7, 0xfe, 0x5f, 0x7e, 0x08, 0x00, 0x00, 0xff, 0xff,
|
||||
0x9d, 0x4f, 0x03, 0xcd, 0x6e, 0x13, 0x00, 0x00,
|
||||
// 1782 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x93, 0x1b, 0x49,
|
||||
0x11, 0x76, 0xeb, 0x35, 0x52, 0x4a, 0xa3, 0x47, 0x49, 0xf6, 0x0a, 0xad, 0x3d, 0x1a, 0x9a, 0x87,
|
||||
0xbd, 0x36, 0xc8, 0x46, 0x98, 0xc3, 0xb2, 0xb1, 0x07, 0x8f, 0xcc, 0xae, 0x15, 0x6b, 0xec, 0xd9,
|
||||
0x1e, 0xc3, 0x81, 0xd8, 0x40, 0x51, 0xea, 0xae, 0xd1, 0x34, 0x96, 0xba, 0x7a, 0xbb, 0x4b, 0x66,
|
||||
0xe7, 0x0f, 0x10, 0x70, 0xe2, 0xc4, 0x01, 0xae, 0xfc, 0x09, 0x82, 0x2b, 0x17, 0x6e, 0xdc, 0x39,
|
||||
0xf8, 0x42, 0x04, 0xdc, 0xb9, 0x71, 0x23, 0x2a, 0xab, 0xfa, 0x2d, 0x31, 0x13, 0xc0, 0xde, 0xd4,
|
||||
0x5f, 0x7e, 0x95, 0x95, 0xf9, 0xd5, 0x23, 0xb3, 0x04, 0x1d, 0xd7, 0x0b, 0x7d, 0x66, 0x0b, 0x1e,
|
||||
0x4c, 0xfc, 0x80, 0x0b, 0x4e, 0x1a, 0x31, 0x30, 0x82, 0x15, 0x5f, 0x71, 0x05, 0x8f, 0xc0, 0xe3,
|
||||
0x0e, 0xd3, 0xbf, 0x3b, 0x3e, 0x77, 0x3d, 0xc1, 0x02, 0x67, 0xa9, 0x81, 0xa3, 0x15, 0xe7, 0xab,
|
||||
0x35, 0x7b, 0x88, 0x5f, 0xcb, 0xed, 0xf9, 0x43, 0x67, 0x1b, 0x50, 0xe1, 0x72, 0x4f, 0xdb, 0xc7,
|
||||
0x79, 0xbb, 0x70, 0x37, 0x2c, 0x14, 0x74, 0xe3, 0x2b, 0x82, 0xf9, 0x02, 0x8e, 0x9e, 0xbb, 0xa1,
|
||||
0x98, 0x07, 0x01, 0xf3, 0x69, 0x40, 0x97, 0x6b, 0x76, 0xc6, 0x56, 0x1b, 0xe6, 0x89, 0xd0, 0x62,
|
||||
0x9f, 0x6f, 0x59, 0x28, 0xc8, 0x00, 0xaa, 0x6b, 0x77, 0xe3, 0x8a, 0xa1, 0x71, 0x6c, 0xdc, 0xab,
|
||||
0x5a, 0xea, 0x83, 0xdc, 0x82, 0x1a, 0x3f, 0x3f, 0x0f, 0x99, 0x18, 0x96, 0x10, 0xd6, 0x5f, 0xe6,
|
||||
0xdf, 0x0d, 0x20, 0x45, 0x67, 0x84, 0x40, 0xc5, 0xa7, 0xe2, 0x02, 0x7d, 0xb4, 0x2c, 0xfc, 0x4d,
|
||||
0xde, 0x87, 0x76, 0xa8, 0xcc, 0x0b, 0x87, 0x09, 0xea, 0xae, 0xd1, 0x55, 0x73, 0x4a, 0x26, 0x49,
|
||||
0x96, 0xa7, 0xea, 0x97, 0x75, 0xa8, 0x99, 0x4f, 0x91, 0x48, 0xc6, 0xd0, 0x5c, 0xf3, 0x50, 0x2c,
|
||||
0x7c, 0x97, 0xd9, 0x2c, 0x1c, 0x96, 0x31, 0x04, 0x90, 0xd0, 0x29, 0x22, 0x64, 0x02, 0xfd, 0x35,
|
||||
0x0d, 0xc5, 0x42, 0x06, 0xe2, 0x06, 0x0b, 0x2a, 0x04, 0xdb, 0xf8, 0x62, 0x58, 0x39, 0x36, 0xee,
|
||||
0x95, 0xad, 0x9e, 0x34, 0x59, 0x68, 0x79, 0xa2, 0x0c, 0xe4, 0x11, 0x0c, 0xb2, 0xd4, 0x85, 0xcd,
|
||||
0xb7, 0x9e, 0x18, 0x56, 0x71, 0x00, 0x09, 0xd2, 0xe4, 0x99, 0xb4, 0x98, 0x9f, 0xc1, 0x78, 0xaf,
|
||||
0x70, 0xa1, 0xcf, 0xbd, 0x90, 0x91, 0xf7, 0xa1, 0xae, 0xc3, 0x0e, 0x87, 0xc6, 0x71, 0xf9, 0x5e,
|
||||
0x73, 0x7a, 0x67, 0x92, 0x2c, 0x7a, 0x71, 0xa4, 0x15, 0xd3, 0xcd, 0xef, 0x43, 0xe7, 0x63, 0x26,
|
||||
0xce, 0x04, 0x4d, 0xd6, 0xe1, 0x2e, 0x1c, 0xc8, 0x9d, 0xb0, 0x70, 0x1d, 0xa5, 0xe2, 0x49, 0xfb,
|
||||
0xcf, 0x6f, 0xc7, 0x37, 0xfe, 0xfa, 0x76, 0x5c, 0x7b, 0xc1, 0x1d, 0x36, 0x7f, 0x6a, 0xd5, 0xa4,
|
||||
0x79, 0xee, 0x98, 0xbf, 0x33, 0xa0, 0x9b, 0x0c, 0xd6, 0xb1, 0x8c, 0xa1, 0x49, 0xb7, 0x8e, 0x1b,
|
||||
0xe5, 0x65, 0x60, 0x5e, 0x80, 0x10, 0xe6, 0x93, 0x10, 0x70, 0xff, 0xe0, 0x52, 0x18, 0x9a, 0x60,
|
||||
0x49, 0x84, 0x7c, 0x15, 0x5a, 0x5b, 0x5f, 0x6e, 0x1f, 0xed, 0xa2, 0x8c, 0x2e, 0x9a, 0x0a, 0x53,
|
||||
0x3e, 0x12, 0x8a, 0x72, 0x52, 0x41, 0x27, 0x9a, 0x82, 0x5e, 0xcc, 0xbf, 0x19, 0x40, 0x66, 0x01,
|
||||
0xa3, 0x82, 0xfd, 0x57, 0xc9, 0xe5, 0xf3, 0x28, 0x15, 0xf2, 0x98, 0x40, 0x5f, 0x11, 0xc2, 0xad,
|
||||
0x6d, 0xb3, 0x30, 0xcc, 0x44, 0xdb, 0x43, 0xd3, 0x99, 0xb2, 0xe4, 0x63, 0x56, 0xc4, 0x4a, 0x31,
|
||||
0xad, 0x47, 0x30, 0xd0, 0x94, 0xac, 0x4f, 0xbd, 0x39, 0x94, 0x2d, 0xed, 0xd4, 0xbc, 0x09, 0xfd,
|
||||
0x4c, 0x92, 0x6a, 0x11, 0xcc, 0xfb, 0x40, 0xd0, 0x2e, 0x73, 0x4a, 0x96, 0x66, 0x00, 0xd5, 0xf4,
|
||||
0xa2, 0xa8, 0x0f, 0xb3, 0x0f, 0xbd, 0x34, 0x17, 0x65, 0x32, 0x6f, 0xc1, 0xe0, 0x63, 0x26, 0x4e,
|
||||
0xb6, 0xf6, 0x6b, 0x26, 0xe4, 0xee, 0x8b, 0xf0, 0x7f, 0x1a, 0x70, 0x33, 0x67, 0xd0, 0xce, 0x9f,
|
||||
0xc0, 0xc1, 0x12, 0xd1, 0x68, 0x0b, 0xde, 0x4d, 0x6d, 0xc1, 0x9d, 0x43, 0x26, 0x0a, 0xb2, 0xa2,
|
||||
0x71, 0xa3, 0xdf, 0x18, 0x50, 0x53, 0x18, 0x79, 0x00, 0x0d, 0x85, 0xee, 0x5f, 0xa8, 0xba, 0x22,
|
||||
0xcc, 0x1d, 0xf2, 0x10, 0x0e, 0x03, 0xbe, 0x15, 0xae, 0xb7, 0x5a, 0xc8, 0xc5, 0x0b, 0x87, 0x25,
|
||||
0x0c, 0x00, 0x26, 0x78, 0xa1, 0x49, 0xba, 0xd5, 0xd2, 0x04, 0x4c, 0x92, 0x7c, 0x1b, 0x5a, 0x36,
|
||||
0xb5, 0x2f, 0x98, 0xa3, 0xf9, 0xe5, 0x02, 0xbf, 0xa9, 0xec, 0x48, 0x97, 0x0a, 0xc5, 0x09, 0xc4,
|
||||
0x0a, 0x3d, 0x03, 0x92, 0x06, 0x13, 0x89, 0x05, 0x17, 0x74, 0x1d, 0x49, 0x8c, 0x1f, 0xe4, 0x36,
|
||||
0x94, 0x5d, 0x47, 0x85, 0xd5, 0x3a, 0x81, 0x54, 0x0e, 0x12, 0x36, 0xa7, 0x78, 0x8a, 0xb4, 0x18,
|
||||
0x7a, 0x9b, 0x1e, 0x41, 0x69, 0x6f, 0xe2, 0x25, 0xd7, 0x31, 0x7f, 0x94, 0x0a, 0x29, 0x9e, 0xfc,
|
||||
0x8a, 0x41, 0xe4, 0x18, 0xaa, 0xfb, 0xf4, 0x51, 0x06, 0xf3, 0x7e, 0xbc, 0x00, 0x57, 0x73, 0x27,
|
||||
0x00, 0xc9, 0x9a, 0x26, 0x7c, 0x63, 0x1f, 0xff, 0x13, 0xe8, 0x9c, 0xea, 0x15, 0xb8, 0x66, 0x96,
|
||||
0x64, 0x08, 0x07, 0xd4, 0x71, 0x02, 0x16, 0x86, 0x78, 0xfe, 0x1a, 0x56, 0xf4, 0x69, 0x9a, 0xd0,
|
||||
0x4d, 0x9c, 0xe9, 0xf4, 0xdb, 0x50, 0xe2, 0xaf, 0xd1, 0x5b, 0xdd, 0x2a, 0xf1, 0xd7, 0xe6, 0x87,
|
||||
0xd0, 0x7b, 0xce, 0xf9, 0xeb, 0xad, 0x9f, 0x9e, 0xb2, 0x1d, 0x4f, 0xd9, 0xb8, 0x62, 0x8a, 0xcf,
|
||||
0x80, 0xa4, 0x87, 0xc7, 0x1a, 0x57, 0x64, 0x3a, 0xe8, 0x21, 0x9b, 0x26, 0xe2, 0xe4, 0x9b, 0x50,
|
||||
0xd9, 0x30, 0x41, 0xe3, 0x0a, 0x13, 0xdb, 0x7f, 0xc8, 0x04, 0x75, 0xa8, 0xa0, 0x16, 0xda, 0xcd,
|
||||
0x9f, 0x42, 0x07, 0x13, 0xf5, 0xce, 0xf9, 0x75, 0xd5, 0x78, 0x90, 0x0d, 0xb5, 0x39, 0xed, 0x25,
|
||||
0xde, 0x9f, 0x28, 0x43, 0x12, 0xfd, 0x9f, 0x0c, 0xe8, 0x26, 0x13, 0xe8, 0xe0, 0x4d, 0xa8, 0x88,
|
||||
0x4b, 0x5f, 0x05, 0xdf, 0x9e, 0xb6, 0x93, 0xe1, 0xaf, 0x2e, 0x7d, 0x66, 0xa1, 0x8d, 0x4c, 0xa0,
|
||||
0xce, 0x7d, 0x16, 0x50, 0xc1, 0x83, 0x62, 0x12, 0x2f, 0xb5, 0xc5, 0x8a, 0x39, 0x92, 0x6f, 0x53,
|
||||
0x9f, 0xda, 0xae, 0xb8, 0xc4, 0xbb, 0x2f, 0xc3, 0x9f, 0x69, 0x8b, 0x15, 0x73, 0x64, 0x16, 0x6f,
|
||||
0x58, 0x10, 0xba, 0xdc, 0xc3, 0x1b, 0x30, 0x93, 0xc5, 0x8f, 0x95, 0xc1, 0x8a, 0x18, 0xe6, 0x06,
|
||||
0x3a, 0x1f, 0xb9, 0x9e, 0xf3, 0x82, 0xd1, 0xe0, 0xba, 0x2a, 0x7d, 0x1d, 0xaa, 0xa1, 0xa0, 0x81,
|
||||
0xba, 0xb1, 0x8b, 0x14, 0x65, 0x4c, 0x7a, 0x0d, 0x75, 0x5d, 0xab, 0x0f, 0xf3, 0x31, 0x74, 0x93,
|
||||
0xe9, 0xb4, 0x66, 0x57, 0x1f, 0x04, 0x02, 0xdd, 0xa7, 0xdb, 0x8d, 0x9f, 0xb9, 0x3f, 0xbf, 0x07,
|
||||
0xbd, 0x14, 0x96, 0x77, 0xb5, 0xf7, 0x8c, 0xb4, 0xa1, 0x95, 0xae, 0x56, 0xe6, 0xbf, 0x0c, 0xe8,
|
||||
0x4b, 0xe0, 0x6c, 0xbb, 0xd9, 0xd0, 0xe0, 0x32, 0xf6, 0x74, 0x07, 0x60, 0x1b, 0x32, 0x67, 0x11,
|
||||
0xfa, 0xd4, 0x66, 0xfa, 0xae, 0x69, 0x48, 0xe4, 0x4c, 0x02, 0xe4, 0x2e, 0x74, 0xe8, 0x1b, 0xea,
|
||||
0xae, 0x65, 0xc9, 0xd7, 0x1c, 0x55, 0xbf, 0xda, 0x31, 0xac, 0x88, 0xb2, 0x26, 0x49, 0x3f, 0xae,
|
||||
0xb7, 0xc2, 0x7d, 0x15, 0x95, 0xda, 0x90, 0x39, 0x73, 0x05, 0xc9, 0x3a, 0x88, 0x14, 0xa6, 0x18,
|
||||
0xaa, 0x6a, 0xe1, 0xec, 0x3f, 0x50, 0x84, 0x6f, 0x40, 0x1b, 0x09, 0x4b, 0xea, 0x39, 0x3f, 0x77,
|
||||
0x1d, 0x71, 0xa1, 0xcb, 0xd5, 0xa1, 0x44, 0x4f, 0x22, 0x90, 0x3c, 0x84, 0x7e, 0x12, 0x53, 0xc2,
|
||||
0xad, 0xa9, 0xd2, 0x16, 0x9b, 0xe2, 0x01, 0x28, 0x2b, 0x0d, 0x2f, 0x96, 0x9c, 0x06, 0x4e, 0xa4,
|
||||
0xc7, 0x5f, 0xca, 0xd0, 0x4b, 0x81, 0x5a, 0x8d, 0x6b, 0xd7, 0xf4, 0xf7, 0xa0, 0x8b, 0x44, 0x9b,
|
||||
0x7b, 0x1e, 0xb3, 0x65, 0xf7, 0x1a, 0x6a, 0x61, 0x3a, 0x12, 0x9f, 0x25, 0x30, 0x79, 0x00, 0xbd,
|
||||
0x25, 0xe7, 0x22, 0x14, 0x01, 0xf5, 0x17, 0xd1, 0xb1, 0x2b, 0xe3, 0x0d, 0xd1, 0x8d, 0x0d, 0xfa,
|
||||
0xd4, 0x49, 0xbf, 0xd8, 0x3d, 0x7a, 0x74, 0x1d, 0x73, 0x2b, 0xc8, 0xed, 0x44, 0x78, 0x8a, 0xca,
|
||||
0xbe, 0xc8, 0x51, 0xab, 0x8a, 0x1a, 0xe1, 0x11, 0xf5, 0x31, 0xee, 0x64, 0x11, 0xa2, 0x46, 0xcd,
|
||||
0xe9, 0x51, 0xaa, 0x9e, 0xee, 0xd8, 0x13, 0x96, 0x22, 0x93, 0xef, 0x40, 0x4d, 0xf5, 0x09, 0xc3,
|
||||
0x03, 0x1c, 0xf6, 0x95, 0x89, 0xea, 0xcc, 0x27, 0x51, 0x67, 0x3e, 0x79, 0xaa, 0x3b, 0x77, 0x4b,
|
||||
0x13, 0xc9, 0x07, 0xd0, 0xc4, 0x1e, 0xd6, 0x77, 0xbd, 0x15, 0x73, 0x86, 0x75, 0x1c, 0x37, 0x2a,
|
||||
0x8c, 0x7b, 0x15, 0x75, 0xf4, 0x16, 0x48, 0xfa, 0x29, 0xb2, 0xc9, 0x87, 0xd0, 0xc2, 0xc1, 0x9f,
|
||||
0x6f, 0x59, 0xe0, 0x32, 0x67, 0xd8, 0xb8, 0x72, 0x34, 0x4e, 0xf6, 0xa9, 0xa2, 0x9b, 0xbf, 0x35,
|
||||
0x60, 0xa0, 0xbb, 0xd2, 0x67, 0x8c, 0xae, 0xc5, 0x45, 0x74, 0xce, 0x6f, 0x41, 0x4d, 0x15, 0x78,
|
||||
0xdd, 0xca, 0xeb, 0x2f, 0xb9, 0xdd, 0x98, 0x67, 0x07, 0x97, 0xbe, 0x60, 0xce, 0x02, 0x5b, 0x7d,
|
||||
0x3c, 0xe8, 0xd6, 0x61, 0x8c, 0x9e, 0xca, 0x9e, 0xff, 0x6b, 0x10, 0x75, 0xf2, 0x0b, 0xd7, 0x73,
|
||||
0xd8, 0x17, 0x7a, 0x6b, 0xb7, 0x34, 0x38, 0x97, 0x98, 0x3c, 0x46, 0x7e, 0xc0, 0x7f, 0xc6, 0x6c,
|
||||
0x6c, 0x33, 0x2a, 0xe8, 0xa7, 0xa1, 0x91, 0xb9, 0x63, 0x3e, 0x87, 0xc3, 0x4c, 0x68, 0xf2, 0xb8,
|
||||
0x70, 0x6f, 0xed, 0x7a, 0x6c, 0x11, 0x9d, 0x63, 0xf9, 0x1c, 0x68, 0x2a, 0x4c, 0xb5, 0x16, 0x43,
|
||||
0x38, 0xd0, 0x53, 0xe8, 0xb8, 0xa2, 0x4f, 0xf3, 0x17, 0x06, 0xdc, 0xcc, 0x65, 0xaa, 0xf7, 0xef,
|
||||
0x23, 0xa8, 0x5d, 0x20, 0xa2, 0xab, 0xca, 0x30, 0xbd, 0xd2, 0x99, 0x11, 0x9a, 0x47, 0x3e, 0x00,
|
||||
0x08, 0x98, 0xb3, 0xf5, 0x1c, 0xea, 0xd9, 0x97, 0xfa, 0x9a, 0x7e, 0x37, 0xf5, 0x9a, 0xb1, 0x62,
|
||||
0xe3, 0x99, 0x7d, 0xc1, 0x36, 0xcc, 0x4a, 0xd1, 0xcd, 0x7f, 0x18, 0xd0, 0x7f, 0xb9, 0x94, 0x39,
|
||||
0x66, 0x15, 0x2f, 0x2a, 0x6b, 0xec, 0x52, 0x36, 0x59, 0x98, 0x52, 0x66, 0x61, 0xb2, 0x62, 0x96,
|
||||
0x73, 0x62, 0xca, 0x76, 0x19, 0xaf, 0xde, 0x05, 0x3d, 0x17, 0x2c, 0x58, 0x44, 0x22, 0xe9, 0x87,
|
||||
0x12, 0x9a, 0x9e, 0x48, 0x4b, 0xf4, 0x90, 0xfb, 0x16, 0x10, 0xe6, 0x39, 0x8b, 0x25, 0x3b, 0xe7,
|
||||
0x01, 0x8b, 0xe9, 0xea, 0x6a, 0xe9, 0x32, 0xcf, 0x39, 0x41, 0x43, 0xc4, 0x8e, 0xef, 0xf3, 0x5a,
|
||||
0xea, 0xed, 0x68, 0xfe, 0xca, 0x80, 0x41, 0x36, 0x53, 0xad, 0xf8, 0xe3, 0xc2, 0x83, 0x69, 0xbf,
|
||||
0xe6, 0x31, 0xf3, 0x7f, 0x52, 0x7d, 0xfa, 0xeb, 0x0a, 0xb4, 0x3e, 0xa1, 0xce, 0x3c, 0x9a, 0x85,
|
||||
0xcc, 0x01, 0x92, 0xbe, 0x9b, 0xdc, 0x4e, 0xcd, 0x5f, 0x68, 0xc7, 0x47, 0x77, 0xf6, 0x58, 0x75,
|
||||
0x3a, 0x33, 0xa8, 0x47, 0xdd, 0x10, 0x19, 0xa5, 0xa8, 0xb9, 0x7e, 0x6b, 0xf4, 0xee, 0x4e, 0x9b,
|
||||
0x76, 0x32, 0x07, 0x48, 0xfa, 0x9d, 0x4c, 0x3c, 0x85, 0x2e, 0x2a, 0x13, 0xcf, 0x8e, 0x26, 0x69,
|
||||
0x06, 0xf5, 0xa8, 0xf7, 0xc8, 0xc4, 0x93, 0xeb, 0x78, 0x32, 0xf1, 0x14, 0x9a, 0x95, 0x19, 0xd4,
|
||||
0xa3, 0x62, 0x9c, 0x71, 0x92, 0x6b, 0x08, 0x32, 0x4e, 0x0a, 0xd5, 0xfb, 0x23, 0x68, 0xc4, 0x75,
|
||||
0x98, 0xa4, 0x99, 0xf9, 0x8a, 0x3d, 0xba, 0xbd, 0xdb, 0xa8, 0xfd, 0x58, 0x70, 0x98, 0x79, 0xc3,
|
||||
0x90, 0xf1, 0xfe, 0xd7, 0x8d, 0xf2, 0x77, 0x7c, 0xd5, 0xf3, 0x67, 0xfa, 0x87, 0x12, 0x74, 0x5f,
|
||||
0xbe, 0x61, 0xc1, 0x9a, 0x5e, 0x7e, 0x29, 0xbb, 0xe2, 0xff, 0x95, 0xfb, 0x0c, 0xea, 0xd1, 0x2b,
|
||||
0x3f, 0xb3, 0x10, 0xb9, 0xff, 0x0d, 0x32, 0x0b, 0x51, 0xf8, 0x5b, 0xe0, 0x39, 0x34, 0x53, 0x0f,
|
||||
0x55, 0x92, 0x09, 0xbd, 0xf0, 0x4a, 0x1f, 0x1d, 0xed, 0x33, 0x6b, 0xe9, 0x7e, 0x6f, 0x40, 0x1f,
|
||||
0xff, 0x80, 0x39, 0x13, 0x3c, 0x60, 0x89, 0x7a, 0x27, 0x50, 0x55, 0xfe, 0xdf, 0xc9, 0x15, 0xcb,
|
||||
0x9d, 0x9e, 0x77, 0x54, 0x51, 0xf3, 0x06, 0x79, 0x06, 0x8d, 0xb8, 0xc5, 0xc8, 0xca, 0x96, 0xeb,
|
||||
0x46, 0xb2, 0xb2, 0xe5, 0xbb, 0x12, 0xf3, 0xc6, 0xf4, 0x97, 0x06, 0x0c, 0x52, 0x7f, 0xbe, 0x24,
|
||||
0x61, 0xfa, 0xf0, 0xce, 0x9e, 0xbf, 0x74, 0xc8, 0x7b, 0xe9, 0x93, 0xf5, 0x1f, 0xff, 0x2f, 0x1b,
|
||||
0xdd, 0xbf, 0x0e, 0x55, 0x0b, 0xf6, 0x47, 0x03, 0x3a, 0xea, 0x3e, 0x4b, 0xa2, 0xf8, 0x14, 0x5a,
|
||||
0xe9, 0xcb, 0x91, 0xa4, 0xa5, 0xd9, 0x51, 0x1f, 0x46, 0xe3, 0xbd, 0xf6, 0x58, 0xbb, 0x57, 0xf9,
|
||||
0x8a, 0x39, 0xde, 0x7b, 0xad, 0xee, 0x38, 0x26, 0x3b, 0xab, 0xa3, 0x79, 0xe3, 0xa4, 0xf2, 0x93,
|
||||
0x92, 0xbf, 0x5c, 0xd6, 0xb0, 0x95, 0xf8, 0xee, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x28,
|
||||
0x82, 0xe5, 0xcf, 0x14, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@ -1755,6 +1879,8 @@ type KadInspectorClient interface {
|
||||
FindNear(ctx context.Context, in *FindNearRequest, opts ...grpc.CallOption) (*FindNearResponse, error)
|
||||
// DumpNodes returns all the nodes in the node database
|
||||
DumpNodes(ctx context.Context, in *DumpNodesRequest, opts ...grpc.CallOption) (*DumpNodesResponse, error)
|
||||
// GetBucketList returns all the buckets with all their nodes
|
||||
GetBucketList(ctx context.Context, in *GetBucketListRequest, opts ...grpc.CallOption) (*GetBucketListResponse, error)
|
||||
}
|
||||
|
||||
type kadInspectorClient struct {
|
||||
@ -1819,6 +1945,15 @@ func (c *kadInspectorClient) DumpNodes(ctx context.Context, in *DumpNodesRequest
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *kadInspectorClient) GetBucketList(ctx context.Context, in *GetBucketListRequest, opts ...grpc.CallOption) (*GetBucketListResponse, error) {
|
||||
out := new(GetBucketListResponse)
|
||||
err := c.cc.Invoke(ctx, "/inspector.KadInspector/GetBucketList", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// KadInspectorServer is the server API for KadInspector service.
|
||||
type KadInspectorServer interface {
|
||||
// CountNodes returns the number of nodes in the routing table
|
||||
@ -1833,6 +1968,8 @@ type KadInspectorServer interface {
|
||||
FindNear(context.Context, *FindNearRequest) (*FindNearResponse, error)
|
||||
// DumpNodes returns all the nodes in the node database
|
||||
DumpNodes(context.Context, *DumpNodesRequest) (*DumpNodesResponse, error)
|
||||
// GetBucketList returns all the buckets with all their nodes
|
||||
GetBucketList(context.Context, *GetBucketListRequest) (*GetBucketListResponse, error)
|
||||
}
|
||||
|
||||
func RegisterKadInspectorServer(s *grpc.Server, srv KadInspectorServer) {
|
||||
@ -1947,6 +2084,24 @@ func _KadInspector_DumpNodes_Handler(srv interface{}, ctx context.Context, dec f
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _KadInspector_GetBucketList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(GetBucketListRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(KadInspectorServer).GetBucketList(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/inspector.KadInspector/GetBucketList",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(KadInspectorServer).GetBucketList(ctx, req.(*GetBucketListRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
var _KadInspector_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "inspector.KadInspector",
|
||||
HandlerType: (*KadInspectorServer)(nil),
|
||||
@ -1975,6 +2130,10 @@ var _KadInspector_serviceDesc = grpc.ServiceDesc{
|
||||
MethodName: "DumpNodes",
|
||||
Handler: _KadInspector_DumpNodes_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetBucketList",
|
||||
Handler: _KadInspector_GetBucketList_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "inspector.proto",
|
||||
|
@ -25,6 +25,8 @@ service KadInspector {
|
||||
rpc FindNear(FindNearRequest) returns (FindNearResponse);
|
||||
// DumpNodes returns all the nodes in the node database
|
||||
rpc DumpNodes(DumpNodesRequest) returns (DumpNodesResponse);
|
||||
// GetBucketList returns all the buckets with all their nodes
|
||||
rpc GetBucketList(GetBucketListRequest) returns (GetBucketListResponse);
|
||||
}
|
||||
|
||||
service OverlayInspector {
|
||||
@ -108,6 +110,18 @@ message CountNodesResponse {
|
||||
message CountNodesRequest {
|
||||
}
|
||||
|
||||
message GetBucketListRequest {
|
||||
}
|
||||
|
||||
message GetBucketListResponse {
|
||||
message Bucket {
|
||||
bytes bucket_id = 1 [(gogoproto.customtype) = "NodeID", (gogoproto.nullable) = false];
|
||||
repeated node.Node routing_nodes = 2;
|
||||
repeated node.Node cached_nodes = 3;
|
||||
}
|
||||
repeated Bucket buckets = 1;
|
||||
}
|
||||
|
||||
// GetBuckets
|
||||
message GetBucketsRequest {
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ func (x Restriction_Operator) String() string {
|
||||
}
|
||||
|
||||
func (Restriction_Operator) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{6, 0}
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{8, 0}
|
||||
}
|
||||
|
||||
type Restriction_Operand int32
|
||||
@ -79,7 +79,7 @@ func (x Restriction_Operand) String() string {
|
||||
}
|
||||
|
||||
func (Restriction_Operand) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{6, 1}
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{8, 1}
|
||||
}
|
||||
|
||||
type QueryRequest struct {
|
||||
@ -343,6 +343,74 @@ func (m *InfoResponse) GetVersion() *NodeVersion {
|
||||
return nil
|
||||
}
|
||||
|
||||
type GraphRequest struct {
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GraphRequest) Reset() { *m = GraphRequest{} }
|
||||
func (m *GraphRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GraphRequest) ProtoMessage() {}
|
||||
func (*GraphRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{6}
|
||||
}
|
||||
func (m *GraphRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GraphRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GraphRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GraphRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GraphRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GraphRequest.Merge(m, src)
|
||||
}
|
||||
func (m *GraphRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_GraphRequest.Size(m)
|
||||
}
|
||||
func (m *GraphRequest) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GraphRequest.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GraphRequest proto.InternalMessageInfo
|
||||
|
||||
type GraphResponse struct {
|
||||
Graph [][]byte `protobuf:"bytes,1,rep,name=graph,proto3" json:"graph,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *GraphResponse) Reset() { *m = GraphResponse{} }
|
||||
func (m *GraphResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*GraphResponse) ProtoMessage() {}
|
||||
func (*GraphResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{7}
|
||||
}
|
||||
func (m *GraphResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GraphResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GraphResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GraphResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *GraphResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GraphResponse.Merge(m, src)
|
||||
}
|
||||
func (m *GraphResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_GraphResponse.Size(m)
|
||||
}
|
||||
func (m *GraphResponse) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_GraphResponse.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_GraphResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *GraphResponse) GetGraph() [][]byte {
|
||||
if m != nil {
|
||||
return m.Graph
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type Restriction struct {
|
||||
Operator Restriction_Operator `protobuf:"varint,1,opt,name=operator,proto3,enum=overlay.Restriction_Operator" json:"operator,omitempty"`
|
||||
Operand Restriction_Operand `protobuf:"varint,2,opt,name=operand,proto3,enum=overlay.Restriction_Operand" json:"operand,omitempty"`
|
||||
@ -356,7 +424,7 @@ func (m *Restriction) Reset() { *m = Restriction{} }
|
||||
func (m *Restriction) String() string { return proto.CompactTextString(m) }
|
||||
func (*Restriction) ProtoMessage() {}
|
||||
func (*Restriction) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{6}
|
||||
return fileDescriptor_61fc82527fbe24ad, []int{8}
|
||||
}
|
||||
func (m *Restriction) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Restriction.Unmarshal(m, b)
|
||||
@ -406,44 +474,48 @@ func init() {
|
||||
proto.RegisterType((*PingResponse)(nil), "overlay.PingResponse")
|
||||
proto.RegisterType((*InfoRequest)(nil), "overlay.InfoRequest")
|
||||
proto.RegisterType((*InfoResponse)(nil), "overlay.InfoResponse")
|
||||
proto.RegisterType((*GraphRequest)(nil), "overlay.GraphRequest")
|
||||
proto.RegisterType((*GraphResponse)(nil), "overlay.GraphResponse")
|
||||
proto.RegisterType((*Restriction)(nil), "overlay.Restriction")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("overlay.proto", fileDescriptor_61fc82527fbe24ad) }
|
||||
|
||||
var fileDescriptor_61fc82527fbe24ad = []byte{
|
||||
// 491 bytes of a gzipped FileDescriptorProto
|
||||
// 514 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40,
|
||||
0x14, 0xc6, 0x77, 0xda, 0x74, 0x13, 0x4f, 0xff, 0x10, 0x87, 0x5d, 0x09, 0x41, 0xa1, 0xe4, 0x42,
|
||||
0x0a, 0x4a, 0x2e, 0xba, 0xb2, 0xa0, 0x77, 0xae, 0x8d, 0x6b, 0x71, 0x59, 0xdd, 0x31, 0x28, 0xe8,
|
||||
0x85, 0xa4, 0xcd, 0x18, 0x82, 0x75, 0x26, 0x4e, 0xa6, 0x85, 0xbc, 0x81, 0x8f, 0xe3, 0x1b, 0xf8,
|
||||
0x5e, 0x5e, 0xc9, 0x4c, 0x26, 0x69, 0xac, 0x0a, 0x5e, 0xcd, 0x9c, 0xf3, 0xfd, 0x4e, 0xe7, 0x9c,
|
||||
0xd3, 0x2f, 0x30, 0xe6, 0x3b, 0x2a, 0x36, 0x49, 0x15, 0x16, 0x82, 0x4b, 0x8e, 0x6d, 0x13, 0xfa,
|
||||
0x90, 0xf1, 0x8c, 0xd7, 0x49, 0x1f, 0x18, 0x4f, 0x69, 0x7d, 0x0f, 0xbe, 0x21, 0x18, 0xdd, 0x6c,
|
||||
0xa9, 0xa8, 0x08, 0xfd, 0xba, 0xa5, 0xa5, 0xc4, 0x01, 0x1c, 0x97, 0x94, 0xa5, 0x54, 0x78, 0x68,
|
||||
0x8a, 0x66, 0xc3, 0x39, 0x84, 0x9a, 0xbe, 0xe6, 0x29, 0x25, 0x46, 0x51, 0x8c, 0x4c, 0x44, 0x46,
|
||||
0xa5, 0xd7, 0xfb, 0x93, 0xa9, 0x15, 0x7c, 0x02, 0x83, 0x4d, 0xfe, 0x25, 0x97, 0x5e, 0x7f, 0x8a,
|
||||
0x66, 0x7d, 0x52, 0x07, 0xd8, 0x07, 0xa7, 0xc8, 0x59, 0xb6, 0x4a, 0xd6, 0x9f, 0x3d, 0x6b, 0x8a,
|
||||
0x66, 0x0e, 0x69, 0xe3, 0xe0, 0x03, 0x8c, 0x4d, 0x27, 0x65, 0xc1, 0x59, 0x49, 0xff, 0xab, 0x95,
|
||||
0xfb, 0xe0, 0x08, 0xc3, 0x7b, 0xbd, 0x69, 0xff, 0x80, 0x6a, 0xb5, 0x60, 0x0c, 0xc3, 0xd7, 0x39,
|
||||
0xcb, 0xcc, 0x94, 0xc1, 0x04, 0x46, 0x75, 0xb8, 0x97, 0x97, 0xec, 0x13, 0x6f, 0xe4, 0x1f, 0x08,
|
||||
0x46, 0x75, 0xdc, 0xb6, 0x62, 0xc9, 0xaa, 0xa0, 0x7a, 0xde, 0xc9, 0x7c, 0xb2, 0x7f, 0x22, 0xae,
|
||||
0x0a, 0x4a, 0xb4, 0x86, 0x43, 0x70, 0x78, 0x41, 0x45, 0x22, 0xb9, 0xd0, 0x43, 0x0f, 0xe7, 0x78,
|
||||
0xcf, 0xbd, 0x32, 0x0a, 0x69, 0x19, 0xc5, 0xaf, 0x93, 0x22, 0x59, 0xe7, 0xb2, 0xd2, 0xbb, 0xf8,
|
||||
0x8d, 0x7f, 0x66, 0x14, 0xd2, 0x32, 0xf8, 0x01, 0xd8, 0x3b, 0x2a, 0xca, 0x9c, 0x33, 0x6f, 0xa0,
|
||||
0xf1, 0xdb, 0x7b, 0xfc, 0x6d, 0x2d, 0x90, 0x86, 0x08, 0x7e, 0x22, 0x18, 0x12, 0x5a, 0x4a, 0x91,
|
||||
0xaf, 0x65, 0xce, 0x19, 0x7e, 0xdc, 0x69, 0x0e, 0xe9, 0x21, 0xee, 0x85, 0x8d, 0x55, 0x3a, 0x5c,
|
||||
0xf8, 0x97, 0x3e, 0xcf, 0xc1, 0xd6, 0x77, 0x96, 0x9a, 0xf1, 0xef, 0xfe, 0xbb, 0x92, 0xa5, 0xa4,
|
||||
0x81, 0x95, 0x03, 0x76, 0xc9, 0x66, 0x4b, 0x1b, 0x07, 0xe8, 0x20, 0x78, 0x04, 0x4e, 0xf3, 0x06,
|
||||
0x3e, 0x86, 0xde, 0x55, 0xec, 0x1e, 0xa9, 0x33, 0xba, 0x71, 0x91, 0x3a, 0x2f, 0x63, 0xb7, 0x87,
|
||||
0x6d, 0xe8, 0x5f, 0xc5, 0x91, 0xdb, 0x57, 0x97, 0xcb, 0x38, 0x72, 0xad, 0xe0, 0x21, 0xd8, 0xe6,
|
||||
0xf7, 0x31, 0x86, 0xc9, 0x73, 0x12, 0x45, 0x1f, 0x2f, 0x9e, 0x5e, 0x2f, 0xde, 0x2d, 0x17, 0xf1,
|
||||
0x0b, 0xf7, 0x08, 0x8f, 0xe1, 0x96, 0xce, 0x2d, 0x96, 0x6f, 0x5e, 0xba, 0x68, 0xfe, 0x1d, 0xc1,
|
||||
0x40, 0x6d, 0xa5, 0xc4, 0xe7, 0x30, 0xd0, 0x9e, 0xc2, 0xa7, 0x6d, 0xcf, 0x5d, 0xb7, 0xfb, 0x77,
|
||||
0x0e, 0xd3, 0xe6, 0xff, 0x3e, 0x03, 0x4b, 0xf9, 0x03, 0x9f, 0xb4, 0x7a, 0xc7, 0x3d, 0xfe, 0xe9,
|
||||
0x41, 0xd6, 0x14, 0x3d, 0x51, 0x2b, 0xd7, 0x84, 0xf2, 0x4e, 0xa7, 0xb6, 0x63, 0xad, 0x4e, 0x6d,
|
||||
0xd7, 0x60, 0x17, 0xd6, 0xfb, 0x5e, 0xb1, 0x5a, 0x1d, 0xeb, 0x8f, 0xf2, 0xec, 0x57, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x6b, 0xb9, 0x2c, 0xac, 0xc6, 0x03, 0x00, 0x00,
|
||||
0x14, 0xc6, 0x77, 0x9a, 0xfe, 0xf3, 0xf4, 0x0f, 0x71, 0xe8, 0x4a, 0x28, 0x0a, 0x21, 0xa0, 0x14,
|
||||
0x94, 0x5c, 0x74, 0x65, 0x41, 0xef, 0x5c, 0x1b, 0x6b, 0x71, 0x59, 0xdd, 0x31, 0x28, 0xe8, 0x85,
|
||||
0xa4, 0xcd, 0x18, 0x83, 0x75, 0x26, 0x4e, 0xa6, 0x85, 0xbc, 0x81, 0x8f, 0xe3, 0x1b, 0xf8, 0x5e,
|
||||
0x5e, 0xc9, 0x4c, 0x26, 0x69, 0xac, 0x0a, 0x5e, 0x65, 0xce, 0xf9, 0x7e, 0x93, 0x9c, 0xef, 0xf0,
|
||||
0x05, 0x46, 0x7c, 0x4f, 0xc5, 0x36, 0x2a, 0xfc, 0x4c, 0x70, 0xc9, 0x71, 0xcf, 0x94, 0x53, 0x48,
|
||||
0x78, 0xc2, 0xcb, 0xe6, 0x14, 0x18, 0x8f, 0x69, 0x79, 0xf6, 0xbe, 0x21, 0x18, 0x5e, 0xef, 0xa8,
|
||||
0x28, 0x08, 0xfd, 0xba, 0xa3, 0xb9, 0xc4, 0x1e, 0x74, 0x73, 0xca, 0x62, 0x2a, 0x1c, 0xe4, 0xa2,
|
||||
0xd9, 0x60, 0x0e, 0xbe, 0xa6, 0xaf, 0x78, 0x4c, 0x89, 0x51, 0x14, 0x23, 0x23, 0x91, 0x50, 0xe9,
|
||||
0xb4, 0xfe, 0x64, 0x4a, 0x05, 0x4f, 0xa0, 0xb3, 0x4d, 0xbf, 0xa4, 0xd2, 0xb1, 0x5c, 0x34, 0xb3,
|
||||
0x48, 0x59, 0xe0, 0x29, 0xf4, 0xb3, 0x94, 0x25, 0xeb, 0x68, 0xf3, 0xd9, 0x69, 0xbb, 0x68, 0xd6,
|
||||
0x27, 0x75, 0xed, 0xbd, 0x87, 0x91, 0x99, 0x24, 0xcf, 0x38, 0xcb, 0xe9, 0x7f, 0x8d, 0x72, 0x0f,
|
||||
0xfa, 0xc2, 0xf0, 0x4e, 0xcb, 0xb5, 0x8e, 0xa8, 0x5a, 0xf3, 0x46, 0x30, 0x78, 0x95, 0xb2, 0xc4,
|
||||
0xb8, 0xf4, 0xc6, 0x30, 0x2c, 0xcb, 0x83, 0xbc, 0x62, 0x1f, 0x79, 0x25, 0xff, 0x40, 0x30, 0x2c,
|
||||
0xeb, 0x7a, 0x94, 0xb6, 0x2c, 0x32, 0xaa, 0xfd, 0x8e, 0xe7, 0xe3, 0xc3, 0x27, 0xc2, 0x22, 0xa3,
|
||||
0x44, 0x6b, 0xd8, 0x87, 0x3e, 0xcf, 0xa8, 0x88, 0x24, 0x17, 0xda, 0xf4, 0x60, 0x8e, 0x0f, 0xdc,
|
||||
0x4b, 0xa3, 0x90, 0x9a, 0x51, 0xfc, 0x26, 0xca, 0xa2, 0x4d, 0x2a, 0x0b, 0xbd, 0x8b, 0xdf, 0xf8,
|
||||
0xa7, 0x46, 0x21, 0x35, 0x83, 0xef, 0x43, 0x6f, 0x4f, 0x45, 0x9e, 0x72, 0xe6, 0x74, 0x34, 0x7e,
|
||||
0xf3, 0x80, 0xbf, 0x29, 0x05, 0x52, 0x11, 0xca, 0xe0, 0x52, 0x44, 0xd9, 0xa7, 0xca, 0xd1, 0x5d,
|
||||
0x18, 0x99, 0xda, 0x38, 0x9a, 0x40, 0x27, 0x51, 0x0d, 0x07, 0xb9, 0xd6, 0x6c, 0x48, 0xca, 0xc2,
|
||||
0xfb, 0x89, 0x60, 0x40, 0x68, 0x2e, 0x45, 0xba, 0x91, 0x29, 0x67, 0xf8, 0x51, 0xc3, 0x13, 0xd2,
|
||||
0xde, 0xef, 0xf8, 0x55, 0xc2, 0x1a, 0x9c, 0xff, 0x17, 0x7b, 0xe7, 0xd0, 0xd3, 0x67, 0x16, 0x9b,
|
||||
0xad, 0xdd, 0xfe, 0xf7, 0x4d, 0x16, 0x93, 0x0a, 0x56, 0x83, 0xed, 0xa3, 0xed, 0x8e, 0x56, 0xc1,
|
||||
0xd1, 0x85, 0xf7, 0x10, 0xfa, 0xd5, 0x37, 0x70, 0x17, 0x5a, 0x97, 0xa1, 0x7d, 0xa2, 0x9e, 0xc1,
|
||||
0xb5, 0x8d, 0xd4, 0x73, 0x19, 0xda, 0x2d, 0xdc, 0x03, 0xeb, 0x32, 0x0c, 0x6c, 0x4b, 0x1d, 0x96,
|
||||
0x61, 0x60, 0xb7, 0xbd, 0x07, 0xd0, 0x33, 0xef, 0xc7, 0x18, 0xc6, 0xcf, 0x48, 0x10, 0x7c, 0xb8,
|
||||
0x78, 0x72, 0xb5, 0x78, 0xbb, 0x5a, 0x84, 0xcf, 0xed, 0x13, 0x3c, 0x82, 0x1b, 0xba, 0xb7, 0x58,
|
||||
0xbd, 0x7e, 0x61, 0xa3, 0xf9, 0x77, 0x04, 0x1d, 0xb5, 0xcc, 0x1c, 0x9f, 0x43, 0x47, 0x47, 0x11,
|
||||
0x9f, 0xd6, 0x33, 0x37, 0x7f, 0x92, 0xe9, 0xad, 0xe3, 0xb6, 0x59, 0xea, 0x19, 0xb4, 0x55, 0xac,
|
||||
0xf0, 0xa4, 0xd6, 0x1b, 0xa1, 0x9b, 0x9e, 0x1e, 0x75, 0xcd, 0xa5, 0xc7, 0x6a, 0xe5, 0x9a, 0x50,
|
||||
0x91, 0x6b, 0xdc, 0x6d, 0x24, 0xb2, 0x71, 0xb7, 0x99, 0xcb, 0x8b, 0xf6, 0xbb, 0x56, 0xb6, 0x5e,
|
||||
0x77, 0xf5, 0xbf, 0x7c, 0xf6, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xea, 0x68, 0x2a, 0x74, 0xfd, 0x03,
|
||||
0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
Loading…
Reference in New Issue
Block a user