// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: NewInit.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "NewInit.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)

namespace com {
namespace tencent {
namespace mars {
namespace microchat {
namespace proto {
class NewInitRequest_LoginInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitRequest_LoginInfo> {
} _NewInitRequest_LoginInfo_default_instance_;
class NewInitRequest_Tag3DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitRequest_Tag3> {
} _NewInitRequest_Tag3_default_instance_;
class NewInitRequest_Tag4DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitRequest_Tag4> {
} _NewInitRequest_Tag4_default_instance_;
class NewInitRequestDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitRequest> {
} _NewInitRequest_default_instance_;
class NewInitResponse_SyncKey_SyncArray_syncDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitResponse_SyncKey_SyncArray_sync> {
} _NewInitResponse_SyncKey_SyncArray_sync_default_instance_;
class NewInitResponse_SyncKey_SyncArrayDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitResponse_SyncKey_SyncArray> {
} _NewInitResponse_SyncKey_SyncArray_default_instance_;
class NewInitResponse_SyncKeyDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitResponse_SyncKey> {
} _NewInitResponse_SyncKey_default_instance_;
class NewInitResponse_Tag7_DataDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitResponse_Tag7_Data> {
} _NewInitResponse_Tag7_Data_default_instance_;
class NewInitResponse_Tag7DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitResponse_Tag7> {
} _NewInitResponse_Tag7_default_instance_;
class NewInitResponseDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<NewInitResponse> {
} _NewInitResponse_default_instance_;
class UserInfo_WXIDDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<UserInfo_WXID> {
} _UserInfo_WXID_default_instance_;
class UserInfo_NICKNAMEDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<UserInfo_NICKNAME> {
} _UserInfo_NICKNAME_default_instance_;
class UserInfo_BINDMOBILEDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<UserInfo_BINDMOBILE> {
} _UserInfo_BINDMOBILE_default_instance_;
class UserInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<UserInfo> {
} _UserInfo_default_instance_;
class ContactInfo_WXIDDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_WXID> {
} _ContactInfo_WXID_default_instance_;
class ContactInfo_NICKNAMEDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_NICKNAME> {
} _ContactInfo_NICKNAME_default_instance_;
class ContactInfo_PY_SHORTDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_PY_SHORT> {
} _ContactInfo_PY_SHORT_default_instance_;
class ContactInfo_QuanPinDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_QuanPin> {
} _ContactInfo_QuanPin_default_instance_;
class ContactInfo_REALNICKNAMEDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_REALNICKNAME> {
} _ContactInfo_REALNICKNAME_default_instance_;
class ContactInfo_REAL_PY_SHORTDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_REAL_PY_SHORT> {
} _ContactInfo_REAL_PY_SHORT_default_instance_;
class ContactInfo_REAL_QuanPinDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_REAL_QuanPin> {
} _ContactInfo_REAL_QuanPin_default_instance_;
class ContactInfo_GroupMemberList_MemberInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_GroupMemberList_MemberInfo> {
} _ContactInfo_GroupMemberList_MemberInfo_default_instance_;
class ContactInfo_GroupMemberListDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo_GroupMemberList> {
} _ContactInfo_GroupMemberList_default_instance_;
class ContactInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ContactInfo> {
} _ContactInfo_default_instance_;

namespace protobuf_NewInit_2eproto {


namespace {

::google::protobuf::Metadata file_level_metadata[24];

}  // namespace

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
    const TableStruct::entries[] = {
  {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
};

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
    const TableStruct::aux[] = {
  ::google::protobuf::internal::AuxillaryParseTableField(),
};
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
    TableStruct::schema[] = {
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
};

const ::google::protobuf::uint32 TableStruct::offsets[] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, aeskey_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, uin_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, guid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, clientver_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, androidver_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_LoginInfo, unknown3_),
  0,
  3,
  1,
  4,
  2,
  5,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag3, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag3, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag3, len_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag3, tag2_),
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag4, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag4, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag4, len_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest_Tag4, tag2_),
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest, login_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest, wxid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest, tag3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest, tag4_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitRequest, language_),
  2,
  0,
  3,
  4,
  1,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray_sync, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray_sync, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray_sync, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray_sync, key_),
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray, cnt_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey_SyncArray, sync_array_),
  0,
  ~0u,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_SyncKey, len_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7_Data, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7_Data, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7_Data, len_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7_Data, data_),
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7, type_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse_Tag7, data_),
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, tag1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, sync2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, sync3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, tag4_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, tag5_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, cntlist_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NewInitResponse, tag7_),
  0,
  1,
  2,
  3,
  4,
  5,
  ~0u,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_WXID, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_WXID, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_WXID, id_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_NICKNAME, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_NICKNAME, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_NICKNAME, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_BINDMOBILE, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_BINDMOBILE, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo_BINDMOBILE, mobile_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, bitflag_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, wxid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, nickname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, bbindemail_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, bindemail_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, mobile_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag8_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag10_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, sheng_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, shi_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, qianming_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag14_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag15_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, pluginflag_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag17_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag19_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag20_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag21_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag22_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag23_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, pluginswitch_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag26_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, alias_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag29_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag30_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag31_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag33_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag34_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, tag36_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserInfo, country_),
  11,
  8,
  9,
  12,
  0,
  10,
  13,
  14,
  15,
  1,
  2,
  3,
  16,
  4,
  17,
  18,
  19,
  20,
  21,
  22,
  23,
  24,
  5,
  6,
  25,
  26,
  27,
  28,
  29,
  30,
  7,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_WXID, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_WXID, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_WXID, id_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_NICKNAME, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_NICKNAME, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_NICKNAME, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_PY_SHORT, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_PY_SHORT, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_PY_SHORT, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_QuanPin, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_QuanPin, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_QuanPin, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REALNICKNAME, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REALNICKNAME, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REALNICKNAME, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REAL_PY_SHORT, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REAL_PY_SHORT, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REAL_PY_SHORT, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REAL_QuanPin, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REAL_QuanPin, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_REAL_QuanPin, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList_MemberInfo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList_MemberInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList_MemberInfo, wxid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList_MemberInfo, tag6_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList_MemberInfo, tag8_),
  0,
  1,
  2,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList, cnt_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList, member_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList, tag3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo_GroupMemberList, tag4_),
  1,
  ~0u,
  2,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, wxid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, nickname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, shortpy_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, quanpin_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag5_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag6_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, unknownkey_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag8_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag9_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, real_nickname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, real_shortpy_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, real_quanpin_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag13_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag14_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag16_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, bchatroom_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag18_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, sheng_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, shi_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, qianming_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, bfriend_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, bnotchatroom_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag24_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag25_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag26_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, src_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, lastmsgtime_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, alias_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, chatroomownerwxid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag33_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag34_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag35_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag37_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, country_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, headicon_big_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, headicon_small_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag42_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, encryptname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag50_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, chatroom_serverver_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, chatroom_max_member_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag56_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, group_member_list_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag58_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, beizhuname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag64_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag65_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag66_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ContactInfo, tag67_),
  17,
  18,
  19,
  20,
  25,
  0,
  26,
  27,
  28,
  21,
  22,
  23,
  29,
  30,
  1,
  31,
  32,
  2,
  3,
  4,
  33,
  34,
  35,
  5,
  36,
  37,
  6,
  7,
  8,
  38,
  39,
  40,
  9,
  10,
  11,
  12,
  13,
  14,
  15,
  41,
  42,
  43,
  24,
  44,
  16,
  45,
  46,
  47,
  48,
};

static const ::google::protobuf::internal::MigrationSchema schemas[] = {
  { 0, 11, sizeof(NewInitRequest_LoginInfo)},
  { 17, 24, sizeof(NewInitRequest_Tag3)},
  { 26, 33, sizeof(NewInitRequest_Tag4)},
  { 35, 45, sizeof(NewInitRequest)},
  { 50, 57, sizeof(NewInitResponse_SyncKey_SyncArray_sync)},
  { 59, 66, sizeof(NewInitResponse_SyncKey_SyncArray)},
  { 68, 74, sizeof(NewInitResponse_SyncKey)},
  { 75, 82, sizeof(NewInitResponse_Tag7_Data)},
  { 84, 91, sizeof(NewInitResponse_Tag7)},
  { 93, 105, sizeof(NewInitResponse)},
  { 112, 118, sizeof(UserInfo_WXID)},
  { 119, 125, sizeof(UserInfo_NICKNAME)},
  { 126, 132, sizeof(UserInfo_BINDMOBILE)},
  { 133, 169, sizeof(UserInfo)},
  { 200, 206, sizeof(ContactInfo_WXID)},
  { 207, 213, sizeof(ContactInfo_NICKNAME)},
  { 214, 220, sizeof(ContactInfo_PY_SHORT)},
  { 221, 227, sizeof(ContactInfo_QuanPin)},
  { 228, 234, sizeof(ContactInfo_REALNICKNAME)},
  { 235, 241, sizeof(ContactInfo_REAL_PY_SHORT)},
  { 242, 248, sizeof(ContactInfo_REAL_QuanPin)},
  { 249, 257, sizeof(ContactInfo_GroupMemberList_MemberInfo)},
  { 260, 269, sizeof(ContactInfo_GroupMemberList)},
  { 273, 327, sizeof(ContactInfo)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitRequest_LoginInfo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitRequest_Tag3_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitRequest_Tag4_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitRequest_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitResponse_SyncKey_SyncArray_sync_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitResponse_SyncKey_SyncArray_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitResponse_SyncKey_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitResponse_Tag7_Data_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitResponse_Tag7_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_NewInitResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_UserInfo_WXID_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_UserInfo_NICKNAME_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_UserInfo_BINDMOBILE_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_UserInfo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_WXID_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_NICKNAME_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_PY_SHORT_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_QuanPin_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_REALNICKNAME_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_REAL_PY_SHORT_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_REAL_QuanPin_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_GroupMemberList_MemberInfo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_GroupMemberList_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ContactInfo_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "NewInit.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, NULL, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 24);
}

}  // namespace

void TableStruct::Shutdown() {
  _NewInitRequest_LoginInfo_default_instance_.Shutdown();
  delete file_level_metadata[0].reflection;
  _NewInitRequest_Tag3_default_instance_.Shutdown();
  delete file_level_metadata[1].reflection;
  _NewInitRequest_Tag4_default_instance_.Shutdown();
  delete file_level_metadata[2].reflection;
  _NewInitRequest_default_instance_.Shutdown();
  delete file_level_metadata[3].reflection;
  _NewInitResponse_SyncKey_SyncArray_sync_default_instance_.Shutdown();
  delete file_level_metadata[4].reflection;
  _NewInitResponse_SyncKey_SyncArray_default_instance_.Shutdown();
  delete file_level_metadata[5].reflection;
  _NewInitResponse_SyncKey_default_instance_.Shutdown();
  delete file_level_metadata[6].reflection;
  _NewInitResponse_Tag7_Data_default_instance_.Shutdown();
  delete file_level_metadata[7].reflection;
  _NewInitResponse_Tag7_default_instance_.Shutdown();
  delete file_level_metadata[8].reflection;
  _NewInitResponse_default_instance_.Shutdown();
  delete file_level_metadata[9].reflection;
  _UserInfo_WXID_default_instance_.Shutdown();
  delete file_level_metadata[10].reflection;
  _UserInfo_NICKNAME_default_instance_.Shutdown();
  delete file_level_metadata[11].reflection;
  _UserInfo_BINDMOBILE_default_instance_.Shutdown();
  delete file_level_metadata[12].reflection;
  _UserInfo_default_instance_.Shutdown();
  delete file_level_metadata[13].reflection;
  _ContactInfo_WXID_default_instance_.Shutdown();
  delete file_level_metadata[14].reflection;
  _ContactInfo_NICKNAME_default_instance_.Shutdown();
  delete file_level_metadata[15].reflection;
  _ContactInfo_PY_SHORT_default_instance_.Shutdown();
  delete file_level_metadata[16].reflection;
  _ContactInfo_QuanPin_default_instance_.Shutdown();
  delete file_level_metadata[17].reflection;
  _ContactInfo_REALNICKNAME_default_instance_.Shutdown();
  delete file_level_metadata[18].reflection;
  _ContactInfo_REAL_PY_SHORT_default_instance_.Shutdown();
  delete file_level_metadata[19].reflection;
  _ContactInfo_REAL_QuanPin_default_instance_.Shutdown();
  delete file_level_metadata[20].reflection;
  _ContactInfo_GroupMemberList_MemberInfo_default_instance_.Shutdown();
  delete file_level_metadata[21].reflection;
  _ContactInfo_GroupMemberList_default_instance_.Shutdown();
  delete file_level_metadata[22].reflection;
  _ContactInfo_default_instance_.Shutdown();
  delete file_level_metadata[23].reflection;
}

void TableStruct::InitDefaultsImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::internal::InitProtobufDefaults();
  _NewInitRequest_LoginInfo_default_instance_.DefaultConstruct();
  _NewInitRequest_Tag3_default_instance_.DefaultConstruct();
  _NewInitRequest_Tag4_default_instance_.DefaultConstruct();
  _NewInitRequest_default_instance_.DefaultConstruct();
  _NewInitResponse_SyncKey_SyncArray_sync_default_instance_.DefaultConstruct();
  _NewInitResponse_SyncKey_SyncArray_default_instance_.DefaultConstruct();
  _NewInitResponse_SyncKey_default_instance_.DefaultConstruct();
  _NewInitResponse_Tag7_Data_default_instance_.DefaultConstruct();
  _NewInitResponse_Tag7_default_instance_.DefaultConstruct();
  _NewInitResponse_default_instance_.DefaultConstruct();
  _UserInfo_WXID_default_instance_.DefaultConstruct();
  _UserInfo_NICKNAME_default_instance_.DefaultConstruct();
  _UserInfo_BINDMOBILE_default_instance_.DefaultConstruct();
  _UserInfo_default_instance_.DefaultConstruct();
  _ContactInfo_WXID_default_instance_.DefaultConstruct();
  _ContactInfo_NICKNAME_default_instance_.DefaultConstruct();
  _ContactInfo_PY_SHORT_default_instance_.DefaultConstruct();
  _ContactInfo_QuanPin_default_instance_.DefaultConstruct();
  _ContactInfo_REALNICKNAME_default_instance_.DefaultConstruct();
  _ContactInfo_REAL_PY_SHORT_default_instance_.DefaultConstruct();
  _ContactInfo_REAL_QuanPin_default_instance_.DefaultConstruct();
  _ContactInfo_GroupMemberList_MemberInfo_default_instance_.DefaultConstruct();
  _ContactInfo_GroupMemberList_default_instance_.DefaultConstruct();
  _ContactInfo_default_instance_.DefaultConstruct();
  _NewInitRequest_default_instance_.get_mutable()->login_ = const_cast< ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo*>(
      ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo::internal_default_instance());
  _NewInitRequest_default_instance_.get_mutable()->tag3_ = const_cast< ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3*>(
      ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3::internal_default_instance());
  _NewInitRequest_default_instance_.get_mutable()->tag4_ = const_cast< ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4*>(
      ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4::internal_default_instance());
  _NewInitResponse_Tag7_default_instance_.get_mutable()->data_ = const_cast< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data*>(
      ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data::internal_default_instance());
  _NewInitResponse_default_instance_.get_mutable()->sync3_ = const_cast< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey*>(
      ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey::internal_default_instance());
  _UserInfo_default_instance_.get_mutable()->wxid_ = const_cast< ::com::tencent::mars::microchat::proto::UserInfo_WXID*>(
      ::com::tencent::mars::microchat::proto::UserInfo_WXID::internal_default_instance());
  _UserInfo_default_instance_.get_mutable()->nickname_ = const_cast< ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME*>(
      ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME::internal_default_instance());
  _UserInfo_default_instance_.get_mutable()->mobile_ = const_cast< ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE*>(
      ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->wxid_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_WXID*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_WXID::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->nickname_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->shortpy_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->quanpin_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->real_nickname_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->real_shortpy_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->real_quanpin_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin::internal_default_instance());
  _ContactInfo_default_instance_.get_mutable()->group_member_list_ = const_cast< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList*>(
      ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList::internal_default_instance());
}

void InitDefaults() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] = {
      "\n\rNewInit.proto\022 com.tencent.mars.microc"
      "hat.proto\"\274\003\n\016NewInitRequest\022I\n\005login\030\001 "
      "\002(\0132:.com.tencent.mars.microchat.proto.N"
      "ewInitRequest.LoginInfo\022\014\n\004wxid\030\002 \002(\t\022C\n"
      "\004tag3\030\003 \001(\01325.com.tencent.mars.microchat"
      ".proto.NewInitRequest.Tag3\022C\n\004tag4\030\004 \001(\013"
      "25.com.tencent.mars.microchat.proto.NewI"
      "nitRequest.Tag4\022\020\n\010language\030\005 \002(\t\032o\n\tLog"
      "inInfo\022\016\n\006aesKey\030\001 \002(\t\022\013\n\003uin\030\002 \002(\005\022\014\n\004g"
      "uid\030\003 \002(\t\022\021\n\tclientVer\030\004 \002(\005\022\022\n\nandroidV"
      "er\030\005 \002(\t\022\020\n\010unknown3\030\006 \002(\005\032!\n\004Tag3\022\013\n\003le"
      "n\030\001 \001(\005\022\014\n\004tag2\030\002 \001(\t\032!\n\004Tag4\022\013\n\003len\030\001 \001"
      "(\005\022\014\n\004tag2\030\002 \001(\t\"\245\004\n\017NewInitResponse\022\014\n\004"
      "tag1\030\001 \001(\t\022\r\n\005sync2\030\002 \001(\t\022H\n\005sync3\030\003 \001(\013"
      "29.com.tencent.mars.microchat.proto.NewI"
      "nitResponse.SyncKey\022\014\n\004tag4\030\004 \001(\005\022\014\n\004tag"
      "5\030\005 \001(\005\022\017\n\007cntList\030\006 \001(\005\022D\n\004tag7\030\007 \003(\01326"
      ".com.tencent.mars.microchat.proto.NewIni"
      "tResponse.Tag7\032\262\001\n\007SyncKey\022\013\n\003len\030\001 \001(\005\032"
      "\231\001\n\tSyncArray\022\013\n\003cnt\030\001 \001(\005\022\\\n\nsync_array"
      "\030\002 \003(\0132H.com.tencent.mars.microchat.prot"
      "o.NewInitResponse.SyncKey.SyncArray.sync"
      "\032!\n\004sync\022\014\n\004type\030\001 \001(\005\022\013\n\003key\030\002 \001(\t\032\202\001\n\004"
      "Tag7\022\014\n\004type\030\001 \001(\005\022I\n\004data\030\002 \001(\0132;.com.t"
      "encent.mars.microchat.proto.NewInitRespo"
      "nse.Tag7.Data\032!\n\004Data\022\013\n\003len\030\001 \001(\005\022\014\n\004da"
      "ta\030\002 \001(\t\"\341\005\n\010UserInfo\022\017\n\007bitFlag\030\001 \001(\005\022="
      "\n\004wxid\030\002 \001(\0132/.com.tencent.mars.microcha"
      "t.proto.UserInfo.WXID\022E\n\010nickname\030\003 \001(\0132"
      "3.com.tencent.mars.microchat.proto.UserI"
      "nfo.NICKNAME\022\022\n\nbBindEmail\030\004 \001(\005\022\021\n\tbind"
      "email\030\005 \001(\t\022E\n\006mobile\030\006 \001(\01325.com.tencen"
      "t.mars.microchat.proto.UserInfo.BINDMOBI"
      "LE\022\016\n\006status\030\007 \001(\005\022\014\n\004tag8\030\010 \001(\005\022\r\n\005tag1"
      "0\030\n \001(\005\022\r\n\005sheng\030\013 \001(\t\022\013\n\003shi\030\014 \001(\t\022\020\n\010q"
      "ianming\030\r \001(\t\022\r\n\005tag14\030\016 \001(\005\022\r\n\005tag15\030\017 "
      "\001(\t\022\022\n\npluginFlag\030\020 \001(\005\022\r\n\005tag17\030\021 \001(\005\022\r"
      "\n\005tag19\030\023 \001(\005\022\r\n\005tag20\030\024 \001(\005\022\r\n\005tag21\030\025 "
      "\001(\005\022\r\n\005tag22\030\026 \001(\005\022\r\n\005tag23\030\027 \001(\005\022\024\n\014Plu"
      "ginSwitch\030\031 \001(\005\022\r\n\005tag26\030\032 \001(\t\022\r\n\005alias\030"
      "\033 \001(\t\022\r\n\005tag29\030\035 \001(\005\022\r\n\005tag30\030\036 \001(\005\022\r\n\005t"
      "ag31\030\037 \001(\005\022\r\n\005tag33\030! \001(\005\022\r\n\005tag34\030\" \001(\005"
      "\022\r\n\005tag36\030% \001(\005\022\017\n\007country\030& \001(\t\032\022\n\004WXID"
      "\022\n\n\002id\030\001 \001(\t\032\030\n\010NICKNAME\022\014\n\004name\030\001 \001(\t\032\034"
      "\n\nBINDMOBILE\022\016\n\006mobile\030\001 \001(\t\"\305\r\n\013Contact"
      "Info\022@\n\004wxid\030\001 \001(\01322.com.tencent.mars.mi"
      "crochat.proto.ContactInfo.WXID\022H\n\010nickna"
      "me\030\002 \001(\01326.com.tencent.mars.microchat.pr"
      "oto.ContactInfo.NICKNAME\022G\n\007shortPy\030\003 \001("
      "\01326.com.tencent.mars.microchat.proto.Con"
      "tactInfo.PY_SHORT\022F\n\007quanpin\030\004 \001(\01325.com"
      ".tencent.mars.microchat.proto.ContactInf"
      "o.QuanPin\022\014\n\004tag5\030\005 \001(\005\022\014\n\004tag6\030\006 \001(\t\022\022\n"
      "\nunknownKey\030\007 \001(\005\022\014\n\004tag8\030\010 \001(\005\022\014\n\004tag9\030"
      "\t \001(\005\022Q\n\rreal_nickname\030\n \001(\0132:.com.tence"
      "nt.mars.microchat.proto.ContactInfo.REAL"
      "NICKNAME\022Q\n\014real_shortPy\030\013 \001(\0132;.com.ten"
      "cent.mars.microchat.proto.ContactInfo.RE"
      "AL_PY_SHORT\022P\n\014real_quanpin\030\014 \001(\0132:.com."
      "tencent.mars.microchat.proto.ContactInfo"
      ".REAL_QuanPin\022\r\n\005tag13\030\r \001(\005\022\r\n\005tag14\030\016 "
      "\001(\005\022\r\n\005tag16\030\020 \001(\t\022\021\n\tbChatRoom\030\021 \001(\005\022\r\n"
      "\005tag18\030\022 \001(\005\022\r\n\005sheng\030\023 \001(\t\022\013\n\003shi\030\024 \001(\t"
      "\022\020\n\010qianming\030\025 \001(\t\022\017\n\007bFriend\030\026 \001(\005\022\024\n\014b"
      "NotChatRoom\030\027 \001(\005\022\r\n\005tag24\030\030 \001(\005\022\r\n\005tag2"
      "5\030\031 \001(\t\022\r\n\005tag26\030\032 \001(\005\022\013\n\003src\030\033 \001(\005\022\023\n\013l"
      "astMsgTime\030\035 \001(\t\022\r\n\005alias\030\036 \001(\t\022\031\n\021chatr"
      "oomOwnerWxid\030\037 \001(\t\022\r\n\005tag33\030! \001(\005\022\r\n\005tag"
      "34\030\" \001(\005\022\r\n\005tag35\030# \001(\005\022\r\n\005tag37\030% \001(\t\022\017"
      "\n\007country\030& \001(\t\022\024\n\014headicon_big\030\' \001(\t\022\026\n"
      "\016headicon_small\030( \001(\t\022\r\n\005tag42\030* \001(\t\022\023\n\013"
      "encryptName\030- \001(\t\022\r\n\005tag50\0302 \001(\t\022\032\n\022chat"
      "room_serverVer\0305 \001(\005\022\033\n\023chatroom_max_mem"
      "ber\0307 \001(\005\022\r\n\005tag56\0308 \001(\005\022X\n\021group_member"
      "_list\0309 \001(\0132=.com.tencent.mars.microchat"
      ".proto.ContactInfo.GroupMemberList\022\r\n\005ta"
      "g58\030: \001(\005\022\022\n\nbeizhuName\030> \001(\t\022\r\n\005tag64\030@"
      " \001(\005\022\r\n\005tag65\030A \001(\005\022\r\n\005tag66\030B \001(\005\022\r\n\005ta"
      "g67\030C \001(\005\032\022\n\004WXID\022\n\n\002id\030\001 \001(\t\032\030\n\010NICKNAM"
      "E\022\014\n\004name\030\001 \001(\t\032\030\n\010PY_SHORT\022\014\n\004name\030\001 \001("
      "\t\032\027\n\007QuanPin\022\014\n\004name\030\001 \001(\t\032\034\n\014REALNICKNA"
      "ME\022\014\n\004name\030\001 \001(\t\032\035\n\rREAL_PY_SHORT\022\014\n\004nam"
      "e\030\001 \001(\t\032\034\n\014REAL_QuanPin\022\014\n\004name\030\001 \001(\t\032\314\001"
      "\n\017GroupMemberList\022\013\n\003cnt\030\001 \001(\005\022X\n\006member"
      "\030\002 \003(\0132H.com.tencent.mars.microchat.prot"
      "o.ContactInfo.GroupMemberList.MemberInfo"
      "\022\014\n\004tag3\030\003 \001(\005\022\014\n\004tag4\030\004 \001(\t\0326\n\nMemberIn"
      "fo\022\014\n\004wxid\030\001 \001(\t\022\014\n\004tag6\030\006 \001(\005\022\014\n\004tag8\030\010"
      " \001(\005"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 3524);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "NewInit.proto", &protobuf_RegisterTypes);
  ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;

}  // namespace protobuf_NewInit_2eproto


// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitRequest_LoginInfo::kAesKeyFieldNumber;
const int NewInitRequest_LoginInfo::kUinFieldNumber;
const int NewInitRequest_LoginInfo::kGuidFieldNumber;
const int NewInitRequest_LoginInfo::kClientVerFieldNumber;
const int NewInitRequest_LoginInfo::kAndroidVerFieldNumber;
const int NewInitRequest_LoginInfo::kUnknown3FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitRequest_LoginInfo::NewInitRequest_LoginInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
}
NewInitRequest_LoginInfo::NewInitRequest_LoginInfo(const NewInitRequest_LoginInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  aeskey_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_aeskey()) {
    aeskey_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.aeskey_);
  }
  guid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_guid()) {
    guid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.guid_);
  }
  androidver_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_androidver()) {
    androidver_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.androidver_);
  }
  ::memcpy(&uin_, &from.uin_,
    reinterpret_cast<char*>(&unknown3_) -
    reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
}

void NewInitRequest_LoginInfo::SharedCtor() {
  _cached_size_ = 0;
  aeskey_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  guid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  androidver_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&uin_, 0, reinterpret_cast<char*>(&unknown3_) -
    reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
}

NewInitRequest_LoginInfo::~NewInitRequest_LoginInfo() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  SharedDtor();
}

void NewInitRequest_LoginInfo::SharedDtor() {
  aeskey_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  guid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  androidver_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void NewInitRequest_LoginInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitRequest_LoginInfo::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitRequest_LoginInfo& NewInitRequest_LoginInfo::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitRequest_LoginInfo* NewInitRequest_LoginInfo::New(::google::protobuf::Arena* arena) const {
  NewInitRequest_LoginInfo* n = new NewInitRequest_LoginInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitRequest_LoginInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  if (_has_bits_[0 / 32] & 7u) {
    if (has_aeskey()) {
      GOOGLE_DCHECK(!aeskey_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*aeskey_.UnsafeRawStringPointer())->clear();
    }
    if (has_guid()) {
      GOOGLE_DCHECK(!guid_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*guid_.UnsafeRawStringPointer())->clear();
    }
    if (has_androidver()) {
      GOOGLE_DCHECK(!androidver_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*androidver_.UnsafeRawStringPointer())->clear();
    }
  }
  if (_has_bits_[0 / 32] & 56u) {
    ::memset(&uin_, 0, reinterpret_cast<char*>(&unknown3_) -
      reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitRequest_LoginInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required string aesKey = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_aeskey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->aeskey().data(), this->aeskey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 uin = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {
          set_has_uin();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &uin_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string guid = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_guid()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->guid().data(), this->guid().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 clientVer = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {
          set_has_clientver();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &clientver_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string androidVer = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_androidver()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->androidver().data(), this->androidver().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 unknown3 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          set_has_unknown3();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &unknown3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  return false;
#undef DO_
}

void NewInitRequest_LoginInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string aesKey = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->aeskey().data(), this->aeskey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->aeskey(), output);
  }

  // required int32 uin = 2;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->uin(), output);
  }

  // required string guid = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->guid().data(), this->guid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->guid(), output);
  }

  // required int32 clientVer = 4;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->clientver(), output);
  }

  // required string androidVer = 5;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->androidver().data(), this->androidver().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->androidver(), output);
  }

  // required int32 unknown3 = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->unknown3(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
}

::google::protobuf::uint8* NewInitRequest_LoginInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string aesKey = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->aeskey().data(), this->aeskey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->aeskey(), target);
  }

  // required int32 uin = 2;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->uin(), target);
  }

  // required string guid = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->guid().data(), this->guid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->guid(), target);
  }

  // required int32 clientVer = 4;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->clientver(), target);
  }

  // required string androidVer = 5;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->androidver().data(), this->androidver().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->androidver(), target);
  }

  // required int32 unknown3 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->unknown3(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  return target;
}

size_t NewInitRequest_LoginInfo::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  size_t total_size = 0;

  if (has_aeskey()) {
    // required string aesKey = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->aeskey());
  }

  if (has_guid()) {
    // required string guid = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->guid());
  }

  if (has_androidver()) {
    // required string androidVer = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->androidver());
  }

  if (has_uin()) {
    // required int32 uin = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->uin());
  }

  if (has_clientver()) {
    // required int32 clientVer = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->clientver());
  }

  if (has_unknown3()) {
    // required int32 unknown3 = 6;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->unknown3());
  }

  return total_size;
}
size_t NewInitRequest_LoginInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (((_has_bits_[0] & 0x0000003f) ^ 0x0000003f) == 0) {  // All required fields are present.
    // required string aesKey = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->aeskey());

    // required string guid = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->guid());

    // required string androidVer = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->androidver());

    // required int32 uin = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->uin());

    // required int32 clientVer = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->clientver());

    // required int32 unknown3 = 6;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->unknown3());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitRequest_LoginInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitRequest_LoginInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitRequest_LoginInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
    MergeFrom(*source);
  }
}

void NewInitRequest_LoginInfo::MergeFrom(const NewInitRequest_LoginInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_aeskey();
      aeskey_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.aeskey_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_guid();
      guid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.guid_);
    }
    if (cached_has_bits & 0x00000004u) {
      set_has_androidver();
      androidver_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.androidver_);
    }
    if (cached_has_bits & 0x00000008u) {
      uin_ = from.uin_;
    }
    if (cached_has_bits & 0x00000010u) {
      clientver_ = from.clientver_;
    }
    if (cached_has_bits & 0x00000020u) {
      unknown3_ = from.unknown3_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void NewInitRequest_LoginInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitRequest_LoginInfo::CopyFrom(const NewInitRequest_LoginInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitRequest_LoginInfo::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000003f) != 0x0000003f) return false;
  return true;
}

void NewInitRequest_LoginInfo::Swap(NewInitRequest_LoginInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitRequest_LoginInfo::InternalSwap(NewInitRequest_LoginInfo* other) {
  aeskey_.Swap(&other->aeskey_);
  guid_.Swap(&other->guid_);
  androidver_.Swap(&other->androidver_);
  std::swap(uin_, other->uin_);
  std::swap(clientver_, other->clientver_);
  std::swap(unknown3_, other->unknown3_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitRequest_LoginInfo::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitRequest_LoginInfo

// required string aesKey = 1;
bool NewInitRequest_LoginInfo::has_aeskey() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitRequest_LoginInfo::set_has_aeskey() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitRequest_LoginInfo::clear_has_aeskey() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitRequest_LoginInfo::clear_aeskey() {
  aeskey_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_aeskey();
}
const ::std::string& NewInitRequest_LoginInfo::aeskey() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
  return aeskey_.GetNoArena();
}
void NewInitRequest_LoginInfo::set_aeskey(const ::std::string& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
#if LANG_CXX11
void NewInitRequest_LoginInfo::set_aeskey(::std::string&& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
#endif
void NewInitRequest_LoginInfo::set_aeskey(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
void NewInitRequest_LoginInfo::set_aeskey(const char* value, size_t size) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}
::std::string* NewInitRequest_LoginInfo::mutable_aeskey() {
  set_has_aeskey();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
  return aeskey_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitRequest_LoginInfo::release_aeskey() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
  clear_has_aeskey();
  return aeskey_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitRequest_LoginInfo::set_allocated_aeskey(::std::string* aeskey) {
  if (aeskey != NULL) {
    set_has_aeskey();
  } else {
    clear_has_aeskey();
  }
  aeskey_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), aeskey);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.aesKey)
}

// required int32 uin = 2;
bool NewInitRequest_LoginInfo::has_uin() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void NewInitRequest_LoginInfo::set_has_uin() {
  _has_bits_[0] |= 0x00000008u;
}
void NewInitRequest_LoginInfo::clear_has_uin() {
  _has_bits_[0] &= ~0x00000008u;
}
void NewInitRequest_LoginInfo::clear_uin() {
  uin_ = 0;
  clear_has_uin();
}
::google::protobuf::int32 NewInitRequest_LoginInfo::uin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.uin)
  return uin_;
}
void NewInitRequest_LoginInfo::set_uin(::google::protobuf::int32 value) {
  set_has_uin();
  uin_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.uin)
}

