// Code generated by protoc-gen-go. DO NOT EDIT.
// source: msg/cmsg/cmsg.proto

/*
Package cmsg is a generated protocol buffer package.

It is generated from these files:
	msg/cmsg/cmsg.proto

It has these top-level messages:
	ReqLogin
	RespLogin
	ReqJoinGame
	RespJoinGame
	ReqEnterGame
	RespEnterGame
	Rank
	SNoticeGameOver
	ReqMove
	ReqShoot
	ReqJump
	ReqGameScene
	RespGameScene
	SNoticeShoot
	SNoticeWorldChange
	SNoticeWorldPos
	Entity
	SNoticeNewEntity
	SNoticeKickOut
*/
package cmsg

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 RespLogin_Error int32

const (
	RespLogin_Invalid  RespLogin_Error = 0
	RespLogin_RPCError RespLogin_Error = 1
)

var RespLogin_Error_name = map[int32]string{
	0: "Invalid",
	1: "RPCError",
}
var RespLogin_Error_value = map[string]int32{
	"Invalid":  0,
	"RPCError": 1,
}

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

type RespJoinGame_Error int32

const (
	RespJoinGame_Invalid        RespJoinGame_Error = 0
	RespJoinGame_UserNotExisted RespJoinGame_Error = 1
	RespJoinGame_AlreadyInGame  RespJoinGame_Error = 2
)

var RespJoinGame_Error_name = map[int32]string{
	0: "Invalid",
	1: "UserNotExisted",
	2: "AlreadyInGame",
}
var RespJoinGame_Error_value = map[string]int32{
	"Invalid":        0,
	"UserNotExisted": 1,
	"AlreadyInGame":  2,
}

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

type RespEnterGame_Error int32

const (
	RespEnterGame_Invalid RespEnterGame_Error = 0
)

var RespEnterGame_Error_name = map[int32]string{
	0: "Invalid",
}
var RespEnterGame_Error_value = map[string]int32{
	"Invalid": 0,
}

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

type RespGameScene_Error int32

const (
	RespGameScene_Invalid      RespGameScene_Error = 0
	RespGameScene_GameNotExist RespGameScene_Error = 1
)

var RespGameScene_Error_name = map[int32]string{
	0: "Invalid",
	1: "GameNotExist",
}
var RespGameScene_Error_value = map[string]int32{
	"Invalid":      0,
	"GameNotExist": 1,
}

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

type SNoticeKickOut_Reason int32

const (
	SNoticeKickOut_Invalid SNoticeKickOut_Reason = 0
	SNoticeKickOut_Relogin SNoticeKickOut_Reason = 1
)

var SNoticeKickOut_Reason_name = map[int32]string{
	0: "Invalid",
	1: "Relogin",
}
var SNoticeKickOut_Reason_value = map[string]int32{
	"Invalid": 0,
	"Relogin": 1,
}

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

type ReqLogin struct {
	Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"`
}

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

func (m *ReqLogin) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

type RespLogin struct {
	Err    RespLogin_Error `protobuf:"varint,1,opt,name=err,enum=cmsg.RespLogin_Error" json:"err,omitempty"`
	UserID uint64          `protobuf:"varint,2,opt,name=userID" json:"userID,omitempty"`
	Token  string          `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"`
	InGame bool            `protobuf:"varint,4,opt,name=inGame" json:"inGame,omitempty"`
}

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

func (m *RespLogin) GetErr() RespLogin_Error {
	if m != nil {
		return m.Err
	}
	return RespLogin_Invalid
}

func (m *RespLogin) GetUserID() uint64 {
	if m != nil {
		return m.UserID
	}
	return 0
}

func (m *RespLogin) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

func (m *RespLogin) GetInGame() bool {
	if m != nil {
		return m.InGame
	}
	return false
}

type ReqJoinGame struct {
	Nickname string `protobuf:"bytes,1,opt,name=nickname" json:"nickname,omitempty"`
}

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

func (m *ReqJoinGame) GetNickname() string {
	if m != nil {
		return m.Nickname
	}
	return ""
}

