// Code generated by protoc-gen-go. DO NOT EDIT.
// source: sdk_ws/ws.proto

package server_api_params

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 GroupInfo struct {
	GroupID              string   `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
	GroupName            string   `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"`
	Notification         string   `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"`
	Introduction         string   `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"`
	FaceURL              string   `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"`
	OwnerUserID          string   `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"`
	CreateTime           uint32   `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"`
	MemberCount          uint32   `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"`
	Ex                   string   `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"`
	Status               int32    `protobuf:"varint,10,opt,name=status" json:"status,omitempty"`
	CreatorUserID        string   `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"`
	GroupType            int32    `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GroupInfo) Reset()         { *m = GroupInfo{} }
func (m *GroupInfo) String() string { return proto.CompactTextString(m) }
func (*GroupInfo) ProtoMessage()    {}
func (*GroupInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{0}
}
func (m *GroupInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupInfo.Unmarshal(m, b)
}
func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic)
}
func (dst *GroupInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupInfo.Merge(dst, src)
}
func (m *GroupInfo) XXX_Size() int {
	return xxx_messageInfo_GroupInfo.Size(m)
}
func (m *GroupInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupInfo.DiscardUnknown(m)
}

var xxx_messageInfo_GroupInfo proto.InternalMessageInfo

func (m *GroupInfo) GetGroupID() string {
	if m != nil {
		return m.GroupID
	}
	return ""
}

func (m *GroupInfo) GetGroupName() string {
	if m != nil {
		return m.GroupName
	}
	return ""
}

func (m *GroupInfo) GetNotification() string {
	if m != nil {
		return m.Notification
	}
	return ""
}

func (m *GroupInfo) GetIntroduction() string {
	if m != nil {
		return m.Introduction
	}
	return ""
}

func (m *GroupInfo) GetFaceURL() string {
	if m != nil {
		return m.FaceURL
	}
	return ""
}

func (m *GroupInfo) GetOwnerUserID() string {
	if m != nil {
		return m.OwnerUserID
	}
	return ""
}

func (m *GroupInfo) GetCreateTime() uint32 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *GroupInfo) GetMemberCount() uint32 {
	if m != nil {
		return m.MemberCount
	}
	return 0
}

func (m *GroupInfo) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

func (m *GroupInfo) GetStatus() int32 {
	if m != nil {
		return m.Status
	}
	return 0
}

func (m *GroupInfo) GetCreatorUserID() string {
	if m != nil {
		return m.CreatorUserID
	}
	return ""
}

func (m *GroupInfo) GetGroupType() int32 {
	if m != nil {
		return m.GroupType
	}
	return 0
}

type GroupMemberFullInfo struct {
	GroupID              string   `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"`
	UserID               string   `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"`
	RoleLevel            int32    `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"`
	JoinTime             int64    `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"`
	Nickname             string   `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"`
	FaceURL              string   `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"`
	AppMangerLevel       int32    `protobuf:"varint,7,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"`
	JoinSource           int32    `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"`
	OperatorUserID       string   `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"`
	Ex                   string   `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GroupMemberFullInfo) Reset()         { *m = GroupMemberFullInfo{} }
func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) }
func (*GroupMemberFullInfo) ProtoMessage()    {}
func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{1}
}
func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b)
}
func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic)
}
func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src)
}
func (m *GroupMemberFullInfo) XXX_Size() int {
	return xxx_messageInfo_GroupMemberFullInfo.Size(m)
}
func (m *GroupMemberFullInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m)
}

var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo

func (m *GroupMemberFullInfo) GetGroupID() string {
	if m != nil {
		return m.GroupID
	}
	return ""
}

func (m *GroupMemberFullInfo) GetUserID() string {
	if m != nil {
		return m.UserID
	}
	return ""
}

func (m *GroupMemberFullInfo) GetRoleLevel() int32 {
	if m != nil {
		return m.RoleLevel
	}
	return 0
}

func (m *GroupMemberFullInfo) GetJoinTime() int64 {
	if m != nil {
		return m.JoinTime
	}
	return 0
}

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

func (m *GroupMemberFullInfo) GetFaceURL() string {
	if m != nil {
		return m.FaceURL
	}
	return ""
}

func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 {
	if m != nil {
		return m.AppMangerLevel
	}
	return 0
}

func (m *GroupMemberFullInfo) GetJoinSource() int32 {
	if m != nil {
		return m.JoinSource
	}
	return 0
}

func (m *GroupMemberFullInfo) GetOperatorUserID() string {
	if m != nil {
		return m.OperatorUserID
	}
	return ""
}

func (m *GroupMemberFullInfo) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

type PublicUserInfo struct {
	UserID               string   `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
	Nickname             string   `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"`
	FaceURL              string   `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"`
	Gender               int32    `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"`
	AppMangerLevel       int32    `protobuf:"varint,5,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PublicUserInfo) Reset()         { *m = PublicUserInfo{} }
func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) }
func (*PublicUserInfo) ProtoMessage()    {}
func (*PublicUserInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{2}
}
func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b)
}
func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic)
}
func (dst *PublicUserInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PublicUserInfo.Merge(dst, src)
}
func (m *PublicUserInfo) XXX_Size() int {
	return xxx_messageInfo_PublicUserInfo.Size(m)
}
func (m *PublicUserInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_PublicUserInfo.DiscardUnknown(m)
}

var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo

func (m *PublicUserInfo) GetUserID() string {
	if m != nil {
		return m.UserID
	}
	return ""
}

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

func (m *PublicUserInfo) GetFaceURL() string {
	if m != nil {
		return m.FaceURL
	}
	return ""
}

func (m *PublicUserInfo) GetGender() int32 {
	if m != nil {
		return m.Gender
	}
	return 0
}

func (m *PublicUserInfo) GetAppMangerLevel() int32 {
	if m != nil {
		return m.AppMangerLevel
	}
	return 0
}

type UserInfo struct {
	UserID               string   `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
	Nickname             string   `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"`
	FaceURL              string   `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"`
	Gender               int32    `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"`
	PhoneNumber          string   `protobuf:"bytes,5,opt,name=phoneNumber" json:"phoneNumber,omitempty"`
	Birth                uint32   `protobuf:"varint,6,opt,name=birth" json:"birth,omitempty"`
	Email                string   `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"`
	Ex                   string   `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"`
	CreateTime           uint32   `protobuf:"varint,9,opt,name=createTime" json:"createTime,omitempty"`
	AppMangerLevel       int32    `protobuf:"varint,10,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserInfo) Reset()         { *m = UserInfo{} }
func (m *UserInfo) String() string { return proto.CompactTextString(m) }
func (*UserInfo) ProtoMessage()    {}
func (*UserInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{3}
}
func (m *UserInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserInfo.Unmarshal(m, b)
}
func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic)
}
func (dst *UserInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserInfo.Merge(dst, src)
}
func (m *UserInfo) XXX_Size() int {
	return xxx_messageInfo_UserInfo.Size(m)
}
func (m *UserInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_UserInfo.DiscardUnknown(m)
}

var xxx_messageInfo_UserInfo proto.InternalMessageInfo

func (m *UserInfo) GetUserID() string {
	if m != nil {
		return m.UserID
	}
	return ""
}

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

func (m *UserInfo) GetFaceURL() string {
	if m != nil {
		return m.FaceURL
	}
	return ""
}

func (m *UserInfo) GetGender() int32 {
	if m != nil {
		return m.Gender
	}
	return 0
}

func (m *UserInfo) GetPhoneNumber() string {
	if m != nil {
		return m.PhoneNumber
	}
	return ""
}

func (m *UserInfo) GetBirth() uint32 {
	if m != nil {
		return m.Birth
	}
	return 0
}

func (m *UserInfo) GetEmail() string {
	if m != nil {
		return m.Email
	}
	return ""
}

func (m *UserInfo) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

func (m *UserInfo) GetCreateTime() uint32 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *UserInfo) GetAppMangerLevel() int32 {
	if m != nil {
		return m.AppMangerLevel
	}
	return 0
}

type FriendInfo struct {
	OwnerUserID          string    `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"`
	Remark               string    `protobuf:"bytes,2,opt,name=remark" json:"remark,omitempty"`
	CreateTime           uint32    `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"`
	FriendUser           *UserInfo `protobuf:"bytes,4,opt,name=friendUser" json:"friendUser,omitempty"`
	AddSource            int32     `protobuf:"varint,5,opt,name=addSource" json:"addSource,omitempty"`
	OperatorUserID       string    `protobuf:"bytes,6,opt,name=operatorUserID" json:"operatorUserID,omitempty"`
	Ex                   string    `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *FriendInfo) Reset()         { *m = FriendInfo{} }
func (m *FriendInfo) String() string { return proto.CompactTextString(m) }
func (*FriendInfo) ProtoMessage()    {}
func (*FriendInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{4}
}
func (m *FriendInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendInfo.Unmarshal(m, b)
}
func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic)
}
func (dst *FriendInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendInfo.Merge(dst, src)
}
func (m *FriendInfo) XXX_Size() int {
	return xxx_messageInfo_FriendInfo.Size(m)
}
func (m *FriendInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendInfo.DiscardUnknown(m)
}

var xxx_messageInfo_FriendInfo proto.InternalMessageInfo

func (m *FriendInfo) GetOwnerUserID() string {
	if m != nil {
		return m.OwnerUserID
	}
	return ""
}

func (m *FriendInfo) GetRemark() string {
	if m != nil {
		return m.Remark
	}
	return ""
}

func (m *FriendInfo) GetCreateTime() uint32 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *FriendInfo) GetFriendUser() *UserInfo {
	if m != nil {
		return m.FriendUser
	}
	return nil
}

func (m *FriendInfo) GetAddSource() int32 {
	if m != nil {
		return m.AddSource
	}
	return 0
}

func (m *FriendInfo) GetOperatorUserID() string {
	if m != nil {
		return m.OperatorUserID
	}
	return ""
}

func (m *FriendInfo) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

type BlackInfo struct {
	OwnerUserID          string          `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"`
	CreateTime           uint32          `protobuf:"varint,2,opt,name=createTime" json:"createTime,omitempty"`
	BlackUserInfo        *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo" json:"blackUserInfo,omitempty"`
	AddSource            int32           `protobuf:"varint,4,opt,name=addSource" json:"addSource,omitempty"`
	OperatorUserID       string          `protobuf:"bytes,5,opt,name=operatorUserID" json:"operatorUserID,omitempty"`
	Ex                   string          `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *BlackInfo) Reset()         { *m = BlackInfo{} }
func (m *BlackInfo) String() string { return proto.CompactTextString(m) }
func (*BlackInfo) ProtoMessage()    {}
func (*BlackInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{5}
}
func (m *BlackInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BlackInfo.Unmarshal(m, b)
}
func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic)
}
func (dst *BlackInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BlackInfo.Merge(dst, src)
}
func (m *BlackInfo) XXX_Size() int {
	return xxx_messageInfo_BlackInfo.Size(m)
}
func (m *BlackInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_BlackInfo.DiscardUnknown(m)
}

var xxx_messageInfo_BlackInfo proto.InternalMessageInfo

func (m *BlackInfo) GetOwnerUserID() string {
	if m != nil {
		return m.OwnerUserID
	}
	return ""
}

func (m *BlackInfo) GetCreateTime() uint32 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *BlackInfo) GetBlackUserInfo() *PublicUserInfo {
	if m != nil {
		return m.BlackUserInfo
	}
	return nil
}

func (m *BlackInfo) GetAddSource() int32 {
	if m != nil {
		return m.AddSource
	}
	return 0
}

func (m *BlackInfo) GetOperatorUserID() string {
	if m != nil {
		return m.OperatorUserID
	}
	return ""
}

func (m *BlackInfo) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

type GroupRequest struct {
	UserInfo             *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"`
	GroupInfo            *GroupInfo      `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"`
	HandleResult         string          `protobuf:"bytes,3,opt,name=handleResult" json:"handleResult,omitempty"`
	ReqMsg               string          `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"`
	HandleMsg            string          `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"`
	ReqTime              uint32          `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"`
	HandleUserID         string          `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"`
	HandleTime           uint32          `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"`
	Ex                   string          `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *GroupRequest) Reset()         { *m = GroupRequest{} }
func (m *GroupRequest) String() string { return proto.CompactTextString(m) }
func (*GroupRequest) ProtoMessage()    {}
func (*GroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{6}
}
func (m *GroupRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupRequest.Unmarshal(m, b)
}
func (m *GroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupRequest.Marshal(b, m, deterministic)
}
func (dst *GroupRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupRequest.Merge(dst, src)
}
func (m *GroupRequest) XXX_Size() int {
	return xxx_messageInfo_GroupRequest.Size(m)
}
func (m *GroupRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GroupRequest proto.InternalMessageInfo

func (m *GroupRequest) GetUserInfo() *PublicUserInfo {
	if m != nil {
		return m.UserInfo
	}
	return nil
}

func (m *GroupRequest) GetGroupInfo() *GroupInfo {
	if m != nil {
		return m.GroupInfo
	}
	return nil
}

func (m *GroupRequest) GetHandleResult() string {
	if m != nil {
		return m.HandleResult
	}
	return ""
}

func (m *GroupRequest) GetReqMsg() string {
	if m != nil {
		return m.ReqMsg
	}
	return ""
}

func (m *GroupRequest) GetHandleMsg() string {
	if m != nil {
		return m.HandleMsg
	}
	return ""
}

func (m *GroupRequest) GetReqTime() uint32 {
	if m != nil {
		return m.ReqTime
	}
	return 0
}

func (m *GroupRequest) GetHandleUserID() string {
	if m != nil {
		return m.HandleUserID
	}
	return ""
}

func (m *GroupRequest) GetHandleTime() uint32 {
	if m != nil {
		return m.HandleTime
	}
	return 0
}

func (m *GroupRequest) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

type FriendRequest struct {
	FromUserID           string   `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"`
	FromNickname         string   `protobuf:"bytes,2,opt,name=fromNickname" json:"fromNickname,omitempty"`
	FromFaceURL          string   `protobuf:"bytes,3,opt,name=fromFaceURL" json:"fromFaceURL,omitempty"`
	FromGender           int32    `protobuf:"varint,4,opt,name=fromGender" json:"fromGender,omitempty"`
	ToUserID             string   `protobuf:"bytes,5,opt,name=toUserID" json:"toUserID,omitempty"`
	ToNickname           string   `protobuf:"bytes,6,opt,name=toNickname" json:"toNickname,omitempty"`
	ToFaceURL            string   `protobuf:"bytes,7,opt,name=toFaceURL" json:"toFaceURL,omitempty"`
	ToGender             int32    `protobuf:"varint,8,opt,name=toGender" json:"toGender,omitempty"`
	HandleResult         int32    `protobuf:"varint,9,opt,name=handleResult" json:"handleResult,omitempty"`
	ReqMsg               string   `protobuf:"bytes,10,opt,name=reqMsg" json:"reqMsg,omitempty"`
	CreateTime           uint32   `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"`
	HandlerUserID        string   `protobuf:"bytes,12,opt,name=handlerUserID" json:"handlerUserID,omitempty"`
	HandleMsg            string   `protobuf:"bytes,13,opt,name=handleMsg" json:"handleMsg,omitempty"`
	HandleTime           uint32   `protobuf:"varint,14,opt,name=handleTime" json:"handleTime,omitempty"`
	Ex                   string   `protobuf:"bytes,15,opt,name=ex" json:"ex,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FriendRequest) Reset()         { *m = FriendRequest{} }
func (m *FriendRequest) String() string { return proto.CompactTextString(m) }
func (*FriendRequest) ProtoMessage()    {}
func (*FriendRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{7}
}
func (m *FriendRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendRequest.Unmarshal(m, b)
}
func (m *FriendRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendRequest.Marshal(b, m, deterministic)
}
func (dst *FriendRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendRequest.Merge(dst, src)
}
func (m *FriendRequest) XXX_Size() int {
	return xxx_messageInfo_FriendRequest.Size(m)
}
func (m *FriendRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendRequest.DiscardUnknown(m)
}

var xxx_messageInfo_FriendRequest proto.InternalMessageInfo

func (m *FriendRequest) GetFromUserID() string {
	if m != nil {
		return m.FromUserID
	}
	return ""
}

func (m *FriendRequest) GetFromNickname() string {
	if m != nil {
		return m.FromNickname
	}
	return ""
}

func (m *FriendRequest) GetFromFaceURL() string {
	if m != nil {
		return m.FromFaceURL
	}
	return ""
}

func (m *FriendRequest) GetFromGender() int32 {
	if m != nil {
		return m.FromGender
	}
	return 0
}

func (m *FriendRequest) GetToUserID() string {
	if m != nil {
		return m.ToUserID
	}
	return ""
}

func (m *FriendRequest) GetToNickname() string {
	if m != nil {
		return m.ToNickname
	}
	return ""
}

func (m *FriendRequest) GetToFaceURL() string {
	if m != nil {
		return m.ToFaceURL
	}
	return ""
}

func (m *FriendRequest) GetToGender() int32 {
	if m != nil {
		return m.ToGender
	}
	return 0
}

func (m *FriendRequest) GetHandleResult() int32 {
	if m != nil {
		return m.HandleResult
	}
	return 0
}

func (m *FriendRequest) GetReqMsg() string {
	if m != nil {
		return m.ReqMsg
	}
	return ""
}

func (m *FriendRequest) GetCreateTime() uint32 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *FriendRequest) GetHandlerUserID() string {
	if m != nil {
		return m.HandlerUserID
	}
	return ""
}

func (m *FriendRequest) GetHandleMsg() string {
	if m != nil {
		return m.HandleMsg
	}
	return ""
}

func (m *FriendRequest) GetHandleTime() uint32 {
	if m != nil {
		return m.HandleTime
	}
	return 0
}

func (m *FriendRequest) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

type PullMessageBySeqListResp struct {
	ErrCode              int32           `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
	ErrMsg               string          `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
	MaxSeq               int64           `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"`
	MinSeq               int64           `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"`
	SingleUserMsg        []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"`
	GroupUserMsg         []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *PullMessageBySeqListResp) Reset()         { *m = PullMessageBySeqListResp{} }