// required string guid = 3;
bool NewInitRequest_LoginInfo::has_guid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitRequest_LoginInfo::set_has_guid() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitRequest_LoginInfo::clear_has_guid() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitRequest_LoginInfo::clear_guid() {
  guid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_guid();
}
const ::std::string& NewInitRequest_LoginInfo::guid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
  return guid_.GetNoArena();
}
void NewInitRequest_LoginInfo::set_guid(const ::std::string& value) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
#if LANG_CXX11
void NewInitRequest_LoginInfo::set_guid(::std::string&& value) {
  set_has_guid();
  guid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
#endif
void NewInitRequest_LoginInfo::set_guid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
void NewInitRequest_LoginInfo::set_guid(const char* value, size_t size) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}
::std::string* NewInitRequest_LoginInfo::mutable_guid() {
  set_has_guid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
  return guid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitRequest_LoginInfo::release_guid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
  clear_has_guid();
  return guid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitRequest_LoginInfo::set_allocated_guid(::std::string* guid) {
  if (guid != NULL) {
    set_has_guid();
  } else {
    clear_has_guid();
  }
  guid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), guid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.guid)
}

// required int32 clientVer = 4;
bool NewInitRequest_LoginInfo::has_clientver() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void NewInitRequest_LoginInfo::set_has_clientver() {
  _has_bits_[0] |= 0x00000010u;
}
void NewInitRequest_LoginInfo::clear_has_clientver() {
  _has_bits_[0] &= ~0x00000010u;
}
void NewInitRequest_LoginInfo::clear_clientver() {
  clientver_ = 0;
  clear_has_clientver();
}
::google::protobuf::int32 NewInitRequest_LoginInfo::clientver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.clientVer)
  return clientver_;
}
void NewInitRequest_LoginInfo::set_clientver(::google::protobuf::int32 value) {
  set_has_clientver();
  clientver_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.clientVer)
}

// required string androidVer = 5;
bool NewInitRequest_LoginInfo::has_androidver() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void NewInitRequest_LoginInfo::set_has_androidver() {
  _has_bits_[0] |= 0x00000004u;
}
void NewInitRequest_LoginInfo::clear_has_androidver() {
  _has_bits_[0] &= ~0x00000004u;
}
void NewInitRequest_LoginInfo::clear_androidver() {
  androidver_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_androidver();
}
const ::std::string& NewInitRequest_LoginInfo::androidver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
  return androidver_.GetNoArena();
}
void NewInitRequest_LoginInfo::set_androidver(const ::std::string& value) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
#if LANG_CXX11
void NewInitRequest_LoginInfo::set_androidver(::std::string&& value) {
  set_has_androidver();
  androidver_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
#endif
void NewInitRequest_LoginInfo::set_androidver(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
void NewInitRequest_LoginInfo::set_androidver(const char* value, size_t size) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}
::std::string* NewInitRequest_LoginInfo::mutable_androidver() {
  set_has_androidver();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
  return androidver_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitRequest_LoginInfo::release_androidver() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
  clear_has_androidver();
  return androidver_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitRequest_LoginInfo::set_allocated_androidver(::std::string* androidver) {
  if (androidver != NULL) {
    set_has_androidver();
  } else {
    clear_has_androidver();
  }
  androidver_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), androidver);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.androidVer)
}

// required int32 unknown3 = 6;
bool NewInitRequest_LoginInfo::has_unknown3() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
void NewInitRequest_LoginInfo::set_has_unknown3() {
  _has_bits_[0] |= 0x00000020u;
}
void NewInitRequest_LoginInfo::clear_has_unknown3() {
  _has_bits_[0] &= ~0x00000020u;
}
void NewInitRequest_LoginInfo::clear_unknown3() {
  unknown3_ = 0;
  clear_has_unknown3();
}
::google::protobuf::int32 NewInitRequest_LoginInfo::unknown3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.unknown3)
  return unknown3_;
}
void NewInitRequest_LoginInfo::set_unknown3(::google::protobuf::int32 value) {
  set_has_unknown3();
  unknown3_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo.unknown3)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitRequest_Tag3::kLenFieldNumber;
const int NewInitRequest_Tag3::kTag2FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitRequest_Tag3::NewInitRequest_Tag3()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
}
NewInitRequest_Tag3::NewInitRequest_Tag3(const NewInitRequest_Tag3& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  tag2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag2()) {
    tag2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag2_);
  }
  len_ = from.len_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
}

void NewInitRequest_Tag3::SharedCtor() {
  _cached_size_ = 0;
  tag2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  len_ = 0;
}

NewInitRequest_Tag3::~NewInitRequest_Tag3() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  SharedDtor();
}

void NewInitRequest_Tag3::SharedDtor() {
  tag2_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void NewInitRequest_Tag3::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitRequest_Tag3::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitRequest_Tag3& NewInitRequest_Tag3::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitRequest_Tag3* NewInitRequest_Tag3::New(::google::protobuf::Arena* arena) const {
  NewInitRequest_Tag3* n = new NewInitRequest_Tag3;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitRequest_Tag3::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  if (has_tag2()) {
    GOOGLE_DCHECK(!tag2_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*tag2_.UnsafeRawStringPointer())->clear();
  }
  len_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitRequest_Tag3::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 len = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_len();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &len_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag2 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag2()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag2().data(), this->tag2().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  return false;
#undef DO_
}

void NewInitRequest_Tag3::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->len(), output);
  }

  // optional string tag2 = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag2().data(), this->tag2().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->tag2(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
}

::google::protobuf::uint8* NewInitRequest_Tag3::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->len(), target);
  }

  // optional string tag2 = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag2().data(), this->tag2().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->tag2(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  return target;
}

size_t NewInitRequest_Tag3::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional string tag2 = 2;
    if (has_tag2()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag2());
    }

    // optional int32 len = 1;
    if (has_len()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->len());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitRequest_Tag3::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitRequest_Tag3* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitRequest_Tag3>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
    MergeFrom(*source);
  }
}

void NewInitRequest_Tag3::MergeFrom(const NewInitRequest_Tag3& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_tag2();
      tag2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag2_);
    }
    if (cached_has_bits & 0x00000002u) {
      len_ = from.len_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void NewInitRequest_Tag3::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitRequest_Tag3::CopyFrom(const NewInitRequest_Tag3& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag3)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitRequest_Tag3::IsInitialized() const {
  return true;
}

void NewInitRequest_Tag3::Swap(NewInitRequest_Tag3* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitRequest_Tag3::InternalSwap(NewInitRequest_Tag3* other) {
  tag2_.Swap(&other->tag2_);
  std::swap(len_, other->len_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitRequest_Tag3::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitRequest_Tag3

// optional int32 len = 1;
bool NewInitRequest_Tag3::has_len() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitRequest_Tag3::set_has_len() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitRequest_Tag3::clear_has_len() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitRequest_Tag3::clear_len() {
  len_ = 0;
  clear_has_len();
}
::google::protobuf::int32 NewInitRequest_Tag3::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.len)
  return len_;
}
void NewInitRequest_Tag3::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.len)
}

// optional string tag2 = 2;
bool NewInitRequest_Tag3::has_tag2() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitRequest_Tag3::set_has_tag2() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitRequest_Tag3::clear_has_tag2() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitRequest_Tag3::clear_tag2() {
  tag2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag2();
}
const ::std::string& NewInitRequest_Tag3::tag2() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
  return tag2_.GetNoArena();
}
void NewInitRequest_Tag3::set_tag2(const ::std::string& value) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
#if LANG_CXX11
void NewInitRequest_Tag3::set_tag2(::std::string&& value) {
  set_has_tag2();
  tag2_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
#endif
void NewInitRequest_Tag3::set_tag2(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
void NewInitRequest_Tag3::set_tag2(const char* value, size_t size) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}
::std::string* NewInitRequest_Tag3::mutable_tag2() {
  set_has_tag2();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
  return tag2_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitRequest_Tag3::release_tag2() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
  clear_has_tag2();
  return tag2_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitRequest_Tag3::set_allocated_tag2(::std::string* tag2) {
  if (tag2 != NULL) {
    set_has_tag2();
  } else {
    clear_has_tag2();
  }
  tag2_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag2);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.Tag3.tag2)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitRequest_Tag4::kLenFieldNumber;
const int NewInitRequest_Tag4::kTag2FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitRequest_Tag4::NewInitRequest_Tag4()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
}
NewInitRequest_Tag4::NewInitRequest_Tag4(const NewInitRequest_Tag4& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  tag2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag2()) {
    tag2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag2_);
  }
  len_ = from.len_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
}

void NewInitRequest_Tag4::SharedCtor() {
  _cached_size_ = 0;
  tag2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  len_ = 0;
}

NewInitRequest_Tag4::~NewInitRequest_Tag4() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  SharedDtor();
}

void NewInitRequest_Tag4::SharedDtor() {
  tag2_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void NewInitRequest_Tag4::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitRequest_Tag4::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitRequest_Tag4& NewInitRequest_Tag4::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitRequest_Tag4* NewInitRequest_Tag4::New(::google::protobuf::Arena* arena) const {
  NewInitRequest_Tag4* n = new NewInitRequest_Tag4;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitRequest_Tag4::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  if (has_tag2()) {
    GOOGLE_DCHECK(!tag2_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*tag2_.UnsafeRawStringPointer())->clear();
  }
  len_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitRequest_Tag4::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 len = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_len();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &len_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag2 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag2()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag2().data(), this->tag2().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  return false;
#undef DO_
}

void NewInitRequest_Tag4::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->len(), output);
  }

  // optional string tag2 = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag2().data(), this->tag2().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->tag2(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
}

::google::protobuf::uint8* NewInitRequest_Tag4::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->len(), target);
  }

  // optional string tag2 = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag2().data(), this->tag2().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->tag2(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  return target;
}

size_t NewInitRequest_Tag4::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional string tag2 = 2;
    if (has_tag2()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag2());
    }

    // optional int32 len = 1;
    if (has_len()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->len());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitRequest_Tag4::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitRequest_Tag4* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitRequest_Tag4>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
    MergeFrom(*source);
  }
}

void NewInitRequest_Tag4::MergeFrom(const NewInitRequest_Tag4& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_tag2();
      tag2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag2_);
    }
    if (cached_has_bits & 0x00000002u) {
      len_ = from.len_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void NewInitRequest_Tag4::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitRequest_Tag4::CopyFrom(const NewInitRequest_Tag4& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest.Tag4)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitRequest_Tag4::IsInitialized() const {
  return true;
}

void NewInitRequest_Tag4::Swap(NewInitRequest_Tag4* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitRequest_Tag4::InternalSwap(NewInitRequest_Tag4* other) {
  tag2_.Swap(&other->tag2_);
  std::swap(len_, other->len_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitRequest_Tag4::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitRequest_Tag4

// optional int32 len = 1;
bool NewInitRequest_Tag4::has_len() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitRequest_Tag4::set_has_len() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitRequest_Tag4::clear_has_len() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitRequest_Tag4::clear_len() {
  len_ = 0;
  clear_has_len();
}
::google::protobuf::int32 NewInitRequest_Tag4::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.len)
  return len_;
}
void NewInitRequest_Tag4::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.len)
}

// optional string tag2 = 2;
bool NewInitRequest_Tag4::has_tag2() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitRequest_Tag4::set_has_tag2() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitRequest_Tag4::clear_has_tag2() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitRequest_Tag4::clear_tag2() {
  tag2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag2();
}
const ::std::string& NewInitRequest_Tag4::tag2() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
  return tag2_.GetNoArena();
}
void NewInitRequest_Tag4::set_tag2(const ::std::string& value) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
#if LANG_CXX11
void NewInitRequest_Tag4::set_tag2(::std::string&& value) {
  set_has_tag2();
  tag2_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
#endif
void NewInitRequest_Tag4::set_tag2(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
void NewInitRequest_Tag4::set_tag2(const char* value, size_t size) {
  set_has_tag2();
  tag2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}
::std::string* NewInitRequest_Tag4::mutable_tag2() {
  set_has_tag2();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
  return tag2_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitRequest_Tag4::release_tag2() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
  clear_has_tag2();
  return tag2_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitRequest_Tag4::set_allocated_tag2(::std::string* tag2) {
  if (tag2 != NULL) {
    set_has_tag2();
  } else {
    clear_has_tag2();
  }
  tag2_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag2);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.Tag4.tag2)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitRequest::kLoginFieldNumber;
const int NewInitRequest::kWxidFieldNumber;
const int NewInitRequest::kTag3FieldNumber;
const int NewInitRequest::kTag4FieldNumber;
const int NewInitRequest::kLanguageFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitRequest::NewInitRequest()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitRequest)
}
NewInitRequest::NewInitRequest(const NewInitRequest& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  wxid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_wxid()) {
    wxid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.wxid_);
  }
  language_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_language()) {
    language_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.language_);
  }
  if (from.has_login()) {
    login_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo(*from.login_);
  } else {
    login_ = NULL;
  }
  if (from.has_tag3()) {
    tag3_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3(*from.tag3_);
  } else {
    tag3_ = NULL;
  }
  if (from.has_tag4()) {
    tag4_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4(*from.tag4_);
  } else {
    tag4_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitRequest)
}

void NewInitRequest::SharedCtor() {
  _cached_size_ = 0;
  wxid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  language_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&login_, 0, reinterpret_cast<char*>(&tag4_) -
    reinterpret_cast<char*>(&login_) + sizeof(tag4_));
}

NewInitRequest::~NewInitRequest() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitRequest)
  SharedDtor();
}

void NewInitRequest::SharedDtor() {
  wxid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  language_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete login_;
  }
  if (this != internal_default_instance()) {
    delete tag3_;
  }
  if (this != internal_default_instance()) {
    delete tag4_;
  }
}

void NewInitRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitRequest::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitRequest& NewInitRequest::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitRequest* NewInitRequest::New(::google::protobuf::Arena* arena) const {
  NewInitRequest* n = new NewInitRequest;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitRequest)
  if (_has_bits_[0 / 32] & 31u) {
    if (has_wxid()) {
      GOOGLE_DCHECK(!wxid_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*wxid_.UnsafeRawStringPointer())->clear();
    }
    if (has_language()) {
      GOOGLE_DCHECK(!language_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*language_.UnsafeRawStringPointer())->clear();
    }
    if (has_login()) {
      GOOGLE_DCHECK(login_ != NULL);
      login_->::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo::Clear();
    }
    if (has_tag3()) {
      GOOGLE_DCHECK(tag3_ != NULL);
      tag3_->::com::tencent::mars::microchat::proto::NewInitRequest_Tag3::Clear();
    }
    if (has_tag4()) {
      GOOGLE_DCHECK(tag4_ != NULL);
      tag4_->::com::tencent::mars::microchat::proto::NewInitRequest_Tag4::Clear();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_login()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string wxid = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_wxid()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->wxid().data(), this->wxid().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitRequest.wxid");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag3 tag3 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_tag3()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag4 tag4 = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_tag4()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string language = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_language()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->language().data(), this->language().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitRequest.language");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitRequest)
  return false;
#undef DO_
}

void NewInitRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->login_, output);
  }

  // required string wxid = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->wxid().data(), this->wxid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.wxid");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->wxid(), output);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag3 tag3 = 3;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->tag3_, output);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag4 tag4 = 4;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, *this->tag4_, output);
  }

  // required string language = 5;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->language().data(), this->language().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.language");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->language(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitRequest)
}

::google::protobuf::uint8* NewInitRequest::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->login_, deterministic, target);
  }

  // required string wxid = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->wxid().data(), this->wxid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.wxid");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->wxid(), target);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag3 tag3 = 3;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->tag3_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag4 tag4 = 4;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        4, *this->tag4_, deterministic, target);
  }

  // required string language = 5;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->language().data(), this->language().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitRequest.language");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->language(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitRequest)
  return target;
}

size_t NewInitRequest::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.tencent.mars.microchat.proto.NewInitRequest)
  size_t total_size = 0;

  if (has_wxid()) {
    // required string wxid = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->wxid());
  }

  if (has_language()) {
    // required string language = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->language());
  }

  if (has_login()) {
    // required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->login_);
  }

  return total_size;
}
size_t NewInitRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitRequest)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
    // required string wxid = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->wxid());

    // required string language = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->language());

    // required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->login_);

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  if (_has_bits_[0 / 32] & 24u) {
    // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag3 tag3 = 3;
    if (has_tag3()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->tag3_);
    }

    // optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag4 tag4 = 4;
    if (has_tag4()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->tag4_);
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitRequest::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitRequest* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitRequest>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitRequest)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitRequest)
    MergeFrom(*source);
  }
}

void NewInitRequest::MergeFrom(const NewInitRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 31u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_wxid();
      wxid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.wxid_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_language();
      language_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.language_);
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_login()->::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo::MergeFrom(from.login());
    }
    if (cached_has_bits & 0x00000008u) {
      mutable_tag3()->::com::tencent::mars::microchat::proto::NewInitRequest_Tag3::MergeFrom(from.tag3());
    }
    if (cached_has_bits & 0x00000010u) {
      mutable_tag4()->::com::tencent::mars::microchat::proto::NewInitRequest_Tag4::MergeFrom(from.tag4());
    }
  }
}

void NewInitRequest::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitRequest::CopyFrom(const NewInitRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitRequest::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
  if (has_login()) {
    if (!this->login_->IsInitialized()) return false;
  }
  return true;
}

void NewInitRequest::Swap(NewInitRequest* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitRequest::InternalSwap(NewInitRequest* other) {
  wxid_.Swap(&other->wxid_);
  language_.Swap(&other->language_);
  std::swap(login_, other->login_);
  std::swap(tag3_, other->tag3_);
  std::swap(tag4_, other->tag4_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitRequest::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitRequest

// required .com.tencent.mars.microchat.proto.NewInitRequest.LoginInfo login = 1;
bool NewInitRequest::has_login() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void NewInitRequest::set_has_login() {
  _has_bits_[0] |= 0x00000004u;
}
void NewInitRequest::clear_has_login() {
  _has_bits_[0] &= ~0x00000004u;
}
void NewInitRequest::clear_login() {
  if (login_ != NULL) login_->::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo::Clear();
  clear_has_login();
}
const ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo& NewInitRequest::login() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.login)
  return login_ != NULL ? *login_
                         : *::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo::internal_default_instance();
}
::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* NewInitRequest::mutable_login() {
  set_has_login();
  if (login_ == NULL) {
    login_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.login)
  return login_;
}
::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* NewInitRequest::release_login() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.login)
  clear_has_login();
  ::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* temp = login_;
  login_ = NULL;
  return temp;
}
void NewInitRequest::set_allocated_login(::com::tencent::mars::microchat::proto::NewInitRequest_LoginInfo* login) {
  delete login_;
  login_ = login;
  if (login) {
    set_has_login();
  } else {
    clear_has_login();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.login)
}

// required string wxid = 2;
bool NewInitRequest::has_wxid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitRequest::set_has_wxid() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitRequest::clear_has_wxid() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitRequest::clear_wxid() {
  wxid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_wxid();
}
const ::std::string& NewInitRequest::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
  return wxid_.GetNoArena();
}
void NewInitRequest::set_wxid(const ::std::string& value) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
#if LANG_CXX11
void NewInitRequest::set_wxid(::std::string&& value) {
  set_has_wxid();
  wxid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
#endif
void NewInitRequest::set_wxid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
void NewInitRequest::set_wxid(const char* value, size_t size) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}
::std::string* NewInitRequest::mutable_wxid() {
  set_has_wxid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
  return wxid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitRequest::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
  clear_has_wxid();
  return wxid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitRequest::set_allocated_wxid(::std::string* wxid) {
  if (wxid != NULL) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  wxid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), wxid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.wxid)
}

// optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag3 tag3 = 3;
bool NewInitRequest::has_tag3() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void NewInitRequest::set_has_tag3() {
  _has_bits_[0] |= 0x00000008u;
}
void NewInitRequest::clear_has_tag3() {
  _has_bits_[0] &= ~0x00000008u;
}
void NewInitRequest::clear_tag3() {
  if (tag3_ != NULL) tag3_->::com::tencent::mars::microchat::proto::NewInitRequest_Tag3::Clear();
  clear_has_tag3();
}
const ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3& NewInitRequest::tag3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
  return tag3_ != NULL ? *tag3_
                         : *::com::tencent::mars::microchat::proto::NewInitRequest_Tag3::internal_default_instance();
}
::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* NewInitRequest::mutable_tag3() {
  set_has_tag3();
  if (tag3_ == NULL) {
    tag3_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
  return tag3_;
}
::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* NewInitRequest::release_tag3() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
  clear_has_tag3();
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* temp = tag3_;
  tag3_ = NULL;
  return temp;
}
void NewInitRequest::set_allocated_tag3(::com::tencent::mars::microchat::proto::NewInitRequest_Tag3* tag3) {
  delete tag3_;
  tag3_ = tag3;
  if (tag3) {
    set_has_tag3();
  } else {
    clear_has_tag3();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.tag3)
}

// optional .com.tencent.mars.microchat.proto.NewInitRequest.Tag4 tag4 = 4;
bool NewInitRequest::has_tag4() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void NewInitRequest::set_has_tag4() {
  _has_bits_[0] |= 0x00000010u;
}
void NewInitRequest::clear_has_tag4() {
  _has_bits_[0] &= ~0x00000010u;
}
void NewInitRequest::clear_tag4() {
  if (tag4_ != NULL) tag4_->::com::tencent::mars::microchat::proto::NewInitRequest_Tag4::Clear();
  clear_has_tag4();
}
const ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4& NewInitRequest::tag4() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
  return tag4_ != NULL ? *tag4_
                         : *::com::tencent::mars::microchat::proto::NewInitRequest_Tag4::internal_default_instance();
}
::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* NewInitRequest::mutable_tag4() {
  set_has_tag4();
  if (tag4_ == NULL) {
    tag4_ = new ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
  return tag4_;
}
::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* NewInitRequest::release_tag4() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
  clear_has_tag4();
  ::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* temp = tag4_;
  tag4_ = NULL;
  return temp;
}
void NewInitRequest::set_allocated_tag4(::com::tencent::mars::microchat::proto::NewInitRequest_Tag4* tag4) {
  delete tag4_;
  tag4_ = tag4;
  if (tag4) {
    set_has_tag4();
  } else {
    clear_has_tag4();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.tag4)
}

// required string language = 5;
bool NewInitRequest::has_language() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitRequest::set_has_language() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitRequest::clear_has_language() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitRequest::clear_language() {
  language_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_language();
}
const ::std::string& NewInitRequest::language() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitRequest.language)
  return language_.GetNoArena();
}
void NewInitRequest::set_language(const ::std::string& value) {
  set_has_language();
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
#if LANG_CXX11
void NewInitRequest::set_language(::std::string&& value) {
  set_has_language();
  language_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
#endif
void NewInitRequest::set_language(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_language();
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
void NewInitRequest::set_language(const char* value, size_t size) {
  set_has_language();
  language_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitRequest.language)
}
::std::string* NewInitRequest::mutable_language() {
  set_has_language();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitRequest.language)
  return language_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitRequest::release_language() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitRequest.language)
  clear_has_language();
  return language_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitRequest::set_allocated_language(::std::string* language) {
  if (language != NULL) {
    set_has_language();
  } else {
    clear_has_language();
  }
  language_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), language);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitRequest.language)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitResponse_SyncKey_SyncArray_sync::kTypeFieldNumber;
const int NewInitResponse_SyncKey_SyncArray_sync::kKeyFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitResponse_SyncKey_SyncArray_sync::NewInitResponse_SyncKey_SyncArray_sync()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
}
NewInitResponse_SyncKey_SyncArray_sync::NewInitResponse_SyncKey_SyncArray_sync(const NewInitResponse_SyncKey_SyncArray_sync& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_key()) {
    key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_);
  }
  type_ = from.type_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
}

void NewInitResponse_SyncKey_SyncArray_sync::SharedCtor() {
  _cached_size_ = 0;
  key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_ = 0;
}

NewInitResponse_SyncKey_SyncArray_sync::~NewInitResponse_SyncKey_SyncArray_sync() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  SharedDtor();
}

void NewInitResponse_SyncKey_SyncArray_sync::SharedDtor() {
  key_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void NewInitResponse_SyncKey_SyncArray_sync::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitResponse_SyncKey_SyncArray_sync::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitResponse_SyncKey_SyncArray_sync& NewInitResponse_SyncKey_SyncArray_sync::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitResponse_SyncKey_SyncArray_sync* NewInitResponse_SyncKey_SyncArray_sync::New(::google::protobuf::Arena* arena) const {
  NewInitResponse_SyncKey_SyncArray_sync* n = new NewInitResponse_SyncKey_SyncArray_sync;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitResponse_SyncKey_SyncArray_sync::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  if (has_key()) {
    GOOGLE_DCHECK(!key_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*key_.UnsafeRawStringPointer())->clear();
  }
  type_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitResponse_SyncKey_SyncArray_sync::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 type = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_type();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &type_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string key = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_key()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->key().data(), this->key().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  return false;
#undef DO_
}

void NewInitResponse_SyncKey_SyncArray_sync::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 type = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
  }

  // optional string key = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->key().data(), this->key().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->key(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
}

::google::protobuf::uint8* NewInitResponse_SyncKey_SyncArray_sync::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 type = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
  }

  // optional string key = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->key().data(), this->key().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->key(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  return target;
}

size_t NewInitResponse_SyncKey_SyncArray_sync::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional string key = 2;
    if (has_key()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->key());
    }

    // optional int32 type = 1;
    if (has_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->type());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitResponse_SyncKey_SyncArray_sync::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitResponse_SyncKey_SyncArray_sync* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitResponse_SyncKey_SyncArray_sync>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
    MergeFrom(*source);
  }
}

void NewInitResponse_SyncKey_SyncArray_sync::MergeFrom(const NewInitResponse_SyncKey_SyncArray_sync& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_key();
      key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_);
    }
    if (cached_has_bits & 0x00000002u) {
      type_ = from.type_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void NewInitResponse_SyncKey_SyncArray_sync::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitResponse_SyncKey_SyncArray_sync::CopyFrom(const NewInitResponse_SyncKey_SyncArray_sync& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitResponse_SyncKey_SyncArray_sync::IsInitialized() const {
  return true;
}

void NewInitResponse_SyncKey_SyncArray_sync::Swap(NewInitResponse_SyncKey_SyncArray_sync* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitResponse_SyncKey_SyncArray_sync::InternalSwap(NewInitResponse_SyncKey_SyncArray_sync* other) {
  key_.Swap(&other->key_);
  std::swap(type_, other->type_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitResponse_SyncKey_SyncArray_sync::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitResponse_SyncKey_SyncArray_sync

// optional int32 type = 1;
bool NewInitResponse_SyncKey_SyncArray_sync::has_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitResponse_SyncKey_SyncArray_sync::set_has_type() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitResponse_SyncKey_SyncArray_sync::clear_has_type() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitResponse_SyncKey_SyncArray_sync::clear_type() {
  type_ = 0;
  clear_has_type();
}
::google::protobuf::int32 NewInitResponse_SyncKey_SyncArray_sync::type() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.type)
  return type_;
}
void NewInitResponse_SyncKey_SyncArray_sync::set_type(::google::protobuf::int32 value) {
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.type)
}

// optional string key = 2;
bool NewInitResponse_SyncKey_SyncArray_sync::has_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitResponse_SyncKey_SyncArray_sync::set_has_key() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitResponse_SyncKey_SyncArray_sync::clear_has_key() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitResponse_SyncKey_SyncArray_sync::clear_key() {
  key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_key();
}
const ::std::string& NewInitResponse_SyncKey_SyncArray_sync::key() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
  return key_.GetNoArena();
}
void NewInitResponse_SyncKey_SyncArray_sync::set_key(const ::std::string& value) {
  set_has_key();
  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
#if LANG_CXX11
void NewInitResponse_SyncKey_SyncArray_sync::set_key(::std::string&& value) {
  set_has_key();
  key_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
#endif
void NewInitResponse_SyncKey_SyncArray_sync::set_key(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_key();
  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
void NewInitResponse_SyncKey_SyncArray_sync::set_key(const char* value, size_t size) {
  set_has_key();
  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}
::std::string* NewInitResponse_SyncKey_SyncArray_sync::mutable_key() {
  set_has_key();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
  return key_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitResponse_SyncKey_SyncArray_sync::release_key() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
  clear_has_key();
  return key_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitResponse_SyncKey_SyncArray_sync::set_allocated_key(::std::string* key) {
  if (key != NULL) {
    set_has_key();
  } else {
    clear_has_key();
  }
  key_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), key);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync.key)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitResponse_SyncKey_SyncArray::kCntFieldNumber;
const int NewInitResponse_SyncKey_SyncArray::kSyncArrayFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitResponse_SyncKey_SyncArray::NewInitResponse_SyncKey_SyncArray()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
}
NewInitResponse_SyncKey_SyncArray::NewInitResponse_SyncKey_SyncArray(const NewInitResponse_SyncKey_SyncArray& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0),
      sync_array_(from.sync_array_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  cnt_ = from.cnt_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
}

void NewInitResponse_SyncKey_SyncArray::SharedCtor() {
  _cached_size_ = 0;
  cnt_ = 0;
}

NewInitResponse_SyncKey_SyncArray::~NewInitResponse_SyncKey_SyncArray() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  SharedDtor();
}

void NewInitResponse_SyncKey_SyncArray::SharedDtor() {
}

void NewInitResponse_SyncKey_SyncArray::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitResponse_SyncKey_SyncArray::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitResponse_SyncKey_SyncArray& NewInitResponse_SyncKey_SyncArray::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitResponse_SyncKey_SyncArray* NewInitResponse_SyncKey_SyncArray::New(::google::protobuf::Arena* arena) const {
  NewInitResponse_SyncKey_SyncArray* n = new NewInitResponse_SyncKey_SyncArray;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitResponse_SyncKey_SyncArray::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  sync_array_.Clear();
  cnt_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitResponse_SyncKey_SyncArray::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 cnt = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_cnt();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &cnt_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync sync_array = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_sync_array()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  return false;
#undef DO_
}

void NewInitResponse_SyncKey_SyncArray::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 cnt = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->cnt(), output);
  }

  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync sync_array = 2;
  for (unsigned int i = 0, n = this->sync_array_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->sync_array(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
}

::google::protobuf::uint8* NewInitResponse_SyncKey_SyncArray::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 cnt = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->cnt(), target);
  }

  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync sync_array = 2;
  for (unsigned int i = 0, n = this->sync_array_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, this->sync_array(i), deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  return target;
}

size_t NewInitResponse_SyncKey_SyncArray::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync sync_array = 2;
  {
    unsigned int count = this->sync_array_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->sync_array(i));
    }
  }

  // optional int32 cnt = 1;
  if (has_cnt()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->cnt());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitResponse_SyncKey_SyncArray::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitResponse_SyncKey_SyncArray* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitResponse_SyncKey_SyncArray>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
    MergeFrom(*source);
  }
}

void NewInitResponse_SyncKey_SyncArray::MergeFrom(const NewInitResponse_SyncKey_SyncArray& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  sync_array_.MergeFrom(from.sync_array_);
  if (from.has_cnt()) {
    set_cnt(from.cnt());
  }
}

void NewInitResponse_SyncKey_SyncArray::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitResponse_SyncKey_SyncArray::CopyFrom(const NewInitResponse_SyncKey_SyncArray& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitResponse_SyncKey_SyncArray::IsInitialized() const {
  return true;
}

void NewInitResponse_SyncKey_SyncArray::Swap(NewInitResponse_SyncKey_SyncArray* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitResponse_SyncKey_SyncArray::InternalSwap(NewInitResponse_SyncKey_SyncArray* other) {
  sync_array_.InternalSwap(&other->sync_array_);
  std::swap(cnt_, other->cnt_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitResponse_SyncKey_SyncArray::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitResponse_SyncKey_SyncArray

// optional int32 cnt = 1;
bool NewInitResponse_SyncKey_SyncArray::has_cnt() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitResponse_SyncKey_SyncArray::set_has_cnt() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitResponse_SyncKey_SyncArray::clear_has_cnt() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitResponse_SyncKey_SyncArray::clear_cnt() {
  cnt_ = 0;
  clear_has_cnt();
}
::google::protobuf::int32 NewInitResponse_SyncKey_SyncArray::cnt() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.cnt)
  return cnt_;
}
void NewInitResponse_SyncKey_SyncArray::set_cnt(::google::protobuf::int32 value) {
  set_has_cnt();
  cnt_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.cnt)
}

// repeated .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync sync_array = 2;
int NewInitResponse_SyncKey_SyncArray::sync_array_size() const {
  return sync_array_.size();
}
void NewInitResponse_SyncKey_SyncArray::clear_sync_array() {
  sync_array_.Clear();
}
const ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync& NewInitResponse_SyncKey_SyncArray::sync_array(int index) const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_.Get(index);
}
::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync* NewInitResponse_SyncKey_SyncArray::mutable_sync_array(int index) {
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_.Mutable(index);
}
::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync* NewInitResponse_SyncKey_SyncArray::add_sync_array() {
  // @@protoc_insertion_point(field_add:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_.Add();
}
::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync >*
NewInitResponse_SyncKey_SyncArray::mutable_sync_array() {
  // @@protoc_insertion_point(field_mutable_list:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return &sync_array_;
}
const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey_SyncArray_sync >&
NewInitResponse_SyncKey_SyncArray::sync_array() const {
  // @@protoc_insertion_point(field_list:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.SyncArray.sync_array)
  return sync_array_;
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitResponse_SyncKey::kLenFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitResponse_SyncKey::NewInitResponse_SyncKey()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
}
NewInitResponse_SyncKey::NewInitResponse_SyncKey(const NewInitResponse_SyncKey& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  len_ = from.len_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
}