type RespJoinGame struct {
	Err      RespJoinGame_Error `protobuf:"varint,1,opt,name=err,enum=cmsg.RespJoinGame_Error" json:"err,omitempty"`
	Nickname string             `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"`
}

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

func (m *RespJoinGame) GetErr() RespJoinGame_Error {
	if m != nil {
		return m.Err
	}
	return RespJoinGame_Invalid
}

func (m *RespJoinGame) GetNickname() string {
	if m != nil {
		return m.Nickname
	}
	return ""
}

type ReqEnterGame struct {
}

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

type RespEnterGame struct {
	Config      *RespEnterGame_Config `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
	EntityID    int32                 `protobuf:"varint,2,opt,name=entityID" json:"entityID,omitempty"`
	GameLeftSec int32                 `protobuf:"varint,3,opt,name=gameLeftSec" json:"gameLeftSec,omitempty"`
	Dead        bool                  `protobuf:"varint,4,opt,name=dead" json:"dead,omitempty"`
	Err         RespEnterGame_Error   `protobuf:"varint,5,opt,name=err,enum=cmsg.RespEnterGame_Error" json:"err,omitempty"`
}

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

func (m *RespEnterGame) GetConfig() *RespEnterGame_Config {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *RespEnterGame) GetEntityID() int32 {
	if m != nil {
		return m.EntityID
	}
	return 0
}

func (m *RespEnterGame) GetGameLeftSec() int32 {
	if m != nil {
		return m.GameLeftSec
	}
	return 0
}

func (m *RespEnterGame) GetDead() bool {
	if m != nil {
		return m.Dead
	}
	return false
}

func (m *RespEnterGame) GetErr() RespEnterGame_Error {
	if m != nil {
		return m.Err
	}
	return RespEnterGame_Invalid
}

type RespEnterGame_Config struct {
	BulletLiveTime    int32   `protobuf:"varint,1,opt,name=bulletLiveTime" json:"bulletLiveTime,omitempty"`
	RotationDelta     float32 `protobuf:"fixed32,2,opt,name=rotationDelta" json:"rotationDelta,omitempty"`
	EntitySpeed       int32   `protobuf:"varint,3,opt,name=entitySpeed" json:"entitySpeed,omitempty"`
	BulletSpeed       int32   `protobuf:"varint,4,opt,name=bulletSpeed" json:"bulletSpeed,omitempty"`
	NoticePosDuration int32   `protobuf:"varint,5,opt,name=noticePosDuration" json:"noticePosDuration,omitempty"`
	ProtectTime       int32   `protobuf:"varint,6,opt,name=protectTime" json:"protectTime,omitempty"`
	EntityRadius      int32   `protobuf:"varint,7,opt,name=entityRadius" json:"entityRadius,omitempty"`
}

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

func (m *RespEnterGame_Config) GetBulletLiveTime() int32 {
	if m != nil {
		return m.BulletLiveTime
	}
	return 0
}

func (m *RespEnterGame_Config) GetRotationDelta() float32 {
	if m != nil {
		return m.RotationDelta
	}
	return 0
}

func (m *RespEnterGame_Config) GetEntitySpeed() int32 {
	if m != nil {
		return m.EntitySpeed
	}
	return 0
}

func (m *RespEnterGame_Config) GetBulletSpeed() int32 {
	if m != nil {
		return m.BulletSpeed
	}
	return 0
}

func (m *RespEnterGame_Config) GetNoticePosDuration() int32 {
	if m != nil {
		return m.NoticePosDuration
	}
	return 0
}

func (m *RespEnterGame_Config) GetProtectTime() int32 {
	if m != nil {
		return m.ProtectTime
	}
	return 0
}

func (m *RespEnterGame_Config) GetEntityRadius() int32 {
	if m != nil {
		return m.EntityRadius
	}
	return 0
}

type Rank struct {
	List []*Rank_Item `protobuf:"bytes,1,rep,name=list" json:"list,omitempty"`
}

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

func (m *Rank) GetList() []*Rank_Item {
	if m != nil {
		return m.List
	}
	return nil
}

type Rank_Item struct {
	EntityID   int32  `protobuf:"varint,1,opt,name=entityID" json:"entityID,omitempty"`
	Score      int32  `protobuf:"varint,2,opt,name=score" json:"score,omitempty"`
	Rank       int32  `protobuf:"varint,3,opt,name=rank" json:"rank,omitempty"`
	KillCount  int32  `protobuf:"varint,4,opt,name=killCount" json:"killCount,omitempty"`
	HeadImgUrl string `protobuf:"bytes,5,opt,name=headImgUrl" json:"headImgUrl,omitempty"`
	Nickname   string `protobuf:"bytes,6,opt,name=nickname" json:"nickname,omitempty"`
}

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

func (m *Rank_Item) GetEntityID() int32 {
	if m != nil {
		return m.EntityID
	}
	return 0
}

func (m *Rank_Item) GetScore() int32 {
	if m != nil {
		return m.Score
	}
	return 0
}

func (m *Rank_Item) GetRank() int32 {
	if m != nil {
		return m.Rank
	}
	return 0
}

func (m *Rank_Item) GetKillCount() int32 {
	if m != nil {
		return m.KillCount
	}
	return 0
}

func (m *Rank_Item) GetHeadImgUrl() string {
	if m != nil {
		return m.HeadImgUrl
	}
	return ""
}

func (m *Rank_Item) GetNickname() string {
	if m != nil {
		return m.Nickname
	}
	return ""
}

type SNoticeGameOver struct {
	OverReason  int32                   `protobuf:"varint,1,opt,name=overReason" json:"overReason,omitempty"`
	Killer      *SNoticeGameOver_Killer `protobuf:"bytes,2,opt,name=killer" json:"killer,omitempty"`
	GameLeftSec int32                   `protobuf:"varint,3,opt,name=gameLeftSec" json:"gameLeftSec,omitempty"`
	Rank        *Rank                   `protobuf:"bytes,4,opt,name=rank" json:"rank,omitempty"`
}

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

func (m *SNoticeGameOver) GetOverReason() int32 {
	if m != nil {
		return m.OverReason
	}
	return 0
}

func (m *SNoticeGameOver) GetKiller() *SNoticeGameOver_Killer {
	if m != nil {
		return m.Killer
	}
	return nil
}

func (m *SNoticeGameOver) GetGameLeftSec() int32 {
	if m != nil {
		return m.GameLeftSec
	}
	return 0
}

func (m *SNoticeGameOver) GetRank() *Rank {
	if m != nil {
		return m.Rank
	}
	return nil
}

type SNoticeGameOver_Killer struct {
	AccountType int32  `protobuf:"varint,1,opt,name=accountType" json:"accountType,omitempty"`
	Nickname    string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"`
	HeadImgUrl  string `protobuf:"bytes,3,opt,name=headImgUrl" json:"headImgUrl,omitempty"`
	Hp          int32  `protobuf:"varint,4,opt,name=hp" json:"hp,omitempty"`
}

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

