package protoc

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

const _ = proto.ProtoPackageIsVersion2 

type EntryType int32

const (
	EntryType_TRANSACTION_BEGIN EntryType = 0
	EntryType_ROWDATA           EntryType = 1
	EntryType_TRANSACTION_END   EntryType = 2

	EntryType_HEARTBEAT EntryType = 3
)

var EntryType_name = map[int32]string{
	0: "TRANSACTION_BEGIN",
	1: "ROWDATA",
	2: "TRANSACTION_END",
	3: "HEARTBEAT",
}
var EntryType_value = map[string]int32{
	"TRANSACTION_BEGIN": 0,
	"ROWDATA":           1,
	"TRANSACTION_END":   2,
	"HEARTBEAT":         3,
}

func (x EntryType) String() string {
	return proto.EnumName(EntryType_name, int32(x))
}
func (EntryType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

type EventType int32

const (
	EventType_INSERT   EventType = 0
	EventType_UPDATE   EventType = 1
	EventType_DELETE   EventType = 2
	EventType_CREATE   EventType = 3
	EventType_ALTER    EventType = 4
	EventType_DROP     EventType = 5
	EventType_QUERY    EventType = 6
	EventType_TRUNCATE EventType = 7
	EventType_RENAME   EventType = 8

	EventType_CINDEX EventType = 9
	EventType_DINDEX EventType = 10
)

var EventType_name = map[int32]string{
	0:  "INSERT",
	1:  "UPDATE",
	2:  "DELETE",
	3:  "CREATE",
	4:  "ALTER",
	5:  "DROP",
	6:  "QUERY",
	7:  "TRUNCATE",
	8:  "RENAME",
	9:  "CINDEX",
	10: "DINDEX",
}
var EventType_value = map[string]int32{
	"INSERT":   0,
	"UPDATE":   1,
	"DELETE":   2,
	"CREATE":   3,
	"ALTER":    4,
	"DROP":     5,
	"QUERY":    6,
	"TRUNCATE": 7,
	"RENAME":   8,
	"CINDEX":   9,
	"DINDEX":   10,
}

func (x EventType) String() string {
	return proto.EnumName(EventType_name, int32(x))
}
func (EventType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

type Type int32

const (
	Type_ORACLE Type = 0
	Type_MYSQL  Type = 1
	Type_PGSQL  Type = 2
)

var Type_name = map[int32]string{
	0: "ORACLE",
	1: "MYSQL",
	2: "PGSQL",
}
var Type_value = map[string]int32{
	"ORACLE": 0,
	"MYSQL":  1,
	"PGSQL":  2,
}

func (x Type) String() string {
	return proto.EnumName(Type_name, int32(x))
}
func (Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

type Entry struct {

	Header *Header `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`

	EntryType EntryType `protobuf:"varint,2,opt,name=entryType,enum=protoc.EntryType" json:"entryType,omitempty"`

	StoreValue []byte `protobuf:"bytes,3,opt,name=storeValue,proto3" json:"storeValue,omitempty"`
}

func (m *Entry) Reset()                    { *m = Entry{} }
func (m *Entry) String() string            { return proto.CompactTextString(m) }
func (*Entry) ProtoMessage()               {}
func (*Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

func (m *Entry) GetHeader() *Header {
	if m != nil {
		return m.Header
	}
	return nil
}

type Header struct {

	Version int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`

	LogfileName string `protobuf:"bytes,2,opt,name=logfileName" json:"logfileName,omitempty"`

	LogfileOffset int64 `protobuf:"varint,3,opt,name=logfileOffset" json:"logfileOffset,omitempty"`

	ServerId int64 `protobuf:"varint,4,opt,name=serverId" json:"serverId,omitempty"`

	ServerEncode string `protobuf:"bytes,5,opt,name=serverEncode" json:"serverEncode,omitempty"`

	ExecuteTime int64 `protobuf:"varint,6,opt,name=executeTime" json:"executeTime,omitempty"`

	SourceType Type `protobuf:"varint,7,opt,name=sourceType,enum=protoc.Type" json:"sourceType,omitempty"`

	SchemaName string `protobuf:"bytes,8,opt,name=schemaName" json:"schemaName,omitempty"`

	TableName string `protobuf:"bytes,9,opt,name=tableName" json:"tableName,omitempty"`

	EventLength int64 `protobuf:"varint,10,opt,name=eventLength" json:"eventLength,omitempty"`

	Gtid string `protobuf:"bytes,11,opt,name=gtid" json:"gtid,omitempty"`

	LastCommitted int64 `protobuf:"varint,12,opt,name=lastCommitted" json:"lastCommitted,omitempty"`

	SeqNum int64 `protobuf:"varint,13,opt,name=seqNum" json:"seqNum,omitempty"`

	EventType EventType `protobuf:"varint,14,opt,name=eventType,enum=protoc.EventType" json:"eventType,omitempty"`

	Props []*Pair `protobuf:"bytes,15,rep,name=props" json:"props,omitempty"`
}

func (m *Header) Reset()                    { *m = Header{} }
func (m *Header) String() string            { return proto.CompactTextString(m) }
func (*Header) ProtoMessage()               {}
func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

func (m *Header) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

type Column struct {

	Index int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`

	SqlType int32 `protobuf:"varint,2,opt,name=sqlType" json:"sqlType,omitempty"`

	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`

	IsKey bool `protobuf:"varint,4,opt,name=isKey" json:"isKey,omitempty"`

	Updated bool `protobuf:"varint,5,opt,name=updated" json:"updated,omitempty"`

	IsNull bool `protobuf:"varint,6,opt,name=isNull" json:"isNull,omitempty"`

	Value string `protobuf:"bytes,7,opt,name=value" json:"value,omitempty"`

	MysqlType string `protobuf:"bytes,8,opt,name=mysqlType" json:"mysqlType,omitempty"`

	Props []*Pair `protobuf:"bytes,9,rep,name=props" json:"props,omitempty"`
}

func (m *Column) Reset()                    { *m = Column{} }
func (m *Column) String() string            { return proto.CompactTextString(m) }
func (*Column) ProtoMessage()               {}
func (*Column) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *Column) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

type RowData struct {

	BeforeColumns []*Column `protobuf:"bytes,1,rep,name=beforeColumns" json:"beforeColumns,omitempty"`

	AfterColumns []*Column `protobuf:"bytes,2,rep,name=afterColumns" json:"afterColumns,omitempty"`

	Props []*Pair `protobuf:"bytes,3,rep,name=props" json:"props,omitempty"`
}

func (m *RowData) Reset()                    { *m = RowData{} }
func (m *RowData) String() string            { return proto.CompactTextString(m) }
func (*RowData) ProtoMessage()               {}
func (*RowData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

func (m *RowData) GetBeforeColumns() []*Column {
	if m != nil {
		return m.BeforeColumns
	}
	return nil
}

func (m *RowData) GetAfterColumns() []*Column {
	if m != nil {
		return m.AfterColumns
	}
	return nil
}

func (m *RowData) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

type RowChange struct {

	TableId int64 `protobuf:"varint,1,opt,name=tableId" json:"tableId,omitempty"`

	EventType EventType `protobuf:"varint,2,opt,name=eventType,enum=protoc.EventType" json:"eventType,omitempty"`

	IsDDL bool `protobuf:"varint,10,opt,name=isDDL" json:"isDDL,omitempty"`

	Sql string `protobuf:"bytes,11,opt,name=sql" json:"sql,omitempty"`

	RowDatas []*RowData `protobuf:"bytes,12,rep,name=rowDatas" json:"rowDatas,omitempty"`

	DdlSchemaName string `protobuf:"bytes,13,opt,name=ddlSchemaName" json:"ddlSchemaName,omitempty"`

	Props []*Pair `protobuf:"bytes,14,rep,name=props" json:"props,omitempty"`
}

func (m *RowChange) Reset()                    { *m = RowChange{} }
func (m *RowChange) String() string            { return proto.CompactTextString(m) }
func (*RowChange) ProtoMessage()               {}
func (*RowChange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

func (m *RowChange) GetRowDatas() []*RowData {
	if m != nil {
		return m.RowDatas
	}
	return nil
}

func (m *RowChange) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

type TransactionBegin struct {

	ThreadId int64 `protobuf:"varint,1,opt,name=threadId" json:"threadId,omitempty"`

	Props []*Pair `protobuf:"bytes,2,rep,name=props" json:"props,omitempty"`
}

func (m *TransactionBegin) Reset()                    { *m = TransactionBegin{} }
func (m *TransactionBegin) String() string            { return proto.CompactTextString(m) }
func (*TransactionBegin) ProtoMessage()               {}
func (*TransactionBegin) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

func (m *TransactionBegin) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

type TransactionEnd struct {

	TransactionId string `protobuf:"bytes,1,opt,name=transactionId" json:"transactionId,omitempty"`

	Props []*Pair `protobuf:"bytes,2,rep,name=props" json:"props,omitempty"`
}

func (m *TransactionEnd) Reset()                    { *m = TransactionEnd{} }
func (m *TransactionEnd) String() string            { return proto.CompactTextString(m) }
func (*TransactionEnd) ProtoMessage()               {}
func (*TransactionEnd) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

func (m *TransactionEnd) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

type Pair struct {
	Key   string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *Pair) Reset()                    { *m = Pair{} }
func (m *Pair) String() string            { return proto.CompactTextString(m) }
func (*Pair) ProtoMessage()               {}
func (*Pair) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

func init() {
	proto.RegisterType((*Entry)(nil), "protoc.Entry")
	proto.RegisterType((*Header)(nil), "protoc.Header")
	proto.RegisterType((*Column)(nil), "protoc.Column")
	proto.RegisterType((*RowData)(nil), "protoc.RowData")
	proto.RegisterType((*RowChange)(nil), "protoc.RowChange")
	proto.RegisterType((*TransactionBegin)(nil), "protoc.TransactionBegin")
	proto.RegisterType((*TransactionEnd)(nil), "protoc.TransactionEnd")
	proto.RegisterType((*Pair)(nil), "protoc.Pair")
	proto.RegisterEnum("protoc.EntryType", EntryType_name, EntryType_value)
	proto.RegisterEnum("protoc.EventType", EventType_name, EventType_value)
	proto.RegisterEnum("protoc.Type", Type_name, Type_value)
}

func init() { proto.RegisterFile("entry_protoc.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{

	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdd, 0x6e, 0xe2, 0x46,
	0x14, 0x8e, 0x31, 0x06, 0x7c, 0xf8, 0xc9, 0xec, 0xf4, 0x47, 0x56, 0x55, 0x55, 0x08, 0x55, 0x15,
	0x4a, 0xab, 0x54, 0x4a, 0xfb, 0x02, 0x0e, 0x1e, 0xed, 0xa2, 0xb2, 0x26, 0x3b, 0x38, 0x6d, 0xb7,
	0x37, 0x2b, 0x07, 0x0f, 0x60, 0xd5, 0xd8, 0xc4, 0x1e, 0xb2, 0xcb, 0x5d, 0xfb, 0x00, 0xbd, 0xee,
	0x4b, 0xf6, 0xb6, 0xf7, 0xd5, 0x1c, 0xdb, 0xd8, 0x54, 0x8b, 0x94, 0x2b, 0xce, 0xf7, 0x9d, 0x33,
	0xdf, 0x9c, 0xbf, 0x31, 0x40, 0x45, 0x2c, 0xd3, 0xc3, 0xbb, 0x5d, 0x9a, 0xc8, 0x64, 0x79, 0x8d,
	0x3f, 0xb4, 0x95, 0xa3, 0xd1, 0x1f, 0x1a, 0x18, 0x4c, 0xb9, 0xe9, 0x37, 0xd0, 0xda, 0x08, 0x3f,
	0x10, 0xa9, 0xa5, 0x0d, 0xb5, 0x71, 0xf7, 0x66, 0x70, 0x5d, 0x1c, 0x78, 0x85, 0x2c, 0x2f, 0xbc,
	0xf4, 0x7b, 0x30, 0x51, 0xcf, 0x3b, 0xec, 0x84, 0xd5, 0x18, 0x6a, 0xe3, 0xc1, 0xcd, 0x8b, 0x32,
	0x94, 0x95, 0x0e, 0x5e, 0xc5, 0xd0, 0xaf, 0x00, 0x32, 0x99, 0xa4, 0xe2, 0x67, 0x3f, 0xda, 0x0b,
	0x4b, 0x1f, 0x6a, 0xe3, 0x1e, 0xaf, 0x31, 0xa3, 0x3f, 0x9b, 0xd0, 0xca, 0xef, 0xa0, 0x16, 0xb4,
	0x9f, 0x44, 0x9a, 0x85, 0x49, 0x8c, 0x49, 0x18, 0xbc, 0x84, 0x74, 0x08, 0xdd, 0x28, 0x59, 0xaf,
	0xc2, 0x48, 0xb8, 0xfe, 0x36, 0xbf, 0xd7, 0xe4, 0x75, 0x8a, 0x7e, 0x0d, 0xfd, 0x02, 0xce, 0x57,
	0xab, 0x4c, 0x48, 0xbc, 0x49, 0xe7, 0xa7, 0x24, 0xfd, 0x02, 0x3a, 0x99, 0x48, 0x9f, 0x44, 0x3a,
	0x0d, 0xac, 0x26, 0x06, 0x1c, 0x31, 0x1d, 0x41, 0x2f, 0xb7, 0x59, 0xbc, 0x4c, 0x02, 0x61, 0x19,
	0x78, 0xc9, 0x09, 0xa7, 0xf2, 0x10, 0x1f, 0xc4, 0x72, 0x2f, 0x85, 0x17, 0x6e, 0x85, 0xd5, 0x42,
	0x89, 0x3a, 0x45, 0xbf, 0x03, 0xc8, 0x92, 0x7d, 0xba, 0x14, 0xd8, 0xa0, 0x36, 0x36, 0xa8, 0x57,
	0x36, 0x08, 0x7b, 0x53, 0xf3, 0x63, 0x73, 0x96, 0x1b, 0xb1, 0xf5, 0xb1, 0xac, 0x0e, 0xde, 0x58,
	0x63, 0xe8, 0x97, 0x60, 0x4a, 0xff, 0xa1, 0xa8, 0xda, 0x44, 0x77, 0x45, 0x60, 0x36, 0x4f, 0x22,
	0x96, 0x33, 0x11, 0xaf, 0xe5, 0xc6, 0x82, 0x22, 0x9b, 0x8a, 0xa2, 0x14, 0x9a, 0x6b, 0x19, 0x06,
	0x56, 0x17, 0x8f, 0xa2, 0x8d, 0x9d, 0xf2, 0x33, 0x39, 0x49, 0xb6, 0xdb, 0x50, 0x4a, 0x11, 0x58,
	0xbd, 0xa2, 0x53, 0x75, 0x92, 0x7e, 0x0e, 0xad, 0x4c, 0x3c, 0xba, 0xfb, 0xad, 0xd5, 0x47, 0x77,
	0x81, 0x70, 0xfe, 0xea, 0x02, 0x2c, 0x6f, 0xf0, 0xbf, 0xf9, 0x97, 0x0e, 0x5e, 0xc5, 0xd0, 0x11,
	0x18, 0xbb, 0x34, 0xd9, 0x65, 0xd6, 0xe5, 0x50, 0x1f, 0x77, 0xab, 0x5e, 0xdc, 0xf9, 0x61, 0xca,
	0x73, 0xd7, 0xe8, 0x1f, 0x0d, 0x5a, 0x93, 0x24, 0xda, 0x6f, 0x63, 0xfa, 0x29, 0x18, 0x61, 0x1c,
	0x88, 0x0f, 0xc5, 0x06, 0xe4, 0x40, 0x6d, 0x46, 0xf6, 0x18, 0x1d, 0x77, 0xce, 0xe0, 0x25, 0x54,
	0x15, 0xc6, 0xaa, 0x39, 0x7a, 0x5e, 0xa1, 0xb2, 0x51, 0x23, 0xfb, 0x49, 0x1c, 0x70, 0xc4, 0x1d,
	0x9e, 0x03, 0xa5, 0xb1, 0xdf, 0x05, 0xbe, 0xaa, 0xd8, 0x40, 0xbe, 0x84, 0xaa, 0xd6, 0x30, 0x73,
	0xf7, 0x51, 0x84, 0x03, 0xed, 0xf0, 0x02, 0x29, 0x9d, 0x27, 0xdc, 0xda, 0x36, 0x8a, 0xe7, 0x40,
	0xcd, 0x64, 0x7b, 0x28, 0xb3, 0xc9, 0x47, 0x56, 0x11, 0x55, 0xb9, 0xe6, 0xf9, 0x72, 0xff, 0xd6,
	0xa0, 0xcd, 0x93, 0xf7, 0x8e, 0x2f, 0x7d, 0xfa, 0x23, 0xf4, 0x1f, 0xc4, 0x2a, 0x49, 0x45, 0x5e,
	0x7f, 0x66, 0x69, 0x78, 0xee, 0xf8, 0xfc, 0x72, 0x9a, 0x9f, 0x06, 0xd1, 0x1b, 0xe8, 0xf9, 0x2b,
	0x29, 0xd2, 0xf2, 0x50, 0xe3, 0xa3, 0x87, 0x4e, 0x62, 0xaa, 0xcc, 0xf4, 0xf3, 0x99, 0xfd, 0xab,
	0x81, 0xc9, 0x93, 0xf7, 0x93, 0x8d, 0x1f, 0xaf, 0x85, 0xea, 0x18, 0x2e, 0xdb, 0x34, 0xc0, 0x69,
	0xe8, 0xbc, 0x84, 0xa7, 0x5b, 0xd0, 0x78, 0xc6, 0x16, 0xe0, 0x48, 0x1c, 0x67, 0x86, 0x4b, 0x8a,
	0x23, 0x71, 0x9c, 0x19, 0x25, 0xa0, 0x67, 0x8f, 0x51, 0xb1, 0x9d, 0xca, 0xa4, 0xdf, 0x42, 0x27,
	0xcd, 0x3b, 0x93, 0x59, 0x3d, 0xcc, 0xf3, 0xb2, 0xd4, 0x2d, 0x3a, 0xc6, 0x8f, 0x01, 0x6a, 0x93,
	0x83, 0x20, 0x5a, 0x54, 0x0f, 0xa8, 0x8f, 0x42, 0xa7, 0x64, 0x55, 0xf7, 0xe0, 0x7c, 0xdd, 0x1c,
	0x88, 0x97, 0xfa, 0x71, 0xe6, 0x2f, 0x65, 0x98, 0xc4, 0xb7, 0x62, 0x1d, 0xc6, 0xea, 0x5b, 0x21,
	0x37, 0xa9, 0xf0, 0x83, 0x63, 0xf9, 0x47, 0x5c, 0x69, 0x36, 0xce, 0x6b, 0xfe, 0x06, 0x83, 0x9a,
	0x26, 0x8b, 0xf1, 0xe5, 0xc9, 0x8a, 0x29, 0x64, 0x4d, 0x7e, 0x4a, 0x3e, 0x4b, 0xfb, 0x1a, 0x9a,
	0x0a, 0xaa, 0x06, 0xfe, 0x2e, 0x0e, 0x85, 0x8e, 0x32, 0xab, 0x9d, 0x6d, 0xd4, 0x76, 0xf6, 0x6a,
	0x01, 0xe6, 0xf1, 0xe3, 0x4c, 0x3f, 0x83, 0x17, 0x1e, 0xb7, 0xdd, 0x85, 0x3d, 0xf1, 0xa6, 0x73,
	0xf7, 0xdd, 0x2d, 0x7b, 0x39, 0x75, 0xc9, 0x05, 0xed, 0x42, 0x9b, 0xcf, 0x7f, 0x71, 0x6c, 0xcf,
	0x26, 0x1a, 0xfd, 0x04, 0x2e, 0xeb, 0x31, 0xcc, 0x75, 0x48, 0x83, 0xf6, 0xc1, 0x7c, 0xc5, 0x6c,
	0xee, 0xdd, 0x32, 0xdb, 0x23, 0xfa, 0xd5, 0x5f, 0x1a, 0x98, 0xc7, 0x61, 0x53, 0x80, 0xd6, 0xd4,
	0x5d, 0x30, 0xee, 0x91, 0x0b, 0x65, 0xdf, 0xdf, 0x39, 0xb6, 0xc7, 0x88, 0xa6, 0x6c, 0x87, 0xcd,
	0x98, 0xc7, 0x48, 0x43, 0xd9, 0x13, 0xce, 0x14, 0xaf, 0x53, 0x13, 0x0c, 0x7b, 0xe6, 0x31, 0x4e,
	0x9a, 0xb4, 0x03, 0x4d, 0x87, 0xcf, 0xef, 0x88, 0xa1, 0xc8, 0x37, 0xf7, 0x8c, 0xbf, 0x25, 0x2d,
	0xda, 0x83, 0x8e, 0xc7, 0xef, 0xdd, 0x89, 0x8a, 0x6e, 0xab, 0x93, 0x9c, 0xb9, 0xf6, 0x6b, 0x46,
	0x3a, 0xa8, 0x32, 0x75, 0x1d, 0xf6, 0x2b, 0x31, 0x51, 0x3d, 0xb7, 0xe1, 0x6a, 0x0c, 0xcd, 0x32,
	0x93, 0x39, 0xb7, 0x27, 0x33, 0x46, 0x2e, 0x94, 0xe0, 0xeb, 0xb7, 0x8b, 0x37, 0x33, 0xa2, 0x29,
	0xf3, 0xee, 0xa5, 0x32, 0x1b, 0x0f, 0xf9, 0xdf, 0xdf, 0x0f, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff,
	0xa7, 0x75, 0x67, 0x8a, 0x1b, 0x07, 0x00, 0x00,
}
// Code generated by protoc-gen-go.
// source: entry_protoc.proto
// DO NOT EDIT!

/*
Package protoc is a generated protocol buffer package.

It is generated from these files:
	entry_protoc.proto

It has these top-level messages:
	Entry
	Header
	Column
	RowData
	RowChange
	TransactionBegin
	TransactionEnd
	Pair
*/
package protoc

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import 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.ProtoPackageIsVersion2 // please upgrade the proto package

// 标识事务的开始，变更数据，结束的事件类型
type EntryType int32

const (
	EntryType_TRANSACTION_BEGIN EntryType = 0
	EntryType_ROWDATA           EntryType = 1
	EntryType_TRANSACTION_END   EntryType = 2
	// 心跳类型，内部使用，外部暂不可见
	EntryType_HEARTBEAT EntryType = 3
)

var EntryType_name = map[int32]string{
	0: "TRANSACTION_BEGIN",
	1: "ROWDATA",
	2: "TRANSACTION_END",
	3: "HEARTBEAT",
}
var EntryType_value = map[string]int32{
	"TRANSACTION_BEGIN": 0,
	"ROWDATA":           1,
	"TRANSACTION_END":   2,
	"HEARTBEAT":         3,
}

func (x EntryType) String() string {
	return proto.EnumName(EntryType_name, int32(x))
}
func (EntryType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

// 事件类型
type EventType int32

const (
	EventType_INSERT   EventType = 0
	EventType_UPDATE   EventType = 1
	EventType_DELETE   EventType = 2
	EventType_CREATE   EventType = 3
	EventType_ALTER    EventType = 4
	EventType_DROP     EventType = 5
	EventType_QUERY    EventType = 6
	EventType_TRUNCATE EventType = 7
	EventType_RENAME   EventType = 8
	// CREATE INDEX
	EventType_CINDEX EventType = 9
	EventType_DINDEX EventType = 10
)

var EventType_name = map[int32]string{
	0:  "INSERT",
	1:  "UPDATE",
	2:  "DELETE",
	3:  "CREATE",
	4:  "ALTER",
	5:  "DROP",
	6:  "QUERY",
	7:  "TRUNCATE",
	8:  "RENAME",
	9:  "CINDEX",
	10: "DINDEX",
}
var EventType_value = map[string]int32{
	"INSERT":   0,
	"UPDATE":   1,
	"DELETE":   2,
	"CREATE":   3,
	"ALTER":    4,
	"DROP":     5,
	"QUERY":    6,
	"TRUNCATE": 7,
	"RENAME":   8,
	"CINDEX":   9,
	"DINDEX":   10,
}

func (x EventType) String() string {
	return proto.EnumName(EventType_name, int32(x))
}
func (EventType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

// 数据库类型
type Type int32

const (
	Type_ORACLE Type = 0
	Type_MYSQL  Type = 1
	Type_PGSQL  Type = 2
)

var Type_name = map[int32]string{
	0: "ORACLE",
	1: "MYSQL",
	2: "PGSQL",
}
var Type_value = map[string]int32{
	"ORACLE": 0,
	"MYSQL":  1,
	"PGSQL":  2,
}

func (x Type) String() string {
	return proto.EnumName(Type_name, int32(x))
}
func (Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

type Entry struct {
	// 协议头部信息
	Header *Header `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
	// 事件类型
	EntryType EntryType `protobuf:"varint,2,opt,name=entryType,enum=protoc.EntryType" json:"entryType,omitempty"`
	// 传输的二进制数组
	StoreValue []byte `protobuf:"bytes,3,opt,name=storeValue,proto3" json:"storeValue,omitempty"`
}

func (m *Entry) Reset()                    { *m = Entry{} }
func (m *Entry) String() string            { return proto.CompactTextString(m) }
func (*Entry) ProtoMessage()               {}
func (*Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

func (m *Entry) GetHeader() *Header {
	if m != nil {
		return m.Header
	}
	return nil
}

// message Header
type Header struct {
	// 协议的版本号
	Version int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
	// binlog
	LogfileName string `protobuf:"bytes,2,opt,name=logfileName" json:"logfileName,omitempty"`
	// binlog 文件的偏移位置
	LogfileOffset int64 `protobuf:"varint,3,opt,name=logfileOffset" json:"logfileOffset,omitempty"`
	// 服务端serverId
	ServerId int64 `protobuf:"varint,4,opt,name=serverId" json:"serverId,omitempty"`
	// 变更数据的编码
	ServerEncode string `protobuf:"bytes,5,opt,name=serverEncode" json:"serverEncode,omitempty"`
	// 变更数据的执行时间
	ExecuteTime int64 `protobuf:"varint,6,opt,name=executeTime" json:"executeTime,omitempty"`
	// 变更数据的来源
	SourceType Type `protobuf:"varint,7,opt,name=sourceType,enum=protoc.Type" json:"sourceType,omitempty"`
	// 变更数据的schema name
	SchemaName string `protobuf:"bytes,8,opt,name=schemaName" json:"schemaName,omitempty"`
	// 变更数据的table name
	TableName string `protobuf:"bytes,9,opt,name=tableName" json:"tableName,omitempty"`
	// 每个event的长度
	EventLength int64 `protobuf:"varint,10,opt,name=eventLength" json:"eventLength,omitempty"`
	// GTID string
	Gtid string `protobuf:"bytes,11,opt,name=gtid" json:"gtid,omitempty"`
	// last committed id
	LastCommitted int64 `protobuf:"varint,12,opt,name=lastCommitted" json:"lastCommitted,omitempty"`
	// sequence number
	SeqNum int64 `protobuf:"varint,13,opt,name=seqNum" json:"seqNum,omitempty"`
	// 数据变更类型
	EventType EventType `protobuf:"varint,14,opt,name=eventType,enum=protoc.EventType" json:"eventType,omitempty"`
	// 预留扩展
	Props []*Pair `protobuf:"bytes,15,rep,name=props" json:"props,omitempty"`
}

func (m *Header) Reset()                    { *m = Header{} }
func (m *Header) String() string            { return proto.CompactTextString(m) }
func (*Header) ProtoMessage()               {}
func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

func (m *Header) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

// 每个字段的数据结构
type Column struct {
	// 字段下标
	Index int32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
	// 字段类型
	SqlType int32 `protobuf:"varint,2,opt,name=sqlType" json:"sqlType,omitempty"`
	// 字段名称
	Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
	// 是否是主键
	IsKey bool `protobuf:"varint,4,opt,name=isKey" json:"isKey,omitempty"`
	// 如果EventType=UPDATE,用于标识这个字段值是否有修改
	Updated bool `protobuf:"varint,5,opt,name=updated" json:"updated,omitempty"`
	// 标识是否为空
	IsNull bool `protobuf:"varint,6,opt,name=isNull" json:"isNull,omitempty"`
	// 字段值
	Value string `protobuf:"bytes,7,opt,name=value" json:"value,omitempty"`
	// 字段mysql类型
	MysqlType string `protobuf:"bytes,8,opt,name=mysqlType" json:"mysqlType,omitempty"`
	// 预留扩展
	Props []*Pair `protobuf:"bytes,9,rep,name=props" json:"props,omitempty"`
}

func (m *Column) Reset()                    { *m = Column{} }
func (m *Column) String() string            { return proto.CompactTextString(m) }
func (*Column) ProtoMessage()               {}
func (*Column) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *Column) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

type RowData struct {
	// 字段信息，增量数据(修改前,删除前)
	BeforeColumns []*Column `protobuf:"bytes,1,rep,name=beforeColumns" json:"beforeColumns,omitempty"`
	// 字段信息，增量数据(修改后,新增后)
	AfterColumns []*Column `protobuf:"bytes,2,rep,name=afterColumns" json:"afterColumns,omitempty"`
	// 预留扩展
	Props []*Pair `protobuf:"bytes,3,rep,name=props" json:"props,omitempty"`
}

func (m *RowData) Reset()                    { *m = RowData{} }
func (m *RowData) String() string            { return proto.CompactTextString(m) }
func (*RowData) ProtoMessage()               {}
func (*RowData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

func (m *RowData) GetBeforeColumns() []*Column {
	if m != nil {
		return m.BeforeColumns
	}
	return nil
}

func (m *RowData) GetAfterColumns() []*Column {
	if m != nil {
		return m.AfterColumns
	}
	return nil
}

func (m *RowData) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

// message row 每行变更数据的数据结构
type RowChange struct {
	// tableId,由数据库产生
	TableId int64 `protobuf:"varint,1,opt,name=tableId" json:"tableId,omitempty"`
	// 数据变更类型
	EventType EventType `protobuf:"varint,2,opt,name=eventType,enum=protoc.EventType" json:"eventType,omitempty"`
	// 标识是否是ddl语句
	IsDDL bool `protobuf:"varint,10,opt,name=isDDL" json:"isDDL,omitempty"`
	// ddl/query的sql语句
	Sql string `protobuf:"bytes,11,opt,name=sql" json:"sql,omitempty"`
	// 一次数据库变更可能存在多行
	RowDatas []*RowData `protobuf:"bytes,12,rep,name=rowDatas" json:"rowDatas,omitempty"`
	// ddl/query的schemaName
	DdlSchemaName string `protobuf:"bytes,13,opt,name=ddlSchemaName" json:"ddlSchemaName,omitempty"`
	// 预留扩展
	Props []*Pair `protobuf:"bytes,14,rep,name=props" json:"props,omitempty"`
}

func (m *RowChange) Reset()                    { *m = RowChange{} }
func (m *RowChange) String() string            { return proto.CompactTextString(m) }
func (*RowChange) ProtoMessage()               {}
func (*RowChange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

func (m *RowChange) GetRowDatas() []*RowData {
	if m != nil {
		return m.RowDatas
	}
	return nil
}

func (m *RowChange) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

// 开始事务的一些信息
type TransactionBegin struct {
	// 执行的thread Id
	ThreadId int64 `protobuf:"varint,1,opt,name=threadId" json:"threadId,omitempty"`
	// 预留扩展
	Props []*Pair `protobuf:"bytes,2,rep,name=props" json:"props,omitempty"`
}

func (m *TransactionBegin) Reset()                    { *m = TransactionBegin{} }
func (m *TransactionBegin) String() string            { return proto.CompactTextString(m) }
func (*TransactionBegin) ProtoMessage()               {}
func (*TransactionBegin) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

func (m *TransactionBegin) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

// 结束事务的一些信息
type TransactionEnd struct {
	// 事务号
	TransactionId string `protobuf:"bytes,1,opt,name=transactionId" json:"transactionId,omitempty"`
	// 预留扩展
	Props []*Pair `protobuf:"bytes,2,rep,name=props" json:"props,omitempty"`
}

func (m *TransactionEnd) Reset()                    { *m = TransactionEnd{} }
func (m *TransactionEnd) String() string            { return proto.CompactTextString(m) }
func (*TransactionEnd) ProtoMessage()               {}
func (*TransactionEnd) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

func (m *TransactionEnd) GetProps() []*Pair {
	if m != nil {
		return m.Props
	}
	return nil
}

// 预留扩展
type Pair struct {
	Key   string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *Pair) Reset()                    { *m = Pair{} }
func (m *Pair) String() string            { return proto.CompactTextString(m) }
func (*Pair) ProtoMessage()               {}
func (*Pair) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

func init() {
	proto.RegisterType((*Entry)(nil), "protoc.Entry")
	proto.RegisterType((*Header)(nil), "protoc.Header")
	proto.RegisterType((*Column)(nil), "protoc.Column")
	proto.RegisterType((*RowData)(nil), "protoc.RowData")
	proto.RegisterType((*RowChange)(nil), "protoc.RowChange")
	proto.RegisterType((*TransactionBegin)(nil), "protoc.TransactionBegin")
	proto.RegisterType((*TransactionEnd)(nil), "protoc.TransactionEnd")
	proto.RegisterType((*Pair)(nil), "protoc.Pair")
	proto.RegisterEnum("protoc.EntryType", EntryType_name, EntryType_value)
	proto.RegisterEnum("protoc.EventType", EventType_name, EventType_value)
	proto.RegisterEnum("protoc.Type", Type_name, Type_value)
}

func init() { proto.RegisterFile("entry_protoc.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 856 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdd, 0x6e, 0xe2, 0x46,
	0x14, 0x8e, 0x31, 0x06, 0x7c, 0xf8, 0xc9, 0xec, 0xf4, 0x47, 0x56, 0x55, 0x55, 0x08, 0x55, 0x15,
	0x4a, 0xab, 0x54, 0x4a, 0xfb, 0x02, 0x0e, 0x1e, 0xed, 0xa2, 0xb2, 0x26, 0x3b, 0x38, 0x6d, 0xb7,
	0x37, 0x2b, 0x07, 0x0f, 0x60, 0xd5, 0xd8, 0xc4, 0x1e, 0xb2, 0xcb, 0x5d, 0xfb, 0x00, 0xbd, 0xee,
	0x4b, 0xf6, 0xb6, 0xf7, 0xd5, 0x1c, 0xdb, 0xd8, 0x54, 0x8b, 0x94, 0x2b, 0xce, 0xf7, 0x9d, 0x33,
	0xdf, 0x9c, 0xbf, 0x31, 0x40, 0x45, 0x2c, 0xd3, 0xc3, 0xbb, 0x5d, 0x9a, 0xc8, 0x64, 0x79, 0x8d,
	0x3f, 0xb4, 0x95, 0xa3, 0xd1, 0x1f, 0x1a, 0x18, 0x4c, 0xb9, 0xe9, 0x37, 0xd0, 0xda, 0x08, 0x3f,
	0x10, 0xa9, 0xa5, 0x0d, 0xb5, 0x71, 0xf7, 0x66, 0x70, 0x5d, 0x1c, 0x78, 0x85, 0x2c, 0x2f, 0xbc,
	0xf4, 0x7b, 0x30, 0x51, 0xcf, 0x3b, 0xec, 0x84, 0xd5, 0x18, 0x6a, 0xe3, 0xc1, 0xcd, 0x8b, 0x32,
	0x94, 0x95, 0x0e, 0x5e, 0xc5, 0xd0, 0xaf, 0x00, 0x32, 0x99, 0xa4, 0xe2, 0x67, 0x3f, 0xda, 0x0b,
	0x4b, 0x1f, 0x6a, 0xe3, 0x1e, 0xaf, 0x31, 0xa3, 0x3f, 0x9b, 0xd0, 0xca, 0xef, 0xa0, 0x16, 0xb4,
	0x9f, 0x44, 0x9a, 0x85, 0x49, 0x8c, 0x49, 0x18, 0xbc, 0x84, 0x74, 0x08, 0xdd, 0x28, 0x59, 0xaf,
	0xc2, 0x48, 0xb8, 0xfe, 0x36, 0xbf, 0xd7, 0xe4, 0x75, 0x8a, 0x7e, 0x0d, 0xfd, 0x02, 0xce, 0x57,
	0xab, 0x4c, 0x48, 0xbc, 0x49, 0xe7, 0xa7, 0x24, 0xfd, 0x02, 0x3a, 0x99, 0x48, 0x9f, 0x44, 0x3a,
	0x0d, 0xac, 0x26, 0x06, 0x1c, 0x31, 0x1d, 0x41, 0x2f, 0xb7, 0x59, 0xbc, 0x4c, 0x02, 0x61, 0x19,
	0x78, 0xc9, 0x09, 0xa7, 0xf2, 0x10, 0x1f, 0xc4, 0x72, 0x2f, 0x85, 0x17, 0x6e, 0x85, 0xd5, 0x42,
	0x89, 0x3a, 0x45, 0xbf, 0x03, 0xc8, 0x92, 0x7d, 0xba, 0x14, 0xd8, 0xa0, 0x36, 0x36, 0xa8, 0x57,
	0x36, 0x08, 0x7b, 0x53, 0xf3, 0x63, 0x73, 0x96, 0x1b, 0xb1, 0xf5, 0xb1, 0xac, 0x0e, 0xde, 0x58,
	0x63, 0xe8, 0x97, 0x60, 0x4a, 0xff, 0xa1, 0xa8, 0xda, 0x44, 0x77, 0x45, 0x60, 0x36, 0x4f, 0x22,
	0x96, 0x33, 0x11, 0xaf, 0xe5, 0xc6, 0x82, 0x22, 0x9b, 0x8a, 0xa2, 0x14, 0x9a, 0x6b, 0x19, 0x06,
	0x56, 0x17, 0x8f, 0xa2, 0x8d, 0x9d, 0xf2, 0x33, 0x39, 0x49, 0xb6, 0xdb, 0x50, 0x4a, 0x11, 0x58,
	0xbd, 0xa2, 0x53, 0x75, 0x92, 0x7e, 0x0e, 0xad, 0x4c, 0x3c, 0xba, 0xfb, 0xad, 0xd5, 0x47, 0x77,
	0x81, 0x70, 0xfe, 0xea, 0x02, 0x2c, 0x6f, 0xf0, 0xbf, 0xf9, 0x97, 0x0e, 0x5e, 0xc5, 0xd0, 0x11,
	0x18, 0xbb, 0x34, 0xd9, 0x65, 0xd6, 0xe5, 0x50, 0x1f, 0x77, 0xab, 0x5e, 0xdc, 0xf9, 0x61, 0xca,
	0x73, 0xd7, 0xe8, 0x1f, 0x0d, 0x5a, 0x93, 0x24, 0xda, 0x6f, 0x63, 0xfa, 0x29, 0x18, 0x61, 0x1c,
	0x88, 0x0f, 0xc5, 0x06, 0xe4, 0x40, 0x6d, 0x46, 0xf6, 0x18, 0x1d, 0x77, 0xce, 0xe0, 0x25, 0x54,
	0x15, 0xc6, 0xaa, 0x39, 0x7a, 0x5e, 0xa1, 0xb2, 0x51, 0x23, 0xfb, 0x49, 0x1c, 0x70, 0xc4, 0x1d,
	0x9e, 0x03, 0xa5, 0xb1, 0xdf, 0x05, 0xbe, 0xaa, 0xd8, 0x40, 0xbe, 0x84, 0xaa, 0xd6, 0x30, 0x73,
	0xf7, 0x51, 0x84, 0x03, 0xed, 0xf0, 0x02, 0x29, 0x9d, 0x27, 0xdc, 0xda, 0x36, 0x8a, 0xe7, 0x40,
	0xcd, 0x64, 0x7b, 0x28, 0xb3, 0xc9, 0x47, 0x56, 0x11, 0x55, 0xb9, 0xe6, 0xf9, 0x72, 0xff, 0xd6,
	0xa0, 0xcd, 0x93, 0xf7, 0x8e, 0x2f, 0x7d, 0xfa, 0x23, 0xf4, 0x1f, 0xc4, 0x2a, 0x49, 0x45, 0x5e,
	0x7f, 0x66, 0x69, 0x78, 0xee, 0xf8, 0xfc, 0x72, 0x9a, 0x9f, 0x06, 0xd1, 0x1b, 0xe8, 0xf9, 0x2b,
	0x29, 0xd2, 0xf2, 0x50, 0xe3, 0xa3, 0x87, 0x4e, 0x62, 0xaa, 0xcc, 0xf4, 0xf3, 0x99, 0xfd, 0xab,
	0x81, 0xc9, 0x93, 0xf7, 0x93, 0x8d, 0x1f, 0xaf, 0x85, 0xea, 0x18, 0x2e, 0xdb, 0x34, 0xc0, 0x69,
	0xe8, 0xbc, 0x84, 0xa7, 0x5b, 0xd0, 0x78, 0xc6, 0x16, 0xe0, 0x48, 0x1c, 0x67, 0x86, 0x4b, 0x8a,
	0x23, 0x71, 0x9c, 0x19, 0x25, 0xa0, 0x67, 0x8f, 0x51, 0xb1, 0x9d, 0xca, 0xa4, 0xdf, 0x42, 0x27,
	0xcd, 0x3b, 0x93, 0x59, 0x3d, 0xcc, 0xf3, 0xb2, 0xd4, 0x2d, 0x3a, 0xc6, 0x8f, 0x01, 0x6a, 0x93,
	0x83, 0x20, 0x5a, 0x54, 0x0f, 0xa8, 0x8f, 0x42, 0xa7, 0x64, 0x55, 0xf7, 0xe0, 0x7c, 0xdd, 0x1c,
	0x88, 0x97, 0xfa, 0x71, 0xe6, 0x2f, 0x65, 0x98, 0xc4, 0xb7, 0x62, 0x1d, 0xc6, 0xea, 0x5b, 0x21,
	0x37, 0xa9, 0xf0, 0x83, 0x63, 0xf9, 0x47, 0x5c, 0x69, 0x36, 0xce, 0x6b, 0xfe, 0x06, 0x83, 0x9a,
	0x26, 0x8b, 0xf1, 0xe5, 0xc9, 0x8a, 0x29, 0x64, 0x4d, 0x7e, 0x4a, 0x3e, 0x4b, 0xfb, 0x1a, 0x9a,
	0x0a, 0xaa, 0x06, 0xfe, 0x2e, 0x0e, 0x85, 0x8e, 0x32, 0xab, 0x9d, 0x6d, 0xd4, 0x76, 0xf6, 0x6a,
	0x01, 0xe6, 0xf1, 0xe3, 0x4c, 0x3f, 0x83, 0x17, 0x1e, 0xb7, 0xdd, 0x85, 0x3d, 0xf1, 0xa6, 0x73,
	0xf7, 0xdd, 0x2d, 0x7b, 0x39, 0x75, 0xc9, 0x05, 0xed, 0x42, 0x9b, 0xcf, 0x7f, 0x71, 0x6c, 0xcf,
	0x26, 0x1a, 0xfd, 0x04, 0x2e, 0xeb, 0x31, 0xcc, 0x75, 0x48, 0x83, 0xf6, 0xc1, 0x7c, 0xc5, 0x6c,
	0xee, 0xdd, 0x32, 0xdb, 0x23, 0xfa, 0xd5, 0x5f, 0x1a, 0x98, 0xc7, 0x61, 0x53, 0x80, 0xd6, 0xd4,
	0x5d, 0x30, 0xee, 0x91, 0x0b, 0x65, 0xdf, 0xdf, 0x39, 0xb6, 0xc7, 0x88, 0xa6, 0x6c, 0x87, 0xcd,
	0x98, 0xc7, 0x48, 0x43, 0xd9, 0x13, 0xce, 0x14, 0xaf, 0x53, 0x13, 0x0c, 0x7b, 0xe6, 0x31, 0x4e,
	0x9a, 0xb4, 0x03, 0x4d, 0x87, 0xcf, 0xef, 0x88, 0xa1, 0xc8, 0x37, 0xf7, 0x8c, 0xbf, 0x25, 0x2d,
	0xda, 0x83, 0x8e, 0xc7, 0xef, 0xdd, 0x89, 0x8a, 0x6e, 0xab, 0x93, 0x9c, 0xb9, 0xf6, 0x6b, 0x46,
	0x3a, 0xa8, 0x32, 0x75, 0x1d, 0xf6, 0x2b, 0x31, 0x51, 0x3d, 0xb7, 0xe1, 0x6a, 0x0c, 0xcd, 0x32,
	0x93, 0x39, 0xb7, 0x27, 0x33, 0x46, 0x2e, 0x94, 0xe0, 0xeb, 0xb7, 0x8b, 0x37, 0x33, 0xa2, 0x29,
	0xf3, 0xee, 0xa5, 0x32, 0x1b, 0x0f, 0xf9, 0xdf, 0xdf, 0x0f, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff,
	0xa7, 0x75, 0x67, 0x8a, 0x1b, 0x07, 0x00, 0x00,
}