void NewInitResponse_SyncKey::SharedCtor() {
  _cached_size_ = 0;
  len_ = 0;
}

NewInitResponse_SyncKey::~NewInitResponse_SyncKey() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  SharedDtor();
}

void NewInitResponse_SyncKey::SharedDtor() {
}

void NewInitResponse_SyncKey::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitResponse_SyncKey::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitResponse_SyncKey& NewInitResponse_SyncKey::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitResponse_SyncKey* NewInitResponse_SyncKey::New(::google::protobuf::Arena* arena) const {
  NewInitResponse_SyncKey* n = new NewInitResponse_SyncKey;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitResponse_SyncKey::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  len_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitResponse_SyncKey::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 len = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_len();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &len_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  return false;
#undef DO_
}

void NewInitResponse_SyncKey::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->len(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
}

::google::protobuf::uint8* NewInitResponse_SyncKey::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->len(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  return target;
}

size_t NewInitResponse_SyncKey::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional int32 len = 1;
  if (has_len()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->len());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitResponse_SyncKey::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitResponse_SyncKey* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitResponse_SyncKey>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
    MergeFrom(*source);
  }
}

void NewInitResponse_SyncKey::MergeFrom(const NewInitResponse_SyncKey& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_len()) {
    set_len(from.len());
  }
}

void NewInitResponse_SyncKey::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitResponse_SyncKey::CopyFrom(const NewInitResponse_SyncKey& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitResponse_SyncKey::IsInitialized() const {
  return true;
}

void NewInitResponse_SyncKey::Swap(NewInitResponse_SyncKey* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitResponse_SyncKey::InternalSwap(NewInitResponse_SyncKey* other) {
  std::swap(len_, other->len_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitResponse_SyncKey::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitResponse_SyncKey

// optional int32 len = 1;
bool NewInitResponse_SyncKey::has_len() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitResponse_SyncKey::set_has_len() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitResponse_SyncKey::clear_has_len() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitResponse_SyncKey::clear_len() {
  len_ = 0;
  clear_has_len();
}
::google::protobuf::int32 NewInitResponse_SyncKey::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.len)
  return len_;
}
void NewInitResponse_SyncKey::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.SyncKey.len)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitResponse_Tag7_Data::kLenFieldNumber;
const int NewInitResponse_Tag7_Data::kDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitResponse_Tag7_Data::NewInitResponse_Tag7_Data()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
}
NewInitResponse_Tag7_Data::NewInitResponse_Tag7_Data(const NewInitResponse_Tag7_Data& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_data()) {
    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
  }
  len_ = from.len_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
}

void NewInitResponse_Tag7_Data::SharedCtor() {
  _cached_size_ = 0;
  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  len_ = 0;
}

NewInitResponse_Tag7_Data::~NewInitResponse_Tag7_Data() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  SharedDtor();
}

void NewInitResponse_Tag7_Data::SharedDtor() {
  data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void NewInitResponse_Tag7_Data::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitResponse_Tag7_Data::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitResponse_Tag7_Data& NewInitResponse_Tag7_Data::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitResponse_Tag7_Data* NewInitResponse_Tag7_Data::New(::google::protobuf::Arena* arena) const {
  NewInitResponse_Tag7_Data* n = new NewInitResponse_Tag7_Data;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitResponse_Tag7_Data::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  if (has_data()) {
    GOOGLE_DCHECK(!data_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*data_.UnsafeRawStringPointer())->clear();
  }
  len_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitResponse_Tag7_Data::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 len = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_len();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &len_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string data = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_data()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->data().data(), this->data().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  return false;
#undef DO_
}

void NewInitResponse_Tag7_Data::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->len(), output);
  }

  // optional string data = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->data().data(), this->data().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->data(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
}

::google::protobuf::uint8* NewInitResponse_Tag7_Data::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 len = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->len(), target);
  }

  // optional string data = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->data().data(), this->data().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->data(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  return target;
}

size_t NewInitResponse_Tag7_Data::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional string data = 2;
    if (has_data()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->data());
    }

    // optional int32 len = 1;
    if (has_len()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->len());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitResponse_Tag7_Data::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitResponse_Tag7_Data* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitResponse_Tag7_Data>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
    MergeFrom(*source);
  }
}

void NewInitResponse_Tag7_Data::MergeFrom(const NewInitResponse_Tag7_Data& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_data();
      data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
    }
    if (cached_has_bits & 0x00000002u) {
      len_ = from.len_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void NewInitResponse_Tag7_Data::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitResponse_Tag7_Data::CopyFrom(const NewInitResponse_Tag7_Data& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitResponse_Tag7_Data::IsInitialized() const {
  return true;
}

void NewInitResponse_Tag7_Data::Swap(NewInitResponse_Tag7_Data* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitResponse_Tag7_Data::InternalSwap(NewInitResponse_Tag7_Data* other) {
  data_.Swap(&other->data_);
  std::swap(len_, other->len_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitResponse_Tag7_Data::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitResponse_Tag7_Data

// optional int32 len = 1;
bool NewInitResponse_Tag7_Data::has_len() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitResponse_Tag7_Data::set_has_len() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitResponse_Tag7_Data::clear_has_len() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitResponse_Tag7_Data::clear_len() {
  len_ = 0;
  clear_has_len();
}
::google::protobuf::int32 NewInitResponse_Tag7_Data::len() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.len)
  return len_;
}
void NewInitResponse_Tag7_Data::set_len(::google::protobuf::int32 value) {
  set_has_len();
  len_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.len)
}

// optional string data = 2;
bool NewInitResponse_Tag7_Data::has_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitResponse_Tag7_Data::set_has_data() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitResponse_Tag7_Data::clear_has_data() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitResponse_Tag7_Data::clear_data() {
  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_data();
}
const ::std::string& NewInitResponse_Tag7_Data::data() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
  return data_.GetNoArena();
}
void NewInitResponse_Tag7_Data::set_data(const ::std::string& value) {
  set_has_data();
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
#if LANG_CXX11
void NewInitResponse_Tag7_Data::set_data(::std::string&& value) {
  set_has_data();
  data_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
#endif
void NewInitResponse_Tag7_Data::set_data(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_data();
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
void NewInitResponse_Tag7_Data::set_data(const char* value, size_t size) {
  set_has_data();
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}
::std::string* NewInitResponse_Tag7_Data::mutable_data() {
  set_has_data();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitResponse_Tag7_Data::release_data() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
  clear_has_data();
  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitResponse_Tag7_Data::set_allocated_data(::std::string* data) {
  if (data != NULL) {
    set_has_data();
  } else {
    clear_has_data();
  }
  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data.data)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitResponse_Tag7::kTypeFieldNumber;
const int NewInitResponse_Tag7::kDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitResponse_Tag7::NewInitResponse_Tag7()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
}
NewInitResponse_Tag7::NewInitResponse_Tag7(const NewInitResponse_Tag7& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_data()) {
    data_ = new ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data(*from.data_);
  } else {
    data_ = NULL;
  }
  type_ = from.type_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
}

void NewInitResponse_Tag7::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&data_, 0, reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&data_) + sizeof(type_));
}

NewInitResponse_Tag7::~NewInitResponse_Tag7() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  SharedDtor();
}

void NewInitResponse_Tag7::SharedDtor() {
  if (this != internal_default_instance()) {
    delete data_;
  }
}

void NewInitResponse_Tag7::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitResponse_Tag7::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitResponse_Tag7& NewInitResponse_Tag7::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitResponse_Tag7* NewInitResponse_Tag7::New(::google::protobuf::Arena* arena) const {
  NewInitResponse_Tag7* n = new NewInitResponse_Tag7;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitResponse_Tag7::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  if (has_data()) {
    GOOGLE_DCHECK(data_ != NULL);
    data_->::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data::Clear();
  }
  type_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitResponse_Tag7::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 type = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_type();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &type_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data data = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  return false;
#undef DO_
}

void NewInitResponse_Tag7::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 type = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data data = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->data_, output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
}

::google::protobuf::uint8* NewInitResponse_Tag7::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 type = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data data = 2;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->data_, deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  return target;
}

size_t NewInitResponse_Tag7::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional .com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data data = 2;
    if (has_data()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->data_);
    }

    // optional int32 type = 1;
    if (has_type()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->type());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitResponse_Tag7::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitResponse_Tag7* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitResponse_Tag7>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
    MergeFrom(*source);
  }
}

void NewInitResponse_Tag7::MergeFrom(const NewInitResponse_Tag7& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_data()->::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data::MergeFrom(from.data());
    }
    if (cached_has_bits & 0x00000002u) {
      type_ = from.type_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void NewInitResponse_Tag7::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitResponse_Tag7::CopyFrom(const NewInitResponse_Tag7& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse.Tag7)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitResponse_Tag7::IsInitialized() const {
  return true;
}

void NewInitResponse_Tag7::Swap(NewInitResponse_Tag7* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitResponse_Tag7::InternalSwap(NewInitResponse_Tag7* other) {
  std::swap(data_, other->data_);
  std::swap(type_, other->type_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitResponse_Tag7::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitResponse_Tag7

// optional int32 type = 1;
bool NewInitResponse_Tag7::has_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitResponse_Tag7::set_has_type() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitResponse_Tag7::clear_has_type() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitResponse_Tag7::clear_type() {
  type_ = 0;
  clear_has_type();
}
::google::protobuf::int32 NewInitResponse_Tag7::type() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.type)
  return type_;
}
void NewInitResponse_Tag7::set_type(::google::protobuf::int32 value) {
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.type)
}

// optional .com.tencent.mars.microchat.proto.NewInitResponse.Tag7.Data data = 2;
bool NewInitResponse_Tag7::has_data() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitResponse_Tag7::set_has_data() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitResponse_Tag7::clear_has_data() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitResponse_Tag7::clear_data() {
  if (data_ != NULL) data_->::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data::Clear();
  clear_has_data();
}
const ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data& NewInitResponse_Tag7::data() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
  return data_ != NULL ? *data_
                         : *::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data::internal_default_instance();
}
::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* NewInitResponse_Tag7::mutable_data() {
  set_has_data();
  if (data_ == NULL) {
    data_ = new ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
  return data_;
}
::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* NewInitResponse_Tag7::release_data() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
  clear_has_data();
  ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* temp = data_;
  data_ = NULL;
  return temp;
}
void NewInitResponse_Tag7::set_allocated_data(::com::tencent::mars::microchat::proto::NewInitResponse_Tag7_Data* data) {
  delete data_;
  data_ = data;
  if (data) {
    set_has_data();
  } else {
    clear_has_data();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.Tag7.data)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int NewInitResponse::kTag1FieldNumber;
const int NewInitResponse::kSync2FieldNumber;
const int NewInitResponse::kSync3FieldNumber;
const int NewInitResponse::kTag4FieldNumber;
const int NewInitResponse::kTag5FieldNumber;
const int NewInitResponse::kCntListFieldNumber;
const int NewInitResponse::kTag7FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

NewInitResponse::NewInitResponse()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.NewInitResponse)
}
NewInitResponse::NewInitResponse(const NewInitResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0),
      tag7_(from.tag7_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  tag1_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag1()) {
    tag1_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag1_);
  }
  sync2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_sync2()) {
    sync2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sync2_);
  }
  if (from.has_sync3()) {
    sync3_ = new ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey(*from.sync3_);
  } else {
    sync3_ = NULL;
  }
  ::memcpy(&tag4_, &from.tag4_,
    reinterpret_cast<char*>(&cntlist_) -
    reinterpret_cast<char*>(&tag4_) + sizeof(cntlist_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.NewInitResponse)
}

void NewInitResponse::SharedCtor() {
  _cached_size_ = 0;
  tag1_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sync2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&sync3_, 0, reinterpret_cast<char*>(&cntlist_) -
    reinterpret_cast<char*>(&sync3_) + sizeof(cntlist_));
}

NewInitResponse::~NewInitResponse() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.NewInitResponse)
  SharedDtor();
}

void NewInitResponse::SharedDtor() {
  tag1_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sync2_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete sync3_;
  }
}

void NewInitResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* NewInitResponse::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const NewInitResponse& NewInitResponse::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

NewInitResponse* NewInitResponse::New(::google::protobuf::Arena* arena) const {
  NewInitResponse* n = new NewInitResponse;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void NewInitResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.NewInitResponse)
  tag7_.Clear();
  if (_has_bits_[0 / 32] & 7u) {
    if (has_tag1()) {
      GOOGLE_DCHECK(!tag1_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag1_.UnsafeRawStringPointer())->clear();
    }
    if (has_sync2()) {
      GOOGLE_DCHECK(!sync2_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*sync2_.UnsafeRawStringPointer())->clear();
    }
    if (has_sync3()) {
      GOOGLE_DCHECK(sync3_ != NULL);
      sync3_->::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey::Clear();
    }
  }
  if (_has_bits_[0 / 32] & 56u) {
    ::memset(&tag4_, 0, reinterpret_cast<char*>(&cntlist_) -
      reinterpret_cast<char*>(&tag4_) + sizeof(cntlist_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool NewInitResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.NewInitResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string tag1 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag1()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag1().data(), this->tag1().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitResponse.tag1");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string sync2 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_sync2()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->sync2().data(), this->sync2().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.NewInitResponse.sync2");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey sync3 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_sync3()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag4 = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {
          set_has_tag4();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag4_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag5 = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {
          set_has_tag5();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag5_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 cntList = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          set_has_cntlist();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &cntlist_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.tencent.mars.microchat.proto.NewInitResponse.Tag7 tag7 = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_tag7()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.NewInitResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.NewInitResponse)
  return false;
#undef DO_
}

void NewInitResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.NewInitResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string tag1 = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag1().data(), this->tag1().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.tag1");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->tag1(), output);
  }

  // optional string sync2 = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->sync2().data(), this->sync2().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.sync2");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->sync2(), output);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey sync3 = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->sync3_, output);
  }

  // optional int32 tag4 = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->tag4(), output);
  }

  // optional int32 tag5 = 5;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->tag5(), output);
  }

  // optional int32 cntList = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->cntlist(), output);
  }

  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.Tag7 tag7 = 7;
  for (unsigned int i = 0, n = this->tag7_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, this->tag7(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.NewInitResponse)
}

::google::protobuf::uint8* NewInitResponse::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.NewInitResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string tag1 = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag1().data(), this->tag1().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.tag1");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->tag1(), target);
  }

  // optional string sync2 = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->sync2().data(), this->sync2().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.NewInitResponse.sync2");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->sync2(), target);
  }

  // optional .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey sync3 = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->sync3_, deterministic, target);
  }

  // optional int32 tag4 = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->tag4(), target);
  }

  // optional int32 tag5 = 5;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->tag5(), target);
  }

  // optional int32 cntList = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->cntlist(), target);
  }

  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.Tag7 tag7 = 7;
  for (unsigned int i = 0, n = this->tag7_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        7, this->tag7(i), deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.NewInitResponse)
  return target;
}

size_t NewInitResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.NewInitResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // repeated .com.tencent.mars.microchat.proto.NewInitResponse.Tag7 tag7 = 7;
  {
    unsigned int count = this->tag7_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->tag7(i));
    }
  }

  if (_has_bits_[0 / 32] & 63u) {
    // optional string tag1 = 1;
    if (has_tag1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag1());
    }

    // optional string sync2 = 2;
    if (has_sync2()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->sync2());
    }

    // optional .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey sync3 = 3;
    if (has_sync3()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->sync3_);
    }

    // optional int32 tag4 = 4;
    if (has_tag4()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag4());
    }

    // optional int32 tag5 = 5;
    if (has_tag5()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag5());
    }

    // optional int32 cntList = 6;
    if (has_cntlist()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->cntlist());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void NewInitResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const NewInitResponse* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const NewInitResponse>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.NewInitResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.NewInitResponse)
    MergeFrom(*source);
  }
}

void NewInitResponse::MergeFrom(const NewInitResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.NewInitResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  tag7_.MergeFrom(from.tag7_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_tag1();
      tag1_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag1_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_sync2();
      sync2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sync2_);
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_sync3()->::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey::MergeFrom(from.sync3());
    }
    if (cached_has_bits & 0x00000008u) {
      tag4_ = from.tag4_;
    }
    if (cached_has_bits & 0x00000010u) {
      tag5_ = from.tag5_;
    }
    if (cached_has_bits & 0x00000020u) {
      cntlist_ = from.cntlist_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void NewInitResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void NewInitResponse::CopyFrom(const NewInitResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.NewInitResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool NewInitResponse::IsInitialized() const {
  return true;
}

void NewInitResponse::Swap(NewInitResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void NewInitResponse::InternalSwap(NewInitResponse* other) {
  tag7_.InternalSwap(&other->tag7_);
  tag1_.Swap(&other->tag1_);
  sync2_.Swap(&other->sync2_);
  std::swap(sync3_, other->sync3_);
  std::swap(tag4_, other->tag4_);
  std::swap(tag5_, other->tag5_);
  std::swap(cntlist_, other->cntlist_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata NewInitResponse::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// NewInitResponse

// optional string tag1 = 1;
bool NewInitResponse::has_tag1() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void NewInitResponse::set_has_tag1() {
  _has_bits_[0] |= 0x00000001u;
}
void NewInitResponse::clear_has_tag1() {
  _has_bits_[0] &= ~0x00000001u;
}
void NewInitResponse::clear_tag1() {
  tag1_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag1();
}
const ::std::string& NewInitResponse::tag1() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
  return tag1_.GetNoArena();
}
void NewInitResponse::set_tag1(const ::std::string& value) {
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
#if LANG_CXX11
void NewInitResponse::set_tag1(::std::string&& value) {
  set_has_tag1();
  tag1_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
#endif
void NewInitResponse::set_tag1(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
void NewInitResponse::set_tag1(const char* value, size_t size) {
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}
::std::string* NewInitResponse::mutable_tag1() {
  set_has_tag1();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
  return tag1_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitResponse::release_tag1() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
  clear_has_tag1();
  return tag1_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitResponse::set_allocated_tag1(::std::string* tag1) {
  if (tag1 != NULL) {
    set_has_tag1();
  } else {
    clear_has_tag1();
  }
  tag1_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag1);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.tag1)
}

// optional string sync2 = 2;
bool NewInitResponse::has_sync2() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void NewInitResponse::set_has_sync2() {
  _has_bits_[0] |= 0x00000002u;
}
void NewInitResponse::clear_has_sync2() {
  _has_bits_[0] &= ~0x00000002u;
}
void NewInitResponse::clear_sync2() {
  sync2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_sync2();
}
const ::std::string& NewInitResponse::sync2() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
  return sync2_.GetNoArena();
}
void NewInitResponse::set_sync2(const ::std::string& value) {
  set_has_sync2();
  sync2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
#if LANG_CXX11
void NewInitResponse::set_sync2(::std::string&& value) {
  set_has_sync2();
  sync2_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
#endif
void NewInitResponse::set_sync2(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_sync2();
  sync2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
void NewInitResponse::set_sync2(const char* value, size_t size) {
  set_has_sync2();
  sync2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}
::std::string* NewInitResponse::mutable_sync2() {
  set_has_sync2();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
  return sync2_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* NewInitResponse::release_sync2() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
  clear_has_sync2();
  return sync2_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void NewInitResponse::set_allocated_sync2(::std::string* sync2) {
  if (sync2 != NULL) {
    set_has_sync2();
  } else {
    clear_has_sync2();
  }
  sync2_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sync2);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.sync2)
}

// optional .com.tencent.mars.microchat.proto.NewInitResponse.SyncKey sync3 = 3;
bool NewInitResponse::has_sync3() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void NewInitResponse::set_has_sync3() {
  _has_bits_[0] |= 0x00000004u;
}
void NewInitResponse::clear_has_sync3() {
  _has_bits_[0] &= ~0x00000004u;
}
void NewInitResponse::clear_sync3() {
  if (sync3_ != NULL) sync3_->::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey::Clear();
  clear_has_sync3();
}
const ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey& NewInitResponse::sync3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
  return sync3_ != NULL ? *sync3_
                         : *::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey::internal_default_instance();
}
::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* NewInitResponse::mutable_sync3() {
  set_has_sync3();
  if (sync3_ == NULL) {
    sync3_ = new ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
  return sync3_;
}
::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* NewInitResponse::release_sync3() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
  clear_has_sync3();
  ::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* temp = sync3_;
  sync3_ = NULL;
  return temp;
}
void NewInitResponse::set_allocated_sync3(::com::tencent::mars::microchat::proto::NewInitResponse_SyncKey* sync3) {
  delete sync3_;
  sync3_ = sync3;
  if (sync3) {
    set_has_sync3();
  } else {
    clear_has_sync3();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.NewInitResponse.sync3)
}

// optional int32 tag4 = 4;
bool NewInitResponse::has_tag4() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void NewInitResponse::set_has_tag4() {
  _has_bits_[0] |= 0x00000008u;
}
void NewInitResponse::clear_has_tag4() {
  _has_bits_[0] &= ~0x00000008u;
}
void NewInitResponse::clear_tag4() {
  tag4_ = 0;
  clear_has_tag4();
}
::google::protobuf::int32 NewInitResponse::tag4() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag4)
  return tag4_;
}
void NewInitResponse::set_tag4(::google::protobuf::int32 value) {
  set_has_tag4();
  tag4_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.tag4)
}

// optional int32 tag5 = 5;
bool NewInitResponse::has_tag5() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void NewInitResponse::set_has_tag5() {
  _has_bits_[0] |= 0x00000010u;
}
void NewInitResponse::clear_has_tag5() {
  _has_bits_[0] &= ~0x00000010u;
}
void NewInitResponse::clear_tag5() {
  tag5_ = 0;
  clear_has_tag5();
}
::google::protobuf::int32 NewInitResponse::tag5() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag5)
  return tag5_;
}
void NewInitResponse::set_tag5(::google::protobuf::int32 value) {
  set_has_tag5();
  tag5_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.tag5)
}

// optional int32 cntList = 6;
bool NewInitResponse::has_cntlist() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
void NewInitResponse::set_has_cntlist() {
  _has_bits_[0] |= 0x00000020u;
}
void NewInitResponse::clear_has_cntlist() {
  _has_bits_[0] &= ~0x00000020u;
}
void NewInitResponse::clear_cntlist() {
  cntlist_ = 0;
  clear_has_cntlist();
}
::google::protobuf::int32 NewInitResponse::cntlist() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.cntList)
  return cntlist_;
}
void NewInitResponse::set_cntlist(::google::protobuf::int32 value) {
  set_has_cntlist();
  cntlist_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.NewInitResponse.cntList)
}

// repeated .com.tencent.mars.microchat.proto.NewInitResponse.Tag7 tag7 = 7;
int NewInitResponse::tag7_size() const {
  return tag7_.size();
}
void NewInitResponse::clear_tag7() {
  tag7_.Clear();
}
const ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7& NewInitResponse::tag7(int index) const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_.Get(index);
}
::com::tencent::mars::microchat::proto::NewInitResponse_Tag7* NewInitResponse::mutable_tag7(int index) {
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_.Mutable(index);
}
::com::tencent::mars::microchat::proto::NewInitResponse_Tag7* NewInitResponse::add_tag7() {
  // @@protoc_insertion_point(field_add:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_.Add();
}
::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7 >*
NewInitResponse::mutable_tag7() {
  // @@protoc_insertion_point(field_mutable_list:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return &tag7_;
}
const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::NewInitResponse_Tag7 >&
NewInitResponse::tag7() const {
  // @@protoc_insertion_point(field_list:com.tencent.mars.microchat.proto.NewInitResponse.tag7)
  return tag7_;
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int UserInfo_WXID::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

UserInfo_WXID::UserInfo_WXID()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.UserInfo.WXID)
}
UserInfo_WXID::UserInfo_WXID(const UserInfo_WXID& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_id()) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.UserInfo.WXID)
}

void UserInfo_WXID::SharedCtor() {
  _cached_size_ = 0;
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

UserInfo_WXID::~UserInfo_WXID() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.UserInfo.WXID)
  SharedDtor();
}

void UserInfo_WXID::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void UserInfo_WXID::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* UserInfo_WXID::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const UserInfo_WXID& UserInfo_WXID::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

UserInfo_WXID* UserInfo_WXID::New(::google::protobuf::Arena* arena) const {
  UserInfo_WXID* n = new UserInfo_WXID;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void UserInfo_WXID::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  if (has_id()) {
    GOOGLE_DCHECK(!id_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*id_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool UserInfo_WXID::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string id = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->id().data(), this->id().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.WXID.id");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.UserInfo.WXID)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.UserInfo.WXID)
  return false;
#undef DO_
}

void UserInfo_WXID::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string id = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.WXID.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.UserInfo.WXID)
}

::google::protobuf::uint8* UserInfo_WXID::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string id = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.WXID.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.UserInfo.WXID)
  return target;
}

size_t UserInfo_WXID::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string id = 1;
  if (has_id()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void UserInfo_WXID::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  GOOGLE_DCHECK_NE(&from, this);
  const UserInfo_WXID* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const UserInfo_WXID>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.UserInfo.WXID)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.UserInfo.WXID)
    MergeFrom(*source);
  }
}

void UserInfo_WXID::MergeFrom(const UserInfo_WXID& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_id()) {
    set_has_id();
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
}

void UserInfo_WXID::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UserInfo_WXID::CopyFrom(const UserInfo_WXID& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.UserInfo.WXID)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserInfo_WXID::IsInitialized() const {
  return true;
}

void UserInfo_WXID::Swap(UserInfo_WXID* other) {
  if (other == this) return;
  InternalSwap(other);
}
void UserInfo_WXID::InternalSwap(UserInfo_WXID* other) {
  id_.Swap(&other->id_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata UserInfo_WXID::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// UserInfo_WXID

// optional string id = 1;
bool UserInfo_WXID::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void UserInfo_WXID::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
void UserInfo_WXID::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
void UserInfo_WXID::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_id();
}
const ::std::string& UserInfo_WXID::id() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
  return id_.GetNoArena();
}
void UserInfo_WXID::set_id(const ::std::string& value) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
#if LANG_CXX11
void UserInfo_WXID::set_id(::std::string&& value) {
  set_has_id();
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
#endif
void UserInfo_WXID::set_id(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
void UserInfo_WXID::set_id(const char* value, size_t size) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}
::std::string* UserInfo_WXID::mutable_id() {
  set_has_id();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo_WXID::release_id() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
  clear_has_id();
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo_WXID::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    set_has_id();
  } else {
    clear_has_id();
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.WXID.id)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int UserInfo_NICKNAME::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

UserInfo_NICKNAME::UserInfo_NICKNAME()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
}
UserInfo_NICKNAME::UserInfo_NICKNAME(const UserInfo_NICKNAME& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
}

void UserInfo_NICKNAME::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

UserInfo_NICKNAME::~UserInfo_NICKNAME() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  SharedDtor();
}

void UserInfo_NICKNAME::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void UserInfo_NICKNAME::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* UserInfo_NICKNAME::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const UserInfo_NICKNAME& UserInfo_NICKNAME::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

UserInfo_NICKNAME* UserInfo_NICKNAME::New(::google::protobuf::Arena* arena) const {
  UserInfo_NICKNAME* n = new UserInfo_NICKNAME;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void UserInfo_NICKNAME::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool UserInfo_NICKNAME::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  return false;
#undef DO_
}

void UserInfo_NICKNAME::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
}

::google::protobuf::uint8* UserInfo_NICKNAME::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  return target;
}

size_t UserInfo_NICKNAME::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void UserInfo_NICKNAME::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  GOOGLE_DCHECK_NE(&from, this);
  const UserInfo_NICKNAME* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const UserInfo_NICKNAME>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
    MergeFrom(*source);
  }
}

void UserInfo_NICKNAME::MergeFrom(const UserInfo_NICKNAME& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void UserInfo_NICKNAME::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UserInfo_NICKNAME::CopyFrom(const UserInfo_NICKNAME& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.UserInfo.NICKNAME)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserInfo_NICKNAME::IsInitialized() const {
  return true;
}

void UserInfo_NICKNAME::Swap(UserInfo_NICKNAME* other) {
  if (other == this) return;
  InternalSwap(other);
}
void UserInfo_NICKNAME::InternalSwap(UserInfo_NICKNAME* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata UserInfo_NICKNAME::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// UserInfo_NICKNAME

// optional string name = 1;
bool UserInfo_NICKNAME::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void UserInfo_NICKNAME::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void UserInfo_NICKNAME::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void UserInfo_NICKNAME::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& UserInfo_NICKNAME::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
  return name_.GetNoArena();
}
void UserInfo_NICKNAME::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
#if LANG_CXX11
void UserInfo_NICKNAME::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
#endif
void UserInfo_NICKNAME::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
void UserInfo_NICKNAME::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}
::std::string* UserInfo_NICKNAME::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo_NICKNAME::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo_NICKNAME::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.NICKNAME.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int UserInfo_BINDMOBILE::kMobileFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

UserInfo_BINDMOBILE::UserInfo_BINDMOBILE()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
}
UserInfo_BINDMOBILE::UserInfo_BINDMOBILE(const UserInfo_BINDMOBILE& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  mobile_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_mobile()) {
    mobile_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.mobile_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
}

void UserInfo_BINDMOBILE::SharedCtor() {
  _cached_size_ = 0;
  mobile_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

UserInfo_BINDMOBILE::~UserInfo_BINDMOBILE() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  SharedDtor();
}

void UserInfo_BINDMOBILE::SharedDtor() {
  mobile_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void UserInfo_BINDMOBILE::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* UserInfo_BINDMOBILE::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const UserInfo_BINDMOBILE& UserInfo_BINDMOBILE::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

UserInfo_BINDMOBILE* UserInfo_BINDMOBILE::New(::google::protobuf::Arena* arena) const {
  UserInfo_BINDMOBILE* n = new UserInfo_BINDMOBILE;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void UserInfo_BINDMOBILE::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  if (has_mobile()) {
    GOOGLE_DCHECK(!mobile_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*mobile_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool UserInfo_BINDMOBILE::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string mobile = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_mobile()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->mobile().data(), this->mobile().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  return false;
#undef DO_
}

void UserInfo_BINDMOBILE::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string mobile = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->mobile().data(), this->mobile().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->mobile(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
}

::google::protobuf::uint8* UserInfo_BINDMOBILE::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string mobile = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->mobile().data(), this->mobile().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->mobile(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  return target;
}

size_t UserInfo_BINDMOBILE::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string mobile = 1;
  if (has_mobile()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->mobile());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void UserInfo_BINDMOBILE::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  GOOGLE_DCHECK_NE(&from, this);
  const UserInfo_BINDMOBILE* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const UserInfo_BINDMOBILE>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
    MergeFrom(*source);
  }
}

void UserInfo_BINDMOBILE::MergeFrom(const UserInfo_BINDMOBILE& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_mobile()) {
    set_has_mobile();
    mobile_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.mobile_);
  }
}

void UserInfo_BINDMOBILE::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UserInfo_BINDMOBILE::CopyFrom(const UserInfo_BINDMOBILE& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserInfo_BINDMOBILE::IsInitialized() const {
  return true;
}

void UserInfo_BINDMOBILE::Swap(UserInfo_BINDMOBILE* other) {
  if (other == this) return;
  InternalSwap(other);
}
void UserInfo_BINDMOBILE::InternalSwap(UserInfo_BINDMOBILE* other) {
  mobile_.Swap(&other->mobile_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata UserInfo_BINDMOBILE::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// UserInfo_BINDMOBILE

// optional string mobile = 1;
bool UserInfo_BINDMOBILE::has_mobile() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void UserInfo_BINDMOBILE::set_has_mobile() {
  _has_bits_[0] |= 0x00000001u;
}
void UserInfo_BINDMOBILE::clear_has_mobile() {
  _has_bits_[0] &= ~0x00000001u;
}
void UserInfo_BINDMOBILE::clear_mobile() {
  mobile_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_mobile();
}
const ::std::string& UserInfo_BINDMOBILE::mobile() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
  return mobile_.GetNoArena();
}
void UserInfo_BINDMOBILE::set_mobile(const ::std::string& value) {
  set_has_mobile();
  mobile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
#if LANG_CXX11
void UserInfo_BINDMOBILE::set_mobile(::std::string&& value) {
  set_has_mobile();
  mobile_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
#endif
void UserInfo_BINDMOBILE::set_mobile(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_mobile();
  mobile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
void UserInfo_BINDMOBILE::set_mobile(const char* value, size_t size) {
  set_has_mobile();
  mobile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}
::std::string* UserInfo_BINDMOBILE::mutable_mobile() {
  set_has_mobile();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
  return mobile_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo_BINDMOBILE::release_mobile() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
  clear_has_mobile();
  return mobile_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo_BINDMOBILE::set_allocated_mobile(::std::string* mobile) {
  if (mobile != NULL) {
    set_has_mobile();
  } else {
    clear_has_mobile();
  }
  mobile_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), mobile);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE.mobile)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int UserInfo::kBitFlagFieldNumber;
const int UserInfo::kWxidFieldNumber;
const int UserInfo::kNicknameFieldNumber;
const int UserInfo::kBBindEmailFieldNumber;
const int UserInfo::kBindemailFieldNumber;
const int UserInfo::kMobileFieldNumber;
const int UserInfo::kStatusFieldNumber;
const int UserInfo::kTag8FieldNumber;
const int UserInfo::kTag10FieldNumber;
const int UserInfo::kShengFieldNumber;
const int UserInfo::kShiFieldNumber;
const int UserInfo::kQianmingFieldNumber;
const int UserInfo::kTag14FieldNumber;
const int UserInfo::kTag15FieldNumber;
const int UserInfo::kPluginFlagFieldNumber;
const int UserInfo::kTag17FieldNumber;
const int UserInfo::kTag19FieldNumber;
const int UserInfo::kTag20FieldNumber;
const int UserInfo::kTag21FieldNumber;
const int UserInfo::kTag22FieldNumber;
const int UserInfo::kTag23FieldNumber;
const int UserInfo::kPluginSwitchFieldNumber;
const int UserInfo::kTag26FieldNumber;
const int UserInfo::kAliasFieldNumber;
const int UserInfo::kTag29FieldNumber;
const int UserInfo::kTag30FieldNumber;
const int UserInfo::kTag31FieldNumber;
const int UserInfo::kTag33FieldNumber;
const int UserInfo::kTag34FieldNumber;
const int UserInfo::kTag36FieldNumber;
const int UserInfo::kCountryFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

UserInfo::UserInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.UserInfo)
}
UserInfo::UserInfo(const UserInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  bindemail_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_bindemail()) {
    bindemail_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bindemail_);
  }
  sheng_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_sheng()) {
    sheng_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sheng_);
  }
  shi_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_shi()) {
    shi_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.shi_);
  }
  qianming_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_qianming()) {
    qianming_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.qianming_);
  }
  tag15_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag15()) {
    tag15_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag15_);
  }
  tag26_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag26()) {
    tag26_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag26_);
  }
  alias_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_alias()) {
    alias_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.alias_);
  }
  country_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_country()) {
    country_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.country_);
  }
  if (from.has_wxid()) {
    wxid_ = new ::com::tencent::mars::microchat::proto::UserInfo_WXID(*from.wxid_);
  } else {
    wxid_ = NULL;
  }
  if (from.has_nickname()) {
    nickname_ = new ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME(*from.nickname_);
  } else {
    nickname_ = NULL;
  }
  if (from.has_mobile()) {
    mobile_ = new ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE(*from.mobile_);
  } else {
    mobile_ = NULL;
  }
  ::memcpy(&bitflag_, &from.bitflag_,
    reinterpret_cast<char*>(&tag36_) -
    reinterpret_cast<char*>(&bitflag_) + sizeof(tag36_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.UserInfo)
}