func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListResp) ProtoMessage()    {}
func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{8}
}
func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b)
}
func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic)
}
func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src)
}
func (m *PullMessageBySeqListResp) XXX_Size() int {
	return xxx_messageInfo_PullMessageBySeqListResp.Size(m)
}
func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() {
	xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m)
}

var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo

func (m *PullMessageBySeqListResp) GetErrCode() int32 {
	if m != nil {
		return m.ErrCode
	}
	return 0
}

func (m *PullMessageBySeqListResp) GetErrMsg() string {
	if m != nil {
		return m.ErrMsg
	}
	return ""
}

func (m *PullMessageBySeqListResp) GetMaxSeq() int64 {
	if m != nil {
		return m.MaxSeq
	}
	return 0
}

func (m *PullMessageBySeqListResp) GetMinSeq() int64 {
	if m != nil {
		return m.MinSeq
	}
	return 0
}

func (m *PullMessageBySeqListResp) GetSingleUserMsg() []*GatherFormat {
	if m != nil {
		return m.SingleUserMsg
	}
	return nil
}

func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat {
	if m != nil {
		return m.GroupUserMsg
	}
	return nil
}

type PullMessageBySeqListReq struct {
	UserID               string   `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
	OperationID          string   `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"`
	SeqList              []int64  `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PullMessageBySeqListReq) Reset()         { *m = PullMessageBySeqListReq{} }
func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListReq) ProtoMessage()    {}
func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{9}
}
func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b)
}
func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic)
}
func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src)
}
func (m *PullMessageBySeqListReq) XXX_Size() int {
	return xxx_messageInfo_PullMessageBySeqListReq.Size(m)
}
func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() {
	xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m)
}

var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo

func (m *PullMessageBySeqListReq) GetUserID() string {
	if m != nil {
		return m.UserID
	}
	return ""
}

func (m *PullMessageBySeqListReq) GetOperationID() string {
	if m != nil {
		return m.OperationID
	}
	return ""
}

func (m *PullMessageBySeqListReq) GetSeqList() []int64 {
	if m != nil {
		return m.SeqList
	}
	return nil
}

type PullMessageReq struct {
	UserID               string   `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
	SeqBegin             int64    `protobuf:"varint,2,opt,name=seqBegin" json:"seqBegin,omitempty"`
	SeqEnd               int64    `protobuf:"varint,3,opt,name=seqEnd" json:"seqEnd,omitempty"`
	OperationID          string   `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PullMessageReq) Reset()         { *m = PullMessageReq{} }
func (m *PullMessageReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageReq) ProtoMessage()    {}
func (*PullMessageReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{10}
}
func (m *PullMessageReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PullMessageReq.Unmarshal(m, b)
}
func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic)
}
func (dst *PullMessageReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PullMessageReq.Merge(dst, src)
}
func (m *PullMessageReq) XXX_Size() int {
	return xxx_messageInfo_PullMessageReq.Size(m)
}
func (m *PullMessageReq) XXX_DiscardUnknown() {
	xxx_messageInfo_PullMessageReq.DiscardUnknown(m)
}

var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo

func (m *PullMessageReq) GetUserID() string {
	if m != nil {
		return m.UserID
	}
	return ""
}

func (m *PullMessageReq) GetSeqBegin() int64 {
	if m != nil {
		return m.SeqBegin
	}
	return 0
}

func (m *PullMessageReq) GetSeqEnd() int64 {
	if m != nil {
		return m.SeqEnd
	}
	return 0
}

func (m *PullMessageReq) GetOperationID() string {
	if m != nil {
		return m.OperationID
	}
	return ""
}

type PullMessageResp struct {
	ErrCode              int32           `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
	ErrMsg               string          `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
	MaxSeq               int64           `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"`
	MinSeq               int64           `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"`
	SingleUserMsg        []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"`
	GroupUserMsg         []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *PullMessageResp) Reset()         { *m = PullMessageResp{} }