func (m *SNoticeGameOver_Killer) GetAccountType() int32 {
	if m != nil {
		return m.AccountType
	}
	return 0
}

func (m *SNoticeGameOver_Killer) GetNickname() string {
	if m != nil {
		return m.Nickname
	}
	return ""
}

func (m *SNoticeGameOver_Killer) GetHeadImgUrl() string {
	if m != nil {
		return m.HeadImgUrl
	}
	return ""
}

func (m *SNoticeGameOver_Killer) GetHp() int32 {
	if m != nil {
		return m.Hp
	}
	return 0
}

type ReqMove struct {
	PressTime      float32 `protobuf:"fixed32,1,opt,name=pressTime" json:"pressTime,omitempty"`
	TargetRotation float32 `protobuf:"fixed32,2,opt,name=targetRotation" json:"targetRotation,omitempty"`
	InputSeqID     int32   `protobuf:"varint,3,opt,name=inputSeqID" json:"inputSeqID,omitempty"`
}

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

func (m *ReqMove) GetPressTime() float32 {
	if m != nil {
		return m.PressTime
	}
	return 0
}

func (m *ReqMove) GetTargetRotation() float32 {
	if m != nil {
		return m.TargetRotation
	}
	return 0
}

func (m *ReqMove) GetInputSeqID() int32 {
	if m != nil {
		return m.InputSeqID
	}
	return 0
}

