saas-smartAi通信协议标准库
gongshangguo
2022-04-12 acf384f3d6653f4696446b113177140f491c4e38
aiotProto/aiot/aiot_business.pb.go
@@ -238,18 +238,20 @@
// 集群请求参数
type ClusterReq struct {
   // 请求的topic url
   Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
   // 集群ID
   ClusterId string `protobuf:"bytes,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"`
   ClusterId string `protobuf:"bytes,2,opt,name=clusterId,proto3" json:"clusterId,omitempty"`
   // token
   Authorization string `protobuf:"bytes,2,opt,name=authorization,proto3" json:"authorization,omitempty"`
   Authorization string `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"`
   // 请求的同步/异步类型
   SyncType RequestType `protobuf:"varint,3,opt,name=syncType,proto3,enum=aiot.RequestType" json:"syncType,omitempty"`
   SyncType RequestType `protobuf:"varint,4,opt,name=syncType,proto3,enum=aiot.RequestType" json:"syncType,omitempty"`
   // method
   Method RequestMethod `protobuf:"varint,4,opt,name=method,proto3,enum=aiot.RequestMethod" json:"method,omitempty"`
   Method RequestMethod `protobuf:"varint,5,opt,name=method,proto3,enum=aiot.RequestMethod" json:"method,omitempty"`
   // content-type
   ContentType RequestContentType `protobuf:"varint,5,opt,name=contentType,proto3,enum=aiot.RequestContentType" json:"contentType,omitempty"`
   ContentType RequestContentType `protobuf:"varint,6,opt,name=contentType,proto3,enum=aiot.RequestContentType" json:"contentType,omitempty"`
   // 请求业务参数
   Req                  []byte   `protobuf:"bytes,6,opt,name=req,proto3" json:"req,omitempty"`
   Req                  []byte   `protobuf:"bytes,7,opt,name=req,proto3" json:"req,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -279,6 +281,13 @@
}
var xxx_messageInfo_ClusterReq proto.InternalMessageInfo
func (m *ClusterReq) GetTopic() string {
   if m != nil {
      return m.Topic
   }
   return ""
}
func (m *ClusterReq) GetClusterId() string {
   if m != nil {
@@ -324,18 +333,20 @@
// 设备列表请求参数
type NodesReq struct {
   // 请求的topic url
   Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
   // 设备列表ID
   NodeIds []string `protobuf:"bytes,1,rep,name=nodeIds,proto3" json:"nodeIds,omitempty"`
   NodeIds []string `protobuf:"bytes,2,rep,name=nodeIds,proto3" json:"nodeIds,omitempty"`
   // token
   Authorization string `protobuf:"bytes,2,opt,name=authorization,proto3" json:"authorization,omitempty"`
   Authorization string `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"`
   // 请求的同步/异步类型
   SyncType RequestType `protobuf:"varint,3,opt,name=syncType,proto3,enum=aiot.RequestType" json:"syncType,omitempty"`
   SyncType RequestType `protobuf:"varint,4,opt,name=syncType,proto3,enum=aiot.RequestType" json:"syncType,omitempty"`
   // method
   Method RequestMethod `protobuf:"varint,4,opt,name=method,proto3,enum=aiot.RequestMethod" json:"method,omitempty"`
   Method RequestMethod `protobuf:"varint,5,opt,name=method,proto3,enum=aiot.RequestMethod" json:"method,omitempty"`
   // content-type
   ContentType RequestContentType `protobuf:"varint,5,opt,name=contentType,proto3,enum=aiot.RequestContentType" json:"contentType,omitempty"`
   ContentType RequestContentType `protobuf:"varint,6,opt,name=contentType,proto3,enum=aiot.RequestContentType" json:"contentType,omitempty"`
   // 请求业务参数
   Req                  []byte   `protobuf:"bytes,6,opt,name=req,proto3" json:"req,omitempty"`
   Req                  []byte   `protobuf:"bytes,7,opt,name=req,proto3" json:"req,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
@@ -365,6 +376,13 @@
}
var xxx_messageInfo_NodesReq proto.InternalMessageInfo
func (m *NodesReq) GetTopic() string {
   if m != nil {
      return m.Topic
   }
   return ""
}
func (m *NodesReq) GetNodeIds() []string {
   if m != nil {
@@ -408,6 +426,83 @@
   return nil
}
// 请求到saas
type SaasReq struct {
   // 请求的topic url
   RpcAddr string `protobuf:"bytes,1,opt,name=rpcAddr,proto3" json:"rpcAddr,omitempty"`
   // rpc模块名
   RpcNode string `protobuf:"bytes,2,opt,name=rpcNode,proto3" json:"rpcNode,omitempty"`
   // token
   Authorization string `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"`
   // 请求的同步/异步类型
   SyncType RequestType `protobuf:"varint,4,opt,name=syncType,proto3,enum=aiot.RequestType" json:"syncType,omitempty"`
   // 请求业务参数
   Req                  []byte   `protobuf:"bytes,5,opt,name=req,proto3" json:"req,omitempty"`
   XXX_NoUnkeyedLiteral struct{} `json:"-"`
   XXX_unrecognized     []byte   `json:"-"`
   XXX_sizecache        int32    `json:"-"`
}
func (m *SaasReq) Reset()         { *m = SaasReq{} }
func (m *SaasReq) String() string { return proto.CompactTextString(m) }
func (*SaasReq) ProtoMessage()    {}
func (*SaasReq) Descriptor() ([]byte, []int) {
   return fileDescriptor_29eca6d4b33e7fd8, []int{3}
}
func (m *SaasReq) XXX_Unmarshal(b []byte) error {
   return xxx_messageInfo_SaasReq.Unmarshal(m, b)
}
func (m *SaasReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   return xxx_messageInfo_SaasReq.Marshal(b, m, deterministic)
}
func (m *SaasReq) XXX_Merge(src proto.Message) {
   xxx_messageInfo_SaasReq.Merge(m, src)
}
func (m *SaasReq) XXX_Size() int {
   return xxx_messageInfo_SaasReq.Size(m)
}
func (m *SaasReq) XXX_DiscardUnknown() {
   xxx_messageInfo_SaasReq.DiscardUnknown(m)
}
var xxx_messageInfo_SaasReq proto.InternalMessageInfo
func (m *SaasReq) GetRpcAddr() string {
   if m != nil {
      return m.RpcAddr
   }
   return ""
}
func (m *SaasReq) GetRpcNode() string {
   if m != nil {
      return m.RpcNode
   }
   return ""
}
func (m *SaasReq) GetAuthorization() string {
   if m != nil {
      return m.Authorization
   }
   return ""
}
func (m *SaasReq) GetSyncType() RequestType {
   if m != nil {
      return m.SyncType
   }
   return RequestType_sync
}
func (m *SaasReq) GetReq() []byte {
   if m != nil {
      return m.Req
   }
   return nil
}
// 响应的body体
type BusinessReply struct {
   // 返回的错误码
@@ -427,7 +522,7 @@
func (m *BusinessReply) String() string { return proto.CompactTextString(m) }
func (*BusinessReply) ProtoMessage()    {}
func (*BusinessReply) Descriptor() ([]byte, []int) {
   return fileDescriptor_29eca6d4b33e7fd8, []int{3}
   return fileDescriptor_29eca6d4b33e7fd8, []int{4}
}
func (m *BusinessReply) XXX_Unmarshal(b []byte) error {
@@ -483,6 +578,7 @@
   proto.RegisterType((*NodeReq)(nil), "aiot.NodeReq")
   proto.RegisterType((*ClusterReq)(nil), "aiot.ClusterReq")
   proto.RegisterType((*NodesReq)(nil), "aiot.NodesReq")
   proto.RegisterType((*SaasReq)(nil), "aiot.SaasReq")
   proto.RegisterType((*BusinessReply)(nil), "aiot.BusinessReply")
}
@@ -491,43 +587,45 @@
}
var fileDescriptor_29eca6d4b33e7fd8 = []byte{
   // 594 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x54, 0xcd, 0x6e, 0xd4, 0x30,
   0x10, 0xae, 0x93, 0xec, 0xdf, 0x6c, 0xb3, 0x78, 0xa7, 0x50, 0x59, 0x15, 0x48, 0xcb, 0x8a, 0xc3,
   0xaa, 0x88, 0x1e, 0x0a, 0x07, 0xc4, 0xad, 0xb4, 0x02, 0xb5, 0x52, 0x51, 0xe5, 0x16, 0xc1, 0x0d,
   0xa5, 0x8e, 0xa1, 0x91, 0x92, 0x38, 0x8d, 0x1d, 0xaa, 0xe5, 0x25, 0x78, 0x10, 0x1e, 0x8c, 0x17,
   0xe0, 0xc4, 0x09, 0xd9, 0xc9, 0xb2, 0x59, 0x95, 0x0a, 0x95, 0x23, 0xb7, 0x99, 0xf9, 0xe6, 0xb3,
   0xfd, 0xcd, 0x8f, 0x61, 0x23, 0x4a, 0x94, 0xf9, 0x70, 0x5e, 0xe9, 0x24, 0x97, 0x5a, 0xef, 0x14,
   0xa5, 0x32, 0x0a, 0x03, 0x1b, 0xdc, 0x1a, 0x3b, 0x48, 0xa8, 0x2c, 0x53, 0x79, 0x0d, 0x4c, 0xbf,
   0x79, 0xd0, 0x7b, 0xa3, 0x62, 0xc9, 0xe5, 0x25, 0xde, 0x85, 0x8e, 0x51, 0x45, 0x22, 0x18, 0x99,
   0x90, 0xd9, 0x80, 0xd7, 0x0e, 0x6e, 0x42, 0x37, 0x57, 0xb1, 0x3c, 0x8c, 0x99, 0xe7, 0xc2, 0x8d,
   0x87, 0x8f, 0x20, 0x8c, 0x2a, 0x73, 0xa1, 0xca, 0xe4, 0x4b, 0x64, 0x12, 0x95, 0x33, 0xdf, 0xc1,
   0xab, 0x41, 0x1c, 0x81, 0x97, 0x14, 0x2c, 0x70, 0x90, 0x97, 0x14, 0x88, 0x10, 0x14, 0xaa, 0x34,
   0xac, 0xe3, 0x22, 0xce, 0xc6, 0x27, 0xd0, 0xd7, 0xf3, 0x5c, 0x9c, 0xcd, 0x0b, 0xc9, 0xba, 0x13,
   0x32, 0x1b, 0xed, 0x8e, 0x77, 0xec, 0x4b, 0x77, 0xb8, 0xbc, 0xac, 0xa4, 0x36, 0x16, 0xe0, 0xbf,
   0x53, 0xf0, 0x31, 0x74, 0x33, 0x69, 0x2e, 0x54, 0xcc, 0x7a, 0x2e, 0x79, 0x63, 0x25, 0xf9, 0xd8,
   0x41, 0xbc, 0x49, 0xc1, 0x17, 0x30, 0x14, 0x2a, 0x37, 0x32, 0x77, 0xa7, 0xb0, 0xbe, 0x63, 0xb0,
   0x15, 0xc6, 0xfe, 0x12, 0xe7, 0xed, 0x64, 0xa4, 0xe0, 0x97, 0xf2, 0x92, 0x0d, 0x26, 0x64, 0xb6,
   0xce, 0xad, 0x39, 0xfd, 0x49, 0x00, 0xf6, 0xd3, 0x4a, 0x1b, 0x59, 0xda, 0x82, 0xdd, 0x87, 0x81,
   0xa8, 0xbd, 0xc3, 0xb8, 0x29, 0xda, 0x32, 0x70, 0xbd, 0x40, 0xde, 0x9f, 0x0a, 0xd4, 0x16, 0xef,
   0xdf, 0x46, 0x7c, 0x70, 0x6b, 0xf1, 0x9d, 0x7f, 0x10, 0xdf, 0x5d, 0x8a, 0xff, 0x41, 0xa0, 0x6f,
   0x47, 0x45, 0x5b, 0xe9, 0x0c, 0x7a, 0xf5, 0x1c, 0x68, 0x46, 0x26, 0xfe, 0x6c, 0xc0, 0x17, 0xee,
   0x7f, 0x27, 0x5b, 0x40, 0xf8, 0xb2, 0x59, 0x26, 0x2e, 0x8b, 0x74, 0x6e, 0x47, 0x58, 0xa8, 0x58,
   0xba, 0x86, 0x77, 0xb8, 0xb3, 0x2d, 0x2d, 0xd3, 0x9f, 0x1a, 0xa9, 0xd6, 0xb4, 0x05, 0xd2, 0x95,
   0x10, 0x52, 0x6b, 0xa7, 0xaf, 0xcf, 0x17, 0xae, 0xe5, 0xc7, 0x91, 0x89, 0x9c, 0x92, 0x75, 0xee,
   0xec, 0xed, 0x29, 0x0c, 0x5b, 0xc2, 0xb1, 0x0f, 0x81, 0x95, 0x4e, 0xd7, 0x70, 0x00, 0x9d, 0x3d,
   0x67, 0x92, 0xed, 0x23, 0x08, 0x57, 0xf4, 0xe2, 0x18, 0xc2, 0xda, 0x3a, 0x90, 0x1f, 0xa3, 0x2a,
   0x35, 0x74, 0xcd, 0x12, 0x4f, 0x94, 0x36, 0x94, 0x60, 0x0f, 0xfc, 0xd7, 0xd2, 0x50, 0xcf, 0x1a,
   0x27, 0x95, 0xa1, 0x3e, 0x02, 0x74, 0x0f, 0x64, 0x2a, 0x8d, 0xa4, 0xc1, 0xf6, 0x57, 0x02, 0x78,
   0xbd, 0x14, 0xb8, 0x09, 0xd8, 0x72, 0x97, 0xc7, 0x6e, 0xc0, 0x9d, 0xbd, 0xa2, 0x48, 0x13, 0xe1,
   0x9a, 0x77, 0xa4, 0x55, 0x4e, 0x09, 0x3e, 0x84, 0x07, 0xad, 0xe0, 0xfb, 0x77, 0x57, 0x57, 0xaf,
   0x54, 0x99, 0xbd, 0x2d, 0x53, 0x99, 0xdb, 0x9a, 0xc4, 0xd4, 0xc3, 0x7b, 0x30, 0x3e, 0xae, 0x52,
   0x93, 0x14, 0x51, 0x69, 0x2c, 0x78, 0x10, 0x99, 0x88, 0xfa, 0x88, 0x30, 0x6a, 0x33, 0xb3, 0x94,
   0x06, 0xbb, 0xdf, 0x09, 0x0c, 0xf7, 0x12, 0x65, 0x4e, 0x65, 0xf9, 0x39, 0x11, 0x12, 0x77, 0x01,
   0x4e, 0x65, 0x1e, 0x9f, 0x29, 0x3b, 0x72, 0x18, 0xd6, 0xdd, 0x6b, 0x7e, 0xaa, 0xad, 0xa6, 0xfd,
   0x2b, 0x7d, 0x99, 0xae, 0xe1, 0x33, 0x18, 0x5a, 0x8e, 0x3d, 0xc6, 0xce, 0xe8, 0xa8, 0xce, 0x3a,
   0xb1, 0x1f, 0x9d, 0x50, 0xe9, 0x4d, 0xac, 0xe7, 0x10, 0xd6, 0x37, 0x35, 0x9b, 0x8d, 0xb4, 0xce,
   0x5b, 0x2e, 0xfa, 0x5f, 0xee, 0xab, 0xdf, 0xa8, 0x17, 0xf7, 0x2d, 0x76, 0xe4, 0x06, 0xd6, 0x79,
   0xd7, 0xfd, 0xbc, 0x4f, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x5a, 0x92, 0x1f, 0x84, 0xa9, 0x05,
   0x00, 0x00,
   // 631 bytes of a gzipped FileDescriptorProto
   0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x55, 0xc1, 0x6e, 0xd3, 0x4c,
   0x10, 0xae, 0x1d, 0x27, 0x4e, 0x26, 0x4d, 0xba, 0x99, 0xfe, 0x7f, 0xb5, 0xaa, 0x40, 0x0a, 0x11,
   0x87, 0xa8, 0x88, 0x1e, 0x0a, 0x07, 0xc4, 0x2d, 0xb4, 0x02, 0x51, 0xa9, 0xa8, 0xda, 0x16, 0xc1,
   0x0d, 0xb9, 0xeb, 0x85, 0x5a, 0xb2, 0xbd, 0xae, 0x77, 0x4d, 0x15, 0x1e, 0x81, 0x0b, 0x3c, 0x04,
   0x37, 0x1e, 0x8d, 0x97, 0x40, 0xbb, 0xb6, 0x6b, 0x47, 0x28, 0x12, 0x45, 0xe2, 0xc2, 0x6d, 0x66,
   0xbe, 0xf9, 0x36, 0x9f, 0xbe, 0x19, 0x4f, 0x60, 0x3b, 0x88, 0xa4, 0x7e, 0x77, 0x51, 0xa8, 0x28,
   0x15, 0x4a, 0xed, 0x67, 0xb9, 0xd4, 0x12, 0x3d, 0x53, 0xdc, 0x9d, 0x58, 0x88, 0xcb, 0x24, 0x91,
   0x69, 0x09, 0xcc, 0xbe, 0xbb, 0xe0, 0xbf, 0x92, 0xa1, 0x60, 0xe2, 0x0a, 0xff, 0x83, 0xae, 0x96,
   0x59, 0xc4, 0xa9, 0x33, 0x75, 0xe6, 0x03, 0x56, 0x26, 0xb8, 0x03, 0xbd, 0x54, 0x86, 0xe2, 0x65,
   0x48, 0x5d, 0x5b, 0xae, 0x32, 0xbc, 0x0f, 0xa3, 0xa0, 0xd0, 0x97, 0x32, 0x8f, 0x3e, 0x05, 0x3a,
   0x92, 0x29, 0xed, 0x58, 0x78, 0xb5, 0x88, 0x63, 0x70, 0xa3, 0x8c, 0x7a, 0x16, 0x72, 0xa3, 0x0c,
   0x11, 0xbc, 0x4c, 0xe6, 0x9a, 0x76, 0x6d, 0xc5, 0xc6, 0xf8, 0x10, 0xfa, 0x6a, 0x99, 0xf2, 0xf3,
   0x65, 0x26, 0x68, 0x6f, 0xea, 0xcc, 0xc7, 0x07, 0x93, 0x7d, 0xa3, 0x74, 0x9f, 0x89, 0xab, 0x42,
   0x28, 0x6d, 0x00, 0x76, 0xd3, 0x82, 0x0f, 0xa0, 0x97, 0x08, 0x7d, 0x29, 0x43, 0xea, 0xdb, 0xe6,
   0xed, 0x95, 0xe6, 0x13, 0x0b, 0xb1, 0xaa, 0x05, 0x9f, 0xc2, 0x90, 0xcb, 0x54, 0x8b, 0xd4, 0xbe,
   0x42, 0xfb, 0x96, 0x41, 0x57, 0x18, 0x87, 0x0d, 0xce, 0xda, 0xcd, 0x48, 0xa0, 0x93, 0x8b, 0x2b,
   0x3a, 0x98, 0x3a, 0xf3, 0x4d, 0x66, 0xc2, 0xd9, 0x57, 0x17, 0xe0, 0x30, 0x2e, 0x94, 0x16, 0xf9,
   0x7a, 0xc3, 0xee, 0xc0, 0x80, 0x97, 0x3d, 0x37, 0x9e, 0x35, 0x85, 0xdf, 0xb4, 0xad, 0x6d, 0x89,
   0x77, 0x1b, 0x4b, 0xba, 0xb7, 0xb6, 0xa4, 0xf7, 0x07, 0x96, 0xf8, 0x8d, 0x25, 0x9f, 0x5d, 0xe8,
   0x9b, 0x05, 0x52, 0xeb, 0x0d, 0xa1, 0xe0, 0x97, 0x3b, 0xa3, 0xa8, 0x3b, 0xed, 0xcc, 0x07, 0xac,
   0x4e, 0xff, 0x39, 0x33, 0xbe, 0x39, 0xe0, 0x9f, 0x05, 0x81, 0xf5, 0x82, 0x82, 0x9f, 0x67, 0x7c,
   0x11, 0x86, 0x79, 0xe5, 0x46, 0x9d, 0x56, 0x88, 0x31, 0xad, 0x5a, 0x8f, 0x3a, 0xfd, 0x3b, 0x7e,
   0x54, 0x32, 0xbb, 0x8d, 0x4c, 0x0e, 0xa3, 0x67, 0xd5, 0x7d, 0x60, 0x22, 0x8b, 0x97, 0xe6, 0xab,
   0xe4, 0x46, 0x8e, 0x11, 0xda, 0x65, 0x36, 0x36, 0xb4, 0x44, 0x7d, 0xa8, 0x14, 0x9a, 0xd0, 0xe8,
   0x56, 0x05, 0xe7, 0x42, 0x29, 0xab, 0xab, 0xcf, 0xea, 0xd4, 0xf0, 0xc3, 0x40, 0x07, 0x56, 0xcd,
   0x26, 0xb3, 0xf1, 0xde, 0x0c, 0x86, 0x2d, 0x3d, 0xd8, 0x07, 0xcf, 0x28, 0x22, 0x1b, 0x38, 0x80,
   0xee, 0xc2, 0x86, 0xce, 0xde, 0x31, 0x8c, 0x56, 0xc6, 0x82, 0x13, 0x18, 0x95, 0xd1, 0x91, 0x78,
   0x1f, 0x14, 0xb1, 0x26, 0x1b, 0x86, 0x78, 0x2a, 0x95, 0x26, 0x0e, 0xfa, 0xd0, 0x79, 0x21, 0x34,
   0x71, 0x4d, 0x70, 0x5a, 0x68, 0xd2, 0x41, 0x80, 0xde, 0x91, 0x88, 0x85, 0x16, 0xc4, 0xdb, 0xfb,
   0xe2, 0x00, 0xfe, 0x3a, 0x31, 0xdc, 0x01, 0x6c, 0xa5, 0xcd, 0xb3, 0xdb, 0xb0, 0xb5, 0xc8, 0xb2,
   0x38, 0xe2, 0xd6, 0xd3, 0x63, 0x25, 0x53, 0xe2, 0xe0, 0x3d, 0xb8, 0xdb, 0x2a, 0xbe, 0x7d, 0x73,
   0x7d, 0xfd, 0x5c, 0xe6, 0xc9, 0xeb, 0x3c, 0x16, 0xa9, 0xf1, 0x24, 0x24, 0x2e, 0xfe, 0x0f, 0x93,
   0x93, 0x22, 0xd6, 0x51, 0x16, 0xe4, 0xda, 0x80, 0x47, 0x81, 0x0e, 0x48, 0x07, 0x11, 0xc6, 0x6d,
   0x66, 0x12, 0x13, 0xef, 0xe0, 0x87, 0x03, 0xc3, 0x45, 0x24, 0xf5, 0x99, 0xc8, 0x3f, 0x46, 0x5c,
   0xe0, 0x01, 0xc0, 0x99, 0x48, 0xc3, 0x73, 0x69, 0x67, 0x3d, 0x2a, 0x67, 0x56, 0x1d, 0xdf, 0xdd,
   0x6a, 0x4b, 0x57, 0xe6, 0x32, 0xdb, 0xc0, 0x27, 0xb0, 0x65, 0x38, 0xf6, 0x99, 0x65, 0xca, 0xcd,
   0x62, 0x8d, 0xcb, 0xce, 0x53, 0x73, 0xbf, 0xb9, 0x8c, 0xd7, 0x33, 0x47, 0xe5, 0xaf, 0x55, 0x07,
   0x0b, 0x49, 0xd9, 0xd7, 0xdc, 0xaf, 0x75, 0xcc, 0xc7, 0x30, 0x6c, 0x74, 0xaa, 0xfa, 0xf7, 0xea,
   0x8f, 0x7c, 0x0d, 0xeb, 0xa2, 0x67, 0xff, 0x50, 0x1e, 0xfd, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x78,
   0xd6, 0x14, 0xf7, 0x80, 0x06, 0x00, 0x00,
}