func (m *PullMessageResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageResp) ProtoMessage()    {}
func (*PullMessageResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{11}
}
func (m *PullMessageResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PullMessageResp.Unmarshal(m, b)
}
func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic)
}
func (dst *PullMessageResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PullMessageResp.Merge(dst, src)
}
func (m *PullMessageResp) XXX_Size() int {
	return xxx_messageInfo_PullMessageResp.Size(m)
}
func (m *PullMessageResp) XXX_DiscardUnknown() {
	xxx_messageInfo_PullMessageResp.DiscardUnknown(m)
}

var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo

func (m *PullMessageResp) GetErrCode() int32 {
	if m != nil {
		return m.ErrCode
	}
	return 0
}

func (m *PullMessageResp) GetErrMsg() string {
	if m != nil {
		return m.ErrMsg
	}
	return ""
}

func (m *PullMessageResp) GetMaxSeq() int64 {
	if m != nil {
		return m.MaxSeq
	}
	return 0
}

func (m *PullMessageResp) GetMinSeq() int64 {
	if m != nil {
		return m.MinSeq
	}
	return 0
}

func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat {
	if m != nil {
		return m.SingleUserMsg
	}
	return nil
}

func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat {
	if m != nil {
		return m.GroupUserMsg
	}
	return nil
}