type ReqShoot struct {
}

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

type ReqJump struct {
}

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

// 请求游戏场景信息
type ReqGameScene struct {
}

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

// 断线重连，请求当前场景信息
type RespGameScene struct {
	Entities    []*Entity           `protobuf:"bytes,1,rep,name=entities" json:"entities,omitempty"`
	GameLeftSec int32               `protobuf:"varint,2,opt,name=gameLeftSec" json:"gameLeftSec,omitempty"`
	Err         RespGameScene_Error `protobuf:"varint,3,opt,name=err,enum=cmsg.RespGameScene_Error" json:"err,omitempty"`
}

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

func (m *RespGameScene) GetEntities() []*Entity {
	if m != nil {
		return m.Entities
	}
	return nil
}

func (m *RespGameScene) GetGameLeftSec() int32 {
	if m != nil {
		return m.GameLeftSec
	}
	return 0
}

func (m *RespGameScene) GetErr() RespGameScene_Error {
	if m != nil {
		return m.Err
	}
	return RespGameScene_Invalid
}

// 子弹发送
type SNoticeShoot struct {
	X               float32 `protobuf:"fixed32,1,opt,name=x" json:"x,omitempty"`
	Y               float32 `protobuf:"fixed32,2,opt,name=y" json:"y,omitempty"`
	Rotation        float32 `protobuf:"fixed32,3,opt,name=rotation" json:"rotation,omitempty"`
	BulletID        int32   `protobuf:"varint,4,opt,name=bulletID" json:"bulletID,omitempty"`
	CreatorEntityID int32   `protobuf:"varint,5,opt,name=creatorEntityID" json:"creatorEntityID,omitempty"`
}

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

func (m *SNoticeShoot) GetX() float32 {
	if m != nil {
		return m.X
	}
	return 0
}

func (m *SNoticeShoot) GetY() float32 {
	if m != nil {
		return m.Y
	}
	return 0
}

func (m *SNoticeShoot) GetRotation() float32 {
	if m != nil {
		return m.Rotation
	}
	return 0
}

func (m *SNoticeShoot) GetBulletID() int32 {
	if m != nil {
		return m.BulletID
	}
	return 0
}

func (m *SNoticeShoot) GetCreatorEntityID() int32 {
	if m != nil {
		return m.CreatorEntityID
	}
	return 0
}

type SNoticeWorldChange struct {
	DeleteBullets   []int32                      `protobuf:"varint,1,rep,packed,name=deleteBullets" json:"deleteBullets,omitempty"`
	DeleteEntities  []int32                      `protobuf:"varint,2,rep,packed,name=deleteEntities" json:"deleteEntities,omitempty"`
	ChangedEntities []*SNoticeWorldChange_Entity `protobuf:"bytes,3,rep,name=changedEntities" json:"changedEntities,omitempty"`
}

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

func (m *SNoticeWorldChange) GetDeleteBullets() []int32 {
	if m != nil {
		return m.DeleteBullets
	}
	return nil
}

func (m *SNoticeWorldChange) GetDeleteEntities() []int32 {
	if m != nil {
		return m.DeleteEntities
	}
	return nil
}

func (m *SNoticeWorldChange) GetChangedEntities() []*SNoticeWorldChange_Entity {
	if m != nil {
		return m.ChangedEntities
	}
	return nil
}

type SNoticeWorldChange_Entity struct {
	Id        int32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	Hp        int32 `protobuf:"varint,2,opt,name=hp" json:"hp,omitempty"`
	Score     int32 `protobuf:"varint,3,opt,name=score" json:"score,omitempty"`
	KillCount int32 `protobuf:"varint,4,opt,name=killCount" json:"killCount,omitempty"`
}

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

func (m *SNoticeWorldChange_Entity) GetId() int32 {
	if m != nil {
		return m.Id
	}
	return 0
}

func (m *SNoticeWorldChange_Entity) GetHp() int32 {
	if m != nil {
		return m.Hp
	}
	return 0
}

func (m *SNoticeWorldChange_Entity) GetScore() int32 {
	if m != nil {
		return m.Score
	}
	return 0
}