void UserInfo::SharedCtor() {
  _cached_size_ = 0;
  bindemail_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sheng_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  shi_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  qianming_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag15_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag26_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  alias_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  country_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&wxid_, 0, reinterpret_cast<char*>(&tag36_) -
    reinterpret_cast<char*>(&wxid_) + sizeof(tag36_));
}

UserInfo::~UserInfo() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.UserInfo)
  SharedDtor();
}

void UserInfo::SharedDtor() {
  bindemail_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sheng_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  shi_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  qianming_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag15_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag26_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  alias_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  country_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete wxid_;
  }
  if (this != internal_default_instance()) {
    delete nickname_;
  }
  if (this != internal_default_instance()) {
    delete mobile_;
  }
}

void UserInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* UserInfo::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const UserInfo& UserInfo::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

UserInfo* UserInfo::New(::google::protobuf::Arena* arena) const {
  UserInfo* n = new UserInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void UserInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.UserInfo)
  if (_has_bits_[0 / 32] & 255u) {
    if (has_bindemail()) {
      GOOGLE_DCHECK(!bindemail_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*bindemail_.UnsafeRawStringPointer())->clear();
    }
    if (has_sheng()) {
      GOOGLE_DCHECK(!sheng_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*sheng_.UnsafeRawStringPointer())->clear();
    }
    if (has_shi()) {
      GOOGLE_DCHECK(!shi_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*shi_.UnsafeRawStringPointer())->clear();
    }
    if (has_qianming()) {
      GOOGLE_DCHECK(!qianming_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*qianming_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag15()) {
      GOOGLE_DCHECK(!tag15_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag15_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag26()) {
      GOOGLE_DCHECK(!tag26_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag26_.UnsafeRawStringPointer())->clear();
    }
    if (has_alias()) {
      GOOGLE_DCHECK(!alias_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*alias_.UnsafeRawStringPointer())->clear();
    }
    if (has_country()) {
      GOOGLE_DCHECK(!country_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*country_.UnsafeRawStringPointer())->clear();
    }
  }
  if (_has_bits_[8 / 32] & 1792u) {
    if (has_wxid()) {
      GOOGLE_DCHECK(wxid_ != NULL);
      wxid_->::com::tencent::mars::microchat::proto::UserInfo_WXID::Clear();
    }
    if (has_nickname()) {
      GOOGLE_DCHECK(nickname_ != NULL);
      nickname_->::com::tencent::mars::microchat::proto::UserInfo_NICKNAME::Clear();
    }
    if (has_mobile()) {
      GOOGLE_DCHECK(mobile_ != NULL);
      mobile_->::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE::Clear();
    }
  }
  if (_has_bits_[8 / 32] & 63488u) {
    ::memset(&bitflag_, 0, reinterpret_cast<char*>(&tag10_) -
      reinterpret_cast<char*>(&bitflag_) + sizeof(tag10_));
  }
  if (_has_bits_[16 / 32] & 16711680u) {
    ::memset(&tag14_, 0, reinterpret_cast<char*>(&tag23_) -
      reinterpret_cast<char*>(&tag14_) + sizeof(tag23_));
  }
  if (_has_bits_[24 / 32] & 2130706432u) {
    ::memset(&pluginswitch_, 0, reinterpret_cast<char*>(&tag36_) -
      reinterpret_cast<char*>(&pluginswitch_) + sizeof(tag36_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool UserInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.UserInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 bitFlag = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_bitflag();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &bitflag_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.UserInfo.WXID wxid = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_wxid()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.UserInfo.NICKNAME nickname = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_nickname()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 bBindEmail = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {
          set_has_bbindemail();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &bbindemail_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string bindemail = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_bindemail()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->bindemail().data(), this->bindemail().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.bindemail");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE mobile = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_mobile()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 status = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u)) {
          set_has_status();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &status_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag8 = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u)) {
          set_has_tag8();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag8_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag10 = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(80u)) {
          set_has_tag10();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag10_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string sheng = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_sheng()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->sheng().data(), this->sheng().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.sheng");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string shi = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_shi()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->shi().data(), this->shi().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.shi");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string qianming = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_qianming()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->qianming().data(), this->qianming().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.qianming");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag14 = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(112u)) {
          set_has_tag14();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag14_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag15 = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(122u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag15()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag15().data(), this->tag15().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.tag15");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 pluginFlag = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(128u)) {
          set_has_pluginflag();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &pluginflag_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag17 = 17;
      case 17: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(136u)) {
          set_has_tag17();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag17_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag19 = 19;
      case 19: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(152u)) {
          set_has_tag19();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag19_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag20 = 20;
      case 20: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(160u)) {
          set_has_tag20();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag20_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag21 = 21;
      case 21: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(168u)) {
          set_has_tag21();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag21_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag22 = 22;
      case 22: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(176u)) {
          set_has_tag22();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag22_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag23 = 23;
      case 23: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(184u)) {
          set_has_tag23();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag23_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 PluginSwitch = 25;
      case 25: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(200u)) {
          set_has_pluginswitch();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &pluginswitch_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag26 = 26;
      case 26: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(210u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag26()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag26().data(), this->tag26().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.tag26");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string alias = 27;
      case 27: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(218u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_alias()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->alias().data(), this->alias().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.alias");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag29 = 29;
      case 29: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(232u)) {
          set_has_tag29();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag29_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag30 = 30;
      case 30: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(240u)) {
          set_has_tag30();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag30_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag31 = 31;
      case 31: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(248u)) {
          set_has_tag31();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag31_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag33 = 33;
      case 33: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(264u)) {
          set_has_tag33();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag33_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag34 = 34;
      case 34: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(272u)) {
          set_has_tag34();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag34_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag36 = 37;
      case 37: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(296u)) {
          set_has_tag36();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag36_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string country = 38;
      case 38: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(306u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_country()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->country().data(), this->country().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.UserInfo.country");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.UserInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.UserInfo)
  return false;
#undef DO_
}

void UserInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.UserInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 bitFlag = 1;
  if (cached_has_bits & 0x00000800u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->bitflag(), output);
  }

  // optional .com.tencent.mars.microchat.proto.UserInfo.WXID wxid = 2;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->wxid_, output);
  }

  // optional .com.tencent.mars.microchat.proto.UserInfo.NICKNAME nickname = 3;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->nickname_, output);
  }

  // optional int32 bBindEmail = 4;
  if (cached_has_bits & 0x00001000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->bbindemail(), output);
  }

  // optional string bindemail = 5;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->bindemail().data(), this->bindemail().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.bindemail");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->bindemail(), output);
  }

  // optional .com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE mobile = 6;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, *this->mobile_, output);
  }

  // optional int32 status = 7;
  if (cached_has_bits & 0x00002000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->status(), output);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x00004000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->tag8(), output);
  }

  // optional int32 tag10 = 10;
  if (cached_has_bits & 0x00008000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(10, this->tag10(), output);
  }

  // optional string sheng = 11;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->sheng().data(), this->sheng().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.sheng");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      11, this->sheng(), output);
  }

  // optional string shi = 12;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->shi().data(), this->shi().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.shi");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      12, this->shi(), output);
  }

  // optional string qianming = 13;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->qianming().data(), this->qianming().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.qianming");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      13, this->qianming(), output);
  }

  // optional int32 tag14 = 14;
  if (cached_has_bits & 0x00010000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(14, this->tag14(), output);
  }

  // optional string tag15 = 15;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag15().data(), this->tag15().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.tag15");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      15, this->tag15(), output);
  }

  // optional int32 pluginFlag = 16;
  if (cached_has_bits & 0x00020000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(16, this->pluginflag(), output);
  }

  // optional int32 tag17 = 17;
  if (cached_has_bits & 0x00040000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(17, this->tag17(), output);
  }

  // optional int32 tag19 = 19;
  if (cached_has_bits & 0x00080000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(19, this->tag19(), output);
  }

  // optional int32 tag20 = 20;
  if (cached_has_bits & 0x00100000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(20, this->tag20(), output);
  }

  // optional int32 tag21 = 21;
  if (cached_has_bits & 0x00200000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(21, this->tag21(), output);
  }

  // optional int32 tag22 = 22;
  if (cached_has_bits & 0x00400000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(22, this->tag22(), output);
  }

  // optional int32 tag23 = 23;
  if (cached_has_bits & 0x00800000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(23, this->tag23(), output);
  }

  // optional int32 PluginSwitch = 25;
  if (cached_has_bits & 0x01000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(25, this->pluginswitch(), output);
  }

  // optional string tag26 = 26;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag26().data(), this->tag26().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.tag26");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      26, this->tag26(), output);
  }

  // optional string alias = 27;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->alias().data(), this->alias().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.alias");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      27, this->alias(), output);
  }

  // optional int32 tag29 = 29;
  if (cached_has_bits & 0x02000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(29, this->tag29(), output);
  }

  // optional int32 tag30 = 30;
  if (cached_has_bits & 0x04000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(30, this->tag30(), output);
  }

  // optional int32 tag31 = 31;
  if (cached_has_bits & 0x08000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(31, this->tag31(), output);
  }

  // optional int32 tag33 = 33;
  if (cached_has_bits & 0x10000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(33, this->tag33(), output);
  }

  // optional int32 tag34 = 34;
  if (cached_has_bits & 0x20000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(34, this->tag34(), output);
  }

  // optional int32 tag36 = 37;
  if (cached_has_bits & 0x40000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(37, this->tag36(), output);
  }

  // optional string country = 38;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->country().data(), this->country().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.country");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      38, this->country(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.UserInfo)
}

::google::protobuf::uint8* UserInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.UserInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 bitFlag = 1;
  if (cached_has_bits & 0x00000800u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->bitflag(), target);
  }

  // optional .com.tencent.mars.microchat.proto.UserInfo.WXID wxid = 2;
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->wxid_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.UserInfo.NICKNAME nickname = 3;
  if (cached_has_bits & 0x00000200u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->nickname_, deterministic, target);
  }

  // optional int32 bBindEmail = 4;
  if (cached_has_bits & 0x00001000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->bbindemail(), target);
  }

  // optional string bindemail = 5;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->bindemail().data(), this->bindemail().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.bindemail");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->bindemail(), target);
  }

  // optional .com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE mobile = 6;
  if (cached_has_bits & 0x00000400u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        6, *this->mobile_, deterministic, target);
  }

  // optional int32 status = 7;
  if (cached_has_bits & 0x00002000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->status(), target);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x00004000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->tag8(), target);
  }

  // optional int32 tag10 = 10;
  if (cached_has_bits & 0x00008000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(10, this->tag10(), target);
  }

  // optional string sheng = 11;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->sheng().data(), this->sheng().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.sheng");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        11, this->sheng(), target);
  }

  // optional string shi = 12;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->shi().data(), this->shi().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.shi");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        12, this->shi(), target);
  }

  // optional string qianming = 13;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->qianming().data(), this->qianming().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.qianming");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        13, this->qianming(), target);
  }

  // optional int32 tag14 = 14;
  if (cached_has_bits & 0x00010000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(14, this->tag14(), target);
  }

  // optional string tag15 = 15;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag15().data(), this->tag15().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.tag15");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        15, this->tag15(), target);
  }

  // optional int32 pluginFlag = 16;
  if (cached_has_bits & 0x00020000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(16, this->pluginflag(), target);
  }

  // optional int32 tag17 = 17;
  if (cached_has_bits & 0x00040000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(17, this->tag17(), target);
  }

  // optional int32 tag19 = 19;
  if (cached_has_bits & 0x00080000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(19, this->tag19(), target);
  }

  // optional int32 tag20 = 20;
  if (cached_has_bits & 0x00100000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(20, this->tag20(), target);
  }

  // optional int32 tag21 = 21;
  if (cached_has_bits & 0x00200000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(21, this->tag21(), target);
  }

  // optional int32 tag22 = 22;
  if (cached_has_bits & 0x00400000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(22, this->tag22(), target);
  }

  // optional int32 tag23 = 23;
  if (cached_has_bits & 0x00800000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(23, this->tag23(), target);
  }

  // optional int32 PluginSwitch = 25;
  if (cached_has_bits & 0x01000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(25, this->pluginswitch(), target);
  }

  // optional string tag26 = 26;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag26().data(), this->tag26().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.tag26");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        26, this->tag26(), target);
  }

  // optional string alias = 27;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->alias().data(), this->alias().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.alias");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        27, this->alias(), target);
  }

  // optional int32 tag29 = 29;
  if (cached_has_bits & 0x02000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(29, this->tag29(), target);
  }

  // optional int32 tag30 = 30;
  if (cached_has_bits & 0x04000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(30, this->tag30(), target);
  }

  // optional int32 tag31 = 31;
  if (cached_has_bits & 0x08000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(31, this->tag31(), target);
  }

  // optional int32 tag33 = 33;
  if (cached_has_bits & 0x10000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(33, this->tag33(), target);
  }

  // optional int32 tag34 = 34;
  if (cached_has_bits & 0x20000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(34, this->tag34(), target);
  }

  // optional int32 tag36 = 37;
  if (cached_has_bits & 0x40000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(37, this->tag36(), target);
  }

  // optional string country = 38;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->country().data(), this->country().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.UserInfo.country");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        38, this->country(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.UserInfo)
  return target;
}

size_t UserInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.UserInfo)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 255u) {
    // optional string bindemail = 5;
    if (has_bindemail()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->bindemail());
    }

    // optional string sheng = 11;
    if (has_sheng()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->sheng());
    }

    // optional string shi = 12;
    if (has_shi()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->shi());
    }

    // optional string qianming = 13;
    if (has_qianming()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->qianming());
    }

    // optional string tag15 = 15;
    if (has_tag15()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag15());
    }

    // optional string tag26 = 26;
    if (has_tag26()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag26());
    }

    // optional string alias = 27;
    if (has_alias()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->alias());
    }

    // optional string country = 38;
    if (has_country()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->country());
    }

  }
  if (_has_bits_[8 / 32] & 65280u) {
    // optional .com.tencent.mars.microchat.proto.UserInfo.WXID wxid = 2;
    if (has_wxid()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->wxid_);
    }

    // optional .com.tencent.mars.microchat.proto.UserInfo.NICKNAME nickname = 3;
    if (has_nickname()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->nickname_);
    }

    // optional .com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE mobile = 6;
    if (has_mobile()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->mobile_);
    }

    // optional int32 bitFlag = 1;
    if (has_bitflag()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->bitflag());
    }

    // optional int32 bBindEmail = 4;
    if (has_bbindemail()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->bbindemail());
    }

    // optional int32 status = 7;
    if (has_status()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->status());
    }

    // optional int32 tag8 = 8;
    if (has_tag8()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag8());
    }

    // optional int32 tag10 = 10;
    if (has_tag10()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag10());
    }

  }
  if (_has_bits_[16 / 32] & 16711680u) {
    // optional int32 tag14 = 14;
    if (has_tag14()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag14());
    }

    // optional int32 pluginFlag = 16;
    if (has_pluginflag()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->pluginflag());
    }

    // optional int32 tag17 = 17;
    if (has_tag17()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag17());
    }

    // optional int32 tag19 = 19;
    if (has_tag19()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag19());
    }

    // optional int32 tag20 = 20;
    if (has_tag20()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag20());
    }

    // optional int32 tag21 = 21;
    if (has_tag21()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag21());
    }

    // optional int32 tag22 = 22;
    if (has_tag22()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag22());
    }

    // optional int32 tag23 = 23;
    if (has_tag23()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag23());
    }

  }
  if (_has_bits_[24 / 32] & 2130706432u) {
    // optional int32 PluginSwitch = 25;
    if (has_pluginswitch()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->pluginswitch());
    }

    // optional int32 tag29 = 29;
    if (has_tag29()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag29());
    }

    // optional int32 tag30 = 30;
    if (has_tag30()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag30());
    }

    // optional int32 tag31 = 31;
    if (has_tag31()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag31());
    }

    // optional int32 tag33 = 33;
    if (has_tag33()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag33());
    }

    // optional int32 tag34 = 34;
    if (has_tag34()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag34());
    }

    // optional int32 tag36 = 37;
    if (has_tag36()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag36());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void UserInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.UserInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const UserInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const UserInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.UserInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.UserInfo)
    MergeFrom(*source);
  }
}

void UserInfo::MergeFrom(const UserInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.UserInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_bindemail();
      bindemail_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bindemail_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_sheng();
      sheng_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sheng_);
    }
    if (cached_has_bits & 0x00000004u) {
      set_has_shi();
      shi_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.shi_);
    }
    if (cached_has_bits & 0x00000008u) {
      set_has_qianming();
      qianming_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.qianming_);
    }
    if (cached_has_bits & 0x00000010u) {
      set_has_tag15();
      tag15_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag15_);
    }
    if (cached_has_bits & 0x00000020u) {
      set_has_tag26();
      tag26_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag26_);
    }
    if (cached_has_bits & 0x00000040u) {
      set_has_alias();
      alias_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.alias_);
    }
    if (cached_has_bits & 0x00000080u) {
      set_has_country();
      country_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.country_);
    }
  }
  if (cached_has_bits & 65280u) {
    if (cached_has_bits & 0x00000100u) {
      mutable_wxid()->::com::tencent::mars::microchat::proto::UserInfo_WXID::MergeFrom(from.wxid());
    }
    if (cached_has_bits & 0x00000200u) {
      mutable_nickname()->::com::tencent::mars::microchat::proto::UserInfo_NICKNAME::MergeFrom(from.nickname());
    }
    if (cached_has_bits & 0x00000400u) {
      mutable_mobile()->::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE::MergeFrom(from.mobile());
    }
    if (cached_has_bits & 0x00000800u) {
      bitflag_ = from.bitflag_;
    }
    if (cached_has_bits & 0x00001000u) {
      bbindemail_ = from.bbindemail_;
    }
    if (cached_has_bits & 0x00002000u) {
      status_ = from.status_;
    }
    if (cached_has_bits & 0x00004000u) {
      tag8_ = from.tag8_;
    }
    if (cached_has_bits & 0x00008000u) {
      tag10_ = from.tag10_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 16711680u) {
    if (cached_has_bits & 0x00010000u) {
      tag14_ = from.tag14_;
    }
    if (cached_has_bits & 0x00020000u) {
      pluginflag_ = from.pluginflag_;
    }
    if (cached_has_bits & 0x00040000u) {
      tag17_ = from.tag17_;
    }
    if (cached_has_bits & 0x00080000u) {
      tag19_ = from.tag19_;
    }
    if (cached_has_bits & 0x00100000u) {
      tag20_ = from.tag20_;
    }
    if (cached_has_bits & 0x00200000u) {
      tag21_ = from.tag21_;
    }
    if (cached_has_bits & 0x00400000u) {
      tag22_ = from.tag22_;
    }
    if (cached_has_bits & 0x00800000u) {
      tag23_ = from.tag23_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  if (cached_has_bits & 2130706432u) {
    if (cached_has_bits & 0x01000000u) {
      pluginswitch_ = from.pluginswitch_;
    }
    if (cached_has_bits & 0x02000000u) {
      tag29_ = from.tag29_;
    }
    if (cached_has_bits & 0x04000000u) {
      tag30_ = from.tag30_;
    }
    if (cached_has_bits & 0x08000000u) {
      tag31_ = from.tag31_;
    }
    if (cached_has_bits & 0x10000000u) {
      tag33_ = from.tag33_;
    }
    if (cached_has_bits & 0x20000000u) {
      tag34_ = from.tag34_;
    }
    if (cached_has_bits & 0x40000000u) {
      tag36_ = from.tag36_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void UserInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.UserInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UserInfo::CopyFrom(const UserInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.UserInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserInfo::IsInitialized() const {
  return true;
}

void UserInfo::Swap(UserInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void UserInfo::InternalSwap(UserInfo* other) {
  bindemail_.Swap(&other->bindemail_);
  sheng_.Swap(&other->sheng_);
  shi_.Swap(&other->shi_);
  qianming_.Swap(&other->qianming_);
  tag15_.Swap(&other->tag15_);
  tag26_.Swap(&other->tag26_);
  alias_.Swap(&other->alias_);
  country_.Swap(&other->country_);
  std::swap(wxid_, other->wxid_);
  std::swap(nickname_, other->nickname_);
  std::swap(mobile_, other->mobile_);
  std::swap(bitflag_, other->bitflag_);
  std::swap(bbindemail_, other->bbindemail_);
  std::swap(status_, other->status_);
  std::swap(tag8_, other->tag8_);
  std::swap(tag10_, other->tag10_);
  std::swap(tag14_, other->tag14_);
  std::swap(pluginflag_, other->pluginflag_);
  std::swap(tag17_, other->tag17_);
  std::swap(tag19_, other->tag19_);
  std::swap(tag20_, other->tag20_);
  std::swap(tag21_, other->tag21_);
  std::swap(tag22_, other->tag22_);
  std::swap(tag23_, other->tag23_);
  std::swap(pluginswitch_, other->pluginswitch_);
  std::swap(tag29_, other->tag29_);
  std::swap(tag30_, other->tag30_);
  std::swap(tag31_, other->tag31_);
  std::swap(tag33_, other->tag33_);
  std::swap(tag34_, other->tag34_);
  std::swap(tag36_, other->tag36_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata UserInfo::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// UserInfo

// optional int32 bitFlag = 1;
bool UserInfo::has_bitflag() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
void UserInfo::set_has_bitflag() {
  _has_bits_[0] |= 0x00000800u;
}
void UserInfo::clear_has_bitflag() {
  _has_bits_[0] &= ~0x00000800u;
}
void UserInfo::clear_bitflag() {
  bitflag_ = 0;
  clear_has_bitflag();
}
::google::protobuf::int32 UserInfo::bitflag() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.bitFlag)
  return bitflag_;
}
void UserInfo::set_bitflag(::google::protobuf::int32 value) {
  set_has_bitflag();
  bitflag_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.bitFlag)
}

// optional .com.tencent.mars.microchat.proto.UserInfo.WXID wxid = 2;
bool UserInfo::has_wxid() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
void UserInfo::set_has_wxid() {
  _has_bits_[0] |= 0x00000100u;
}
void UserInfo::clear_has_wxid() {
  _has_bits_[0] &= ~0x00000100u;
}
void UserInfo::clear_wxid() {
  if (wxid_ != NULL) wxid_->::com::tencent::mars::microchat::proto::UserInfo_WXID::Clear();
  clear_has_wxid();
}
const ::com::tencent::mars::microchat::proto::UserInfo_WXID& UserInfo::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.wxid)
  return wxid_ != NULL ? *wxid_
                         : *::com::tencent::mars::microchat::proto::UserInfo_WXID::internal_default_instance();
}
::com::tencent::mars::microchat::proto::UserInfo_WXID* UserInfo::mutable_wxid() {
  set_has_wxid();
  if (wxid_ == NULL) {
    wxid_ = new ::com::tencent::mars::microchat::proto::UserInfo_WXID;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.wxid)
  return wxid_;
}
::com::tencent::mars::microchat::proto::UserInfo_WXID* UserInfo::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.wxid)
  clear_has_wxid();
  ::com::tencent::mars::microchat::proto::UserInfo_WXID* temp = wxid_;
  wxid_ = NULL;
  return temp;
}
void UserInfo::set_allocated_wxid(::com::tencent::mars::microchat::proto::UserInfo_WXID* wxid) {
  delete wxid_;
  wxid_ = wxid;
  if (wxid) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.wxid)
}

// optional .com.tencent.mars.microchat.proto.UserInfo.NICKNAME nickname = 3;
bool UserInfo::has_nickname() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
void UserInfo::set_has_nickname() {
  _has_bits_[0] |= 0x00000200u;
}
void UserInfo::clear_has_nickname() {
  _has_bits_[0] &= ~0x00000200u;
}
void UserInfo::clear_nickname() {
  if (nickname_ != NULL) nickname_->::com::tencent::mars::microchat::proto::UserInfo_NICKNAME::Clear();
  clear_has_nickname();
}
const ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME& UserInfo::nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.nickname)
  return nickname_ != NULL ? *nickname_
                         : *::com::tencent::mars::microchat::proto::UserInfo_NICKNAME::internal_default_instance();
}
::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* UserInfo::mutable_nickname() {
  set_has_nickname();
  if (nickname_ == NULL) {
    nickname_ = new ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.nickname)
  return nickname_;
}
::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* UserInfo::release_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.nickname)
  clear_has_nickname();
  ::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* temp = nickname_;
  nickname_ = NULL;
  return temp;
}
void UserInfo::set_allocated_nickname(::com::tencent::mars::microchat::proto::UserInfo_NICKNAME* nickname) {
  delete nickname_;
  nickname_ = nickname;
  if (nickname) {
    set_has_nickname();
  } else {
    clear_has_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.nickname)
}

// optional int32 bBindEmail = 4;
bool UserInfo::has_bbindemail() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
void UserInfo::set_has_bbindemail() {
  _has_bits_[0] |= 0x00001000u;
}
void UserInfo::clear_has_bbindemail() {
  _has_bits_[0] &= ~0x00001000u;
}
void UserInfo::clear_bbindemail() {
  bbindemail_ = 0;
  clear_has_bbindemail();
}
::google::protobuf::int32 UserInfo::bbindemail() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.bBindEmail)
  return bbindemail_;
}
void UserInfo::set_bbindemail(::google::protobuf::int32 value) {
  set_has_bbindemail();
  bbindemail_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.bBindEmail)
}

// optional string bindemail = 5;
bool UserInfo::has_bindemail() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void UserInfo::set_has_bindemail() {
  _has_bits_[0] |= 0x00000001u;
}
void UserInfo::clear_has_bindemail() {
  _has_bits_[0] &= ~0x00000001u;
}
void UserInfo::clear_bindemail() {
  bindemail_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_bindemail();
}
const ::std::string& UserInfo::bindemail() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.bindemail)
  return bindemail_.GetNoArena();
}
void UserInfo::set_bindemail(const ::std::string& value) {
  set_has_bindemail();
  bindemail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
#if LANG_CXX11
void UserInfo::set_bindemail(::std::string&& value) {
  set_has_bindemail();
  bindemail_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
#endif
void UserInfo::set_bindemail(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_bindemail();
  bindemail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
void UserInfo::set_bindemail(const char* value, size_t size) {
  set_has_bindemail();
  bindemail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}
::std::string* UserInfo::mutable_bindemail() {
  set_has_bindemail();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.bindemail)
  return bindemail_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_bindemail() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.bindemail)
  clear_has_bindemail();
  return bindemail_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_bindemail(::std::string* bindemail) {
  if (bindemail != NULL) {
    set_has_bindemail();
  } else {
    clear_has_bindemail();
  }
  bindemail_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), bindemail);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.bindemail)
}

// optional .com.tencent.mars.microchat.proto.UserInfo.BINDMOBILE mobile = 6;
bool UserInfo::has_mobile() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
void UserInfo::set_has_mobile() {
  _has_bits_[0] |= 0x00000400u;
}
void UserInfo::clear_has_mobile() {
  _has_bits_[0] &= ~0x00000400u;
}
void UserInfo::clear_mobile() {
  if (mobile_ != NULL) mobile_->::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE::Clear();
  clear_has_mobile();
}
const ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE& UserInfo::mobile() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.mobile)
  return mobile_ != NULL ? *mobile_
                         : *::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE::internal_default_instance();
}
::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* UserInfo::mutable_mobile() {
  set_has_mobile();
  if (mobile_ == NULL) {
    mobile_ = new ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.mobile)
  return mobile_;
}
::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* UserInfo::release_mobile() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.mobile)
  clear_has_mobile();
  ::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* temp = mobile_;
  mobile_ = NULL;
  return temp;
}
void UserInfo::set_allocated_mobile(::com::tencent::mars::microchat::proto::UserInfo_BINDMOBILE* mobile) {
  delete mobile_;
  mobile_ = mobile;
  if (mobile) {
    set_has_mobile();
  } else {
    clear_has_mobile();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.mobile)
}

// optional int32 status = 7;
bool UserInfo::has_status() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
void UserInfo::set_has_status() {
  _has_bits_[0] |= 0x00002000u;
}
void UserInfo::clear_has_status() {
  _has_bits_[0] &= ~0x00002000u;
}
void UserInfo::clear_status() {
  status_ = 0;
  clear_has_status();
}
::google::protobuf::int32 UserInfo::status() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.status)
  return status_;
}
void UserInfo::set_status(::google::protobuf::int32 value) {
  set_has_status();
  status_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.status)
}

// optional int32 tag8 = 8;
bool UserInfo::has_tag8() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
void UserInfo::set_has_tag8() {
  _has_bits_[0] |= 0x00004000u;
}
void UserInfo::clear_has_tag8() {
  _has_bits_[0] &= ~0x00004000u;
}
void UserInfo::clear_tag8() {
  tag8_ = 0;
  clear_has_tag8();
}
::google::protobuf::int32 UserInfo::tag8() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag8)
  return tag8_;
}
void UserInfo::set_tag8(::google::protobuf::int32 value) {
  set_has_tag8();
  tag8_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag8)
}

// optional int32 tag10 = 10;
bool UserInfo::has_tag10() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
void UserInfo::set_has_tag10() {
  _has_bits_[0] |= 0x00008000u;
}
void UserInfo::clear_has_tag10() {
  _has_bits_[0] &= ~0x00008000u;
}
void UserInfo::clear_tag10() {
  tag10_ = 0;
  clear_has_tag10();
}
::google::protobuf::int32 UserInfo::tag10() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag10)
  return tag10_;
}
void UserInfo::set_tag10(::google::protobuf::int32 value) {
  set_has_tag10();
  tag10_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag10)
}

// optional string sheng = 11;
bool UserInfo::has_sheng() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void UserInfo::set_has_sheng() {
  _has_bits_[0] |= 0x00000002u;
}
void UserInfo::clear_has_sheng() {
  _has_bits_[0] &= ~0x00000002u;
}
void UserInfo::clear_sheng() {
  sheng_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_sheng();
}
const ::std::string& UserInfo::sheng() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.sheng)
  return sheng_.GetNoArena();
}
void UserInfo::set_sheng(const ::std::string& value) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
#if LANG_CXX11
void UserInfo::set_sheng(::std::string&& value) {
  set_has_sheng();
  sheng_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
#endif
void UserInfo::set_sheng(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
void UserInfo::set_sheng(const char* value, size_t size) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.sheng)
}
::std::string* UserInfo::mutable_sheng() {
  set_has_sheng();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.sheng)
  return sheng_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_sheng() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.sheng)
  clear_has_sheng();
  return sheng_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_sheng(::std::string* sheng) {
  if (sheng != NULL) {
    set_has_sheng();
  } else {
    clear_has_sheng();
  }
  sheng_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sheng);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.sheng)
}

// optional string shi = 12;
bool UserInfo::has_shi() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void UserInfo::set_has_shi() {
  _has_bits_[0] |= 0x00000004u;
}
void UserInfo::clear_has_shi() {
  _has_bits_[0] &= ~0x00000004u;
}
void UserInfo::clear_shi() {
  shi_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_shi();
}
const ::std::string& UserInfo::shi() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.shi)
  return shi_.GetNoArena();
}
void UserInfo::set_shi(const ::std::string& value) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.shi)
}
#if LANG_CXX11
void UserInfo::set_shi(::std::string&& value) {
  set_has_shi();
  shi_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.shi)
}
#endif
void UserInfo::set_shi(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.shi)
}
void UserInfo::set_shi(const char* value, size_t size) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.shi)
}
::std::string* UserInfo::mutable_shi() {
  set_has_shi();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.shi)
  return shi_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_shi() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.shi)
  clear_has_shi();
  return shi_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_shi(::std::string* shi) {
  if (shi != NULL) {
    set_has_shi();
  } else {
    clear_has_shi();
  }
  shi_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), shi);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.shi)
}