type GetMaxAndMinSeqReq struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetMaxAndMinSeqReq) Reset()         { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage()    {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{12}
}
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
}
func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic)
}
func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src)
}
func (m *GetMaxAndMinSeqReq) XXX_Size() int {
	return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m)
}
func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() {
	xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m)
}

var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo

type GetMaxAndMinSeqResp struct {
	MaxSeq               int64    `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"`
	MinSeq               int64    `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetMaxAndMinSeqResp) Reset()         { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage()    {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{13}
}
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
}
func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic)
}
func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src)
}
func (m *GetMaxAndMinSeqResp) XXX_Size() int {
	return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m)
}
func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() {
	xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m)
}

var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo

func (m *GetMaxAndMinSeqResp) GetMaxSeq() int64 {
	if m != nil {
		return m.MaxSeq
	}
	return 0
}

func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 {
	if m != nil {
		return m.MinSeq
	}
	return 0
}

type GatherFormat struct {
	// @inject_tag: json:"id"
	Id string `protobuf:"bytes,1,opt,name=id" json:"id"`
	// @inject_tag: json:"list"
	List                 []*MsgData `protobuf:"bytes,2,rep,name=list" json:"list"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *GatherFormat) Reset()         { *m = GatherFormat{} }
func (m *GatherFormat) String() string { return proto.CompactTextString(m) }
func (*GatherFormat) ProtoMessage()    {}
func (*GatherFormat) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{14}
}
func (m *GatherFormat) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GatherFormat.Unmarshal(m, b)
}
func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic)
}
func (dst *GatherFormat) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GatherFormat.Merge(dst, src)
}
func (m *GatherFormat) XXX_Size() int {
	return xxx_messageInfo_GatherFormat.Size(m)
}
func (m *GatherFormat) XXX_DiscardUnknown() {
	xxx_messageInfo_GatherFormat.DiscardUnknown(m)
}

var xxx_messageInfo_GatherFormat proto.InternalMessageInfo

func (m *GatherFormat) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

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

type UserSendMsgResp struct {
	ServerMsgID          string   `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"`
	ClientMsgID          string   `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,omitempty"`
	SendTime             int64    `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserSendMsgResp) Reset()         { *m = UserSendMsgResp{} }
func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgResp) ProtoMessage()    {}
func (*UserSendMsgResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{15}
}
func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b)
}
func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic)
}
func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserSendMsgResp.Merge(dst, src)
}
func (m *UserSendMsgResp) XXX_Size() int {
	return xxx_messageInfo_UserSendMsgResp.Size(m)
}
func (m *UserSendMsgResp) XXX_DiscardUnknown() {
	xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m)
}

var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo

func (m *UserSendMsgResp) GetServerMsgID() string {
	if m != nil {
		return m.ServerMsgID
	}
	return ""
}

func (m *UserSendMsgResp) GetClientMsgID() string {
	if m != nil {
		return m.ClientMsgID
	}
	return ""
}

func (m *UserSendMsgResp) GetSendTime() int64 {
	if m != nil {
		return m.SendTime
	}
	return 0
}

type MsgData struct {
	SendID               string           `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"`
	RecvID               string           `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"`
	GroupID              string           `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"`
	ClientMsgID          string           `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"`
	ServerMsgID          string           `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"`
	SenderPlatformID     int32            `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"`
	SenderNickname       string           `protobuf:"bytes,7,opt,name=senderNickname" json:"senderNickname,omitempty"`
	SenderFaceURL        string           `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"`
	SessionType          int32            `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"`
	MsgFrom              int32            `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"`
	ContentType          int32            `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"`
	Content              []byte           `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"`
	ForceList            []string         `protobuf:"bytes,13,rep,name=forceList" json:"forceList,omitempty"`
	Seq                  int64            `protobuf:"varint,14,opt,name=seq" json:"seq,omitempty"`
	SendTime             int64            `protobuf:"varint,15,opt,name=sendTime" json:"sendTime,omitempty"`
	CreateTime           int64            `protobuf:"varint,16,opt,name=createTime" json:"createTime,omitempty"`
	Options              map[string]bool  `protobuf:"bytes,17,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
	OfflinePushInfo      *OfflinePushInfo `protobuf:"bytes,18,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *MsgData) Reset()         { *m = MsgData{} }
func (m *MsgData) String() string { return proto.CompactTextString(m) }
func (*MsgData) ProtoMessage()    {}
func (*MsgData) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{16}
}
func (m *MsgData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MsgData.Unmarshal(m, b)
}
func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MsgData.Marshal(b, m, deterministic)
}
func (dst *MsgData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MsgData.Merge(dst, src)
}
func (m *MsgData) XXX_Size() int {
	return xxx_messageInfo_MsgData.Size(m)
}
func (m *MsgData) XXX_DiscardUnknown() {
	xxx_messageInfo_MsgData.DiscardUnknown(m)
}

var xxx_messageInfo_MsgData proto.InternalMessageInfo

func (m *MsgData) GetSendID() string {
	if m != nil {
		return m.SendID
	}
	return ""
}

func (m *MsgData) GetRecvID() string {
	if m != nil {
		return m.RecvID
	}
	return ""
}

func (m *MsgData) GetGroupID() string {
	if m != nil {
		return m.GroupID
	}
	return ""
}

func (m *MsgData) GetClientMsgID() string {
	if m != nil {
		return m.ClientMsgID
	}
	return ""
}

func (m *MsgData) GetServerMsgID() string {
	if m != nil {
		return m.ServerMsgID
	}
	return ""
}

func (m *MsgData) GetSenderPlatformID() int32 {
	if m != nil {
		return m.SenderPlatformID
	}
	return 0
}

func (m *MsgData) GetSenderNickname() string {
	if m != nil {
		return m.SenderNickname
	}
	return ""
}

func (m *MsgData) GetSenderFaceURL() string {
	if m != nil {
		return m.SenderFaceURL
	}
	return ""
}