func (m *SNoticeWorldChange_Entity) GetKillCount() int32 {
	if m != nil {
		return m.KillCount
	}
	return 0
}

type SNoticeWorldPos struct {
	Entities             []*SNoticeWorldPos_Entity `protobuf:"bytes,1,rep,name=entities" json:"entities,omitempty"`
	LastProcessedInputID int32                     `protobuf:"varint,2,opt,name=lastProcessedInputID" json:"lastProcessedInputID,omitempty"`
}

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

func (m *SNoticeWorldPos) GetEntities() []*SNoticeWorldPos_Entity {
	if m != nil {
		return m.Entities
	}
	return nil
}

func (m *SNoticeWorldPos) GetLastProcessedInputID() int32 {
	if m != nil {
		return m.LastProcessedInputID
	}
	return 0
}

type SNoticeWorldPos_Entity struct {
	Id       int32   `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	X        float32 `protobuf:"fixed32,2,opt,name=x" json:"x,omitempty"`
	Y        float32 `protobuf:"fixed32,3,opt,name=y" json:"y,omitempty"`
	Rotation float32 `protobuf:"fixed32,4,opt,name=rotation" json:"rotation,omitempty"`
}

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

func (m *SNoticeWorldPos_Entity) GetId() int32 {
	if m != nil {
		return m.Id
	}
	return 0
}

func (m *SNoticeWorldPos_Entity) GetX() float32 {
	if m != nil {
		return m.X
	}
	return 0
}

func (m *SNoticeWorldPos_Entity) GetY() float32 {
	if m != nil {
		return m.Y
	}
	return 0
}

func (m *SNoticeWorldPos_Entity) GetRotation() float32 {
	if m != nil {
		return m.Rotation
	}
	return 0
}

type Entity struct {
	Id          int32   `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	AccountType int32   `protobuf:"varint,2,opt,name=accountType" json:"accountType,omitempty"`
	HeadImgUrl  string  `protobuf:"bytes,3,opt,name=headImgUrl" json:"headImgUrl,omitempty"`
	Rotation    float32 `protobuf:"fixed32,4,opt,name=rotation" json:"rotation,omitempty"`
	Hp          int32   `protobuf:"varint,5,opt,name=hp" json:"hp,omitempty"`
	Score       int32   `protobuf:"varint,6,opt,name=score" json:"score,omitempty"`
	KillCount   int32   `protobuf:"varint,7,opt,name=killCount" json:"killCount,omitempty"`
	Dead        bool    `protobuf:"varint,8,opt,name=dead" json:"dead,omitempty"`
	Protected   bool    `protobuf:"varint,9,opt,name=protected" json:"protected,omitempty"`
	X           float32 `protobuf:"fixed32,10,opt,name=x" json:"x,omitempty"`
	Y           float32 `protobuf:"fixed32,11,opt,name=y" json:"y,omitempty"`
	Nickname    string  `protobuf:"bytes,12,opt,name=nickname" json:"nickname,omitempty"`
}

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

func (m *Entity) GetId() int32 {
	if m != nil {
		return m.Id
	}
	return 0
}

func (m *Entity) GetAccountType() int32 {
	if m != nil {
		return m.AccountType
	}
	return 0
}

func (m *Entity) GetHeadImgUrl() string {
	if m != nil {
		return m.HeadImgUrl
	}
	return ""
}

func (m *Entity) GetRotation() float32 {
	if m != nil {
		return m.Rotation
	}
	return 0
}

func (m *Entity) GetHp() int32 {
	if m != nil {
		return m.Hp
	}
	return 0
}

func (m *Entity) GetScore() int32 {
	if m != nil {
		return m.Score
	}
	return 0
}

func (m *Entity) GetKillCount() int32 {
	if m != nil {
		return m.KillCount
	}
	return 0
}

func (m *Entity) GetDead() bool {
	if m != nil {
		return m.Dead
	}
	return false
}

func (m *Entity) GetProtected() bool {
	if m != nil {
		return m.Protected
	}
	return false
}

func (m *Entity) GetX() float32 {
	if m != nil {
		return m.X
	}
	return 0
}