// optional string qianming = 13;
bool UserInfo::has_qianming() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void UserInfo::set_has_qianming() {
  _has_bits_[0] |= 0x00000008u;
}
void UserInfo::clear_has_qianming() {
  _has_bits_[0] &= ~0x00000008u;
}
void UserInfo::clear_qianming() {
  qianming_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_qianming();
}
const ::std::string& UserInfo::qianming() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.qianming)
  return qianming_.GetNoArena();
}
void UserInfo::set_qianming(const ::std::string& value) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
#if LANG_CXX11
void UserInfo::set_qianming(::std::string&& value) {
  set_has_qianming();
  qianming_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
#endif
void UserInfo::set_qianming(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
void UserInfo::set_qianming(const char* value, size_t size) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.qianming)
}
::std::string* UserInfo::mutable_qianming() {
  set_has_qianming();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.qianming)
  return qianming_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_qianming() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.qianming)
  clear_has_qianming();
  return qianming_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_qianming(::std::string* qianming) {
  if (qianming != NULL) {
    set_has_qianming();
  } else {
    clear_has_qianming();
  }
  qianming_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), qianming);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.qianming)
}

// optional int32 tag14 = 14;
bool UserInfo::has_tag14() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
void UserInfo::set_has_tag14() {
  _has_bits_[0] |= 0x00010000u;
}
void UserInfo::clear_has_tag14() {
  _has_bits_[0] &= ~0x00010000u;
}
void UserInfo::clear_tag14() {
  tag14_ = 0;
  clear_has_tag14();
}
::google::protobuf::int32 UserInfo::tag14() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag14)
  return tag14_;
}
void UserInfo::set_tag14(::google::protobuf::int32 value) {
  set_has_tag14();
  tag14_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag14)
}

// optional string tag15 = 15;
bool UserInfo::has_tag15() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void UserInfo::set_has_tag15() {
  _has_bits_[0] |= 0x00000010u;
}
void UserInfo::clear_has_tag15() {
  _has_bits_[0] &= ~0x00000010u;
}
void UserInfo::clear_tag15() {
  tag15_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag15();
}
const ::std::string& UserInfo::tag15() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag15)
  return tag15_.GetNoArena();
}
void UserInfo::set_tag15(const ::std::string& value) {
  set_has_tag15();
  tag15_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
#if LANG_CXX11
void UserInfo::set_tag15(::std::string&& value) {
  set_has_tag15();
  tag15_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
#endif
void UserInfo::set_tag15(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag15();
  tag15_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
void UserInfo::set_tag15(const char* value, size_t size) {
  set_has_tag15();
  tag15_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.tag15)
}
::std::string* UserInfo::mutable_tag15() {
  set_has_tag15();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.tag15)
  return tag15_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_tag15() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.tag15)
  clear_has_tag15();
  return tag15_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_tag15(::std::string* tag15) {
  if (tag15 != NULL) {
    set_has_tag15();
  } else {
    clear_has_tag15();
  }
  tag15_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag15);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.tag15)
}

// optional int32 pluginFlag = 16;
bool UserInfo::has_pluginflag() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
void UserInfo::set_has_pluginflag() {
  _has_bits_[0] |= 0x00020000u;
}
void UserInfo::clear_has_pluginflag() {
  _has_bits_[0] &= ~0x00020000u;
}
void UserInfo::clear_pluginflag() {
  pluginflag_ = 0;
  clear_has_pluginflag();
}
::google::protobuf::int32 UserInfo::pluginflag() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.pluginFlag)
  return pluginflag_;
}
void UserInfo::set_pluginflag(::google::protobuf::int32 value) {
  set_has_pluginflag();
  pluginflag_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.pluginFlag)
}

// optional int32 tag17 = 17;
bool UserInfo::has_tag17() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
void UserInfo::set_has_tag17() {
  _has_bits_[0] |= 0x00040000u;
}
void UserInfo::clear_has_tag17() {
  _has_bits_[0] &= ~0x00040000u;
}
void UserInfo::clear_tag17() {
  tag17_ = 0;
  clear_has_tag17();
}
::google::protobuf::int32 UserInfo::tag17() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag17)
  return tag17_;
}
void UserInfo::set_tag17(::google::protobuf::int32 value) {
  set_has_tag17();
  tag17_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag17)
}

// optional int32 tag19 = 19;
bool UserInfo::has_tag19() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
void UserInfo::set_has_tag19() {
  _has_bits_[0] |= 0x00080000u;
}
void UserInfo::clear_has_tag19() {
  _has_bits_[0] &= ~0x00080000u;
}
void UserInfo::clear_tag19() {
  tag19_ = 0;
  clear_has_tag19();
}
::google::protobuf::int32 UserInfo::tag19() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag19)
  return tag19_;
}
void UserInfo::set_tag19(::google::protobuf::int32 value) {
  set_has_tag19();
  tag19_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag19)
}

// optional int32 tag20 = 20;
bool UserInfo::has_tag20() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
void UserInfo::set_has_tag20() {
  _has_bits_[0] |= 0x00100000u;
}
void UserInfo::clear_has_tag20() {
  _has_bits_[0] &= ~0x00100000u;
}
void UserInfo::clear_tag20() {
  tag20_ = 0;
  clear_has_tag20();
}
::google::protobuf::int32 UserInfo::tag20() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag20)
  return tag20_;
}
void UserInfo::set_tag20(::google::protobuf::int32 value) {
  set_has_tag20();
  tag20_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag20)
}

// optional int32 tag21 = 21;
bool UserInfo::has_tag21() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
void UserInfo::set_has_tag21() {
  _has_bits_[0] |= 0x00200000u;
}
void UserInfo::clear_has_tag21() {
  _has_bits_[0] &= ~0x00200000u;
}
void UserInfo::clear_tag21() {
  tag21_ = 0;
  clear_has_tag21();
}
::google::protobuf::int32 UserInfo::tag21() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag21)
  return tag21_;
}
void UserInfo::set_tag21(::google::protobuf::int32 value) {
  set_has_tag21();
  tag21_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag21)
}

// optional int32 tag22 = 22;
bool UserInfo::has_tag22() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
void UserInfo::set_has_tag22() {
  _has_bits_[0] |= 0x00400000u;
}
void UserInfo::clear_has_tag22() {
  _has_bits_[0] &= ~0x00400000u;
}
void UserInfo::clear_tag22() {
  tag22_ = 0;
  clear_has_tag22();
}
::google::protobuf::int32 UserInfo::tag22() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag22)
  return tag22_;
}
void UserInfo::set_tag22(::google::protobuf::int32 value) {
  set_has_tag22();
  tag22_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag22)
}

// optional int32 tag23 = 23;
bool UserInfo::has_tag23() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
void UserInfo::set_has_tag23() {
  _has_bits_[0] |= 0x00800000u;
}
void UserInfo::clear_has_tag23() {
  _has_bits_[0] &= ~0x00800000u;
}
void UserInfo::clear_tag23() {
  tag23_ = 0;
  clear_has_tag23();
}
::google::protobuf::int32 UserInfo::tag23() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag23)
  return tag23_;
}
void UserInfo::set_tag23(::google::protobuf::int32 value) {
  set_has_tag23();
  tag23_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag23)
}

// optional int32 PluginSwitch = 25;
bool UserInfo::has_pluginswitch() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
void UserInfo::set_has_pluginswitch() {
  _has_bits_[0] |= 0x01000000u;
}
void UserInfo::clear_has_pluginswitch() {
  _has_bits_[0] &= ~0x01000000u;
}
void UserInfo::clear_pluginswitch() {
  pluginswitch_ = 0;
  clear_has_pluginswitch();
}
::google::protobuf::int32 UserInfo::pluginswitch() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.PluginSwitch)
  return pluginswitch_;
}
void UserInfo::set_pluginswitch(::google::protobuf::int32 value) {
  set_has_pluginswitch();
  pluginswitch_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.PluginSwitch)
}

// optional string tag26 = 26;
bool UserInfo::has_tag26() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
void UserInfo::set_has_tag26() {
  _has_bits_[0] |= 0x00000020u;
}
void UserInfo::clear_has_tag26() {
  _has_bits_[0] &= ~0x00000020u;
}
void UserInfo::clear_tag26() {
  tag26_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag26();
}
const ::std::string& UserInfo::tag26() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag26)
  return tag26_.GetNoArena();
}
void UserInfo::set_tag26(const ::std::string& value) {
  set_has_tag26();
  tag26_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
#if LANG_CXX11
void UserInfo::set_tag26(::std::string&& value) {
  set_has_tag26();
  tag26_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
#endif
void UserInfo::set_tag26(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag26();
  tag26_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
void UserInfo::set_tag26(const char* value, size_t size) {
  set_has_tag26();
  tag26_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.tag26)
}
::std::string* UserInfo::mutable_tag26() {
  set_has_tag26();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.tag26)
  return tag26_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_tag26() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.tag26)
  clear_has_tag26();
  return tag26_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_tag26(::std::string* tag26) {
  if (tag26 != NULL) {
    set_has_tag26();
  } else {
    clear_has_tag26();
  }
  tag26_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag26);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.tag26)
}

// optional string alias = 27;
bool UserInfo::has_alias() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
void UserInfo::set_has_alias() {
  _has_bits_[0] |= 0x00000040u;
}
void UserInfo::clear_has_alias() {
  _has_bits_[0] &= ~0x00000040u;
}
void UserInfo::clear_alias() {
  alias_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_alias();
}
const ::std::string& UserInfo::alias() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.alias)
  return alias_.GetNoArena();
}
void UserInfo::set_alias(const ::std::string& value) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.alias)
}
#if LANG_CXX11
void UserInfo::set_alias(::std::string&& value) {
  set_has_alias();
  alias_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.alias)
}
#endif
void UserInfo::set_alias(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.alias)
}
void UserInfo::set_alias(const char* value, size_t size) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.alias)
}
::std::string* UserInfo::mutable_alias() {
  set_has_alias();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.alias)
  return alias_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_alias() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.alias)
  clear_has_alias();
  return alias_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_alias(::std::string* alias) {
  if (alias != NULL) {
    set_has_alias();
  } else {
    clear_has_alias();
  }
  alias_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), alias);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.alias)
}

// optional int32 tag29 = 29;
bool UserInfo::has_tag29() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
void UserInfo::set_has_tag29() {
  _has_bits_[0] |= 0x02000000u;
}
void UserInfo::clear_has_tag29() {
  _has_bits_[0] &= ~0x02000000u;
}
void UserInfo::clear_tag29() {
  tag29_ = 0;
  clear_has_tag29();
}
::google::protobuf::int32 UserInfo::tag29() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag29)
  return tag29_;
}
void UserInfo::set_tag29(::google::protobuf::int32 value) {
  set_has_tag29();
  tag29_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag29)
}

// optional int32 tag30 = 30;
bool UserInfo::has_tag30() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
void UserInfo::set_has_tag30() {
  _has_bits_[0] |= 0x04000000u;
}
void UserInfo::clear_has_tag30() {
  _has_bits_[0] &= ~0x04000000u;
}
void UserInfo::clear_tag30() {
  tag30_ = 0;
  clear_has_tag30();
}
::google::protobuf::int32 UserInfo::tag30() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag30)
  return tag30_;
}
void UserInfo::set_tag30(::google::protobuf::int32 value) {
  set_has_tag30();
  tag30_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag30)
}

// optional int32 tag31 = 31;
bool UserInfo::has_tag31() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
void UserInfo::set_has_tag31() {
  _has_bits_[0] |= 0x08000000u;
}
void UserInfo::clear_has_tag31() {
  _has_bits_[0] &= ~0x08000000u;
}
void UserInfo::clear_tag31() {
  tag31_ = 0;
  clear_has_tag31();
}
::google::protobuf::int32 UserInfo::tag31() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag31)
  return tag31_;
}
void UserInfo::set_tag31(::google::protobuf::int32 value) {
  set_has_tag31();
  tag31_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag31)
}

// optional int32 tag33 = 33;
bool UserInfo::has_tag33() const {
  return (_has_bits_[0] & 0x10000000u) != 0;
}
void UserInfo::set_has_tag33() {
  _has_bits_[0] |= 0x10000000u;
}
void UserInfo::clear_has_tag33() {
  _has_bits_[0] &= ~0x10000000u;
}
void UserInfo::clear_tag33() {
  tag33_ = 0;
  clear_has_tag33();
}
::google::protobuf::int32 UserInfo::tag33() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag33)
  return tag33_;
}
void UserInfo::set_tag33(::google::protobuf::int32 value) {
  set_has_tag33();
  tag33_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag33)
}

// optional int32 tag34 = 34;
bool UserInfo::has_tag34() const {
  return (_has_bits_[0] & 0x20000000u) != 0;
}
void UserInfo::set_has_tag34() {
  _has_bits_[0] |= 0x20000000u;
}
void UserInfo::clear_has_tag34() {
  _has_bits_[0] &= ~0x20000000u;
}
void UserInfo::clear_tag34() {
  tag34_ = 0;
  clear_has_tag34();
}
::google::protobuf::int32 UserInfo::tag34() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag34)
  return tag34_;
}
void UserInfo::set_tag34(::google::protobuf::int32 value) {
  set_has_tag34();
  tag34_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag34)
}

// optional int32 tag36 = 37;
bool UserInfo::has_tag36() const {
  return (_has_bits_[0] & 0x40000000u) != 0;
}
void UserInfo::set_has_tag36() {
  _has_bits_[0] |= 0x40000000u;
}
void UserInfo::clear_has_tag36() {
  _has_bits_[0] &= ~0x40000000u;
}
void UserInfo::clear_tag36() {
  tag36_ = 0;
  clear_has_tag36();
}
::google::protobuf::int32 UserInfo::tag36() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.tag36)
  return tag36_;
}
void UserInfo::set_tag36(::google::protobuf::int32 value) {
  set_has_tag36();
  tag36_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.tag36)
}

// optional string country = 38;
bool UserInfo::has_country() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
void UserInfo::set_has_country() {
  _has_bits_[0] |= 0x00000080u;
}
void UserInfo::clear_has_country() {
  _has_bits_[0] &= ~0x00000080u;
}
void UserInfo::clear_country() {
  country_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_country();
}
const ::std::string& UserInfo::country() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.UserInfo.country)
  return country_.GetNoArena();
}
void UserInfo::set_country(const ::std::string& value) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.UserInfo.country)
}
#if LANG_CXX11
void UserInfo::set_country(::std::string&& value) {
  set_has_country();
  country_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.UserInfo.country)
}
#endif
void UserInfo::set_country(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.UserInfo.country)
}
void UserInfo::set_country(const char* value, size_t size) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.UserInfo.country)
}
::std::string* UserInfo::mutable_country() {
  set_has_country();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.UserInfo.country)
  return country_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* UserInfo::release_country() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.UserInfo.country)
  clear_has_country();
  return country_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void UserInfo::set_allocated_country(::std::string* country) {
  if (country != NULL) {
    set_has_country();
  } else {
    clear_has_country();
  }
  country_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), country);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.UserInfo.country)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_WXID::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_WXID::ContactInfo_WXID()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.WXID)
}
ContactInfo_WXID::ContactInfo_WXID(const ContactInfo_WXID& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_id()) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.WXID)
}

void ContactInfo_WXID::SharedCtor() {
  _cached_size_ = 0;
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ContactInfo_WXID::~ContactInfo_WXID() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  SharedDtor();
}

void ContactInfo_WXID::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_WXID::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_WXID::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_WXID& ContactInfo_WXID::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_WXID* ContactInfo_WXID::New(::google::protobuf::Arena* arena) const {
  ContactInfo_WXID* n = new ContactInfo_WXID;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_WXID::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  if (has_id()) {
    GOOGLE_DCHECK(!id_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*id_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_WXID::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string id = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->id().data(), this->id().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.WXID.id");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  return false;
#undef DO_
}

void ContactInfo_WXID::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string id = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.WXID.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.WXID)
}

::google::protobuf::uint8* ContactInfo_WXID::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string id = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->id().data(), this->id().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.WXID.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  return target;
}

size_t ContactInfo_WXID::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string id = 1;
  if (has_id()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_WXID::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_WXID* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_WXID>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.WXID)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.WXID)
    MergeFrom(*source);
  }
}

void ContactInfo_WXID::MergeFrom(const ContactInfo_WXID& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_id()) {
    set_has_id();
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
}

void ContactInfo_WXID::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_WXID::CopyFrom(const ContactInfo_WXID& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.WXID)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_WXID::IsInitialized() const {
  return true;
}

void ContactInfo_WXID::Swap(ContactInfo_WXID* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_WXID::InternalSwap(ContactInfo_WXID* other) {
  id_.Swap(&other->id_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_WXID::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_WXID

// optional string id = 1;
bool ContactInfo_WXID::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_WXID::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_WXID::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_WXID::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_id();
}
const ::std::string& ContactInfo_WXID::id() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
  return id_.GetNoArena();
}
void ContactInfo_WXID::set_id(const ::std::string& value) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
#if LANG_CXX11
void ContactInfo_WXID::set_id(::std::string&& value) {
  set_has_id();
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
#endif
void ContactInfo_WXID::set_id(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
void ContactInfo_WXID::set_id(const char* value, size_t size) {
  set_has_id();
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}
::std::string* ContactInfo_WXID::mutable_id() {
  set_has_id();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_WXID::release_id() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
  clear_has_id();
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_WXID::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    set_has_id();
  } else {
    clear_has_id();
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.WXID.id)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_NICKNAME::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_NICKNAME::ContactInfo_NICKNAME()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
}
ContactInfo_NICKNAME::ContactInfo_NICKNAME(const ContactInfo_NICKNAME& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
}

void ContactInfo_NICKNAME::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ContactInfo_NICKNAME::~ContactInfo_NICKNAME() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  SharedDtor();
}

void ContactInfo_NICKNAME::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_NICKNAME::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_NICKNAME::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_NICKNAME& ContactInfo_NICKNAME::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_NICKNAME* ContactInfo_NICKNAME::New(::google::protobuf::Arena* arena) const {
  ContactInfo_NICKNAME* n = new ContactInfo_NICKNAME;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_NICKNAME::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_NICKNAME::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  return false;
#undef DO_
}

void ContactInfo_NICKNAME::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
}

::google::protobuf::uint8* ContactInfo_NICKNAME::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  return target;
}

size_t ContactInfo_NICKNAME::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_NICKNAME::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_NICKNAME* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_NICKNAME>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
    MergeFrom(*source);
  }
}

void ContactInfo_NICKNAME::MergeFrom(const ContactInfo_NICKNAME& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void ContactInfo_NICKNAME::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_NICKNAME::CopyFrom(const ContactInfo_NICKNAME& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_NICKNAME::IsInitialized() const {
  return true;
}

void ContactInfo_NICKNAME::Swap(ContactInfo_NICKNAME* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_NICKNAME::InternalSwap(ContactInfo_NICKNAME* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_NICKNAME::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_NICKNAME

// optional string name = 1;
bool ContactInfo_NICKNAME::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_NICKNAME::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_NICKNAME::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_NICKNAME::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& ContactInfo_NICKNAME::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
  return name_.GetNoArena();
}
void ContactInfo_NICKNAME::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
#if LANG_CXX11
void ContactInfo_NICKNAME::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
#endif
void ContactInfo_NICKNAME::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
void ContactInfo_NICKNAME::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}
::std::string* ContactInfo_NICKNAME::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_NICKNAME::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_NICKNAME::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.NICKNAME.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_PY_SHORT::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_PY_SHORT::ContactInfo_PY_SHORT()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
}
ContactInfo_PY_SHORT::ContactInfo_PY_SHORT(const ContactInfo_PY_SHORT& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
}

void ContactInfo_PY_SHORT::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ContactInfo_PY_SHORT::~ContactInfo_PY_SHORT() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  SharedDtor();
}

void ContactInfo_PY_SHORT::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_PY_SHORT::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_PY_SHORT::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_PY_SHORT& ContactInfo_PY_SHORT::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_PY_SHORT* ContactInfo_PY_SHORT::New(::google::protobuf::Arena* arena) const {
  ContactInfo_PY_SHORT* n = new ContactInfo_PY_SHORT;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_PY_SHORT::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_PY_SHORT::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  return false;
#undef DO_
}

void ContactInfo_PY_SHORT::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
}

::google::protobuf::uint8* ContactInfo_PY_SHORT::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  return target;
}

size_t ContactInfo_PY_SHORT::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_PY_SHORT::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_PY_SHORT* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_PY_SHORT>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
    MergeFrom(*source);
  }
}

void ContactInfo_PY_SHORT::MergeFrom(const ContactInfo_PY_SHORT& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void ContactInfo_PY_SHORT::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_PY_SHORT::CopyFrom(const ContactInfo_PY_SHORT& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_PY_SHORT::IsInitialized() const {
  return true;
}

void ContactInfo_PY_SHORT::Swap(ContactInfo_PY_SHORT* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_PY_SHORT::InternalSwap(ContactInfo_PY_SHORT* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_PY_SHORT::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_PY_SHORT

// optional string name = 1;
bool ContactInfo_PY_SHORT::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_PY_SHORT::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_PY_SHORT::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_PY_SHORT::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& ContactInfo_PY_SHORT::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
  return name_.GetNoArena();
}
void ContactInfo_PY_SHORT::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
#if LANG_CXX11
void ContactInfo_PY_SHORT::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
#endif
void ContactInfo_PY_SHORT::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
void ContactInfo_PY_SHORT::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}
::std::string* ContactInfo_PY_SHORT::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_PY_SHORT::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_PY_SHORT::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_QuanPin::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_QuanPin::ContactInfo_QuanPin()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
}
ContactInfo_QuanPin::ContactInfo_QuanPin(const ContactInfo_QuanPin& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
}

void ContactInfo_QuanPin::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ContactInfo_QuanPin::~ContactInfo_QuanPin() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  SharedDtor();
}

void ContactInfo_QuanPin::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_QuanPin::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_QuanPin::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_QuanPin& ContactInfo_QuanPin::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_QuanPin* ContactInfo_QuanPin::New(::google::protobuf::Arena* arena) const {
  ContactInfo_QuanPin* n = new ContactInfo_QuanPin;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_QuanPin::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_QuanPin::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  return false;
#undef DO_
}

void ContactInfo_QuanPin::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
}

::google::protobuf::uint8* ContactInfo_QuanPin::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  return target;
}

size_t ContactInfo_QuanPin::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_QuanPin::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_QuanPin* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_QuanPin>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
    MergeFrom(*source);
  }
}

void ContactInfo_QuanPin::MergeFrom(const ContactInfo_QuanPin& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void ContactInfo_QuanPin::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_QuanPin::CopyFrom(const ContactInfo_QuanPin& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.QuanPin)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_QuanPin::IsInitialized() const {
  return true;
}

void ContactInfo_QuanPin::Swap(ContactInfo_QuanPin* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_QuanPin::InternalSwap(ContactInfo_QuanPin* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_QuanPin::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_QuanPin

// optional string name = 1;
bool ContactInfo_QuanPin::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_QuanPin::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_QuanPin::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_QuanPin::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& ContactInfo_QuanPin::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
  return name_.GetNoArena();
}
void ContactInfo_QuanPin::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
#if LANG_CXX11
void ContactInfo_QuanPin::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
#endif
void ContactInfo_QuanPin::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
void ContactInfo_QuanPin::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}
::std::string* ContactInfo_QuanPin::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_QuanPin::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_QuanPin::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.QuanPin.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_REALNICKNAME::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_REALNICKNAME::ContactInfo_REALNICKNAME()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
}
ContactInfo_REALNICKNAME::ContactInfo_REALNICKNAME(const ContactInfo_REALNICKNAME& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
}

void ContactInfo_REALNICKNAME::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ContactInfo_REALNICKNAME::~ContactInfo_REALNICKNAME() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  SharedDtor();
}

void ContactInfo_REALNICKNAME::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_REALNICKNAME::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_REALNICKNAME::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_REALNICKNAME& ContactInfo_REALNICKNAME::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_REALNICKNAME* ContactInfo_REALNICKNAME::New(::google::protobuf::Arena* arena) const {
  ContactInfo_REALNICKNAME* n = new ContactInfo_REALNICKNAME;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_REALNICKNAME::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_REALNICKNAME::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  return false;
#undef DO_
}

void ContactInfo_REALNICKNAME::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
}

::google::protobuf::uint8* ContactInfo_REALNICKNAME::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  return target;
}

size_t ContactInfo_REALNICKNAME::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_REALNICKNAME::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_REALNICKNAME* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_REALNICKNAME>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
    MergeFrom(*source);
  }
}

void ContactInfo_REALNICKNAME::MergeFrom(const ContactInfo_REALNICKNAME& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void ContactInfo_REALNICKNAME::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_REALNICKNAME::CopyFrom(const ContactInfo_REALNICKNAME& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_REALNICKNAME::IsInitialized() const {
  return true;
}

void ContactInfo_REALNICKNAME::Swap(ContactInfo_REALNICKNAME* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_REALNICKNAME::InternalSwap(ContactInfo_REALNICKNAME* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_REALNICKNAME::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_REALNICKNAME

// optional string name = 1;
bool ContactInfo_REALNICKNAME::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_REALNICKNAME::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_REALNICKNAME::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_REALNICKNAME::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& ContactInfo_REALNICKNAME::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
  return name_.GetNoArena();
}
void ContactInfo_REALNICKNAME::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
#if LANG_CXX11
void ContactInfo_REALNICKNAME::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
#endif
void ContactInfo_REALNICKNAME::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
void ContactInfo_REALNICKNAME::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}
::std::string* ContactInfo_REALNICKNAME::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_REALNICKNAME::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_REALNICKNAME::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_REAL_PY_SHORT::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_REAL_PY_SHORT::ContactInfo_REAL_PY_SHORT()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
}
ContactInfo_REAL_PY_SHORT::ContactInfo_REAL_PY_SHORT(const ContactInfo_REAL_PY_SHORT& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
}

void ContactInfo_REAL_PY_SHORT::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ContactInfo_REAL_PY_SHORT::~ContactInfo_REAL_PY_SHORT() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  SharedDtor();
}

void ContactInfo_REAL_PY_SHORT::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_REAL_PY_SHORT::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_REAL_PY_SHORT::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_REAL_PY_SHORT& ContactInfo_REAL_PY_SHORT::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_REAL_PY_SHORT* ContactInfo_REAL_PY_SHORT::New(::google::protobuf::Arena* arena) const {
  ContactInfo_REAL_PY_SHORT* n = new ContactInfo_REAL_PY_SHORT;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_REAL_PY_SHORT::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_REAL_PY_SHORT::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  return false;
#undef DO_
}

void ContactInfo_REAL_PY_SHORT::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
}

::google::protobuf::uint8* ContactInfo_REAL_PY_SHORT::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  return target;
}

size_t ContactInfo_REAL_PY_SHORT::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_REAL_PY_SHORT::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_REAL_PY_SHORT* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_REAL_PY_SHORT>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
    MergeFrom(*source);
  }
}

void ContactInfo_REAL_PY_SHORT::MergeFrom(const ContactInfo_REAL_PY_SHORT& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void ContactInfo_REAL_PY_SHORT::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_REAL_PY_SHORT::CopyFrom(const ContactInfo_REAL_PY_SHORT& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_REAL_PY_SHORT::IsInitialized() const {
  return true;
}

void ContactInfo_REAL_PY_SHORT::Swap(ContactInfo_REAL_PY_SHORT* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_REAL_PY_SHORT::InternalSwap(ContactInfo_REAL_PY_SHORT* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_REAL_PY_SHORT::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_REAL_PY_SHORT

// optional string name = 1;
bool ContactInfo_REAL_PY_SHORT::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_REAL_PY_SHORT::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_REAL_PY_SHORT::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_REAL_PY_SHORT::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& ContactInfo_REAL_PY_SHORT::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
  return name_.GetNoArena();
}
void ContactInfo_REAL_PY_SHORT::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
#if LANG_CXX11
void ContactInfo_REAL_PY_SHORT::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
#endif
void ContactInfo_REAL_PY_SHORT::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
void ContactInfo_REAL_PY_SHORT::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}
::std::string* ContactInfo_REAL_PY_SHORT::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_REAL_PY_SHORT::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_REAL_PY_SHORT::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_REAL_QuanPin::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_REAL_QuanPin::ContactInfo_REAL_QuanPin()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
}
ContactInfo_REAL_QuanPin::ContactInfo_REAL_QuanPin(const ContactInfo_REAL_QuanPin& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
}

void ContactInfo_REAL_QuanPin::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ContactInfo_REAL_QuanPin::~ContactInfo_REAL_QuanPin() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  SharedDtor();
}

void ContactInfo_REAL_QuanPin::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_REAL_QuanPin::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_REAL_QuanPin::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_REAL_QuanPin& ContactInfo_REAL_QuanPin::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_REAL_QuanPin* ContactInfo_REAL_QuanPin::New(::google::protobuf::Arena* arena) const {
  ContactInfo_REAL_QuanPin* n = new ContactInfo_REAL_QuanPin;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_REAL_QuanPin::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_REAL_QuanPin::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  return false;
#undef DO_
}

void ContactInfo_REAL_QuanPin::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
}

::google::protobuf::uint8* ContactInfo_REAL_QuanPin::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  return target;
}

size_t ContactInfo_REAL_QuanPin::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_REAL_QuanPin::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_REAL_QuanPin* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_REAL_QuanPin>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
    MergeFrom(*source);
  }
}

void ContactInfo_REAL_QuanPin::MergeFrom(const ContactInfo_REAL_QuanPin& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void ContactInfo_REAL_QuanPin::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_REAL_QuanPin::CopyFrom(const ContactInfo_REAL_QuanPin& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_REAL_QuanPin::IsInitialized() const {
  return true;
}

void ContactInfo_REAL_QuanPin::Swap(ContactInfo_REAL_QuanPin* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_REAL_QuanPin::InternalSwap(ContactInfo_REAL_QuanPin* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_REAL_QuanPin::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_REAL_QuanPin

// optional string name = 1;
bool ContactInfo_REAL_QuanPin::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_REAL_QuanPin::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_REAL_QuanPin::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_REAL_QuanPin::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& ContactInfo_REAL_QuanPin::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
  return name_.GetNoArena();
}
void ContactInfo_REAL_QuanPin::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
#if LANG_CXX11
void ContactInfo_REAL_QuanPin::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
#endif
void ContactInfo_REAL_QuanPin::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
void ContactInfo_REAL_QuanPin::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}
::std::string* ContactInfo_REAL_QuanPin::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_REAL_QuanPin::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_REAL_QuanPin::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_GroupMemberList_MemberInfo::kWxidFieldNumber;
const int ContactInfo_GroupMemberList_MemberInfo::kTag6FieldNumber;
const int ContactInfo_GroupMemberList_MemberInfo::kTag8FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_GroupMemberList_MemberInfo::ContactInfo_GroupMemberList_MemberInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
}
ContactInfo_GroupMemberList_MemberInfo::ContactInfo_GroupMemberList_MemberInfo(const ContactInfo_GroupMemberList_MemberInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  wxid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_wxid()) {
    wxid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.wxid_);
  }
  ::memcpy(&tag6_, &from.tag6_,
    reinterpret_cast<char*>(&tag8_) -
    reinterpret_cast<char*>(&tag6_) + sizeof(tag8_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
}

void ContactInfo_GroupMemberList_MemberInfo::SharedCtor() {
  _cached_size_ = 0;
  wxid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&tag6_, 0, reinterpret_cast<char*>(&tag8_) -
    reinterpret_cast<char*>(&tag6_) + sizeof(tag8_));
}

ContactInfo_GroupMemberList_MemberInfo::~ContactInfo_GroupMemberList_MemberInfo() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  SharedDtor();
}

void ContactInfo_GroupMemberList_MemberInfo::SharedDtor() {
  wxid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_GroupMemberList_MemberInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_GroupMemberList_MemberInfo::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_GroupMemberList_MemberInfo& ContactInfo_GroupMemberList_MemberInfo::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_GroupMemberList_MemberInfo* ContactInfo_GroupMemberList_MemberInfo::New(::google::protobuf::Arena* arena) const {
  ContactInfo_GroupMemberList_MemberInfo* n = new ContactInfo_GroupMemberList_MemberInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_GroupMemberList_MemberInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  if (has_wxid()) {
    GOOGLE_DCHECK(!wxid_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*wxid_.UnsafeRawStringPointer())->clear();
  }
  if (_has_bits_[0 / 32] & 6u) {
    ::memset(&tag6_, 0, reinterpret_cast<char*>(&tag8_) -
      reinterpret_cast<char*>(&tag6_) + sizeof(tag8_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_GroupMemberList_MemberInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string wxid = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_wxid()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->wxid().data(), this->wxid().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag6 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          set_has_tag6();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag6_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag8 = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u)) {
          set_has_tag8();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag8_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  return false;
#undef DO_
}

void ContactInfo_GroupMemberList_MemberInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string wxid = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->wxid().data(), this->wxid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->wxid(), output);
  }

  // optional int32 tag6 = 6;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->tag6(), output);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->tag8(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
}

::google::protobuf::uint8* ContactInfo_GroupMemberList_MemberInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string wxid = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->wxid().data(), this->wxid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->wxid(), target);
  }

  // optional int32 tag6 = 6;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->tag6(), target);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->tag8(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  return target;
}

size_t ContactInfo_GroupMemberList_MemberInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 7u) {
    // optional string wxid = 1;
    if (has_wxid()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->wxid());
    }

    // optional int32 tag6 = 6;
    if (has_tag6()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag6());
    }

    // optional int32 tag8 = 8;
    if (has_tag8()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag8());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_GroupMemberList_MemberInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_GroupMemberList_MemberInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_GroupMemberList_MemberInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
    MergeFrom(*source);
  }
}