func (m *MsgData) GetSessionType() int32 {
	if m != nil {
		return m.SessionType
	}
	return 0
}

func (m *MsgData) GetMsgFrom() int32 {
	if m != nil {
		return m.MsgFrom
	}
	return 0
}

func (m *MsgData) GetContentType() int32 {
	if m != nil {
		return m.ContentType
	}
	return 0
}

func (m *MsgData) GetContent() []byte {
	if m != nil {
		return m.Content
	}
	return nil
}

func (m *MsgData) GetForceList() []string {
	if m != nil {
		return m.ForceList
	}
	return nil
}

func (m *MsgData) GetSeq() int64 {
	if m != nil {
		return m.Seq
	}
	return 0
}

func (m *MsgData) GetSendTime() int64 {
	if m != nil {
		return m.SendTime
	}
	return 0
}

func (m *MsgData) GetCreateTime() int64 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *MsgData) GetOptions() map[string]bool {
	if m != nil {
		return m.Options
	}
	return nil
}

func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo {
	if m != nil {
		return m.OfflinePushInfo
	}
	return nil
}

type OfflinePushInfo struct {
	Title                string   `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
	Desc                 string   `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"`
	Ex                   string   `protobuf:"bytes,3,opt,name=ex" json:"ex,omitempty"`
	IOSPushSound         string   `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"`
	IOSBadgeCount        bool     `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *OfflinePushInfo) Reset()         { *m = OfflinePushInfo{} }
func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) }
func (*OfflinePushInfo) ProtoMessage()    {}
func (*OfflinePushInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{17}
}
func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b)
}
func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic)
}
func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OfflinePushInfo.Merge(dst, src)
}
func (m *OfflinePushInfo) XXX_Size() int {
	return xxx_messageInfo_OfflinePushInfo.Size(m)
}
func (m *OfflinePushInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m)
}

var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo

func (m *OfflinePushInfo) GetTitle() string {
	if m != nil {
		return m.Title
	}
	return ""
}

func (m *OfflinePushInfo) GetDesc() string {
	if m != nil {
		return m.Desc
	}
	return ""
}

func (m *OfflinePushInfo) GetEx() string {
	if m != nil {
		return m.Ex
	}
	return ""
}

func (m *OfflinePushInfo) GetIOSPushSound() string {
	if m != nil {
		return m.IOSPushSound
	}
	return ""
}

func (m *OfflinePushInfo) GetIOSBadgeCount() bool {
	if m != nil {
		return m.IOSBadgeCount
	}
	return false
}

type TipsComm struct {
	Detail               []byte   `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"`
	DefaultTips          string   `protobuf:"bytes,2,opt,name=defaultTips" json:"defaultTips,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TipsComm) Reset()         { *m = TipsComm{} }
func (m *TipsComm) String() string { return proto.CompactTextString(m) }
func (*TipsComm) ProtoMessage()    {}
func (*TipsComm) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{18}
}
func (m *TipsComm) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TipsComm.Unmarshal(m, b)
}
func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic)
}
func (dst *TipsComm) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TipsComm.Merge(dst, src)
}
func (m *TipsComm) XXX_Size() int {
	return xxx_messageInfo_TipsComm.Size(m)
}
func (m *TipsComm) XXX_DiscardUnknown() {
	xxx_messageInfo_TipsComm.DiscardUnknown(m)
}

var xxx_messageInfo_TipsComm proto.InternalMessageInfo

func (m *TipsComm) GetDetail() []byte {
	if m != nil {
		return m.Detail
	}
	return nil
}

func (m *TipsComm) GetDefaultTips() string {
	if m != nil {
		return m.DefaultTips
	}
	return ""
}

// 	OnGroupCreated()
type GroupCreatedTips struct {
	Group                *GroupInfo             `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	OpUser               *GroupMemberFullInfo   `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
	MemberList           []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"`
	OperationTime        int64                  `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"`
	GroupOwnerUser       *GroupMemberFullInfo   `protobuf:"bytes,5,opt,name=groupOwnerUser" json:"groupOwnerUser,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *GroupCreatedTips) Reset()         { *m = GroupCreatedTips{} }
func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) }
func (*GroupCreatedTips) ProtoMessage()    {}
func (*GroupCreatedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{19}
}
func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b)
}
func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic)
}
func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupCreatedTips.Merge(dst, src)
}
func (m *GroupCreatedTips) XXX_Size() int {
	return xxx_messageInfo_GroupCreatedTips.Size(m)
}
func (m *GroupCreatedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m)
}

var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo

func (m *GroupCreatedTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo {
	if m != nil {
		return m.MemberList
	}
	return nil
}

func (m *GroupCreatedTips) GetOperationTime() int64 {
	if m != nil {
		return m.OperationTime
	}
	return 0
}

func (m *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo {
	if m != nil {
		return m.GroupOwnerUser
	}
	return nil
}

// 	OnGroupInfoSet()
type GroupInfoSetTips struct {
	OpUser               *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser" json:"opUser,omitempty"`
	MuteTime             int64                `protobuf:"varint,2,opt,name=muteTime" json:"muteTime,omitempty"`
	Group                *GroupInfo           `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GroupInfoSetTips) Reset()         { *m = GroupInfoSetTips{} }
func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) }
func (*GroupInfoSetTips) ProtoMessage()    {}
func (*GroupInfoSetTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{20}
}
func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b)
}
func (m *GroupInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupInfoSetTips.Marshal(b, m, deterministic)
}
func (dst *GroupInfoSetTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupInfoSetTips.Merge(dst, src)
}
func (m *GroupInfoSetTips) XXX_Size() int {
	return xxx_messageInfo_GroupInfoSetTips.Size(m)
}
func (m *GroupInfoSetTips) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupInfoSetTips.DiscardUnknown(m)
}

var xxx_messageInfo_GroupInfoSetTips proto.InternalMessageInfo

func (m *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

func (m *GroupInfoSetTips) GetMuteTime() int64 {
	if m != nil {
		return m.MuteTime
	}
	return 0
}

func (m *GroupInfoSetTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

// 	OnJoinGroupApplication()
type JoinGroupApplicationTips struct {
	Group                *GroupInfo      `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	Applicant            *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"`
	ReqMsg               string          `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *JoinGroupApplicationTips) Reset()         { *m = JoinGroupApplicationTips{} }
func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) }
func (*JoinGroupApplicationTips) ProtoMessage()    {}
func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{21}
}
func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b)
}
func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic)
}
func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src)
}
func (m *JoinGroupApplicationTips) XXX_Size() int {
	return xxx_messageInfo_JoinGroupApplicationTips.Size(m)
}
func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() {
	xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m)
}

var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo

func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo {
	if m != nil {
		return m.Applicant
	}
	return nil
}

func (m *JoinGroupApplicationTips) GetReqMsg() string {
	if m != nil {
		return m.ReqMsg
	}
	return ""
}

// 	OnQuitGroup()
// Actively leave the group
type MemberQuitTips struct {
	Group                *GroupInfo           `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	QuitUser             *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser" json:"quitUser,omitempty"`
	OperationTime        int64                `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *MemberQuitTips) Reset()         { *m = MemberQuitTips{} }
func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) }
func (*MemberQuitTips) ProtoMessage()    {}
func (*MemberQuitTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{22}
}
func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b)
}
func (m *MemberQuitTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MemberQuitTips.Marshal(b, m, deterministic)
}
func (dst *MemberQuitTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberQuitTips.Merge(dst, src)
}
func (m *MemberQuitTips) XXX_Size() int {
	return xxx_messageInfo_MemberQuitTips.Size(m)
}
func (m *MemberQuitTips) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberQuitTips.DiscardUnknown(m)
}

var xxx_messageInfo_MemberQuitTips proto.InternalMessageInfo

func (m *MemberQuitTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo {
	if m != nil {
		return m.QuitUser
	}
	return nil
}

func (m *MemberQuitTips) GetOperationTime() int64 {
	if m != nil {
		return m.OperationTime
	}
	return 0
}

// 	OnApplicationGroupAccepted()
type GroupApplicationAcceptedTips struct {
	Group                *GroupInfo           `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	OpUser               *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
	HandleMsg            string               `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GroupApplicationAcceptedTips) Reset()         { *m = GroupApplicationAcceptedTips{} }
func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) }
func (*GroupApplicationAcceptedTips) ProtoMessage()    {}
func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{23}
}
func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b)
}
func (m *GroupApplicationAcceptedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupApplicationAcceptedTips.Marshal(b, m, deterministic)
}
func (dst *GroupApplicationAcceptedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupApplicationAcceptedTips.Merge(dst, src)
}
func (m *GroupApplicationAcceptedTips) XXX_Size() int {
	return xxx_messageInfo_GroupApplicationAcceptedTips.Size(m)
}
func (m *GroupApplicationAcceptedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupApplicationAcceptedTips.DiscardUnknown(m)
}

var xxx_messageInfo_GroupApplicationAcceptedTips proto.InternalMessageInfo

func (m *GroupApplicationAcceptedTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

func (m *GroupApplicationAcceptedTips) GetHandleMsg() string {
	if m != nil {
		return m.HandleMsg
	}
	return ""
}

// 	OnApplicationGroupRejected()
type GroupApplicationRejectedTips struct {
	Group                *GroupInfo           `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	OpUser               *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
	HandleMsg            string               `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GroupApplicationRejectedTips) Reset()         { *m = GroupApplicationRejectedTips{} }
func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) }
func (*GroupApplicationRejectedTips) ProtoMessage()    {}
func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{24}
}
func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b)
}
func (m *GroupApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupApplicationRejectedTips.Marshal(b, m, deterministic)
}
func (dst *GroupApplicationRejectedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupApplicationRejectedTips.Merge(dst, src)
}
func (m *GroupApplicationRejectedTips) XXX_Size() int {
	return xxx_messageInfo_GroupApplicationRejectedTips.Size(m)
}
func (m *GroupApplicationRejectedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupApplicationRejectedTips.DiscardUnknown(m)
}

var xxx_messageInfo_GroupApplicationRejectedTips proto.InternalMessageInfo

func (m *GroupApplicationRejectedTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

func (m *GroupApplicationRejectedTips) GetHandleMsg() string {
	if m != nil {
		return m.HandleMsg
	}
	return ""
}

// 	OnTransferGroupOwner()
type GroupOwnerTransferredTips struct {
	Group                *GroupInfo           `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	OpUser               *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
	NewGroupOwner        *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner" json:"newGroupOwner,omitempty"`
	OperationTime        int64                `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *GroupOwnerTransferredTips) Reset()         { *m = GroupOwnerTransferredTips{} }
func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) }
func (*GroupOwnerTransferredTips) ProtoMessage()    {}
func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{25}
}
func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b)
}
func (m *GroupOwnerTransferredTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupOwnerTransferredTips.Marshal(b, m, deterministic)
}
func (dst *GroupOwnerTransferredTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupOwnerTransferredTips.Merge(dst, src)
}
func (m *GroupOwnerTransferredTips) XXX_Size() int {
	return xxx_messageInfo_GroupOwnerTransferredTips.Size(m)
}
func (m *GroupOwnerTransferredTips) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupOwnerTransferredTips.DiscardUnknown(m)
}

var xxx_messageInfo_GroupOwnerTransferredTips proto.InternalMessageInfo

func (m *GroupOwnerTransferredTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

func (m *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo {
	if m != nil {
		return m.NewGroupOwner
	}
	return nil
}

func (m *GroupOwnerTransferredTips) GetOperationTime() int64 {
	if m != nil {
		return m.OperationTime
	}
	return 0
}

// 	OnMemberKicked()
type MemberKickedTips struct {
	Group                *GroupInfo             `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	OpUser               *GroupMemberFullInfo   `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
	KickedUserList       []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"`
	OperationTime        int64                  `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *MemberKickedTips) Reset()         { *m = MemberKickedTips{} }
func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) }
func (*MemberKickedTips) ProtoMessage()    {}
func (*MemberKickedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{26}
}
func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b)
}
func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic)
}
func (dst *MemberKickedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberKickedTips.Merge(dst, src)
}
func (m *MemberKickedTips) XXX_Size() int {
	return xxx_messageInfo_MemberKickedTips.Size(m)
}
func (m *MemberKickedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberKickedTips.DiscardUnknown(m)
}

var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo

func (m *MemberKickedTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo {
	if m != nil {
		return m.KickedUserList
	}
	return nil
}

func (m *MemberKickedTips) GetOperationTime() int64 {
	if m != nil {
		return m.OperationTime
	}
	return 0
}

// 	OnMemberInvited()
type MemberInvitedTips struct {
	Group                *GroupInfo             `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	OpUser               *GroupMemberFullInfo   `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
	InvitedUserList      []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"`
	OperationTime        int64                  `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *MemberInvitedTips) Reset()         { *m = MemberInvitedTips{} }
func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) }
func (*MemberInvitedTips) ProtoMessage()    {}
func (*MemberInvitedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{27}
}
func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b)
}
func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic)
}
func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberInvitedTips.Merge(dst, src)
}
func (m *MemberInvitedTips) XXX_Size() int {
	return xxx_messageInfo_MemberInvitedTips.Size(m)
}
func (m *MemberInvitedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m)
}

var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo

func (m *MemberInvitedTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo {
	if m != nil {
		return m.InvitedUserList
	}
	return nil
}

func (m *MemberInvitedTips) GetOperationTime() int64 {
	if m != nil {
		return m.OperationTime
	}
	return 0
}

// Actively join the group
type MemberEnterTips struct {
	Group                *GroupInfo           `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
	EntrantUser          *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"`
	OperationTime        int64                `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *MemberEnterTips) Reset()         { *m = MemberEnterTips{} }
func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) }
func (*MemberEnterTips) ProtoMessage()    {}
func (*MemberEnterTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{28}
}
func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b)
}
func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic)
}
func (dst *MemberEnterTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberEnterTips.Merge(dst, src)
}
func (m *MemberEnterTips) XXX_Size() int {
	return xxx_messageInfo_MemberEnterTips.Size(m)
}
func (m *MemberEnterTips) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberEnterTips.DiscardUnknown(m)
}

var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo

func (m *MemberEnterTips) GetGroup() *GroupInfo {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo {
	if m != nil {
		return m.EntrantUser
	}
	return nil
}

func (m *MemberEnterTips) GetOperationTime() int64 {
	if m != nil {
		return m.OperationTime
	}
	return 0
}

type FriendApplication struct {
	AddTime              int64    `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"`
	AddSource            string   `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"`
	AddWording           string   `protobuf:"bytes,3,opt,name=addWording" json:"addWording,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FriendApplication) Reset()         { *m = FriendApplication{} }
func (m *FriendApplication) String() string { return proto.CompactTextString(m) }
func (*FriendApplication) ProtoMessage()    {}
func (*FriendApplication) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{29}
}
func (m *FriendApplication) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendApplication.Unmarshal(m, b)
}
func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic)
}
func (dst *FriendApplication) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendApplication.Merge(dst, src)
}
func (m *FriendApplication) XXX_Size() int {
	return xxx_messageInfo_FriendApplication.Size(m)
}
func (m *FriendApplication) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendApplication.DiscardUnknown(m)
}

var xxx_messageInfo_FriendApplication proto.InternalMessageInfo

func (m *FriendApplication) GetAddTime() int64 {
	if m != nil {
		return m.AddTime
	}
	return 0
}

func (m *FriendApplication) GetAddSource() string {
	if m != nil {
		return m.AddSource
	}
	return ""
}

func (m *FriendApplication) GetAddWording() string {
	if m != nil {
		return m.AddWording
	}
	return ""
}

type FromToUserID struct {
	FromUserID           string   `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"`
	ToUserID             string   `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FromToUserID) Reset()         { *m = FromToUserID{} }
func (m *FromToUserID) String() string { return proto.CompactTextString(m) }
func (*FromToUserID) ProtoMessage()    {}
func (*FromToUserID) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{30}
}
func (m *FromToUserID) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FromToUserID.Unmarshal(m, b)
}
func (m *FromToUserID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FromToUserID.Marshal(b, m, deterministic)
}
func (dst *FromToUserID) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FromToUserID.Merge(dst, src)
}
func (m *FromToUserID) XXX_Size() int {
	return xxx_messageInfo_FromToUserID.Size(m)
}
func (m *FromToUserID) XXX_DiscardUnknown() {
	xxx_messageInfo_FromToUserID.DiscardUnknown(m)
}

var xxx_messageInfo_FromToUserID proto.InternalMessageInfo

func (m *FromToUserID) GetFromUserID() string {
	if m != nil {
		return m.FromUserID
	}
	return ""
}

func (m *FromToUserID) GetToUserID() string {
	if m != nil {
		return m.ToUserID
	}
	return ""
}

// FromUserID apply to add ToUserID
type FriendApplicationTips struct {
	FromToUserID         *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *FriendApplicationTips) Reset()         { *m = FriendApplicationTips{} }
func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationTips) ProtoMessage()    {}
func (*FriendApplicationTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{31}
}
func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b)
}
func (m *FriendApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendApplicationTips.Marshal(b, m, deterministic)
}
func (dst *FriendApplicationTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendApplicationTips.Merge(dst, src)
}
func (m *FriendApplicationTips) XXX_Size() int {
	return xxx_messageInfo_FriendApplicationTips.Size(m)
}
func (m *FriendApplicationTips) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendApplicationTips.DiscardUnknown(m)
}

var xxx_messageInfo_FriendApplicationTips proto.InternalMessageInfo

func (m *FriendApplicationTips) GetFromToUserID() *FromToUserID {
	if m != nil {
		return m.FromToUserID
	}
	return nil
}

// FromUserID accept or reject ToUserID
type FriendApplicationApprovedTips struct {
	FromToUserID         *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"`
	HandleMsg            string        `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *FriendApplicationApprovedTips) Reset()         { *m = FriendApplicationApprovedTips{} }
func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationApprovedTips) ProtoMessage()    {}
func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{32}
}
func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b)
}
func (m *FriendApplicationApprovedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendApplicationApprovedTips.Marshal(b, m, deterministic)
}
func (dst *FriendApplicationApprovedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendApplicationApprovedTips.Merge(dst, src)
}
func (m *FriendApplicationApprovedTips) XXX_Size() int {
	return xxx_messageInfo_FriendApplicationApprovedTips.Size(m)
}
func (m *FriendApplicationApprovedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendApplicationApprovedTips.DiscardUnknown(m)
}

var xxx_messageInfo_FriendApplicationApprovedTips proto.InternalMessageInfo

func (m *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID {
	if m != nil {
		return m.FromToUserID
	}
	return nil
}

func (m *FriendApplicationApprovedTips) GetHandleMsg() string {
	if m != nil {
		return m.HandleMsg
	}
	return ""
}

// FromUserID accept or reject ToUserID
type FriendApplicationRejectedTips struct {
	FromToUserID         *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"`
	HandleMsg            string        `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *FriendApplicationRejectedTips) Reset()         { *m = FriendApplicationRejectedTips{} }
func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationRejectedTips) ProtoMessage()    {}
func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{33}
}
func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b)
}
func (m *FriendApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendApplicationRejectedTips.Marshal(b, m, deterministic)
}
func (dst *FriendApplicationRejectedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendApplicationRejectedTips.Merge(dst, src)
}
func (m *FriendApplicationRejectedTips) XXX_Size() int {
	return xxx_messageInfo_FriendApplicationRejectedTips.Size(m)
}
func (m *FriendApplicationRejectedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendApplicationRejectedTips.DiscardUnknown(m)
}

var xxx_messageInfo_FriendApplicationRejectedTips proto.InternalMessageInfo

func (m *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID {
	if m != nil {
		return m.FromToUserID
	}
	return nil
}

func (m *FriendApplicationRejectedTips) GetHandleMsg() string {
	if m != nil {
		return m.HandleMsg
	}
	return ""
}

// FromUserID  Added a friend ToUserID
type FriendAddedTips struct {
	Friend               *FriendInfo     `protobuf:"bytes,1,opt,name=friend" json:"friend,omitempty"`
	OperationTime        int64           `protobuf:"varint,2,opt,name=operationTime" json:"operationTime,omitempty"`
	OpUser               *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *FriendAddedTips) Reset()         { *m = FriendAddedTips{} }
func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) }
func (*FriendAddedTips) ProtoMessage()    {}
func (*FriendAddedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{34}
}
func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b)
}
func (m *FriendAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendAddedTips.Marshal(b, m, deterministic)
}
func (dst *FriendAddedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendAddedTips.Merge(dst, src)
}
func (m *FriendAddedTips) XXX_Size() int {
	return xxx_messageInfo_FriendAddedTips.Size(m)
}
func (m *FriendAddedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendAddedTips.DiscardUnknown(m)
}

var xxx_messageInfo_FriendAddedTips proto.InternalMessageInfo

func (m *FriendAddedTips) GetFriend() *FriendInfo {
	if m != nil {
		return m.Friend
	}
	return nil
}

func (m *FriendAddedTips) GetOperationTime() int64 {
	if m != nil {
		return m.OperationTime
	}
	return 0
}

func (m *FriendAddedTips) GetOpUser() *PublicUserInfo {
	if m != nil {
		return m.OpUser
	}
	return nil
}

// FromUserID  deleted a friend ToUserID
type FriendDeletedTips struct {
	FromToUserID         *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *FriendDeletedTips) Reset()         { *m = FriendDeletedTips{} }
func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) }
func (*FriendDeletedTips) ProtoMessage()    {}
func (*FriendDeletedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{35}
}
func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b)
}
func (m *FriendDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendDeletedTips.Marshal(b, m, deterministic)
}
func (dst *FriendDeletedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendDeletedTips.Merge(dst, src)
}
func (m *FriendDeletedTips) XXX_Size() int {
	return xxx_messageInfo_FriendDeletedTips.Size(m)
}
func (m *FriendDeletedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendDeletedTips.DiscardUnknown(m)
}

var xxx_messageInfo_FriendDeletedTips proto.InternalMessageInfo

func (m *FriendDeletedTips) GetFromToUserID() *FromToUserID {
	if m != nil {
		return m.FromToUserID
	}
	return nil
}

type BlackAddedTips struct {
	FromToUserID         *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *BlackAddedTips) Reset()         { *m = BlackAddedTips{} }
func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) }
func (*BlackAddedTips) ProtoMessage()    {}
func (*BlackAddedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{36}
}
func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b)
}
func (m *BlackAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BlackAddedTips.Marshal(b, m, deterministic)
}
func (dst *BlackAddedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BlackAddedTips.Merge(dst, src)
}
func (m *BlackAddedTips) XXX_Size() int {
	return xxx_messageInfo_BlackAddedTips.Size(m)
}
func (m *BlackAddedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_BlackAddedTips.DiscardUnknown(m)
}

var xxx_messageInfo_BlackAddedTips proto.InternalMessageInfo

func (m *BlackAddedTips) GetFromToUserID() *FromToUserID {
	if m != nil {
		return m.FromToUserID
	}
	return nil
}

type BlackDeletedTips struct {
	FromToUserID         *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *BlackDeletedTips) Reset()         { *m = BlackDeletedTips{} }
func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) }
func (*BlackDeletedTips) ProtoMessage()    {}
func (*BlackDeletedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{37}
}
func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b)
}
func (m *BlackDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BlackDeletedTips.Marshal(b, m, deterministic)
}
func (dst *BlackDeletedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BlackDeletedTips.Merge(dst, src)
}
func (m *BlackDeletedTips) XXX_Size() int {
	return xxx_messageInfo_BlackDeletedTips.Size(m)
}
func (m *BlackDeletedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_BlackDeletedTips.DiscardUnknown(m)
}

var xxx_messageInfo_BlackDeletedTips proto.InternalMessageInfo

func (m *BlackDeletedTips) GetFromToUserID() *FromToUserID {
	if m != nil {
		return m.FromToUserID
	}
	return nil
}

type FriendInfoChangedTips struct {
	FromToUserID         *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *FriendInfoChangedTips) Reset()         { *m = FriendInfoChangedTips{} }
func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*FriendInfoChangedTips) ProtoMessage()    {}
func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{38}
}
func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b)
}
func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic)
}
func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src)
}
func (m *FriendInfoChangedTips) XXX_Size() int {
	return xxx_messageInfo_FriendInfoChangedTips.Size(m)
}
func (m *FriendInfoChangedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m)
}

var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo

func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID {
	if m != nil {
		return m.FromToUserID
	}
	return nil
}

// ////////////////////user/////////////////////
type UserInfoUpdatedTips struct {
	UserID               string   `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserInfoUpdatedTips) Reset()         { *m = UserInfoUpdatedTips{} }