func (m *Entity) GetY() float32 {
	if m != nil {
		return m.Y
	}
	return 0
}

func (m *Entity) GetNickname() string {
	if m != nil {
		return m.Nickname
	}
	return ""
}

type SNoticeNewEntity struct {
	Entity *Entity `protobuf:"bytes,1,opt,name=entity" json:"entity,omitempty"`
}

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

func (m *SNoticeNewEntity) GetEntity() *Entity {
	if m != nil {
		return m.Entity
	}
	return nil
}

// 通知被T出
type SNoticeKickOut struct {
	Reason SNoticeKickOut_Reason `protobuf:"varint,1,opt,name=reason,enum=cmsg.SNoticeKickOut_Reason" json:"reason,omitempty"`
}

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

func (m *SNoticeKickOut) GetReason() SNoticeKickOut_Reason {
	if m != nil {
		return m.Reason
	}
	return SNoticeKickOut_Invalid
}

func init() {
	proto.RegisterType((*ReqLogin)(nil), "cmsg.ReqLogin")
	proto.RegisterType((*RespLogin)(nil), "cmsg.RespLogin")
	proto.RegisterType((*ReqJoinGame)(nil), "cmsg.ReqJoinGame")
	proto.RegisterType((*RespJoinGame)(nil), "cmsg.RespJoinGame")
	proto.RegisterType((*ReqEnterGame)(nil), "cmsg.ReqEnterGame")
	proto.RegisterType((*RespEnterGame)(nil), "cmsg.RespEnterGame")
	proto.RegisterType((*RespEnterGame_Config)(nil), "cmsg.RespEnterGame.Config")
	proto.RegisterType((*Rank)(nil), "cmsg.Rank")
	proto.RegisterType((*Rank_Item)(nil), "cmsg.Rank.Item")
	proto.RegisterType((*SNoticeGameOver)(nil), "cmsg.SNoticeGameOver")
	proto.RegisterType((*SNoticeGameOver_Killer)(nil), "cmsg.SNoticeGameOver.Killer")
	proto.RegisterType((*ReqMove)(nil), "cmsg.ReqMove")
	proto.RegisterType((*ReqShoot)(nil), "cmsg.ReqShoot")
	proto.RegisterType((*ReqJump)(nil), "cmsg.ReqJump")
	proto.RegisterType((*ReqGameScene)(nil), "cmsg.ReqGameScene")
	proto.RegisterType((*RespGameScene)(nil), "cmsg.RespGameScene")
	proto.RegisterType((*SNoticeShoot)(nil), "cmsg.SNoticeShoot")
	proto.RegisterType((*SNoticeWorldChange)(nil), "cmsg.SNoticeWorldChange")
	proto.RegisterType((*SNoticeWorldChange_Entity)(nil), "cmsg.SNoticeWorldChange.Entity")
	proto.RegisterType((*SNoticeWorldPos)(nil), "cmsg.SNoticeWorldPos")
	proto.RegisterType((*SNoticeWorldPos_Entity)(nil), "cmsg.SNoticeWorldPos.Entity")
	proto.RegisterType((*Entity)(nil), "cmsg.Entity")
	proto.RegisterType((*SNoticeNewEntity)(nil), "cmsg.SNoticeNewEntity")
	proto.RegisterType((*SNoticeKickOut)(nil), "cmsg.SNoticeKickOut")
	proto.RegisterEnum("cmsg.RespLogin_Error", RespLogin_Error_name, RespLogin_Error_value)
	proto.RegisterEnum("cmsg.RespJoinGame_Error", RespJoinGame_Error_name, RespJoinGame_Error_value)
	proto.RegisterEnum("cmsg.RespEnterGame_Error", RespEnterGame_Error_name, RespEnterGame_Error_value)
	proto.RegisterEnum("cmsg.RespGameScene_Error", RespGameScene_Error_name, RespGameScene_Error_value)
	proto.RegisterEnum("cmsg.SNoticeKickOut_Reason", SNoticeKickOut_Reason_name, SNoticeKickOut_Reason_value)
}

func init() { proto.RegisterFile("msg/cmsg/cmsg.proto", fileDescriptor0) }

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