void ContactInfo_GroupMemberList_MemberInfo::MergeFrom(const ContactInfo_GroupMemberList_MemberInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 7u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_wxid();
      wxid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.wxid_);
    }
    if (cached_has_bits & 0x00000002u) {
      tag6_ = from.tag6_;
    }
    if (cached_has_bits & 0x00000004u) {
      tag8_ = from.tag8_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void ContactInfo_GroupMemberList_MemberInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_GroupMemberList_MemberInfo::CopyFrom(const ContactInfo_GroupMemberList_MemberInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_GroupMemberList_MemberInfo::IsInitialized() const {
  return true;
}

void ContactInfo_GroupMemberList_MemberInfo::Swap(ContactInfo_GroupMemberList_MemberInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_GroupMemberList_MemberInfo::InternalSwap(ContactInfo_GroupMemberList_MemberInfo* other) {
  wxid_.Swap(&other->wxid_);
  std::swap(tag6_, other->tag6_);
  std::swap(tag8_, other->tag8_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_GroupMemberList_MemberInfo::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_GroupMemberList_MemberInfo

// optional string wxid = 1;
bool ContactInfo_GroupMemberList_MemberInfo::has_wxid() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_GroupMemberList_MemberInfo::set_has_wxid() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_GroupMemberList_MemberInfo::clear_has_wxid() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_GroupMemberList_MemberInfo::clear_wxid() {
  wxid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_wxid();
}
const ::std::string& ContactInfo_GroupMemberList_MemberInfo::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
  return wxid_.GetNoArena();
}
void ContactInfo_GroupMemberList_MemberInfo::set_wxid(const ::std::string& value) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
#if LANG_CXX11
void ContactInfo_GroupMemberList_MemberInfo::set_wxid(::std::string&& value) {
  set_has_wxid();
  wxid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
#endif
void ContactInfo_GroupMemberList_MemberInfo::set_wxid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
void ContactInfo_GroupMemberList_MemberInfo::set_wxid(const char* value, size_t size) {
  set_has_wxid();
  wxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}
::std::string* ContactInfo_GroupMemberList_MemberInfo::mutable_wxid() {
  set_has_wxid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
  return wxid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_GroupMemberList_MemberInfo::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
  clear_has_wxid();
  return wxid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_GroupMemberList_MemberInfo::set_allocated_wxid(::std::string* wxid) {
  if (wxid != NULL) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  wxid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), wxid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.wxid)
}

// optional int32 tag6 = 6;
bool ContactInfo_GroupMemberList_MemberInfo::has_tag6() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void ContactInfo_GroupMemberList_MemberInfo::set_has_tag6() {
  _has_bits_[0] |= 0x00000002u;
}
void ContactInfo_GroupMemberList_MemberInfo::clear_has_tag6() {
  _has_bits_[0] &= ~0x00000002u;
}
void ContactInfo_GroupMemberList_MemberInfo::clear_tag6() {
  tag6_ = 0;
  clear_has_tag6();
}
::google::protobuf::int32 ContactInfo_GroupMemberList_MemberInfo::tag6() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag6)
  return tag6_;
}
void ContactInfo_GroupMemberList_MemberInfo::set_tag6(::google::protobuf::int32 value) {
  set_has_tag6();
  tag6_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag6)
}

// optional int32 tag8 = 8;
bool ContactInfo_GroupMemberList_MemberInfo::has_tag8() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void ContactInfo_GroupMemberList_MemberInfo::set_has_tag8() {
  _has_bits_[0] |= 0x00000004u;
}
void ContactInfo_GroupMemberList_MemberInfo::clear_has_tag8() {
  _has_bits_[0] &= ~0x00000004u;
}
void ContactInfo_GroupMemberList_MemberInfo::clear_tag8() {
  tag8_ = 0;
  clear_has_tag8();
}
::google::protobuf::int32 ContactInfo_GroupMemberList_MemberInfo::tag8() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag8)
  return tag8_;
}
void ContactInfo_GroupMemberList_MemberInfo::set_tag8(::google::protobuf::int32 value) {
  set_has_tag8();
  tag8_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo.tag8)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo_GroupMemberList::kCntFieldNumber;
const int ContactInfo_GroupMemberList::kMemberFieldNumber;
const int ContactInfo_GroupMemberList::kTag3FieldNumber;
const int ContactInfo_GroupMemberList::kTag4FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo_GroupMemberList::ContactInfo_GroupMemberList()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
}
ContactInfo_GroupMemberList::ContactInfo_GroupMemberList(const ContactInfo_GroupMemberList& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0),
      member_(from.member_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  tag4_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag4()) {
    tag4_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag4_);
  }
  ::memcpy(&cnt_, &from.cnt_,
    reinterpret_cast<char*>(&tag3_) -
    reinterpret_cast<char*>(&cnt_) + sizeof(tag3_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
}

void ContactInfo_GroupMemberList::SharedCtor() {
  _cached_size_ = 0;
  tag4_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&cnt_, 0, reinterpret_cast<char*>(&tag3_) -
    reinterpret_cast<char*>(&cnt_) + sizeof(tag3_));
}

ContactInfo_GroupMemberList::~ContactInfo_GroupMemberList() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  SharedDtor();
}

void ContactInfo_GroupMemberList::SharedDtor() {
  tag4_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ContactInfo_GroupMemberList::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo_GroupMemberList::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo_GroupMemberList& ContactInfo_GroupMemberList::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo_GroupMemberList* ContactInfo_GroupMemberList::New(::google::protobuf::Arena* arena) const {
  ContactInfo_GroupMemberList* n = new ContactInfo_GroupMemberList;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo_GroupMemberList::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  member_.Clear();
  if (has_tag4()) {
    GOOGLE_DCHECK(!tag4_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*tag4_.UnsafeRawStringPointer())->clear();
  }
  if (_has_bits_[0 / 32] & 6u) {
    ::memset(&cnt_, 0, reinterpret_cast<char*>(&tag3_) -
      reinterpret_cast<char*>(&cnt_) + sizeof(tag3_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo_GroupMemberList::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int32 cnt = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_cnt();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &cnt_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo member = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_member()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag3 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {
          set_has_tag3();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag4 = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag4()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag4().data(), this->tag4().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  return false;
#undef DO_
}

void ContactInfo_GroupMemberList::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 cnt = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->cnt(), output);
  }

  // repeated .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo member = 2;
  for (unsigned int i = 0, n = this->member_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->member(i), output);
  }

  // optional int32 tag3 = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->tag3(), output);
  }

  // optional string tag4 = 4;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag4().data(), this->tag4().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->tag4(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
}

::google::protobuf::uint8* ContactInfo_GroupMemberList::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 cnt = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->cnt(), target);
  }

  // repeated .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo member = 2;
  for (unsigned int i = 0, n = this->member_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, this->member(i), deterministic, target);
  }

  // optional int32 tag3 = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->tag3(), target);
  }

  // optional string tag4 = 4;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag4().data(), this->tag4().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->tag4(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  return target;
}

size_t ContactInfo_GroupMemberList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // repeated .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo member = 2;
  {
    unsigned int count = this->member_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->member(i));
    }
  }

  if (_has_bits_[0 / 32] & 7u) {
    // optional string tag4 = 4;
    if (has_tag4()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag4());
    }

    // optional int32 cnt = 1;
    if (has_cnt()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->cnt());
    }

    // optional int32 tag3 = 3;
    if (has_tag3()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag3());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo_GroupMemberList::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo_GroupMemberList* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo_GroupMemberList>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
    MergeFrom(*source);
  }
}

void ContactInfo_GroupMemberList::MergeFrom(const ContactInfo_GroupMemberList& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  member_.MergeFrom(from.member_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 7u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_tag4();
      tag4_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag4_);
    }
    if (cached_has_bits & 0x00000002u) {
      cnt_ = from.cnt_;
    }
    if (cached_has_bits & 0x00000004u) {
      tag3_ = from.tag3_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void ContactInfo_GroupMemberList::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo_GroupMemberList::CopyFrom(const ContactInfo_GroupMemberList& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo_GroupMemberList::IsInitialized() const {
  return true;
}

void ContactInfo_GroupMemberList::Swap(ContactInfo_GroupMemberList* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo_GroupMemberList::InternalSwap(ContactInfo_GroupMemberList* other) {
  member_.InternalSwap(&other->member_);
  tag4_.Swap(&other->tag4_);
  std::swap(cnt_, other->cnt_);
  std::swap(tag3_, other->tag3_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo_GroupMemberList::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo_GroupMemberList

// optional int32 cnt = 1;
bool ContactInfo_GroupMemberList::has_cnt() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void ContactInfo_GroupMemberList::set_has_cnt() {
  _has_bits_[0] |= 0x00000002u;
}
void ContactInfo_GroupMemberList::clear_has_cnt() {
  _has_bits_[0] &= ~0x00000002u;
}
void ContactInfo_GroupMemberList::clear_cnt() {
  cnt_ = 0;
  clear_has_cnt();
}
::google::protobuf::int32 ContactInfo_GroupMemberList::cnt() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.cnt)
  return cnt_;
}
void ContactInfo_GroupMemberList::set_cnt(::google::protobuf::int32 value) {
  set_has_cnt();
  cnt_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.cnt)
}

// repeated .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.MemberInfo member = 2;
int ContactInfo_GroupMemberList::member_size() const {
  return member_.size();
}
void ContactInfo_GroupMemberList::clear_member() {
  member_.Clear();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo& ContactInfo_GroupMemberList::member(int index) const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_.Get(index);
}
::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo* ContactInfo_GroupMemberList::mutable_member(int index) {
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_.Mutable(index);
}
::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo* ContactInfo_GroupMemberList::add_member() {
  // @@protoc_insertion_point(field_add:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_.Add();
}
::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo >*
ContactInfo_GroupMemberList::mutable_member() {
  // @@protoc_insertion_point(field_mutable_list:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return &member_;
}
const ::google::protobuf::RepeatedPtrField< ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList_MemberInfo >&
ContactInfo_GroupMemberList::member() const {
  // @@protoc_insertion_point(field_list:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.member)
  return member_;
}

// optional int32 tag3 = 3;
bool ContactInfo_GroupMemberList::has_tag3() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void ContactInfo_GroupMemberList::set_has_tag3() {
  _has_bits_[0] |= 0x00000004u;
}
void ContactInfo_GroupMemberList::clear_has_tag3() {
  _has_bits_[0] &= ~0x00000004u;
}
void ContactInfo_GroupMemberList::clear_tag3() {
  tag3_ = 0;
  clear_has_tag3();
}
::google::protobuf::int32 ContactInfo_GroupMemberList::tag3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag3)
  return tag3_;
}
void ContactInfo_GroupMemberList::set_tag3(::google::protobuf::int32 value) {
  set_has_tag3();
  tag3_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag3)
}

// optional string tag4 = 4;
bool ContactInfo_GroupMemberList::has_tag4() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo_GroupMemberList::set_has_tag4() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo_GroupMemberList::clear_has_tag4() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo_GroupMemberList::clear_tag4() {
  tag4_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag4();
}
const ::std::string& ContactInfo_GroupMemberList::tag4() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
  return tag4_.GetNoArena();
}
void ContactInfo_GroupMemberList::set_tag4(const ::std::string& value) {
  set_has_tag4();
  tag4_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
#if LANG_CXX11
void ContactInfo_GroupMemberList::set_tag4(::std::string&& value) {
  set_has_tag4();
  tag4_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
#endif
void ContactInfo_GroupMemberList::set_tag4(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag4();
  tag4_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
void ContactInfo_GroupMemberList::set_tag4(const char* value, size_t size) {
  set_has_tag4();
  tag4_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}
::std::string* ContactInfo_GroupMemberList::mutable_tag4() {
  set_has_tag4();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
  return tag4_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo_GroupMemberList::release_tag4() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
  clear_has_tag4();
  return tag4_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo_GroupMemberList::set_allocated_tag4(::std::string* tag4) {
  if (tag4 != NULL) {
    set_has_tag4();
  } else {
    clear_has_tag4();
  }
  tag4_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag4);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList.tag4)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContactInfo::kWxidFieldNumber;
const int ContactInfo::kNicknameFieldNumber;
const int ContactInfo::kShortPyFieldNumber;
const int ContactInfo::kQuanpinFieldNumber;
const int ContactInfo::kTag5FieldNumber;
const int ContactInfo::kTag6FieldNumber;
const int ContactInfo::kUnknownKeyFieldNumber;
const int ContactInfo::kTag8FieldNumber;
const int ContactInfo::kTag9FieldNumber;
const int ContactInfo::kRealNicknameFieldNumber;
const int ContactInfo::kRealShortPyFieldNumber;
const int ContactInfo::kRealQuanpinFieldNumber;
const int ContactInfo::kTag13FieldNumber;
const int ContactInfo::kTag14FieldNumber;
const int ContactInfo::kTag16FieldNumber;
const int ContactInfo::kBChatRoomFieldNumber;
const int ContactInfo::kTag18FieldNumber;
const int ContactInfo::kShengFieldNumber;
const int ContactInfo::kShiFieldNumber;
const int ContactInfo::kQianmingFieldNumber;
const int ContactInfo::kBFriendFieldNumber;
const int ContactInfo::kBNotChatRoomFieldNumber;
const int ContactInfo::kTag24FieldNumber;
const int ContactInfo::kTag25FieldNumber;
const int ContactInfo::kTag26FieldNumber;
const int ContactInfo::kSrcFieldNumber;
const int ContactInfo::kLastMsgTimeFieldNumber;
const int ContactInfo::kAliasFieldNumber;
const int ContactInfo::kChatroomOwnerWxidFieldNumber;
const int ContactInfo::kTag33FieldNumber;
const int ContactInfo::kTag34FieldNumber;
const int ContactInfo::kTag35FieldNumber;
const int ContactInfo::kTag37FieldNumber;
const int ContactInfo::kCountryFieldNumber;
const int ContactInfo::kHeadiconBigFieldNumber;
const int ContactInfo::kHeadiconSmallFieldNumber;
const int ContactInfo::kTag42FieldNumber;
const int ContactInfo::kEncryptNameFieldNumber;
const int ContactInfo::kTag50FieldNumber;
const int ContactInfo::kChatroomServerVerFieldNumber;
const int ContactInfo::kChatroomMaxMemberFieldNumber;
const int ContactInfo::kTag56FieldNumber;
const int ContactInfo::kGroupMemberListFieldNumber;
const int ContactInfo::kTag58FieldNumber;
const int ContactInfo::kBeizhuNameFieldNumber;
const int ContactInfo::kTag64FieldNumber;
const int ContactInfo::kTag65FieldNumber;
const int ContactInfo::kTag66FieldNumber;
const int ContactInfo::kTag67FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContactInfo::ContactInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_NewInit_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.ContactInfo)
}
ContactInfo::ContactInfo(const ContactInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  tag6_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag6()) {
    tag6_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag6_);
  }
  tag16_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag16()) {
    tag16_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag16_);
  }
  sheng_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_sheng()) {
    sheng_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sheng_);
  }
  shi_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_shi()) {
    shi_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.shi_);
  }
  qianming_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_qianming()) {
    qianming_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.qianming_);
  }
  tag25_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag25()) {
    tag25_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag25_);
  }
  lastmsgtime_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_lastmsgtime()) {
    lastmsgtime_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.lastmsgtime_);
  }
  alias_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_alias()) {
    alias_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.alias_);
  }
  chatroomownerwxid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_chatroomownerwxid()) {
    chatroomownerwxid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.chatroomownerwxid_);
  }
  tag37_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag37()) {
    tag37_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag37_);
  }
  country_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_country()) {
    country_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.country_);
  }
  headicon_big_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_headicon_big()) {
    headicon_big_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headicon_big_);
  }
  headicon_small_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_headicon_small()) {
    headicon_small_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headicon_small_);
  }
  tag42_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag42()) {
    tag42_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag42_);
  }
  encryptname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_encryptname()) {
    encryptname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.encryptname_);
  }
  tag50_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag50()) {
    tag50_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag50_);
  }
  beizhuname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_beizhuname()) {
    beizhuname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.beizhuname_);
  }
  if (from.has_wxid()) {
    wxid_ = new ::com::tencent::mars::microchat::proto::ContactInfo_WXID(*from.wxid_);
  } else {
    wxid_ = NULL;
  }
  if (from.has_nickname()) {
    nickname_ = new ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME(*from.nickname_);
  } else {
    nickname_ = NULL;
  }
  if (from.has_shortpy()) {
    shortpy_ = new ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT(*from.shortpy_);
  } else {
    shortpy_ = NULL;
  }
  if (from.has_quanpin()) {
    quanpin_ = new ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin(*from.quanpin_);
  } else {
    quanpin_ = NULL;
  }
  if (from.has_real_nickname()) {
    real_nickname_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME(*from.real_nickname_);
  } else {
    real_nickname_ = NULL;
  }
  if (from.has_real_shortpy()) {
    real_shortpy_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT(*from.real_shortpy_);
  } else {
    real_shortpy_ = NULL;
  }
  if (from.has_real_quanpin()) {
    real_quanpin_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin(*from.real_quanpin_);
  } else {
    real_quanpin_ = NULL;
  }
  if (from.has_group_member_list()) {
    group_member_list_ = new ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList(*from.group_member_list_);
  } else {
    group_member_list_ = NULL;
  }
  ::memcpy(&tag5_, &from.tag5_,
    reinterpret_cast<char*>(&tag67_) -
    reinterpret_cast<char*>(&tag5_) + sizeof(tag67_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.ContactInfo)
}

void ContactInfo::SharedCtor() {
  tag6_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag16_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sheng_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  shi_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  qianming_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag25_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  lastmsgtime_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  alias_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  chatroomownerwxid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag37_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  country_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  headicon_big_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  headicon_small_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag42_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  encryptname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag50_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  beizhuname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&wxid_, 0, reinterpret_cast<char*>(&tag67_) -
    reinterpret_cast<char*>(&wxid_) + sizeof(tag67_));
  _cached_size_ = 0;
}

ContactInfo::~ContactInfo() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.ContactInfo)
  SharedDtor();
}

void ContactInfo::SharedDtor() {
  tag6_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag16_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sheng_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  shi_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  qianming_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag25_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  lastmsgtime_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  alias_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  chatroomownerwxid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag37_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  country_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  headicon_big_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  headicon_small_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag42_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  encryptname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  tag50_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  beizhuname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete wxid_;
  }
  if (this != internal_default_instance()) {
    delete nickname_;
  }
  if (this != internal_default_instance()) {
    delete shortpy_;
  }
  if (this != internal_default_instance()) {
    delete quanpin_;
  }
  if (this != internal_default_instance()) {
    delete real_nickname_;
  }
  if (this != internal_default_instance()) {
    delete real_shortpy_;
  }
  if (this != internal_default_instance()) {
    delete real_quanpin_;
  }
  if (this != internal_default_instance()) {
    delete group_member_list_;
  }
}

void ContactInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ContactInfo::descriptor() {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ContactInfo& ContactInfo::default_instance() {
  protobuf_NewInit_2eproto::InitDefaults();
  return *internal_default_instance();
}

ContactInfo* ContactInfo::New(::google::protobuf::Arena* arena) const {
  ContactInfo* n = new ContactInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ContactInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.ContactInfo)
  if (_has_bits_[0 / 32] & 255u) {
    if (has_tag6()) {
      GOOGLE_DCHECK(!tag6_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag6_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag16()) {
      GOOGLE_DCHECK(!tag16_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag16_.UnsafeRawStringPointer())->clear();
    }
    if (has_sheng()) {
      GOOGLE_DCHECK(!sheng_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*sheng_.UnsafeRawStringPointer())->clear();
    }
    if (has_shi()) {
      GOOGLE_DCHECK(!shi_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*shi_.UnsafeRawStringPointer())->clear();
    }
    if (has_qianming()) {
      GOOGLE_DCHECK(!qianming_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*qianming_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag25()) {
      GOOGLE_DCHECK(!tag25_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag25_.UnsafeRawStringPointer())->clear();
    }
    if (has_lastmsgtime()) {
      GOOGLE_DCHECK(!lastmsgtime_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*lastmsgtime_.UnsafeRawStringPointer())->clear();
    }
    if (has_alias()) {
      GOOGLE_DCHECK(!alias_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*alias_.UnsafeRawStringPointer())->clear();
    }
  }
  if (_has_bits_[8 / 32] & 65280u) {
    if (has_chatroomownerwxid()) {
      GOOGLE_DCHECK(!chatroomownerwxid_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*chatroomownerwxid_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag37()) {
      GOOGLE_DCHECK(!tag37_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag37_.UnsafeRawStringPointer())->clear();
    }
    if (has_country()) {
      GOOGLE_DCHECK(!country_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*country_.UnsafeRawStringPointer())->clear();
    }
    if (has_headicon_big()) {
      GOOGLE_DCHECK(!headicon_big_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*headicon_big_.UnsafeRawStringPointer())->clear();
    }
    if (has_headicon_small()) {
      GOOGLE_DCHECK(!headicon_small_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*headicon_small_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag42()) {
      GOOGLE_DCHECK(!tag42_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag42_.UnsafeRawStringPointer())->clear();
    }
    if (has_encryptname()) {
      GOOGLE_DCHECK(!encryptname_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*encryptname_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag50()) {
      GOOGLE_DCHECK(!tag50_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag50_.UnsafeRawStringPointer())->clear();
    }
  }
  if (_has_bits_[16 / 32] & 16711680u) {
    if (has_beizhuname()) {
      GOOGLE_DCHECK(!beizhuname_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*beizhuname_.UnsafeRawStringPointer())->clear();
    }
    if (has_wxid()) {
      GOOGLE_DCHECK(wxid_ != NULL);
      wxid_->::com::tencent::mars::microchat::proto::ContactInfo_WXID::Clear();
    }
    if (has_nickname()) {
      GOOGLE_DCHECK(nickname_ != NULL);
      nickname_->::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME::Clear();
    }
    if (has_shortpy()) {
      GOOGLE_DCHECK(shortpy_ != NULL);
      shortpy_->::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT::Clear();
    }
    if (has_quanpin()) {
      GOOGLE_DCHECK(quanpin_ != NULL);
      quanpin_->::com::tencent::mars::microchat::proto::ContactInfo_QuanPin::Clear();
    }
    if (has_real_nickname()) {
      GOOGLE_DCHECK(real_nickname_ != NULL);
      real_nickname_->::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME::Clear();
    }
    if (has_real_shortpy()) {
      GOOGLE_DCHECK(real_shortpy_ != NULL);
      real_shortpy_->::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT::Clear();
    }
    if (has_real_quanpin()) {
      GOOGLE_DCHECK(real_quanpin_ != NULL);
      real_quanpin_->::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin::Clear();
    }
  }
  if (has_group_member_list()) {
    GOOGLE_DCHECK(group_member_list_ != NULL);
    group_member_list_->::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList::Clear();
  }
  if (_has_bits_[24 / 32] & 4261412864u) {
    ::memset(&tag5_, 0, reinterpret_cast<char*>(&bchatroom_) -
      reinterpret_cast<char*>(&tag5_) + sizeof(bchatroom_));
  }
  if (_has_bits_[32 / 32] & 255u) {
    ::memset(&tag18_, 0, reinterpret_cast<char*>(&tag34_) -
      reinterpret_cast<char*>(&tag18_) + sizeof(tag34_));
  }
  if (_has_bits_[40 / 32] & 65280u) {
    ::memset(&tag35_, 0, reinterpret_cast<char*>(&tag66_) -
      reinterpret_cast<char*>(&tag35_) + sizeof(tag66_));
  }
  tag67_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool ContactInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.ContactInfo)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .com.tencent.mars.microchat.proto.ContactInfo.WXID wxid = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_wxid()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.ContactInfo.NICKNAME nickname = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_nickname()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT shortPy = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_shortpy()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.ContactInfo.QuanPin quanpin = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_quanpin()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag5 = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {
          set_has_tag5();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag5_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag6 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag6()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag6().data(), this->tag6().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.tag6");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 unknownKey = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u)) {
          set_has_unknownkey();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &unknownkey_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag8 = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u)) {
          set_has_tag8();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag8_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag9 = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u)) {
          set_has_tag9();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag9_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME real_nickname = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_real_nickname()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT real_shortPy = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_real_shortpy()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin real_quanpin = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_real_quanpin()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag13 = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(104u)) {
          set_has_tag13();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag13_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag14 = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(112u)) {
          set_has_tag14();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag14_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag16 = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag16()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag16().data(), this->tag16().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.tag16");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 bChatRoom = 17;
      case 17: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(136u)) {
          set_has_bchatroom();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &bchatroom_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag18 = 18;
      case 18: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(144u)) {
          set_has_tag18();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag18_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string sheng = 19;
      case 19: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(154u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_sheng()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->sheng().data(), this->sheng().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.sheng");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string shi = 20;
      case 20: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(162u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_shi()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->shi().data(), this->shi().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.shi");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string qianming = 21;
      case 21: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(170u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_qianming()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->qianming().data(), this->qianming().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.qianming");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 bFriend = 22;
      case 22: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(176u)) {
          set_has_bfriend();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &bfriend_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 bNotChatRoom = 23;
      case 23: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(184u)) {
          set_has_bnotchatroom();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &bnotchatroom_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag24 = 24;
      case 24: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(192u)) {
          set_has_tag24();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag24_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag25 = 25;
      case 25: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(202u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag25()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag25().data(), this->tag25().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.tag25");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag26 = 26;
      case 26: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(208u)) {
          set_has_tag26();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag26_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 src = 27;
      case 27: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(216u)) {
          set_has_src();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &src_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string lastMsgTime = 29;
      case 29: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(234u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_lastmsgtime()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->lastmsgtime().data(), this->lastmsgtime().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string alias = 30;
      case 30: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(242u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_alias()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->alias().data(), this->alias().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.alias");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string chatroomOwnerWxid = 31;
      case 31: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(250u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_chatroomownerwxid()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->chatroomownerwxid().data(), this->chatroomownerwxid().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag33 = 33;
      case 33: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(264u)) {
          set_has_tag33();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag33_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag34 = 34;
      case 34: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(272u)) {
          set_has_tag34();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag34_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag35 = 35;
      case 35: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(280u)) {
          set_has_tag35();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag35_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag37 = 37;
      case 37: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(298u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag37()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag37().data(), this->tag37().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.tag37");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string country = 38;
      case 38: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(306u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_country()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->country().data(), this->country().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.country");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string headicon_big = 39;
      case 39: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(314u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_headicon_big()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->headicon_big().data(), this->headicon_big().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.headicon_big");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string headicon_small = 40;
      case 40: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(322u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_headicon_small()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->headicon_small().data(), this->headicon_small().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.headicon_small");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag42 = 42;
      case 42: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(338u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag42()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag42().data(), this->tag42().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.tag42");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string encryptName = 45;
      case 45: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(362u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_encryptname()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->encryptname().data(), this->encryptname().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.encryptName");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag50 = 50;
      case 50: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(402u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag50()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag50().data(), this->tag50().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.tag50");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 chatroom_serverVer = 53;
      case 53: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(424u)) {
          set_has_chatroom_serverver();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &chatroom_serverver_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 chatroom_max_member = 55;
      case 55: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(440u)) {
          set_has_chatroom_max_member();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &chatroom_max_member_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag56 = 56;
      case 56: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(448u)) {
          set_has_tag56();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag56_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList group_member_list = 57;
      case 57: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(458u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_group_member_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag58 = 58;
      case 58: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(464u)) {
          set_has_tag58();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag58_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string beizhuName = 62;
      case 62: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(498u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_beizhuname()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->beizhuname().data(), this->beizhuname().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.ContactInfo.beizhuName");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag64 = 64;
      case 64: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(512u)) {
          set_has_tag64();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag64_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag65 = 65;
      case 65: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(520u)) {
          set_has_tag65();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag65_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag66 = 66;
      case 66: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(528u)) {
          set_has_tag66();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag66_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag67 = 67;
      case 67: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(536u)) {
          set_has_tag67();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag67_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.ContactInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.ContactInfo)
  return false;
#undef DO_
}

void ContactInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.ContactInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.ContactInfo.WXID wxid = 1;
  if (cached_has_bits & 0x00020000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->wxid_, output);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.NICKNAME nickname = 2;
  if (cached_has_bits & 0x00040000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->nickname_, output);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT shortPy = 3;
  if (cached_has_bits & 0x00080000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->shortpy_, output);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.QuanPin quanpin = 4;
  if (cached_has_bits & 0x00100000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, *this->quanpin_, output);
  }

  // optional int32 tag5 = 5;
  if (cached_has_bits & 0x02000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->tag5(), output);
  }

  // optional string tag6 = 6;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag6().data(), this->tag6().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag6");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->tag6(), output);
  }

  // optional int32 unknownKey = 7;
  if (cached_has_bits & 0x04000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->unknownkey(), output);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x08000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->tag8(), output);
  }

  // optional int32 tag9 = 9;
  if (cached_has_bits & 0x10000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(9, this->tag9(), output);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME real_nickname = 10;
  if (cached_has_bits & 0x00200000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, *this->real_nickname_, output);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT real_shortPy = 11;
  if (cached_has_bits & 0x00400000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      11, *this->real_shortpy_, output);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin real_quanpin = 12;
  if (cached_has_bits & 0x00800000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      12, *this->real_quanpin_, output);
  }

  // optional int32 tag13 = 13;
  if (cached_has_bits & 0x20000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(13, this->tag13(), output);
  }

  // optional int32 tag14 = 14;
  if (cached_has_bits & 0x40000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(14, this->tag14(), output);
  }

  // optional string tag16 = 16;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag16().data(), this->tag16().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag16");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      16, this->tag16(), output);
  }

  // optional int32 bChatRoom = 17;
  if (cached_has_bits & 0x80000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(17, this->bchatroom(), output);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag18 = 18;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(18, this->tag18(), output);
  }

  cached_has_bits = _has_bits_[0];
  // optional string sheng = 19;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->sheng().data(), this->sheng().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.sheng");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      19, this->sheng(), output);
  }

  // optional string shi = 20;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->shi().data(), this->shi().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.shi");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      20, this->shi(), output);
  }

  // optional string qianming = 21;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->qianming().data(), this->qianming().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.qianming");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      21, this->qianming(), output);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 bFriend = 22;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(22, this->bfriend(), output);
  }

  // optional int32 bNotChatRoom = 23;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(23, this->bnotchatroom(), output);
  }

  // optional int32 tag24 = 24;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(24, this->tag24(), output);
  }

  cached_has_bits = _has_bits_[0];
  // optional string tag25 = 25;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag25().data(), this->tag25().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag25");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      25, this->tag25(), output);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag26 = 26;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(26, this->tag26(), output);
  }

  // optional int32 src = 27;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(27, this->src(), output);
  }

  cached_has_bits = _has_bits_[0];
  // optional string lastMsgTime = 29;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->lastmsgtime().data(), this->lastmsgtime().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      29, this->lastmsgtime(), output);
  }

  // optional string alias = 30;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->alias().data(), this->alias().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.alias");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      30, this->alias(), output);
  }

  // optional string chatroomOwnerWxid = 31;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->chatroomownerwxid().data(), this->chatroomownerwxid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      31, this->chatroomownerwxid(), output);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag33 = 33;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(33, this->tag33(), output);
  }

  // optional int32 tag34 = 34;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(34, this->tag34(), output);
  }

  // optional int32 tag35 = 35;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(35, this->tag35(), output);
  }

  cached_has_bits = _has_bits_[0];
  // optional string tag37 = 37;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag37().data(), this->tag37().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag37");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      37, this->tag37(), output);
  }

  // optional string country = 38;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->country().data(), this->country().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.country");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      38, this->country(), output);
  }

  // optional string headicon_big = 39;
  if (cached_has_bits & 0x00000800u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->headicon_big().data(), this->headicon_big().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.headicon_big");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      39, this->headicon_big(), output);
  }

  // optional string headicon_small = 40;
  if (cached_has_bits & 0x00001000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->headicon_small().data(), this->headicon_small().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.headicon_small");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      40, this->headicon_small(), output);
  }

  // optional string tag42 = 42;
  if (cached_has_bits & 0x00002000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag42().data(), this->tag42().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag42");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      42, this->tag42(), output);
  }

  // optional string encryptName = 45;
  if (cached_has_bits & 0x00004000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->encryptname().data(), this->encryptname().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.encryptName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      45, this->encryptname(), output);
  }

  // optional string tag50 = 50;
  if (cached_has_bits & 0x00008000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag50().data(), this->tag50().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag50");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      50, this->tag50(), output);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 chatroom_serverVer = 53;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(53, this->chatroom_serverver(), output);
  }

  // optional int32 chatroom_max_member = 55;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(55, this->chatroom_max_member(), output);
  }

  // optional int32 tag56 = 56;
  if (cached_has_bits & 0x00000800u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(56, this->tag56(), output);
  }

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList group_member_list = 57;
  if (cached_has_bits & 0x01000000u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      57, *this->group_member_list_, output);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag58 = 58;
  if (cached_has_bits & 0x00001000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(58, this->tag58(), output);
  }

  cached_has_bits = _has_bits_[0];
  // optional string beizhuName = 62;
  if (cached_has_bits & 0x00010000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->beizhuname().data(), this->beizhuname().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.beizhuName");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      62, this->beizhuname(), output);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag64 = 64;
  if (cached_has_bits & 0x00002000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(64, this->tag64(), output);
  }

  // optional int32 tag65 = 65;
  if (cached_has_bits & 0x00004000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(65, this->tag65(), output);
  }

  // optional int32 tag66 = 66;
  if (cached_has_bits & 0x00008000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(66, this->tag66(), output);
  }

  // optional int32 tag67 = 67;
  if (cached_has_bits & 0x00010000u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(67, this->tag67(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.ContactInfo)
}

::google::protobuf::uint8* ContactInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.ContactInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.ContactInfo.WXID wxid = 1;
  if (cached_has_bits & 0x00020000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->wxid_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.NICKNAME nickname = 2;
  if (cached_has_bits & 0x00040000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->nickname_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT shortPy = 3;
  if (cached_has_bits & 0x00080000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->shortpy_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.QuanPin quanpin = 4;
  if (cached_has_bits & 0x00100000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        4, *this->quanpin_, deterministic, target);
  }

  // optional int32 tag5 = 5;
  if (cached_has_bits & 0x02000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->tag5(), target);
  }

  // optional string tag6 = 6;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag6().data(), this->tag6().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag6");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->tag6(), target);
  }

  // optional int32 unknownKey = 7;
  if (cached_has_bits & 0x04000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->unknownkey(), target);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x08000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->tag8(), target);
  }

  // optional int32 tag9 = 9;
  if (cached_has_bits & 0x10000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(9, this->tag9(), target);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME real_nickname = 10;
  if (cached_has_bits & 0x00200000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        10, *this->real_nickname_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT real_shortPy = 11;
  if (cached_has_bits & 0x00400000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        11, *this->real_shortpy_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin real_quanpin = 12;
  if (cached_has_bits & 0x00800000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        12, *this->real_quanpin_, deterministic, target);
  }

  // optional int32 tag13 = 13;
  if (cached_has_bits & 0x20000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(13, this->tag13(), target);
  }

  // optional int32 tag14 = 14;
  if (cached_has_bits & 0x40000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(14, this->tag14(), target);
  }

  // optional string tag16 = 16;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag16().data(), this->tag16().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag16");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        16, this->tag16(), target);
  }

  // optional int32 bChatRoom = 17;
  if (cached_has_bits & 0x80000000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(17, this->bchatroom(), target);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag18 = 18;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(18, this->tag18(), target);
  }

  cached_has_bits = _has_bits_[0];
  // optional string sheng = 19;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->sheng().data(), this->sheng().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.sheng");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        19, this->sheng(), target);
  }

  // optional string shi = 20;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->shi().data(), this->shi().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.shi");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        20, this->shi(), target);
  }

  // optional string qianming = 21;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->qianming().data(), this->qianming().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.qianming");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        21, this->qianming(), target);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 bFriend = 22;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(22, this->bfriend(), target);
  }

  // optional int32 bNotChatRoom = 23;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(23, this->bnotchatroom(), target);
  }

  // optional int32 tag24 = 24;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(24, this->tag24(), target);
  }

  cached_has_bits = _has_bits_[0];
  // optional string tag25 = 25;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag25().data(), this->tag25().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag25");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        25, this->tag25(), target);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag26 = 26;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(26, this->tag26(), target);
  }

  // optional int32 src = 27;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(27, this->src(), target);
  }

  cached_has_bits = _has_bits_[0];
  // optional string lastMsgTime = 29;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->lastmsgtime().data(), this->lastmsgtime().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        29, this->lastmsgtime(), target);
  }

  // optional string alias = 30;
  if (cached_has_bits & 0x00000080u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->alias().data(), this->alias().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.alias");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        30, this->alias(), target);
  }

  // optional string chatroomOwnerWxid = 31;
  if (cached_has_bits & 0x00000100u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->chatroomownerwxid().data(), this->chatroomownerwxid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        31, this->chatroomownerwxid(), target);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag33 = 33;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(33, this->tag33(), target);
  }

  // optional int32 tag34 = 34;
  if (cached_has_bits & 0x00000080u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(34, this->tag34(), target);
  }

  // optional int32 tag35 = 35;
  if (cached_has_bits & 0x00000100u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(35, this->tag35(), target);
  }

  cached_has_bits = _has_bits_[0];
  // optional string tag37 = 37;
  if (cached_has_bits & 0x00000200u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag37().data(), this->tag37().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag37");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        37, this->tag37(), target);
  }

  // optional string country = 38;
  if (cached_has_bits & 0x00000400u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->country().data(), this->country().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.country");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        38, this->country(), target);
  }

  // optional string headicon_big = 39;
  if (cached_has_bits & 0x00000800u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->headicon_big().data(), this->headicon_big().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.headicon_big");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        39, this->headicon_big(), target);
  }

  // optional string headicon_small = 40;
  if (cached_has_bits & 0x00001000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->headicon_small().data(), this->headicon_small().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.headicon_small");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        40, this->headicon_small(), target);
  }

  // optional string tag42 = 42;
  if (cached_has_bits & 0x00002000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag42().data(), this->tag42().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag42");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        42, this->tag42(), target);
  }

  // optional string encryptName = 45;
  if (cached_has_bits & 0x00004000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->encryptname().data(), this->encryptname().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.encryptName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        45, this->encryptname(), target);
  }

  // optional string tag50 = 50;
  if (cached_has_bits & 0x00008000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag50().data(), this->tag50().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.tag50");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        50, this->tag50(), target);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 chatroom_serverVer = 53;
  if (cached_has_bits & 0x00000200u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(53, this->chatroom_serverver(), target);
  }

  // optional int32 chatroom_max_member = 55;
  if (cached_has_bits & 0x00000400u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(55, this->chatroom_max_member(), target);
  }

  // optional int32 tag56 = 56;
  if (cached_has_bits & 0x00000800u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(56, this->tag56(), target);
  }

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList group_member_list = 57;
  if (cached_has_bits & 0x01000000u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        57, *this->group_member_list_, deterministic, target);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag58 = 58;
  if (cached_has_bits & 0x00001000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(58, this->tag58(), target);
  }

  cached_has_bits = _has_bits_[0];
  // optional string beizhuName = 62;
  if (cached_has_bits & 0x00010000u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->beizhuname().data(), this->beizhuname().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.ContactInfo.beizhuName");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        62, this->beizhuname(), target);
  }

  cached_has_bits = _has_bits_[1];
  // optional int32 tag64 = 64;
  if (cached_has_bits & 0x00002000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(64, this->tag64(), target);
  }

  // optional int32 tag65 = 65;
  if (cached_has_bits & 0x00004000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(65, this->tag65(), target);
  }

  // optional int32 tag66 = 66;
  if (cached_has_bits & 0x00008000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(66, this->tag66(), target);
  }

  // optional int32 tag67 = 67;
  if (cached_has_bits & 0x00010000u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(67, this->tag67(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.ContactInfo)
  return target;
}

size_t ContactInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.ContactInfo)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 255u) {
    // optional string tag6 = 6;
    if (has_tag6()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag6());
    }

    // optional string tag16 = 16;
    if (has_tag16()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag16());
    }

    // optional string sheng = 19;
    if (has_sheng()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->sheng());
    }

    // optional string shi = 20;
    if (has_shi()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->shi());
    }

    // optional string qianming = 21;
    if (has_qianming()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->qianming());
    }

    // optional string tag25 = 25;
    if (has_tag25()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag25());
    }

    // optional string lastMsgTime = 29;
    if (has_lastmsgtime()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->lastmsgtime());
    }

    // optional string alias = 30;
    if (has_alias()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->alias());
    }

  }
  if (_has_bits_[8 / 32] & 65280u) {
    // optional string chatroomOwnerWxid = 31;
    if (has_chatroomownerwxid()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->chatroomownerwxid());
    }

    // optional string tag37 = 37;
    if (has_tag37()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag37());
    }

    // optional string country = 38;
    if (has_country()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->country());
    }

    // optional string headicon_big = 39;
    if (has_headicon_big()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->headicon_big());
    }

    // optional string headicon_small = 40;
    if (has_headicon_small()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->headicon_small());
    }

    // optional string tag42 = 42;
    if (has_tag42()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag42());
    }

    // optional string encryptName = 45;
    if (has_encryptname()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->encryptname());
    }

    // optional string tag50 = 50;
    if (has_tag50()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag50());
    }

  }
  if (_has_bits_[16 / 32] & 16711680u) {
    // optional string beizhuName = 62;
    if (has_beizhuname()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->beizhuname());
    }

    // optional .com.tencent.mars.microchat.proto.ContactInfo.WXID wxid = 1;
    if (has_wxid()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->wxid_);
    }

    // optional .com.tencent.mars.microchat.proto.ContactInfo.NICKNAME nickname = 2;
    if (has_nickname()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->nickname_);
    }

    // optional .com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT shortPy = 3;
    if (has_shortpy()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->shortpy_);
    }

    // optional .com.tencent.mars.microchat.proto.ContactInfo.QuanPin quanpin = 4;
    if (has_quanpin()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->quanpin_);
    }

    // optional .com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME real_nickname = 10;
    if (has_real_nickname()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->real_nickname_);
    }

    // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT real_shortPy = 11;
    if (has_real_shortpy()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->real_shortpy_);
    }

    // optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin real_quanpin = 12;
    if (has_real_quanpin()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->real_quanpin_);
    }

  }
  if (_has_bits_[24 / 32] & 4278190080u) {
    // optional .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList group_member_list = 57;
    if (has_group_member_list()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->group_member_list_);
    }

    // optional int32 tag5 = 5;
    if (has_tag5()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag5());
    }

    // optional int32 unknownKey = 7;
    if (has_unknownkey()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->unknownkey());
    }

    // optional int32 tag8 = 8;
    if (has_tag8()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag8());
    }

    // optional int32 tag9 = 9;
    if (has_tag9()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag9());
    }

    // optional int32 tag13 = 13;
    if (has_tag13()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag13());
    }

    // optional int32 tag14 = 14;
    if (has_tag14()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag14());
    }

    // optional int32 bChatRoom = 17;
    if (has_bchatroom()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->bchatroom());
    }

  }
  if (_has_bits_[32 / 32] & 255u) {
    // optional int32 tag18 = 18;
    if (has_tag18()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag18());
    }

    // optional int32 bFriend = 22;
    if (has_bfriend()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->bfriend());
    }

    // optional int32 bNotChatRoom = 23;
    if (has_bnotchatroom()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->bnotchatroom());
    }

    // optional int32 tag24 = 24;
    if (has_tag24()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag24());
    }

    // optional int32 tag26 = 26;
    if (has_tag26()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag26());
    }

    // optional int32 src = 27;
    if (has_src()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->src());
    }

    // optional int32 tag33 = 33;
    if (has_tag33()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag33());
    }

    // optional int32 tag34 = 34;
    if (has_tag34()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag34());
    }

  }
  if (_has_bits_[40 / 32] & 65280u) {
    // optional int32 tag35 = 35;
    if (has_tag35()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag35());
    }

    // optional int32 chatroom_serverVer = 53;
    if (has_chatroom_serverver()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->chatroom_serverver());
    }

    // optional int32 chatroom_max_member = 55;
    if (has_chatroom_max_member()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->chatroom_max_member());
    }

    // optional int32 tag56 = 56;
    if (has_tag56()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag56());
    }

    // optional int32 tag58 = 58;
    if (has_tag58()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag58());
    }

    // optional int32 tag64 = 64;
    if (has_tag64()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag64());
    }

    // optional int32 tag65 = 65;
    if (has_tag65()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag65());
    }

    // optional int32 tag66 = 66;
    if (has_tag66()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag66());
    }

  }
  // optional int32 tag67 = 67;
  if (has_tag67()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->tag67());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ContactInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const ContactInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ContactInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.ContactInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.ContactInfo)
    MergeFrom(*source);
  }
}