func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) }
func (*UserInfoUpdatedTips) ProtoMessage()    {}
func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) {
	return fileDescriptor_ws_551a30e7c7c24c98, []int{39}
}
func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b)
}
func (m *UserInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserInfoUpdatedTips.Marshal(b, m, deterministic)
}
func (dst *UserInfoUpdatedTips) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserInfoUpdatedTips.Merge(dst, src)
}
func (m *UserInfoUpdatedTips) XXX_Size() int {
	return xxx_messageInfo_UserInfoUpdatedTips.Size(m)
}
func (m *UserInfoUpdatedTips) XXX_DiscardUnknown() {
	xxx_messageInfo_UserInfoUpdatedTips.DiscardUnknown(m)
}

var xxx_messageInfo_UserInfoUpdatedTips proto.InternalMessageInfo

func (m *UserInfoUpdatedTips) GetUserID() string {
	if m != nil {
		return m.UserID
	}
	return ""
}

func init() {
	proto.RegisterType((*GroupInfo)(nil), "server_api_params.GroupInfo")
	proto.RegisterType((*GroupMemberFullInfo)(nil), "server_api_params.GroupMemberFullInfo")
	proto.RegisterType((*PublicUserInfo)(nil), "server_api_params.PublicUserInfo")
	proto.RegisterType((*UserInfo)(nil), "server_api_params.UserInfo")
	proto.RegisterType((*FriendInfo)(nil), "server_api_params.FriendInfo")
	proto.RegisterType((*BlackInfo)(nil), "server_api_params.BlackInfo")
	proto.RegisterType((*GroupRequest)(nil), "server_api_params.GroupRequest")
	proto.RegisterType((*FriendRequest)(nil), "server_api_params.FriendRequest")
	proto.RegisterType((*PullMessageBySeqListResp)(nil), "server_api_params.PullMessageBySeqListResp")
	proto.RegisterType((*PullMessageBySeqListReq)(nil), "server_api_params.PullMessageBySeqListReq")
	proto.RegisterType((*PullMessageReq)(nil), "server_api_params.PullMessageReq")
	proto.RegisterType((*PullMessageResp)(nil), "server_api_params.PullMessageResp")
	proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "server_api_params.GetMaxAndMinSeqReq")
	proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "server_api_params.GetMaxAndMinSeqResp")
	proto.RegisterType((*GatherFormat)(nil), "server_api_params.GatherFormat")
	proto.RegisterType((*UserSendMsgResp)(nil), "server_api_params.UserSendMsgResp")
	proto.RegisterType((*MsgData)(nil), "server_api_params.MsgData")
	proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry")
	proto.RegisterType((*OfflinePushInfo)(nil), "server_api_params.OfflinePushInfo")
	proto.RegisterType((*TipsComm)(nil), "server_api_params.TipsComm")
	proto.RegisterType((*GroupCreatedTips)(nil), "server_api_params.GroupCreatedTips")
	proto.RegisterType((*GroupInfoSetTips)(nil), "server_api_params.GroupInfoSetTips")
	proto.RegisterType((*JoinGroupApplicationTips)(nil), "server_api_params.JoinGroupApplicationTips")
	proto.RegisterType((*MemberQuitTips)(nil), "server_api_params.MemberQuitTips")
	proto.RegisterType((*GroupApplicationAcceptedTips)(nil), "server_api_params.GroupApplicationAcceptedTips")
	proto.RegisterType((*GroupApplicationRejectedTips)(nil), "server_api_params.GroupApplicationRejectedTips")
	proto.RegisterType((*GroupOwnerTransferredTips)(nil), "server_api_params.GroupOwnerTransferredTips")
	proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips")
	proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips")
	proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips")
	proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication")
	proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID")
	proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips")
	proto.RegisterType((*FriendApplicationApprovedTips)(nil), "server_api_params.FriendApplicationApprovedTips")
	proto.RegisterType((*FriendApplicationRejectedTips)(nil), "server_api_params.FriendApplicationRejectedTips")
	proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips")
	proto.RegisterType((*FriendDeletedTips)(nil), "server_api_params.FriendDeletedTips")
	proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips")
	proto.RegisterType((*BlackDeletedTips)(nil), "server_api_params.BlackDeletedTips")
	proto.RegisterType((*FriendInfoChangedTips)(nil), "server_api_params.FriendInfoChangedTips")
	proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips")
}

func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_551a30e7c7c24c98) }

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