status-go/protocol/protobuf/pairing.pb.go
Samuel Hawksby-Robinson 89251e8416
Sync Communities (#2253)
* Added community sync protobuf

* Updated community sync send logic

* Integrated syncCommunity handling

* Added synced_at field and tidied up some other logic

* persistence testing

* Added testing and join functionality

* Fixed issue with empty scan params

* Finshed persistence tests for new db funcs

* Midway debug of description not persisting after sync

* Resolved final issues and tidied up

* Polish

* delint

* Fix error not handled on SetPrivateKey

* fix infinite loop, again

* Added muted option and test fix

* Added Muted to syncing functions, not just in persistence

* Fix bug introduced with Muted property

* Added a couple of notes for future devs

* Added most of the sync RequestToJoin functionality

Tests need to be completed and tests are giving some errors

* Finished tests for getJoinedAndPending

* Added note

* Resolving lint

* Fix of protobuf gen bug

* Fixes to community sync tests

* Fixes to test

* Continued fix of e2e

* Final fix to e2e testing

* Updated migration position

* resolve missing import

* Apparently the linter spellchecks

* Fix bug from  #2276 merge

* Bug fix for leaving quirkiness

* Addressed superfluous MessengerResponse field

* Addressed feedback

* VERSION bump
2021-08-06 16:40:23 +01:00

576 lines
21 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: pairing.proto
package protobuf
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type PairInstallation struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
InstallationId string `protobuf:"bytes,2,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"`
DeviceType string `protobuf:"bytes,3,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PairInstallation) Reset() { *m = PairInstallation{} }
func (m *PairInstallation) String() string { return proto.CompactTextString(m) }
func (*PairInstallation) ProtoMessage() {}
func (*PairInstallation) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{0}
}
func (m *PairInstallation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PairInstallation.Unmarshal(m, b)
}
func (m *PairInstallation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PairInstallation.Marshal(b, m, deterministic)
}
func (m *PairInstallation) XXX_Merge(src proto.Message) {
xxx_messageInfo_PairInstallation.Merge(m, src)
}
func (m *PairInstallation) XXX_Size() int {
return xxx_messageInfo_PairInstallation.Size(m)
}
func (m *PairInstallation) XXX_DiscardUnknown() {
xxx_messageInfo_PairInstallation.DiscardUnknown(m)
}
var xxx_messageInfo_PairInstallation proto.InternalMessageInfo
func (m *PairInstallation) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *PairInstallation) GetInstallationId() string {
if m != nil {
return m.InstallationId
}
return ""
}
func (m *PairInstallation) GetDeviceType() string {
if m != nil {
return m.DeviceType
}
return ""
}
func (m *PairInstallation) GetName() string {
if m != nil {
return m.Name
}
return ""
}
type SyncInstallationContact struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
ProfileImage string `protobuf:"bytes,3,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"`
EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
LastUpdated uint64 `protobuf:"varint,5,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"`
SystemTags []string `protobuf:"bytes,6,rep,name=system_tags,json=systemTags,proto3" json:"system_tags,omitempty"`
LocalNickname string `protobuf:"bytes,7,opt,name=local_nickname,json=localNickname,proto3" json:"local_nickname,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncInstallationContact) Reset() { *m = SyncInstallationContact{} }
func (m *SyncInstallationContact) String() string { return proto.CompactTextString(m) }
func (*SyncInstallationContact) ProtoMessage() {}
func (*SyncInstallationContact) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{1}
}
func (m *SyncInstallationContact) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncInstallationContact.Unmarshal(m, b)
}
func (m *SyncInstallationContact) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncInstallationContact.Marshal(b, m, deterministic)
}
func (m *SyncInstallationContact) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncInstallationContact.Merge(m, src)
}
func (m *SyncInstallationContact) XXX_Size() int {
return xxx_messageInfo_SyncInstallationContact.Size(m)
}
func (m *SyncInstallationContact) XXX_DiscardUnknown() {
xxx_messageInfo_SyncInstallationContact.DiscardUnknown(m)
}
var xxx_messageInfo_SyncInstallationContact proto.InternalMessageInfo
func (m *SyncInstallationContact) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *SyncInstallationContact) GetId() string {
if m != nil {
return m.Id
}
return ""
}
func (m *SyncInstallationContact) GetProfileImage() string {
if m != nil {
return m.ProfileImage
}
return ""
}
func (m *SyncInstallationContact) GetEnsName() string {
if m != nil {
return m.EnsName
}
return ""
}
func (m *SyncInstallationContact) GetLastUpdated() uint64 {
if m != nil {
return m.LastUpdated
}
return 0
}
func (m *SyncInstallationContact) GetSystemTags() []string {
if m != nil {
return m.SystemTags
}
return nil
}
func (m *SyncInstallationContact) GetLocalNickname() string {
if m != nil {
return m.LocalNickname
}
return ""
}
type SyncInstallationAccount struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
ProfileImage string `protobuf:"bytes,2,opt,name=profile_image,json=profileImage,proto3" json:"profile_image,omitempty"`
LastUpdated uint64 `protobuf:"varint,3,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncInstallationAccount) Reset() { *m = SyncInstallationAccount{} }
func (m *SyncInstallationAccount) String() string { return proto.CompactTextString(m) }
func (*SyncInstallationAccount) ProtoMessage() {}
func (*SyncInstallationAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{2}
}
func (m *SyncInstallationAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncInstallationAccount.Unmarshal(m, b)
}
func (m *SyncInstallationAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncInstallationAccount.Marshal(b, m, deterministic)
}
func (m *SyncInstallationAccount) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncInstallationAccount.Merge(m, src)
}
func (m *SyncInstallationAccount) XXX_Size() int {
return xxx_messageInfo_SyncInstallationAccount.Size(m)
}
func (m *SyncInstallationAccount) XXX_DiscardUnknown() {
xxx_messageInfo_SyncInstallationAccount.DiscardUnknown(m)
}
var xxx_messageInfo_SyncInstallationAccount proto.InternalMessageInfo
func (m *SyncInstallationAccount) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *SyncInstallationAccount) GetProfileImage() string {
if m != nil {
return m.ProfileImage
}
return ""
}
func (m *SyncInstallationAccount) GetLastUpdated() uint64 {
if m != nil {
return m.LastUpdated
}
return 0
}
type SyncInstallationPublicChat struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncInstallationPublicChat) Reset() { *m = SyncInstallationPublicChat{} }
func (m *SyncInstallationPublicChat) String() string { return proto.CompactTextString(m) }
func (*SyncInstallationPublicChat) ProtoMessage() {}
func (*SyncInstallationPublicChat) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{3}
}
func (m *SyncInstallationPublicChat) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncInstallationPublicChat.Unmarshal(m, b)
}
func (m *SyncInstallationPublicChat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncInstallationPublicChat.Marshal(b, m, deterministic)
}
func (m *SyncInstallationPublicChat) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncInstallationPublicChat.Merge(m, src)
}
func (m *SyncInstallationPublicChat) XXX_Size() int {
return xxx_messageInfo_SyncInstallationPublicChat.Size(m)
}
func (m *SyncInstallationPublicChat) XXX_DiscardUnknown() {
xxx_messageInfo_SyncInstallationPublicChat.DiscardUnknown(m)
}
var xxx_messageInfo_SyncInstallationPublicChat proto.InternalMessageInfo
func (m *SyncInstallationPublicChat) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *SyncInstallationPublicChat) GetId() string {
if m != nil {
return m.Id
}
return ""
}
type SyncCommunity struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
Id []byte `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
PrivateKey []byte `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
Description []byte `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
Joined bool `protobuf:"varint,5,opt,name=joined,proto3" json:"joined,omitempty"`
Verified bool `protobuf:"varint,6,opt,name=verified,proto3" json:"verified,omitempty"`
Muted bool `protobuf:"varint,7,opt,name=muted,proto3" json:"muted,omitempty"`
RequestsToJoin []*SyncCommunityRequestsToJoin `protobuf:"bytes,8,rep,name=requests_to_join,json=requestsToJoin,proto3" json:"requests_to_join,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncCommunity) Reset() { *m = SyncCommunity{} }
func (m *SyncCommunity) String() string { return proto.CompactTextString(m) }
func (*SyncCommunity) ProtoMessage() {}
func (*SyncCommunity) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{4}
}
func (m *SyncCommunity) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncCommunity.Unmarshal(m, b)
}
func (m *SyncCommunity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncCommunity.Marshal(b, m, deterministic)
}
func (m *SyncCommunity) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncCommunity.Merge(m, src)
}
func (m *SyncCommunity) XXX_Size() int {
return xxx_messageInfo_SyncCommunity.Size(m)
}
func (m *SyncCommunity) XXX_DiscardUnknown() {
xxx_messageInfo_SyncCommunity.DiscardUnknown(m)
}
var xxx_messageInfo_SyncCommunity proto.InternalMessageInfo
func (m *SyncCommunity) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *SyncCommunity) GetId() []byte {
if m != nil {
return m.Id
}
return nil
}
func (m *SyncCommunity) GetPrivateKey() []byte {
if m != nil {
return m.PrivateKey
}
return nil
}
func (m *SyncCommunity) GetDescription() []byte {
if m != nil {
return m.Description
}
return nil
}
func (m *SyncCommunity) GetJoined() bool {
if m != nil {
return m.Joined
}
return false
}
func (m *SyncCommunity) GetVerified() bool {
if m != nil {
return m.Verified
}
return false
}
func (m *SyncCommunity) GetMuted() bool {
if m != nil {
return m.Muted
}
return false
}
func (m *SyncCommunity) GetRequestsToJoin() []*SyncCommunityRequestsToJoin {
if m != nil {
return m.RequestsToJoin
}
return nil
}
type SyncCommunityRequestsToJoin struct {
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
Clock uint64 `protobuf:"varint,3,opt,name=clock,proto3" json:"clock,omitempty"`
EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
ChatId string `protobuf:"bytes,5,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
CommunityId []byte `protobuf:"bytes,6,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"`
State uint64 `protobuf:"varint,7,opt,name=state,proto3" json:"state,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncCommunityRequestsToJoin) Reset() { *m = SyncCommunityRequestsToJoin{} }
func (m *SyncCommunityRequestsToJoin) String() string { return proto.CompactTextString(m) }
func (*SyncCommunityRequestsToJoin) ProtoMessage() {}
func (*SyncCommunityRequestsToJoin) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{5}
}
func (m *SyncCommunityRequestsToJoin) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncCommunityRequestsToJoin.Unmarshal(m, b)
}
func (m *SyncCommunityRequestsToJoin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncCommunityRequestsToJoin.Marshal(b, m, deterministic)
}
func (m *SyncCommunityRequestsToJoin) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncCommunityRequestsToJoin.Merge(m, src)
}
func (m *SyncCommunityRequestsToJoin) XXX_Size() int {
return xxx_messageInfo_SyncCommunityRequestsToJoin.Size(m)
}
func (m *SyncCommunityRequestsToJoin) XXX_DiscardUnknown() {
xxx_messageInfo_SyncCommunityRequestsToJoin.DiscardUnknown(m)
}
var xxx_messageInfo_SyncCommunityRequestsToJoin proto.InternalMessageInfo
func (m *SyncCommunityRequestsToJoin) GetId() []byte {
if m != nil {
return m.Id
}
return nil
}
func (m *SyncCommunityRequestsToJoin) GetPublicKey() string {
if m != nil {
return m.PublicKey
}
return ""
}
func (m *SyncCommunityRequestsToJoin) GetClock() uint64 {
if m != nil {
return m.Clock
}
return 0
}
func (m *SyncCommunityRequestsToJoin) GetEnsName() string {
if m != nil {
return m.EnsName
}
return ""
}
func (m *SyncCommunityRequestsToJoin) GetChatId() string {
if m != nil {
return m.ChatId
}
return ""
}
func (m *SyncCommunityRequestsToJoin) GetCommunityId() []byte {
if m != nil {
return m.CommunityId
}
return nil
}
func (m *SyncCommunityRequestsToJoin) GetState() uint64 {
if m != nil {
return m.State
}
return 0
}
type SyncInstallation struct {
Contacts []*SyncInstallationContact `protobuf:"bytes,1,rep,name=contacts,proto3" json:"contacts,omitempty"`
PublicChats []*SyncInstallationPublicChat `protobuf:"bytes,2,rep,name=public_chats,json=publicChats,proto3" json:"public_chats,omitempty"`
Account *SyncInstallationAccount `protobuf:"bytes,3,opt,name=account,proto3" json:"account,omitempty"`
Communities []*SyncCommunity `protobuf:"bytes,4,rep,name=communities,proto3" json:"communities,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncInstallation) Reset() { *m = SyncInstallation{} }
func (m *SyncInstallation) String() string { return proto.CompactTextString(m) }
func (*SyncInstallation) ProtoMessage() {}
func (*SyncInstallation) Descriptor() ([]byte, []int) {
return fileDescriptor_d61ab7221f0b5518, []int{6}
}
func (m *SyncInstallation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncInstallation.Unmarshal(m, b)
}
func (m *SyncInstallation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncInstallation.Marshal(b, m, deterministic)
}
func (m *SyncInstallation) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncInstallation.Merge(m, src)
}
func (m *SyncInstallation) XXX_Size() int {
return xxx_messageInfo_SyncInstallation.Size(m)
}
func (m *SyncInstallation) XXX_DiscardUnknown() {
xxx_messageInfo_SyncInstallation.DiscardUnknown(m)
}
var xxx_messageInfo_SyncInstallation proto.InternalMessageInfo
func (m *SyncInstallation) GetContacts() []*SyncInstallationContact {
if m != nil {
return m.Contacts
}
return nil
}
func (m *SyncInstallation) GetPublicChats() []*SyncInstallationPublicChat {
if m != nil {
return m.PublicChats
}
return nil
}
func (m *SyncInstallation) GetAccount() *SyncInstallationAccount {
if m != nil {
return m.Account
}
return nil
}
func (m *SyncInstallation) GetCommunities() []*SyncCommunity {
if m != nil {
return m.Communities
}
return nil
}
func init() {
proto.RegisterType((*PairInstallation)(nil), "protobuf.PairInstallation")
proto.RegisterType((*SyncInstallationContact)(nil), "protobuf.SyncInstallationContact")
proto.RegisterType((*SyncInstallationAccount)(nil), "protobuf.SyncInstallationAccount")
proto.RegisterType((*SyncInstallationPublicChat)(nil), "protobuf.SyncInstallationPublicChat")
proto.RegisterType((*SyncCommunity)(nil), "protobuf.SyncCommunity")
proto.RegisterType((*SyncCommunityRequestsToJoin)(nil), "protobuf.SyncCommunityRequestsToJoin")
proto.RegisterType((*SyncInstallation)(nil), "protobuf.SyncInstallation")
}
func init() {
proto.RegisterFile("pairing.proto", fileDescriptor_d61ab7221f0b5518)
}
var fileDescriptor_d61ab7221f0b5518 = []byte{
// 613 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0xcd, 0x6e, 0xd4, 0x30,
0x10, 0x56, 0xb2, 0xdb, 0x6c, 0x3a, 0xc9, 0x2e, 0x95, 0x85, 0x68, 0x28, 0x42, 0xdd, 0x06, 0x2a,
0x7a, 0x5a, 0x24, 0x38, 0xa1, 0x8a, 0x03, 0xed, 0x01, 0x2d, 0x48, 0xa5, 0x0a, 0xe5, 0xc2, 0x25,
0x72, 0x1d, 0x77, 0x6b, 0x9a, 0xd8, 0x21, 0x76, 0x8a, 0xf2, 0x02, 0x3c, 0x00, 0x3c, 0x18, 0xef,
0xc1, 0x53, 0x20, 0xdb, 0xd9, 0x90, 0xfe, 0x6c, 0xe1, 0x94, 0xcc, 0x37, 0x63, 0xcf, 0xf7, 0x7d,
0x9e, 0x81, 0x71, 0x89, 0x59, 0xc5, 0xf8, 0x62, 0x56, 0x56, 0x42, 0x09, 0xe4, 0x9b, 0xcf, 0x69,
0x7d, 0x16, 0x7f, 0x77, 0x60, 0xe3, 0x18, 0xb3, 0x6a, 0xce, 0xa5, 0xc2, 0x79, 0x8e, 0x15, 0x13,
0x1c, 0xdd, 0x87, 0x35, 0x92, 0x0b, 0x72, 0x11, 0x39, 0x53, 0x67, 0x6f, 0x98, 0xd8, 0x00, 0x3d,
0x83, 0x7b, 0xac, 0x57, 0x95, 0xb2, 0x2c, 0x72, 0xa7, 0xce, 0xde, 0x7a, 0x32, 0xe9, 0xc3, 0xf3,
0x0c, 0x6d, 0x43, 0x90, 0xd1, 0x4b, 0x46, 0x68, 0xaa, 0x9a, 0x92, 0x46, 0x03, 0x53, 0x04, 0x16,
0x3a, 0x69, 0x4a, 0x8a, 0x10, 0x0c, 0x39, 0x2e, 0x68, 0x34, 0x34, 0x19, 0xf3, 0x1f, 0xff, 0x76,
0x60, 0xf3, 0x63, 0xc3, 0x49, 0x9f, 0xc8, 0xa1, 0xe0, 0x0a, 0x13, 0xb5, 0x82, 0xcf, 0x04, 0xdc,
0x8e, 0x82, 0xcb, 0x32, 0xf4, 0x04, 0xc6, 0x65, 0x25, 0xce, 0x58, 0x4e, 0x53, 0x56, 0xe0, 0xc5,
0xb2, 0x71, 0xd8, 0x82, 0x73, 0x8d, 0xa1, 0x87, 0xe0, 0x53, 0x2e, 0xd3, 0x5e, 0xfb, 0x11, 0xe5,
0xf2, 0x08, 0x17, 0x14, 0xed, 0x40, 0x98, 0x63, 0xa9, 0xd2, 0xba, 0xcc, 0xb0, 0xa2, 0x59, 0xb4,
0x66, 0x9a, 0x05, 0x1a, 0xfb, 0x64, 0x21, 0xad, 0x4c, 0x36, 0x52, 0xd1, 0x22, 0x55, 0x78, 0x21,
0x23, 0x6f, 0x3a, 0xd0, 0xca, 0x2c, 0x74, 0x82, 0x17, 0x12, 0xed, 0xc2, 0x24, 0x17, 0x04, 0xe7,
0x29, 0x67, 0xe4, 0xc2, 0x34, 0x19, 0x99, 0x26, 0x63, 0x83, 0x1e, 0xb5, 0x60, 0xfc, 0xed, 0xa6,
0xd6, 0x37, 0x84, 0x88, 0x9a, 0xaf, 0xd2, 0x7a, 0x43, 0x9b, 0x7b, 0x8b, 0xb6, 0xeb, 0x02, 0x06,
0x37, 0x04, 0xc4, 0x07, 0xb0, 0x75, 0xbd, 0xf1, 0x71, 0x7d, 0x9a, 0x33, 0x72, 0x78, 0x8e, 0xff,
0xd3, 0xe7, 0xf8, 0xa7, 0x0b, 0x63, 0x7d, 0xc9, 0xa1, 0x28, 0x8a, 0x9a, 0x33, 0xd5, 0xfc, 0xf3,
0x5c, 0x68, 0xde, 0x67, 0x1b, 0x82, 0xb2, 0x62, 0x97, 0x58, 0xd1, 0xf4, 0x82, 0x36, 0x86, 0x5d,
0x98, 0x40, 0x0b, 0xbd, 0xa7, 0x0d, 0x9a, 0xea, 0xb9, 0x91, 0xa4, 0x62, 0xa5, 0xe6, 0x65, 0x9e,
0x27, 0x4c, 0xfa, 0x10, 0x7a, 0x00, 0xde, 0x17, 0xc1, 0x78, 0xfb, 0x38, 0x7e, 0xd2, 0x46, 0x68,
0x0b, 0xfc, 0x4b, 0x5a, 0xb1, 0x33, 0x46, 0xb3, 0xc8, 0x33, 0x99, 0x2e, 0xd6, 0xe4, 0x8a, 0x5a,
0xdb, 0x31, 0x32, 0x09, 0x1b, 0xa0, 0x0f, 0xb0, 0x51, 0xd1, 0xaf, 0x35, 0x95, 0x4a, 0xa6, 0x4a,
0xa4, 0xfa, 0x9e, 0xc8, 0x9f, 0x0e, 0xf6, 0x82, 0x17, 0xbb, 0xb3, 0xe5, 0x72, 0xcc, 0xae, 0xa8,
0x4c, 0xda, 0xf2, 0x13, 0xf1, 0x4e, 0x30, 0x9e, 0x4c, 0xaa, 0x2b, 0x71, 0xfc, 0xcb, 0x81, 0x47,
0x77, 0xd4, 0xb7, 0x6e, 0x38, 0x9d, 0x1b, 0x8f, 0x01, 0x4a, 0xe3, 0xbc, 0x31, 0xc3, 0xba, 0xbb,
0x6e, 0x11, 0xed, 0x45, 0x67, 0xe9, 0xa0, 0x6f, 0xe9, 0x1d, 0xd3, 0xbb, 0x09, 0x23, 0x72, 0x8e,
0x95, 0xde, 0xca, 0x35, 0x93, 0xf1, 0x74, 0x38, 0xcf, 0xf4, 0x54, 0x90, 0x25, 0x27, 0x9d, 0xf5,
0xac, 0xad, 0x1d, 0x36, 0x37, 0x16, 0x49, 0x85, 0x95, 0x1d, 0xd6, 0x61, 0x62, 0x83, 0xf8, 0x87,
0x0b, 0x1b, 0xd7, 0x87, 0x05, 0xbd, 0x06, 0x9f, 0xd8, 0xad, 0x94, 0x91, 0x63, 0xfc, 0xda, 0xb9,
0xea, 0xd7, 0x2d, 0xfb, 0x9b, 0x74, 0x47, 0xd0, 0x5b, 0x08, 0x5b, 0xd5, 0x9a, 0x9d, 0x8c, 0x5c,
0x73, 0xc5, 0xd3, 0xd5, 0x57, 0xfc, 0x9d, 0xce, 0x24, 0x28, 0xbb, 0x7f, 0x89, 0xf6, 0x61, 0x84,
0xed, 0xc6, 0x18, 0x87, 0xee, 0xa4, 0xd1, 0xae, 0x56, 0xb2, 0x3c, 0x81, 0x5e, 0x41, 0x27, 0x9f,
0x51, 0x19, 0x0d, 0x0d, 0x89, 0xcd, 0x55, 0xef, 0xde, 0xaf, 0x3d, 0x18, 0x7f, 0x0e, 0x66, 0xcf,
0xf7, 0x97, 0x95, 0xa7, 0x9e, 0xf9, 0x7b, 0xf9, 0x27, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x2d, 0x9c,
0xac, 0x60, 0x05, 0x00, 0x00,
}