void ContactInfo::MergeFrom(const ContactInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.ContactInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_tag6();
      tag6_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag6_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_tag16();
      tag16_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag16_);
    }
    if (cached_has_bits & 0x00000004u) {
      set_has_sheng();
      sheng_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sheng_);
    }
    if (cached_has_bits & 0x00000008u) {
      set_has_shi();
      shi_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.shi_);
    }
    if (cached_has_bits & 0x00000010u) {
      set_has_qianming();
      qianming_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.qianming_);
    }
    if (cached_has_bits & 0x00000020u) {
      set_has_tag25();
      tag25_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag25_);
    }
    if (cached_has_bits & 0x00000040u) {
      set_has_lastmsgtime();
      lastmsgtime_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.lastmsgtime_);
    }
    if (cached_has_bits & 0x00000080u) {
      set_has_alias();
      alias_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.alias_);
    }
  }
  if (cached_has_bits & 65280u) {
    if (cached_has_bits & 0x00000100u) {
      set_has_chatroomownerwxid();
      chatroomownerwxid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.chatroomownerwxid_);
    }
    if (cached_has_bits & 0x00000200u) {
      set_has_tag37();
      tag37_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag37_);
    }
    if (cached_has_bits & 0x00000400u) {
      set_has_country();
      country_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.country_);
    }
    if (cached_has_bits & 0x00000800u) {
      set_has_headicon_big();
      headicon_big_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headicon_big_);
    }
    if (cached_has_bits & 0x00001000u) {
      set_has_headicon_small();
      headicon_small_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headicon_small_);
    }
    if (cached_has_bits & 0x00002000u) {
      set_has_tag42();
      tag42_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag42_);
    }
    if (cached_has_bits & 0x00004000u) {
      set_has_encryptname();
      encryptname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.encryptname_);
    }
    if (cached_has_bits & 0x00008000u) {
      set_has_tag50();
      tag50_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag50_);
    }
  }
  if (cached_has_bits & 16711680u) {
    if (cached_has_bits & 0x00010000u) {
      set_has_beizhuname();
      beizhuname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.beizhuname_);
    }
    if (cached_has_bits & 0x00020000u) {
      mutable_wxid()->::com::tencent::mars::microchat::proto::ContactInfo_WXID::MergeFrom(from.wxid());
    }
    if (cached_has_bits & 0x00040000u) {
      mutable_nickname()->::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME::MergeFrom(from.nickname());
    }
    if (cached_has_bits & 0x00080000u) {
      mutable_shortpy()->::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT::MergeFrom(from.shortpy());
    }
    if (cached_has_bits & 0x00100000u) {
      mutable_quanpin()->::com::tencent::mars::microchat::proto::ContactInfo_QuanPin::MergeFrom(from.quanpin());
    }
    if (cached_has_bits & 0x00200000u) {
      mutable_real_nickname()->::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME::MergeFrom(from.real_nickname());
    }
    if (cached_has_bits & 0x00400000u) {
      mutable_real_shortpy()->::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT::MergeFrom(from.real_shortpy());
    }
    if (cached_has_bits & 0x00800000u) {
      mutable_real_quanpin()->::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin::MergeFrom(from.real_quanpin());
    }
  }
  if (cached_has_bits & 4278190080u) {
    if (cached_has_bits & 0x01000000u) {
      mutable_group_member_list()->::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList::MergeFrom(from.group_member_list());
    }
    if (cached_has_bits & 0x02000000u) {
      tag5_ = from.tag5_;
    }
    if (cached_has_bits & 0x04000000u) {
      unknownkey_ = from.unknownkey_;
    }
    if (cached_has_bits & 0x08000000u) {
      tag8_ = from.tag8_;
    }
    if (cached_has_bits & 0x10000000u) {
      tag9_ = from.tag9_;
    }
    if (cached_has_bits & 0x20000000u) {
      tag13_ = from.tag13_;
    }
    if (cached_has_bits & 0x40000000u) {
      tag14_ = from.tag14_;
    }
    if (cached_has_bits & 0x80000000u) {
      bchatroom_ = from.bchatroom_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  cached_has_bits = from._has_bits_[1];
  if (cached_has_bits & 255u) {
    if (cached_has_bits & 0x00000001u) {
      tag18_ = from.tag18_;
    }
    if (cached_has_bits & 0x00000002u) {
      bfriend_ = from.bfriend_;
    }
    if (cached_has_bits & 0x00000004u) {
      bnotchatroom_ = from.bnotchatroom_;
    }
    if (cached_has_bits & 0x00000008u) {
      tag24_ = from.tag24_;
    }
    if (cached_has_bits & 0x00000010u) {
      tag26_ = from.tag26_;
    }
    if (cached_has_bits & 0x00000020u) {
      src_ = from.src_;
    }
    if (cached_has_bits & 0x00000040u) {
      tag33_ = from.tag33_;
    }
    if (cached_has_bits & 0x00000080u) {
      tag34_ = from.tag34_;
    }
    _has_bits_[1] |= cached_has_bits;
  }
  if (cached_has_bits & 65280u) {
    if (cached_has_bits & 0x00000100u) {
      tag35_ = from.tag35_;
    }
    if (cached_has_bits & 0x00000200u) {
      chatroom_serverver_ = from.chatroom_serverver_;
    }
    if (cached_has_bits & 0x00000400u) {
      chatroom_max_member_ = from.chatroom_max_member_;
    }
    if (cached_has_bits & 0x00000800u) {
      tag56_ = from.tag56_;
    }
    if (cached_has_bits & 0x00001000u) {
      tag58_ = from.tag58_;
    }
    if (cached_has_bits & 0x00002000u) {
      tag64_ = from.tag64_;
    }
    if (cached_has_bits & 0x00004000u) {
      tag65_ = from.tag65_;
    }
    if (cached_has_bits & 0x00008000u) {
      tag66_ = from.tag66_;
    }
    _has_bits_[1] |= cached_has_bits;
  }
  if (cached_has_bits & 0x00010000u) {
    set_tag67(from.tag67());
  }
}

void ContactInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContactInfo::CopyFrom(const ContactInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.ContactInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContactInfo::IsInitialized() const {
  return true;
}

void ContactInfo::Swap(ContactInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContactInfo::InternalSwap(ContactInfo* other) {
  tag6_.Swap(&other->tag6_);
  tag16_.Swap(&other->tag16_);
  sheng_.Swap(&other->sheng_);
  shi_.Swap(&other->shi_);
  qianming_.Swap(&other->qianming_);
  tag25_.Swap(&other->tag25_);
  lastmsgtime_.Swap(&other->lastmsgtime_);
  alias_.Swap(&other->alias_);
  chatroomownerwxid_.Swap(&other->chatroomownerwxid_);
  tag37_.Swap(&other->tag37_);
  country_.Swap(&other->country_);
  headicon_big_.Swap(&other->headicon_big_);
  headicon_small_.Swap(&other->headicon_small_);
  tag42_.Swap(&other->tag42_);
  encryptname_.Swap(&other->encryptname_);
  tag50_.Swap(&other->tag50_);
  beizhuname_.Swap(&other->beizhuname_);
  std::swap(wxid_, other->wxid_);
  std::swap(nickname_, other->nickname_);
  std::swap(shortpy_, other->shortpy_);
  std::swap(quanpin_, other->quanpin_);
  std::swap(real_nickname_, other->real_nickname_);
  std::swap(real_shortpy_, other->real_shortpy_);
  std::swap(real_quanpin_, other->real_quanpin_);
  std::swap(group_member_list_, other->group_member_list_);
  std::swap(tag5_, other->tag5_);
  std::swap(unknownkey_, other->unknownkey_);
  std::swap(tag8_, other->tag8_);
  std::swap(tag9_, other->tag9_);
  std::swap(tag13_, other->tag13_);
  std::swap(tag14_, other->tag14_);
  std::swap(bchatroom_, other->bchatroom_);
  std::swap(tag18_, other->tag18_);
  std::swap(bfriend_, other->bfriend_);
  std::swap(bnotchatroom_, other->bnotchatroom_);
  std::swap(tag24_, other->tag24_);
  std::swap(tag26_, other->tag26_);
  std::swap(src_, other->src_);
  std::swap(tag33_, other->tag33_);
  std::swap(tag34_, other->tag34_);
  std::swap(tag35_, other->tag35_);
  std::swap(chatroom_serverver_, other->chatroom_serverver_);
  std::swap(chatroom_max_member_, other->chatroom_max_member_);
  std::swap(tag56_, other->tag56_);
  std::swap(tag58_, other->tag58_);
  std::swap(tag64_, other->tag64_);
  std::swap(tag65_, other->tag65_);
  std::swap(tag66_, other->tag66_);
  std::swap(tag67_, other->tag67_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  std::swap(_has_bits_[1], other->_has_bits_[1]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ContactInfo::GetMetadata() const {
  protobuf_NewInit_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_NewInit_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ContactInfo

// optional .com.tencent.mars.microchat.proto.ContactInfo.WXID wxid = 1;
bool ContactInfo::has_wxid() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
void ContactInfo::set_has_wxid() {
  _has_bits_[0] |= 0x00020000u;
}
void ContactInfo::clear_has_wxid() {
  _has_bits_[0] &= ~0x00020000u;
}
void ContactInfo::clear_wxid() {
  if (wxid_ != NULL) wxid_->::com::tencent::mars::microchat::proto::ContactInfo_WXID::Clear();
  clear_has_wxid();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_WXID& ContactInfo::wxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.wxid)
  return wxid_ != NULL ? *wxid_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_WXID::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_WXID* ContactInfo::mutable_wxid() {
  set_has_wxid();
  if (wxid_ == NULL) {
    wxid_ = new ::com::tencent::mars::microchat::proto::ContactInfo_WXID;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.wxid)
  return wxid_;
}
::com::tencent::mars::microchat::proto::ContactInfo_WXID* ContactInfo::release_wxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.wxid)
  clear_has_wxid();
  ::com::tencent::mars::microchat::proto::ContactInfo_WXID* temp = wxid_;
  wxid_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_wxid(::com::tencent::mars::microchat::proto::ContactInfo_WXID* wxid) {
  delete wxid_;
  wxid_ = wxid;
  if (wxid) {
    set_has_wxid();
  } else {
    clear_has_wxid();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.wxid)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.NICKNAME nickname = 2;
bool ContactInfo::has_nickname() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
void ContactInfo::set_has_nickname() {
  _has_bits_[0] |= 0x00040000u;
}
void ContactInfo::clear_has_nickname() {
  _has_bits_[0] &= ~0x00040000u;
}
void ContactInfo::clear_nickname() {
  if (nickname_ != NULL) nickname_->::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME::Clear();
  clear_has_nickname();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME& ContactInfo::nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.nickname)
  return nickname_ != NULL ? *nickname_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* ContactInfo::mutable_nickname() {
  set_has_nickname();
  if (nickname_ == NULL) {
    nickname_ = new ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.nickname)
  return nickname_;
}
::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* ContactInfo::release_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.nickname)
  clear_has_nickname();
  ::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* temp = nickname_;
  nickname_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_nickname(::com::tencent::mars::microchat::proto::ContactInfo_NICKNAME* nickname) {
  delete nickname_;
  nickname_ = nickname;
  if (nickname) {
    set_has_nickname();
  } else {
    clear_has_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.nickname)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.PY_SHORT shortPy = 3;
bool ContactInfo::has_shortpy() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
void ContactInfo::set_has_shortpy() {
  _has_bits_[0] |= 0x00080000u;
}
void ContactInfo::clear_has_shortpy() {
  _has_bits_[0] &= ~0x00080000u;
}
void ContactInfo::clear_shortpy() {
  if (shortpy_ != NULL) shortpy_->::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT::Clear();
  clear_has_shortpy();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT& ContactInfo::shortpy() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
  return shortpy_ != NULL ? *shortpy_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* ContactInfo::mutable_shortpy() {
  set_has_shortpy();
  if (shortpy_ == NULL) {
    shortpy_ = new ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
  return shortpy_;
}
::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* ContactInfo::release_shortpy() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
  clear_has_shortpy();
  ::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* temp = shortpy_;
  shortpy_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_shortpy(::com::tencent::mars::microchat::proto::ContactInfo_PY_SHORT* shortpy) {
  delete shortpy_;
  shortpy_ = shortpy;
  if (shortpy) {
    set_has_shortpy();
  } else {
    clear_has_shortpy();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.shortPy)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.QuanPin quanpin = 4;
bool ContactInfo::has_quanpin() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
void ContactInfo::set_has_quanpin() {
  _has_bits_[0] |= 0x00100000u;
}
void ContactInfo::clear_has_quanpin() {
  _has_bits_[0] &= ~0x00100000u;
}
void ContactInfo::clear_quanpin() {
  if (quanpin_ != NULL) quanpin_->::com::tencent::mars::microchat::proto::ContactInfo_QuanPin::Clear();
  clear_has_quanpin();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin& ContactInfo::quanpin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
  return quanpin_ != NULL ? *quanpin_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_QuanPin::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* ContactInfo::mutable_quanpin() {
  set_has_quanpin();
  if (quanpin_ == NULL) {
    quanpin_ = new ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
  return quanpin_;
}
::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* ContactInfo::release_quanpin() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
  clear_has_quanpin();
  ::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* temp = quanpin_;
  quanpin_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_quanpin(::com::tencent::mars::microchat::proto::ContactInfo_QuanPin* quanpin) {
  delete quanpin_;
  quanpin_ = quanpin;
  if (quanpin) {
    set_has_quanpin();
  } else {
    clear_has_quanpin();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.quanpin)
}

// optional int32 tag5 = 5;
bool ContactInfo::has_tag5() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
void ContactInfo::set_has_tag5() {
  _has_bits_[0] |= 0x02000000u;
}
void ContactInfo::clear_has_tag5() {
  _has_bits_[0] &= ~0x02000000u;
}
void ContactInfo::clear_tag5() {
  tag5_ = 0;
  clear_has_tag5();
}
::google::protobuf::int32 ContactInfo::tag5() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag5)
  return tag5_;
}
void ContactInfo::set_tag5(::google::protobuf::int32 value) {
  set_has_tag5();
  tag5_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag5)
}

// optional string tag6 = 6;
bool ContactInfo::has_tag6() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void ContactInfo::set_has_tag6() {
  _has_bits_[0] |= 0x00000001u;
}
void ContactInfo::clear_has_tag6() {
  _has_bits_[0] &= ~0x00000001u;
}
void ContactInfo::clear_tag6() {
  tag6_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag6();
}
const ::std::string& ContactInfo::tag6() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag6)
  return tag6_.GetNoArena();
}
void ContactInfo::set_tag6(const ::std::string& value) {
  set_has_tag6();
  tag6_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
#if LANG_CXX11
void ContactInfo::set_tag6(::std::string&& value) {
  set_has_tag6();
  tag6_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
#endif
void ContactInfo::set_tag6(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag6();
  tag6_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
void ContactInfo::set_tag6(const char* value, size_t size) {
  set_has_tag6();
  tag6_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}
::std::string* ContactInfo::mutable_tag6() {
  set_has_tag6();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag6)
  return tag6_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_tag6() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag6)
  clear_has_tag6();
  return tag6_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_tag6(::std::string* tag6) {
  if (tag6 != NULL) {
    set_has_tag6();
  } else {
    clear_has_tag6();
  }
  tag6_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag6);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag6)
}

// optional int32 unknownKey = 7;
bool ContactInfo::has_unknownkey() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
void ContactInfo::set_has_unknownkey() {
  _has_bits_[0] |= 0x04000000u;
}
void ContactInfo::clear_has_unknownkey() {
  _has_bits_[0] &= ~0x04000000u;
}
void ContactInfo::clear_unknownkey() {
  unknownkey_ = 0;
  clear_has_unknownkey();
}
::google::protobuf::int32 ContactInfo::unknownkey() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.unknownKey)
  return unknownkey_;
}
void ContactInfo::set_unknownkey(::google::protobuf::int32 value) {
  set_has_unknownkey();
  unknownkey_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.unknownKey)
}

// optional int32 tag8 = 8;
bool ContactInfo::has_tag8() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
void ContactInfo::set_has_tag8() {
  _has_bits_[0] |= 0x08000000u;
}
void ContactInfo::clear_has_tag8() {
  _has_bits_[0] &= ~0x08000000u;
}
void ContactInfo::clear_tag8() {
  tag8_ = 0;
  clear_has_tag8();
}
::google::protobuf::int32 ContactInfo::tag8() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag8)
  return tag8_;
}
void ContactInfo::set_tag8(::google::protobuf::int32 value) {
  set_has_tag8();
  tag8_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag8)
}

// optional int32 tag9 = 9;
bool ContactInfo::has_tag9() const {
  return (_has_bits_[0] & 0x10000000u) != 0;
}
void ContactInfo::set_has_tag9() {
  _has_bits_[0] |= 0x10000000u;
}
void ContactInfo::clear_has_tag9() {
  _has_bits_[0] &= ~0x10000000u;
}
void ContactInfo::clear_tag9() {
  tag9_ = 0;
  clear_has_tag9();
}
::google::protobuf::int32 ContactInfo::tag9() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag9)
  return tag9_;
}
void ContactInfo::set_tag9(::google::protobuf::int32 value) {
  set_has_tag9();
  tag9_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag9)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.REALNICKNAME real_nickname = 10;
bool ContactInfo::has_real_nickname() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
void ContactInfo::set_has_real_nickname() {
  _has_bits_[0] |= 0x00200000u;
}
void ContactInfo::clear_has_real_nickname() {
  _has_bits_[0] &= ~0x00200000u;
}
void ContactInfo::clear_real_nickname() {
  if (real_nickname_ != NULL) real_nickname_->::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME::Clear();
  clear_has_real_nickname();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME& ContactInfo::real_nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
  return real_nickname_ != NULL ? *real_nickname_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* ContactInfo::mutable_real_nickname() {
  set_has_real_nickname();
  if (real_nickname_ == NULL) {
    real_nickname_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
  return real_nickname_;
}
::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* ContactInfo::release_real_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
  clear_has_real_nickname();
  ::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* temp = real_nickname_;
  real_nickname_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_real_nickname(::com::tencent::mars::microchat::proto::ContactInfo_REALNICKNAME* real_nickname) {
  delete real_nickname_;
  real_nickname_ = real_nickname;
  if (real_nickname) {
    set_has_real_nickname();
  } else {
    clear_has_real_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.real_nickname)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_PY_SHORT real_shortPy = 11;
bool ContactInfo::has_real_shortpy() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
void ContactInfo::set_has_real_shortpy() {
  _has_bits_[0] |= 0x00400000u;
}
void ContactInfo::clear_has_real_shortpy() {
  _has_bits_[0] &= ~0x00400000u;
}
void ContactInfo::clear_real_shortpy() {
  if (real_shortpy_ != NULL) real_shortpy_->::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT::Clear();
  clear_has_real_shortpy();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT& ContactInfo::real_shortpy() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
  return real_shortpy_ != NULL ? *real_shortpy_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* ContactInfo::mutable_real_shortpy() {
  set_has_real_shortpy();
  if (real_shortpy_ == NULL) {
    real_shortpy_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
  return real_shortpy_;
}
::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* ContactInfo::release_real_shortpy() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
  clear_has_real_shortpy();
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* temp = real_shortpy_;
  real_shortpy_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_real_shortpy(::com::tencent::mars::microchat::proto::ContactInfo_REAL_PY_SHORT* real_shortpy) {
  delete real_shortpy_;
  real_shortpy_ = real_shortpy;
  if (real_shortpy) {
    set_has_real_shortpy();
  } else {
    clear_has_real_shortpy();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.real_shortPy)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.REAL_QuanPin real_quanpin = 12;
bool ContactInfo::has_real_quanpin() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
void ContactInfo::set_has_real_quanpin() {
  _has_bits_[0] |= 0x00800000u;
}
void ContactInfo::clear_has_real_quanpin() {
  _has_bits_[0] &= ~0x00800000u;
}
void ContactInfo::clear_real_quanpin() {
  if (real_quanpin_ != NULL) real_quanpin_->::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin::Clear();
  clear_has_real_quanpin();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin& ContactInfo::real_quanpin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
  return real_quanpin_ != NULL ? *real_quanpin_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* ContactInfo::mutable_real_quanpin() {
  set_has_real_quanpin();
  if (real_quanpin_ == NULL) {
    real_quanpin_ = new ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
  return real_quanpin_;
}
::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* ContactInfo::release_real_quanpin() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
  clear_has_real_quanpin();
  ::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* temp = real_quanpin_;
  real_quanpin_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_real_quanpin(::com::tencent::mars::microchat::proto::ContactInfo_REAL_QuanPin* real_quanpin) {
  delete real_quanpin_;
  real_quanpin_ = real_quanpin;
  if (real_quanpin) {
    set_has_real_quanpin();
  } else {
    clear_has_real_quanpin();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.real_quanpin)
}

// optional int32 tag13 = 13;
bool ContactInfo::has_tag13() const {
  return (_has_bits_[0] & 0x20000000u) != 0;
}
void ContactInfo::set_has_tag13() {
  _has_bits_[0] |= 0x20000000u;
}
void ContactInfo::clear_has_tag13() {
  _has_bits_[0] &= ~0x20000000u;
}
void ContactInfo::clear_tag13() {
  tag13_ = 0;
  clear_has_tag13();
}
::google::protobuf::int32 ContactInfo::tag13() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag13)
  return tag13_;
}
void ContactInfo::set_tag13(::google::protobuf::int32 value) {
  set_has_tag13();
  tag13_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag13)
}

// optional int32 tag14 = 14;
bool ContactInfo::has_tag14() const {
  return (_has_bits_[0] & 0x40000000u) != 0;
}
void ContactInfo::set_has_tag14() {
  _has_bits_[0] |= 0x40000000u;
}
void ContactInfo::clear_has_tag14() {
  _has_bits_[0] &= ~0x40000000u;
}
void ContactInfo::clear_tag14() {
  tag14_ = 0;
  clear_has_tag14();
}
::google::protobuf::int32 ContactInfo::tag14() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag14)
  return tag14_;
}
void ContactInfo::set_tag14(::google::protobuf::int32 value) {
  set_has_tag14();
  tag14_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag14)
}

// optional string tag16 = 16;
bool ContactInfo::has_tag16() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void ContactInfo::set_has_tag16() {
  _has_bits_[0] |= 0x00000002u;
}
void ContactInfo::clear_has_tag16() {
  _has_bits_[0] &= ~0x00000002u;
}
void ContactInfo::clear_tag16() {
  tag16_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag16();
}
const ::std::string& ContactInfo::tag16() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag16)
  return tag16_.GetNoArena();
}
void ContactInfo::set_tag16(const ::std::string& value) {
  set_has_tag16();
  tag16_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
#if LANG_CXX11
void ContactInfo::set_tag16(::std::string&& value) {
  set_has_tag16();
  tag16_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
#endif
void ContactInfo::set_tag16(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag16();
  tag16_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
void ContactInfo::set_tag16(const char* value, size_t size) {
  set_has_tag16();
  tag16_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}
::std::string* ContactInfo::mutable_tag16() {
  set_has_tag16();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag16)
  return tag16_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_tag16() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag16)
  clear_has_tag16();
  return tag16_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_tag16(::std::string* tag16) {
  if (tag16 != NULL) {
    set_has_tag16();
  } else {
    clear_has_tag16();
  }
  tag16_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag16);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag16)
}

// optional int32 bChatRoom = 17;
bool ContactInfo::has_bchatroom() const {
  return (_has_bits_[0] & 0x80000000u) != 0;
}
void ContactInfo::set_has_bchatroom() {
  _has_bits_[0] |= 0x80000000u;
}
void ContactInfo::clear_has_bchatroom() {
  _has_bits_[0] &= ~0x80000000u;
}
void ContactInfo::clear_bchatroom() {
  bchatroom_ = 0;
  clear_has_bchatroom();
}
::google::protobuf::int32 ContactInfo::bchatroom() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.bChatRoom)
  return bchatroom_;
}
void ContactInfo::set_bchatroom(::google::protobuf::int32 value) {
  set_has_bchatroom();
  bchatroom_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.bChatRoom)
}

// optional int32 tag18 = 18;
bool ContactInfo::has_tag18() const {
  return (_has_bits_[1] & 0x00000001u) != 0;
}
void ContactInfo::set_has_tag18() {
  _has_bits_[1] |= 0x00000001u;
}
void ContactInfo::clear_has_tag18() {
  _has_bits_[1] &= ~0x00000001u;
}
void ContactInfo::clear_tag18() {
  tag18_ = 0;
  clear_has_tag18();
}
::google::protobuf::int32 ContactInfo::tag18() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag18)
  return tag18_;
}
void ContactInfo::set_tag18(::google::protobuf::int32 value) {
  set_has_tag18();
  tag18_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag18)
}

// optional string sheng = 19;
bool ContactInfo::has_sheng() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void ContactInfo::set_has_sheng() {
  _has_bits_[0] |= 0x00000004u;
}
void ContactInfo::clear_has_sheng() {
  _has_bits_[0] &= ~0x00000004u;
}
void ContactInfo::clear_sheng() {
  sheng_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_sheng();
}
const ::std::string& ContactInfo::sheng() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.sheng)
  return sheng_.GetNoArena();
}
void ContactInfo::set_sheng(const ::std::string& value) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
#if LANG_CXX11
void ContactInfo::set_sheng(::std::string&& value) {
  set_has_sheng();
  sheng_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
#endif
void ContactInfo::set_sheng(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
void ContactInfo::set_sheng(const char* value, size_t size) {
  set_has_sheng();
  sheng_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}
::std::string* ContactInfo::mutable_sheng() {
  set_has_sheng();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.sheng)
  return sheng_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_sheng() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.sheng)
  clear_has_sheng();
  return sheng_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_sheng(::std::string* sheng) {
  if (sheng != NULL) {
    set_has_sheng();
  } else {
    clear_has_sheng();
  }
  sheng_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sheng);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.sheng)
}

// optional string shi = 20;
bool ContactInfo::has_shi() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void ContactInfo::set_has_shi() {
  _has_bits_[0] |= 0x00000008u;
}
void ContactInfo::clear_has_shi() {
  _has_bits_[0] &= ~0x00000008u;
}
void ContactInfo::clear_shi() {
  shi_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_shi();
}
const ::std::string& ContactInfo::shi() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.shi)
  return shi_.GetNoArena();
}
void ContactInfo::set_shi(const ::std::string& value) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
#if LANG_CXX11
void ContactInfo::set_shi(::std::string&& value) {
  set_has_shi();
  shi_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
#endif
void ContactInfo::set_shi(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
void ContactInfo::set_shi(const char* value, size_t size) {
  set_has_shi();
  shi_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.shi)
}
::std::string* ContactInfo::mutable_shi() {
  set_has_shi();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.shi)
  return shi_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_shi() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.shi)
  clear_has_shi();
  return shi_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_shi(::std::string* shi) {
  if (shi != NULL) {
    set_has_shi();
  } else {
    clear_has_shi();
  }
  shi_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), shi);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.shi)
}

// optional string qianming = 21;
bool ContactInfo::has_qianming() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void ContactInfo::set_has_qianming() {
  _has_bits_[0] |= 0x00000010u;
}
void ContactInfo::clear_has_qianming() {
  _has_bits_[0] &= ~0x00000010u;
}
void ContactInfo::clear_qianming() {
  qianming_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_qianming();
}
const ::std::string& ContactInfo::qianming() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.qianming)
  return qianming_.GetNoArena();
}
void ContactInfo::set_qianming(const ::std::string& value) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
#if LANG_CXX11
void ContactInfo::set_qianming(::std::string&& value) {
  set_has_qianming();
  qianming_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
#endif
void ContactInfo::set_qianming(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
void ContactInfo::set_qianming(const char* value, size_t size) {
  set_has_qianming();
  qianming_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}
::std::string* ContactInfo::mutable_qianming() {
  set_has_qianming();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.qianming)
  return qianming_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_qianming() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.qianming)
  clear_has_qianming();
  return qianming_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_qianming(::std::string* qianming) {
  if (qianming != NULL) {
    set_has_qianming();
  } else {
    clear_has_qianming();
  }
  qianming_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), qianming);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.qianming)
}

// optional int32 bFriend = 22;
bool ContactInfo::has_bfriend() const {
  return (_has_bits_[1] & 0x00000002u) != 0;
}
void ContactInfo::set_has_bfriend() {
  _has_bits_[1] |= 0x00000002u;
}
void ContactInfo::clear_has_bfriend() {
  _has_bits_[1] &= ~0x00000002u;
}
void ContactInfo::clear_bfriend() {
  bfriend_ = 0;
  clear_has_bfriend();
}
::google::protobuf::int32 ContactInfo::bfriend() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.bFriend)
  return bfriend_;
}
void ContactInfo::set_bfriend(::google::protobuf::int32 value) {
  set_has_bfriend();
  bfriend_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.bFriend)
}

// optional int32 bNotChatRoom = 23;
bool ContactInfo::has_bnotchatroom() const {
  return (_has_bits_[1] & 0x00000004u) != 0;
}
void ContactInfo::set_has_bnotchatroom() {
  _has_bits_[1] |= 0x00000004u;
}
void ContactInfo::clear_has_bnotchatroom() {
  _has_bits_[1] &= ~0x00000004u;
}
void ContactInfo::clear_bnotchatroom() {
  bnotchatroom_ = 0;
  clear_has_bnotchatroom();
}
::google::protobuf::int32 ContactInfo::bnotchatroom() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.bNotChatRoom)
  return bnotchatroom_;
}
void ContactInfo::set_bnotchatroom(::google::protobuf::int32 value) {
  set_has_bnotchatroom();
  bnotchatroom_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.bNotChatRoom)
}

// optional int32 tag24 = 24;
bool ContactInfo::has_tag24() const {
  return (_has_bits_[1] & 0x00000008u) != 0;
}
void ContactInfo::set_has_tag24() {
  _has_bits_[1] |= 0x00000008u;
}
void ContactInfo::clear_has_tag24() {
  _has_bits_[1] &= ~0x00000008u;
}
void ContactInfo::clear_tag24() {
  tag24_ = 0;
  clear_has_tag24();
}
::google::protobuf::int32 ContactInfo::tag24() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag24)
  return tag24_;
}
void ContactInfo::set_tag24(::google::protobuf::int32 value) {
  set_has_tag24();
  tag24_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag24)
}

// optional string tag25 = 25;
bool ContactInfo::has_tag25() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
void ContactInfo::set_has_tag25() {
  _has_bits_[0] |= 0x00000020u;
}
void ContactInfo::clear_has_tag25() {
  _has_bits_[0] &= ~0x00000020u;
}
void ContactInfo::clear_tag25() {
  tag25_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag25();
}
const ::std::string& ContactInfo::tag25() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag25)
  return tag25_.GetNoArena();
}
void ContactInfo::set_tag25(const ::std::string& value) {
  set_has_tag25();
  tag25_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
#if LANG_CXX11
void ContactInfo::set_tag25(::std::string&& value) {
  set_has_tag25();
  tag25_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
#endif
void ContactInfo::set_tag25(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag25();
  tag25_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
void ContactInfo::set_tag25(const char* value, size_t size) {
  set_has_tag25();
  tag25_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}
::std::string* ContactInfo::mutable_tag25() {
  set_has_tag25();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag25)
  return tag25_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_tag25() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag25)
  clear_has_tag25();
  return tag25_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_tag25(::std::string* tag25) {
  if (tag25 != NULL) {
    set_has_tag25();
  } else {
    clear_has_tag25();
  }
  tag25_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag25);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag25)
}

// optional int32 tag26 = 26;
bool ContactInfo::has_tag26() const {
  return (_has_bits_[1] & 0x00000010u) != 0;
}
void ContactInfo::set_has_tag26() {
  _has_bits_[1] |= 0x00000010u;
}
void ContactInfo::clear_has_tag26() {
  _has_bits_[1] &= ~0x00000010u;
}
void ContactInfo::clear_tag26() {
  tag26_ = 0;
  clear_has_tag26();
}
::google::protobuf::int32 ContactInfo::tag26() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag26)
  return tag26_;
}
void ContactInfo::set_tag26(::google::protobuf::int32 value) {
  set_has_tag26();
  tag26_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag26)
}

// optional int32 src = 27;
bool ContactInfo::has_src() const {
  return (_has_bits_[1] & 0x00000020u) != 0;
}
void ContactInfo::set_has_src() {
  _has_bits_[1] |= 0x00000020u;
}
void ContactInfo::clear_has_src() {
  _has_bits_[1] &= ~0x00000020u;
}
void ContactInfo::clear_src() {
  src_ = 0;
  clear_has_src();
}
::google::protobuf::int32 ContactInfo::src() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.src)
  return src_;
}
void ContactInfo::set_src(::google::protobuf::int32 value) {
  set_has_src();
  src_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.src)
}

// optional string lastMsgTime = 29;
bool ContactInfo::has_lastmsgtime() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
void ContactInfo::set_has_lastmsgtime() {
  _has_bits_[0] |= 0x00000040u;
}
void ContactInfo::clear_has_lastmsgtime() {
  _has_bits_[0] &= ~0x00000040u;
}
void ContactInfo::clear_lastmsgtime() {
  lastmsgtime_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_lastmsgtime();
}
const ::std::string& ContactInfo::lastmsgtime() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
  return lastmsgtime_.GetNoArena();
}
void ContactInfo::set_lastmsgtime(const ::std::string& value) {
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
#if LANG_CXX11
void ContactInfo::set_lastmsgtime(::std::string&& value) {
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
#endif
void ContactInfo::set_lastmsgtime(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
void ContactInfo::set_lastmsgtime(const char* value, size_t size) {
  set_has_lastmsgtime();
  lastmsgtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}
::std::string* ContactInfo::mutable_lastmsgtime() {
  set_has_lastmsgtime();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
  return lastmsgtime_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_lastmsgtime() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
  clear_has_lastmsgtime();
  return lastmsgtime_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_lastmsgtime(::std::string* lastmsgtime) {
  if (lastmsgtime != NULL) {
    set_has_lastmsgtime();
  } else {
    clear_has_lastmsgtime();
  }
  lastmsgtime_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), lastmsgtime);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.lastMsgTime)
}

// optional string alias = 30;
bool ContactInfo::has_alias() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
void ContactInfo::set_has_alias() {
  _has_bits_[0] |= 0x00000080u;
}
void ContactInfo::clear_has_alias() {
  _has_bits_[0] &= ~0x00000080u;
}
void ContactInfo::clear_alias() {
  alias_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_alias();
}
const ::std::string& ContactInfo::alias() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.alias)
  return alias_.GetNoArena();
}
void ContactInfo::set_alias(const ::std::string& value) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
#if LANG_CXX11
void ContactInfo::set_alias(::std::string&& value) {
  set_has_alias();
  alias_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
#endif
void ContactInfo::set_alias(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
void ContactInfo::set_alias(const char* value, size_t size) {
  set_has_alias();
  alias_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.alias)
}
::std::string* ContactInfo::mutable_alias() {
  set_has_alias();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.alias)
  return alias_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_alias() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.alias)
  clear_has_alias();
  return alias_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_alias(::std::string* alias) {
  if (alias != NULL) {
    set_has_alias();
  } else {
    clear_has_alias();
  }
  alias_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), alias);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.alias)
}

// optional string chatroomOwnerWxid = 31;
bool ContactInfo::has_chatroomownerwxid() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
void ContactInfo::set_has_chatroomownerwxid() {
  _has_bits_[0] |= 0x00000100u;
}
void ContactInfo::clear_has_chatroomownerwxid() {
  _has_bits_[0] &= ~0x00000100u;
}
void ContactInfo::clear_chatroomownerwxid() {
  chatroomownerwxid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_chatroomownerwxid();
}
const ::std::string& ContactInfo::chatroomownerwxid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
  return chatroomownerwxid_.GetNoArena();
}
void ContactInfo::set_chatroomownerwxid(const ::std::string& value) {
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
#if LANG_CXX11
void ContactInfo::set_chatroomownerwxid(::std::string&& value) {
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
#endif
void ContactInfo::set_chatroomownerwxid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
void ContactInfo::set_chatroomownerwxid(const char* value, size_t size) {
  set_has_chatroomownerwxid();
  chatroomownerwxid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}
::std::string* ContactInfo::mutable_chatroomownerwxid() {
  set_has_chatroomownerwxid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
  return chatroomownerwxid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_chatroomownerwxid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
  clear_has_chatroomownerwxid();
  return chatroomownerwxid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_chatroomownerwxid(::std::string* chatroomownerwxid) {
  if (chatroomownerwxid != NULL) {
    set_has_chatroomownerwxid();
  } else {
    clear_has_chatroomownerwxid();
  }
  chatroomownerwxid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), chatroomownerwxid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.chatroomOwnerWxid)
}

// optional int32 tag33 = 33;
bool ContactInfo::has_tag33() const {
  return (_has_bits_[1] & 0x00000040u) != 0;
}
void ContactInfo::set_has_tag33() {
  _has_bits_[1] |= 0x00000040u;
}
void ContactInfo::clear_has_tag33() {
  _has_bits_[1] &= ~0x00000040u;
}
void ContactInfo::clear_tag33() {
  tag33_ = 0;
  clear_has_tag33();
}
::google::protobuf::int32 ContactInfo::tag33() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag33)
  return tag33_;
}
void ContactInfo::set_tag33(::google::protobuf::int32 value) {
  set_has_tag33();
  tag33_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag33)
}

// optional int32 tag34 = 34;
bool ContactInfo::has_tag34() const {
  return (_has_bits_[1] & 0x00000080u) != 0;
}
void ContactInfo::set_has_tag34() {
  _has_bits_[1] |= 0x00000080u;
}
void ContactInfo::clear_has_tag34() {
  _has_bits_[1] &= ~0x00000080u;
}
void ContactInfo::clear_tag34() {
  tag34_ = 0;
  clear_has_tag34();
}
::google::protobuf::int32 ContactInfo::tag34() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag34)
  return tag34_;
}
void ContactInfo::set_tag34(::google::protobuf::int32 value) {
  set_has_tag34();
  tag34_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag34)
}

// optional int32 tag35 = 35;
bool ContactInfo::has_tag35() const {
  return (_has_bits_[1] & 0x00000100u) != 0;
}
void ContactInfo::set_has_tag35() {
  _has_bits_[1] |= 0x00000100u;
}
void ContactInfo::clear_has_tag35() {
  _has_bits_[1] &= ~0x00000100u;
}
void ContactInfo::clear_tag35() {
  tag35_ = 0;
  clear_has_tag35();
}
::google::protobuf::int32 ContactInfo::tag35() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag35)
  return tag35_;
}
void ContactInfo::set_tag35(::google::protobuf::int32 value) {
  set_has_tag35();
  tag35_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag35)
}

// optional string tag37 = 37;
bool ContactInfo::has_tag37() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
void ContactInfo::set_has_tag37() {
  _has_bits_[0] |= 0x00000200u;
}
void ContactInfo::clear_has_tag37() {
  _has_bits_[0] &= ~0x00000200u;
}
void ContactInfo::clear_tag37() {
  tag37_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag37();
}
const ::std::string& ContactInfo::tag37() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag37)
  return tag37_.GetNoArena();
}
void ContactInfo::set_tag37(const ::std::string& value) {
  set_has_tag37();
  tag37_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
#if LANG_CXX11
void ContactInfo::set_tag37(::std::string&& value) {
  set_has_tag37();
  tag37_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
#endif
void ContactInfo::set_tag37(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag37();
  tag37_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
void ContactInfo::set_tag37(const char* value, size_t size) {
  set_has_tag37();
  tag37_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}
::std::string* ContactInfo::mutable_tag37() {
  set_has_tag37();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag37)
  return tag37_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_tag37() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag37)
  clear_has_tag37();
  return tag37_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_tag37(::std::string* tag37) {
  if (tag37 != NULL) {
    set_has_tag37();
  } else {
    clear_has_tag37();
  }
  tag37_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag37);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag37)
}

// optional string country = 38;
bool ContactInfo::has_country() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
void ContactInfo::set_has_country() {
  _has_bits_[0] |= 0x00000400u;
}
void ContactInfo::clear_has_country() {
  _has_bits_[0] &= ~0x00000400u;
}
void ContactInfo::clear_country() {
  country_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_country();
}
const ::std::string& ContactInfo::country() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.country)
  return country_.GetNoArena();
}
void ContactInfo::set_country(const ::std::string& value) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.country)
}
#if LANG_CXX11
void ContactInfo::set_country(::std::string&& value) {
  set_has_country();
  country_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.country)
}
#endif
void ContactInfo::set_country(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.country)
}
void ContactInfo::set_country(const char* value, size_t size) {
  set_has_country();
  country_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.country)
}
::std::string* ContactInfo::mutable_country() {
  set_has_country();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.country)
  return country_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_country() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.country)
  clear_has_country();
  return country_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_country(::std::string* country) {
  if (country != NULL) {
    set_has_country();
  } else {
    clear_has_country();
  }
  country_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), country);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.country)
}

// optional string headicon_big = 39;
bool ContactInfo::has_headicon_big() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
void ContactInfo::set_has_headicon_big() {
  _has_bits_[0] |= 0x00000800u;
}
void ContactInfo::clear_has_headicon_big() {
  _has_bits_[0] &= ~0x00000800u;
}
void ContactInfo::clear_headicon_big() {
  headicon_big_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_headicon_big();
}
const ::std::string& ContactInfo::headicon_big() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
  return headicon_big_.GetNoArena();
}
void ContactInfo::set_headicon_big(const ::std::string& value) {
  set_has_headicon_big();
  headicon_big_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
#if LANG_CXX11
void ContactInfo::set_headicon_big(::std::string&& value) {
  set_has_headicon_big();
  headicon_big_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
#endif
void ContactInfo::set_headicon_big(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_headicon_big();
  headicon_big_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
void ContactInfo::set_headicon_big(const char* value, size_t size) {
  set_has_headicon_big();
  headicon_big_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}
::std::string* ContactInfo::mutable_headicon_big() {
  set_has_headicon_big();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
  return headicon_big_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_headicon_big() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
  clear_has_headicon_big();
  return headicon_big_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_headicon_big(::std::string* headicon_big) {
  if (headicon_big != NULL) {
    set_has_headicon_big();
  } else {
    clear_has_headicon_big();
  }
  headicon_big_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), headicon_big);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.headicon_big)
}

// optional string headicon_small = 40;
bool ContactInfo::has_headicon_small() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
void ContactInfo::set_has_headicon_small() {
  _has_bits_[0] |= 0x00001000u;
}
void ContactInfo::clear_has_headicon_small() {
  _has_bits_[0] &= ~0x00001000u;
}
void ContactInfo::clear_headicon_small() {
  headicon_small_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_headicon_small();
}
const ::std::string& ContactInfo::headicon_small() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
  return headicon_small_.GetNoArena();
}
void ContactInfo::set_headicon_small(const ::std::string& value) {
  set_has_headicon_small();
  headicon_small_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
#if LANG_CXX11
void ContactInfo::set_headicon_small(::std::string&& value) {
  set_has_headicon_small();
  headicon_small_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
#endif
void ContactInfo::set_headicon_small(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_headicon_small();
  headicon_small_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
void ContactInfo::set_headicon_small(const char* value, size_t size) {
  set_has_headicon_small();
  headicon_small_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}
::std::string* ContactInfo::mutable_headicon_small() {
  set_has_headicon_small();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
  return headicon_small_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_headicon_small() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
  clear_has_headicon_small();
  return headicon_small_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_headicon_small(::std::string* headicon_small) {
  if (headicon_small != NULL) {
    set_has_headicon_small();
  } else {
    clear_has_headicon_small();
  }
  headicon_small_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), headicon_small);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.headicon_small)
}

// optional string tag42 = 42;
bool ContactInfo::has_tag42() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
void ContactInfo::set_has_tag42() {
  _has_bits_[0] |= 0x00002000u;
}
void ContactInfo::clear_has_tag42() {
  _has_bits_[0] &= ~0x00002000u;
}
void ContactInfo::clear_tag42() {
  tag42_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag42();
}
const ::std::string& ContactInfo::tag42() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag42)
  return tag42_.GetNoArena();
}
void ContactInfo::set_tag42(const ::std::string& value) {
  set_has_tag42();
  tag42_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
#if LANG_CXX11
void ContactInfo::set_tag42(::std::string&& value) {
  set_has_tag42();
  tag42_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
#endif
void ContactInfo::set_tag42(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag42();
  tag42_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
void ContactInfo::set_tag42(const char* value, size_t size) {
  set_has_tag42();
  tag42_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}
::std::string* ContactInfo::mutable_tag42() {
  set_has_tag42();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag42)
  return tag42_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_tag42() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag42)
  clear_has_tag42();
  return tag42_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_tag42(::std::string* tag42) {
  if (tag42 != NULL) {
    set_has_tag42();
  } else {
    clear_has_tag42();
  }
  tag42_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag42);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag42)
}

// optional string encryptName = 45;
bool ContactInfo::has_encryptname() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
void ContactInfo::set_has_encryptname() {
  _has_bits_[0] |= 0x00004000u;
}
void ContactInfo::clear_has_encryptname() {
  _has_bits_[0] &= ~0x00004000u;
}
void ContactInfo::clear_encryptname() {
  encryptname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_encryptname();
}
const ::std::string& ContactInfo::encryptname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
  return encryptname_.GetNoArena();
}
void ContactInfo::set_encryptname(const ::std::string& value) {
  set_has_encryptname();
  encryptname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
#if LANG_CXX11
void ContactInfo::set_encryptname(::std::string&& value) {
  set_has_encryptname();
  encryptname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
#endif
void ContactInfo::set_encryptname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_encryptname();
  encryptname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
void ContactInfo::set_encryptname(const char* value, size_t size) {
  set_has_encryptname();
  encryptname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}
::std::string* ContactInfo::mutable_encryptname() {
  set_has_encryptname();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
  return encryptname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_encryptname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
  clear_has_encryptname();
  return encryptname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_encryptname(::std::string* encryptname) {
  if (encryptname != NULL) {
    set_has_encryptname();
  } else {
    clear_has_encryptname();
  }
  encryptname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), encryptname);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.encryptName)
}

// optional string tag50 = 50;
bool ContactInfo::has_tag50() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
void ContactInfo::set_has_tag50() {
  _has_bits_[0] |= 0x00008000u;
}
void ContactInfo::clear_has_tag50() {
  _has_bits_[0] &= ~0x00008000u;
}
void ContactInfo::clear_tag50() {
  tag50_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag50();
}
const ::std::string& ContactInfo::tag50() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag50)
  return tag50_.GetNoArena();
}
void ContactInfo::set_tag50(const ::std::string& value) {
  set_has_tag50();
  tag50_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
#if LANG_CXX11
void ContactInfo::set_tag50(::std::string&& value) {
  set_has_tag50();
  tag50_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
#endif
void ContactInfo::set_tag50(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag50();
  tag50_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
void ContactInfo::set_tag50(const char* value, size_t size) {
  set_has_tag50();
  tag50_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}
::std::string* ContactInfo::mutable_tag50() {
  set_has_tag50();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.tag50)
  return tag50_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_tag50() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.tag50)
  clear_has_tag50();
  return tag50_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_tag50(::std::string* tag50) {
  if (tag50 != NULL) {
    set_has_tag50();
  } else {
    clear_has_tag50();
  }
  tag50_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag50);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.tag50)
}

// optional int32 chatroom_serverVer = 53;
bool ContactInfo::has_chatroom_serverver() const {
  return (_has_bits_[1] & 0x00000200u) != 0;
}
void ContactInfo::set_has_chatroom_serverver() {
  _has_bits_[1] |= 0x00000200u;
}
void ContactInfo::clear_has_chatroom_serverver() {
  _has_bits_[1] &= ~0x00000200u;
}
void ContactInfo::clear_chatroom_serverver() {
  chatroom_serverver_ = 0;
  clear_has_chatroom_serverver();
}
::google::protobuf::int32 ContactInfo::chatroom_serverver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.chatroom_serverVer)
  return chatroom_serverver_;
}
void ContactInfo::set_chatroom_serverver(::google::protobuf::int32 value) {
  set_has_chatroom_serverver();
  chatroom_serverver_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.chatroom_serverVer)
}

// optional int32 chatroom_max_member = 55;
bool ContactInfo::has_chatroom_max_member() const {
  return (_has_bits_[1] & 0x00000400u) != 0;
}
void ContactInfo::set_has_chatroom_max_member() {
  _has_bits_[1] |= 0x00000400u;
}
void ContactInfo::clear_has_chatroom_max_member() {
  _has_bits_[1] &= ~0x00000400u;
}
void ContactInfo::clear_chatroom_max_member() {
  chatroom_max_member_ = 0;
  clear_has_chatroom_max_member();
}
::google::protobuf::int32 ContactInfo::chatroom_max_member() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.chatroom_max_member)
  return chatroom_max_member_;
}
void ContactInfo::set_chatroom_max_member(::google::protobuf::int32 value) {
  set_has_chatroom_max_member();
  chatroom_max_member_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.chatroom_max_member)
}

// optional int32 tag56 = 56;
bool ContactInfo::has_tag56() const {
  return (_has_bits_[1] & 0x00000800u) != 0;
}
void ContactInfo::set_has_tag56() {
  _has_bits_[1] |= 0x00000800u;
}
void ContactInfo::clear_has_tag56() {
  _has_bits_[1] &= ~0x00000800u;
}
void ContactInfo::clear_tag56() {
  tag56_ = 0;
  clear_has_tag56();
}
::google::protobuf::int32 ContactInfo::tag56() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag56)
  return tag56_;
}
void ContactInfo::set_tag56(::google::protobuf::int32 value) {
  set_has_tag56();
  tag56_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag56)
}

// optional .com.tencent.mars.microchat.proto.ContactInfo.GroupMemberList group_member_list = 57;
bool ContactInfo::has_group_member_list() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
void ContactInfo::set_has_group_member_list() {
  _has_bits_[0] |= 0x01000000u;
}
void ContactInfo::clear_has_group_member_list() {
  _has_bits_[0] &= ~0x01000000u;
}
void ContactInfo::clear_group_member_list() {
  if (group_member_list_ != NULL) group_member_list_->::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList::Clear();
  clear_has_group_member_list();
}
const ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList& ContactInfo::group_member_list() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
  return group_member_list_ != NULL ? *group_member_list_
                         : *::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList::internal_default_instance();
}
::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* ContactInfo::mutable_group_member_list() {
  set_has_group_member_list();
  if (group_member_list_ == NULL) {
    group_member_list_ = new ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
  return group_member_list_;
}
::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* ContactInfo::release_group_member_list() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
  clear_has_group_member_list();
  ::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* temp = group_member_list_;
  group_member_list_ = NULL;
  return temp;
}
void ContactInfo::set_allocated_group_member_list(::com::tencent::mars::microchat::proto::ContactInfo_GroupMemberList* group_member_list) {
  delete group_member_list_;
  group_member_list_ = group_member_list;
  if (group_member_list) {
    set_has_group_member_list();
  } else {
    clear_has_group_member_list();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.group_member_list)
}

// optional int32 tag58 = 58;
bool ContactInfo::has_tag58() const {
  return (_has_bits_[1] & 0x00001000u) != 0;
}
void ContactInfo::set_has_tag58() {
  _has_bits_[1] |= 0x00001000u;
}
void ContactInfo::clear_has_tag58() {
  _has_bits_[1] &= ~0x00001000u;
}
void ContactInfo::clear_tag58() {
  tag58_ = 0;
  clear_has_tag58();
}
::google::protobuf::int32 ContactInfo::tag58() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag58)
  return tag58_;
}
void ContactInfo::set_tag58(::google::protobuf::int32 value) {
  set_has_tag58();
  tag58_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag58)
}

// optional string beizhuName = 62;
bool ContactInfo::has_beizhuname() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
void ContactInfo::set_has_beizhuname() {
  _has_bits_[0] |= 0x00010000u;
}
void ContactInfo::clear_has_beizhuname() {
  _has_bits_[0] &= ~0x00010000u;
}
void ContactInfo::clear_beizhuname() {
  beizhuname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_beizhuname();
}
const ::std::string& ContactInfo::beizhuname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
  return beizhuname_.GetNoArena();
}
void ContactInfo::set_beizhuname(const ::std::string& value) {
  set_has_beizhuname();
  beizhuname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
#if LANG_CXX11
void ContactInfo::set_beizhuname(::std::string&& value) {
  set_has_beizhuname();
  beizhuname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
#endif
void ContactInfo::set_beizhuname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_beizhuname();
  beizhuname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
void ContactInfo::set_beizhuname(const char* value, size_t size) {
  set_has_beizhuname();
  beizhuname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}
::std::string* ContactInfo::mutable_beizhuname() {
  set_has_beizhuname();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
  return beizhuname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ContactInfo::release_beizhuname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
  clear_has_beizhuname();
  return beizhuname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ContactInfo::set_allocated_beizhuname(::std::string* beizhuname) {
  if (beizhuname != NULL) {
    set_has_beizhuname();
  } else {
    clear_has_beizhuname();
  }
  beizhuname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), beizhuname);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.ContactInfo.beizhuName)
}

// optional int32 tag64 = 64;
bool ContactInfo::has_tag64() const {
  return (_has_bits_[1] & 0x00002000u) != 0;
}
void ContactInfo::set_has_tag64() {
  _has_bits_[1] |= 0x00002000u;
}
void ContactInfo::clear_has_tag64() {
  _has_bits_[1] &= ~0x00002000u;
}
void ContactInfo::clear_tag64() {
  tag64_ = 0;
  clear_has_tag64();
}
::google::protobuf::int32 ContactInfo::tag64() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag64)
  return tag64_;
}
void ContactInfo::set_tag64(::google::protobuf::int32 value) {
  set_has_tag64();
  tag64_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag64)
}

// optional int32 tag65 = 65;
bool ContactInfo::has_tag65() const {
  return (_has_bits_[1] & 0x00004000u) != 0;
}
void ContactInfo::set_has_tag65() {
  _has_bits_[1] |= 0x00004000u;
}
void ContactInfo::clear_has_tag65() {
  _has_bits_[1] &= ~0x00004000u;
}
void ContactInfo::clear_tag65() {
  tag65_ = 0;
  clear_has_tag65();
}
::google::protobuf::int32 ContactInfo::tag65() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag65)
  return tag65_;
}
void ContactInfo::set_tag65(::google::protobuf::int32 value) {
  set_has_tag65();
  tag65_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag65)
}

// optional int32 tag66 = 66;
bool ContactInfo::has_tag66() const {
  return (_has_bits_[1] & 0x00008000u) != 0;
}
void ContactInfo::set_has_tag66() {
  _has_bits_[1] |= 0x00008000u;
}
void ContactInfo::clear_has_tag66() {
  _has_bits_[1] &= ~0x00008000u;
}
void ContactInfo::clear_tag66() {
  tag66_ = 0;
  clear_has_tag66();
}
::google::protobuf::int32 ContactInfo::tag66() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag66)
  return tag66_;
}
void ContactInfo::set_tag66(::google::protobuf::int32 value) {
  set_has_tag66();
  tag66_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag66)
}

// optional int32 tag67 = 67;
bool ContactInfo::has_tag67() const {
  return (_has_bits_[1] & 0x00010000u) != 0;
}
void ContactInfo::set_has_tag67() {
  _has_bits_[1] |= 0x00010000u;
}
void ContactInfo::clear_has_tag67() {
  _has_bits_[1] &= ~0x00010000u;
}
void ContactInfo::clear_tag67() {
  tag67_ = 0;
  clear_has_tag67();
}
::google::protobuf::int32 ContactInfo::tag67() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.ContactInfo.tag67)
  return tag67_;
}
void ContactInfo::set_tag67(::google::protobuf::int32 value) {
  set_has_tag67();
  tag67_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.ContactInfo.tag67)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

}  // namespace proto
}  // namespace microchat
}  // namespace mars
}  // namespace tencent
}  // namespace com

// @@protoc_insertion_point(global_scope)
