// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/map_lite_unittest.proto

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2fmap_5flite_5funittest_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2fmap_5flite_5funittest_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry_lite.h>
#include <google/protobuf/map_field_lite.h>
#include <google/protobuf/generated_enum_util.h>
#include <google/protobuf/unittest_lite.pb.h>
#include <google/protobuf/unittest_no_arena_lite.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto 

namespace protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[50];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
}  // namespace protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto
namespace protobuf_unittest {
class ForeignMessageArenaLite;
class ForeignMessageArenaLiteDefaultTypeInternal;
extern ForeignMessageArenaLiteDefaultTypeInternal _ForeignMessageArenaLite_default_instance_;
class TestArenaMapLite;
class TestArenaMapLiteDefaultTypeInternal;
extern TestArenaMapLiteDefaultTypeInternal _TestArenaMapLite_default_instance_;
class TestArenaMapLite_MapBoolBoolEntry_DoNotUse;
class TestArenaMapLite_MapBoolBoolEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapBoolBoolEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapBoolBoolEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse;
class TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse;
class TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt32BytesEntry_DoNotUse;
class TestArenaMapLite_MapInt32BytesEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt32BytesEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt32BytesEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt32DoubleEntry_DoNotUse;
class TestArenaMapLite_MapInt32DoubleEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt32DoubleEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt32DoubleEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt32EnumEntry_DoNotUse;
class TestArenaMapLite_MapInt32EnumEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt32EnumEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt32EnumEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt32FloatEntry_DoNotUse;
class TestArenaMapLite_MapInt32FloatEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt32FloatEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt32FloatEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse;
class TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse;
class TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt32Int32Entry_DoNotUse;
class TestArenaMapLite_MapInt32Int32Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt32Int32Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt32Int32Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapInt64Int64Entry_DoNotUse;
class TestArenaMapLite_MapInt64Int64Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapInt64Int64Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapInt64Int64Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse;
class TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse;
class TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapSint32Sint32Entry_DoNotUse;
class TestArenaMapLite_MapSint32Sint32Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapSint32Sint32Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapSint32Sint32Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapSint64Sint64Entry_DoNotUse;
class TestArenaMapLite_MapSint64Sint64Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapSint64Sint64Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapSint64Sint64Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapStringStringEntry_DoNotUse;
class TestArenaMapLite_MapStringStringEntry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapStringStringEntry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapStringStringEntry_DoNotUse_default_instance_;
class TestArenaMapLite_MapUint32Uint32Entry_DoNotUse;
class TestArenaMapLite_MapUint32Uint32Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapUint32Uint32Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapUint32Uint32Entry_DoNotUse_default_instance_;
class TestArenaMapLite_MapUint64Uint64Entry_DoNotUse;
class TestArenaMapLite_MapUint64Uint64Entry_DoNotUseDefaultTypeInternal;
extern TestArenaMapLite_MapUint64Uint64Entry_DoNotUseDefaultTypeInternal _TestArenaMapLite_MapUint64Uint64Entry_DoNotUse_default_instance_;
class TestEnumMapLite;
class TestEnumMapLiteDefaultTypeInternal;
extern TestEnumMapLiteDefaultTypeInternal _TestEnumMapLite_default_instance_;
class TestEnumMapLite_KnownMapFieldEntry_DoNotUse;
class TestEnumMapLite_KnownMapFieldEntry_DoNotUseDefaultTypeInternal;
extern TestEnumMapLite_KnownMapFieldEntry_DoNotUseDefaultTypeInternal _TestEnumMapLite_KnownMapFieldEntry_DoNotUse_default_instance_;
class TestEnumMapLite_UnknownMapFieldEntry_DoNotUse;
class TestEnumMapLite_UnknownMapFieldEntry_DoNotUseDefaultTypeInternal;
extern TestEnumMapLite_UnknownMapFieldEntry_DoNotUseDefaultTypeInternal _TestEnumMapLite_UnknownMapFieldEntry_DoNotUse_default_instance_;
class TestEnumMapPlusExtraLite;
class TestEnumMapPlusExtraLiteDefaultTypeInternal;
extern TestEnumMapPlusExtraLiteDefaultTypeInternal _TestEnumMapPlusExtraLite_default_instance_;
class TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse;
class TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUseDefaultTypeInternal;
extern TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUseDefaultTypeInternal _TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse_default_instance_;
class TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse;
class TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUseDefaultTypeInternal;
extern TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUseDefaultTypeInternal _TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse_default_instance_;
class TestMapLite;
class TestMapLiteDefaultTypeInternal;
extern TestMapLiteDefaultTypeInternal _TestMapLite_default_instance_;
class TestMapLite_MapBoolBoolEntry_DoNotUse;
class TestMapLite_MapBoolBoolEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapBoolBoolEntry_DoNotUseDefaultTypeInternal _TestMapLite_MapBoolBoolEntry_DoNotUse_default_instance_;
class TestMapLite_MapFixed32Fixed32Entry_DoNotUse;
class TestMapLite_MapFixed32Fixed32Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapFixed32Fixed32Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapFixed32Fixed32Entry_DoNotUse_default_instance_;
class TestMapLite_MapFixed64Fixed64Entry_DoNotUse;
class TestMapLite_MapFixed64Fixed64Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapFixed64Fixed64Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapFixed64Fixed64Entry_DoNotUse_default_instance_;
class TestMapLite_MapInt32BytesEntry_DoNotUse;
class TestMapLite_MapInt32BytesEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapInt32BytesEntry_DoNotUseDefaultTypeInternal _TestMapLite_MapInt32BytesEntry_DoNotUse_default_instance_;
class TestMapLite_MapInt32DoubleEntry_DoNotUse;
class TestMapLite_MapInt32DoubleEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapInt32DoubleEntry_DoNotUseDefaultTypeInternal _TestMapLite_MapInt32DoubleEntry_DoNotUse_default_instance_;
class TestMapLite_MapInt32EnumEntry_DoNotUse;
class TestMapLite_MapInt32EnumEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapInt32EnumEntry_DoNotUseDefaultTypeInternal _TestMapLite_MapInt32EnumEntry_DoNotUse_default_instance_;
class TestMapLite_MapInt32FloatEntry_DoNotUse;
class TestMapLite_MapInt32FloatEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapInt32FloatEntry_DoNotUseDefaultTypeInternal _TestMapLite_MapInt32FloatEntry_DoNotUse_default_instance_;
class TestMapLite_MapInt32ForeignMessageEntry_DoNotUse;
class TestMapLite_MapInt32ForeignMessageEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapInt32ForeignMessageEntry_DoNotUseDefaultTypeInternal _TestMapLite_MapInt32ForeignMessageEntry_DoNotUse_default_instance_;
class TestMapLite_MapInt32Int32Entry_DoNotUse;
class TestMapLite_MapInt32Int32Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapInt32Int32Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapInt32Int32Entry_DoNotUse_default_instance_;
class TestMapLite_MapInt64Int64Entry_DoNotUse;
class TestMapLite_MapInt64Int64Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapInt64Int64Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapInt64Int64Entry_DoNotUse_default_instance_;
class TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse;
class TestMapLite_MapSfixed32Sfixed32Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapSfixed32Sfixed32Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse_default_instance_;
class TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse;
class TestMapLite_MapSfixed64Sfixed64Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapSfixed64Sfixed64Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse_default_instance_;
class TestMapLite_MapSint32Sint32Entry_DoNotUse;
class TestMapLite_MapSint32Sint32Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapSint32Sint32Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapSint32Sint32Entry_DoNotUse_default_instance_;
class TestMapLite_MapSint64Sint64Entry_DoNotUse;
class TestMapLite_MapSint64Sint64Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapSint64Sint64Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapSint64Sint64Entry_DoNotUse_default_instance_;
class TestMapLite_MapStringStringEntry_DoNotUse;
class TestMapLite_MapStringStringEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapStringStringEntry_DoNotUseDefaultTypeInternal _TestMapLite_MapStringStringEntry_DoNotUse_default_instance_;
class TestMapLite_MapUint32Uint32Entry_DoNotUse;
class TestMapLite_MapUint32Uint32Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapUint32Uint32Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapUint32Uint32Entry_DoNotUse_default_instance_;
class TestMapLite_MapUint64Uint64Entry_DoNotUse;
class TestMapLite_MapUint64Uint64Entry_DoNotUseDefaultTypeInternal;
extern TestMapLite_MapUint64Uint64Entry_DoNotUseDefaultTypeInternal _TestMapLite_MapUint64Uint64Entry_DoNotUse_default_instance_;
class TestMapLite_TeboringEntry_DoNotUse;
class TestMapLite_TeboringEntry_DoNotUseDefaultTypeInternal;
extern TestMapLite_TeboringEntry_DoNotUseDefaultTypeInternal _TestMapLite_TeboringEntry_DoNotUse_default_instance_;
class TestMessageMapLite;
class TestMessageMapLiteDefaultTypeInternal;
extern TestMessageMapLiteDefaultTypeInternal _TestMessageMapLite_default_instance_;
class TestMessageMapLite_MapInt32MessageEntry_DoNotUse;
class TestMessageMapLite_MapInt32MessageEntry_DoNotUseDefaultTypeInternal;
extern TestMessageMapLite_MapInt32MessageEntry_DoNotUseDefaultTypeInternal _TestMessageMapLite_MapInt32MessageEntry_DoNotUse_default_instance_;
class TestRequiredLite;
class TestRequiredLiteDefaultTypeInternal;
extern TestRequiredLiteDefaultTypeInternal _TestRequiredLite_default_instance_;
class TestRequiredMessageMapLite;
class TestRequiredMessageMapLiteDefaultTypeInternal;
extern TestRequiredMessageMapLiteDefaultTypeInternal _TestRequiredMessageMapLite_default_instance_;
class TestRequiredMessageMapLite_MapFieldEntry_DoNotUse;
class TestRequiredMessageMapLite_MapFieldEntry_DoNotUseDefaultTypeInternal;
extern TestRequiredMessageMapLite_MapFieldEntry_DoNotUseDefaultTypeInternal _TestRequiredMessageMapLite_MapFieldEntry_DoNotUse_default_instance_;
}  // namespace protobuf_unittest
namespace google {
namespace protobuf {
template<> ::protobuf_unittest::ForeignMessageArenaLite* Arena::CreateMaybeMessage<::protobuf_unittest::ForeignMessageArenaLite>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapBoolBoolEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapBoolBoolEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt32BytesEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt32BytesEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt32DoubleEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt32DoubleEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt32EnumEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt32EnumEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt32FloatEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt32FloatEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt32Int32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt32Int32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapInt64Int64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapInt64Int64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapSint32Sint32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapSint32Sint32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapSint64Sint64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapSint64Sint64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapStringStringEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapStringStringEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapUint32Uint32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapUint32Uint32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestArenaMapLite_MapUint64Uint64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestArenaMapLite_MapUint64Uint64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestEnumMapLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestEnumMapLite>(Arena*);
template<> ::protobuf_unittest::TestEnumMapLite_KnownMapFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestEnumMapLite_KnownMapFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestEnumMapLite_UnknownMapFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestEnumMapLite_UnknownMapFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestEnumMapPlusExtraLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestEnumMapPlusExtraLite>(Arena*);
template<> ::protobuf_unittest::TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapBoolBoolEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapBoolBoolEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapFixed32Fixed32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapFixed32Fixed32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapFixed64Fixed64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapFixed64Fixed64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapInt32BytesEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapInt32BytesEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapInt32DoubleEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapInt32DoubleEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapInt32EnumEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapInt32EnumEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapInt32FloatEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapInt32FloatEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapInt32ForeignMessageEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapInt32ForeignMessageEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapInt32Int32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapInt32Int32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapInt64Int64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapInt64Int64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapSint32Sint32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapSint32Sint32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapSint64Sint64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapSint64Sint64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapStringStringEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapStringStringEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapUint32Uint32Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapUint32Uint32Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_MapUint64Uint64Entry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_MapUint64Uint64Entry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMapLite_TeboringEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMapLite_TeboringEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestMessageMapLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestMessageMapLite>(Arena*);
template<> ::protobuf_unittest::TestMessageMapLite_MapInt32MessageEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestMessageMapLite_MapInt32MessageEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestRequiredLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestRequiredLite>(Arena*);
template<> ::protobuf_unittest::TestRequiredMessageMapLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestRequiredMessageMapLite>(Arena*);
template<> ::protobuf_unittest::TestRequiredMessageMapLite_MapFieldEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestRequiredMessageMapLite_MapFieldEntry_DoNotUse>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace protobuf_unittest {

enum Proto2MapEnumLite {
  PROTO2_MAP_ENUM_FOO_LITE = 0,
  PROTO2_MAP_ENUM_BAR_LITE = 1,
  PROTO2_MAP_ENUM_BAZ_LITE = 2
};
bool Proto2MapEnumLite_IsValid(int value);
const Proto2MapEnumLite Proto2MapEnumLite_MIN = PROTO2_MAP_ENUM_FOO_LITE;
const Proto2MapEnumLite Proto2MapEnumLite_MAX = PROTO2_MAP_ENUM_BAZ_LITE;
const int Proto2MapEnumLite_ARRAYSIZE = Proto2MapEnumLite_MAX + 1;

enum Proto2MapEnumPlusExtraLite {
  E_PROTO2_MAP_ENUM_FOO_LITE = 0,
  E_PROTO2_MAP_ENUM_BAR_LITE = 1,
  E_PROTO2_MAP_ENUM_BAZ_LITE = 2,
  E_PROTO2_MAP_ENUM_EXTRA_LITE = 3
};
bool Proto2MapEnumPlusExtraLite_IsValid(int value);
const Proto2MapEnumPlusExtraLite Proto2MapEnumPlusExtraLite_MIN = E_PROTO2_MAP_ENUM_FOO_LITE;
const Proto2MapEnumPlusExtraLite Proto2MapEnumPlusExtraLite_MAX = E_PROTO2_MAP_ENUM_EXTRA_LITE;
const int Proto2MapEnumPlusExtraLite_ARRAYSIZE = Proto2MapEnumPlusExtraLite_MAX + 1;

enum MapEnumLite {
  MAP_ENUM_FOO_LITE = 0,
  MAP_ENUM_BAR_LITE = 1,
  MAP_ENUM_BAZ_LITE = 2
};
bool MapEnumLite_IsValid(int value);
const MapEnumLite MapEnumLite_MIN = MAP_ENUM_FOO_LITE;
const MapEnumLite MapEnumLite_MAX = MAP_ENUM_BAZ_LITE;
const int MapEnumLite_ARRAYSIZE = MapEnumLite_MAX + 1;

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

class TestMapLite_MapInt32Int32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32Int32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32Int32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > SuperType;
  TestMapLite_MapInt32Int32Entry_DoNotUse();
  TestMapLite_MapInt32Int32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapInt32Int32Entry_DoNotUse& other);
  static const TestMapLite_MapInt32Int32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapInt32Int32Entry_DoNotUse*>(&_TestMapLite_MapInt32Int32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapInt64Int64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt64Int64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt64Int64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    0 > SuperType;
  TestMapLite_MapInt64Int64Entry_DoNotUse();
  TestMapLite_MapInt64Int64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapInt64Int64Entry_DoNotUse& other);
  static const TestMapLite_MapInt64Int64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapInt64Int64Entry_DoNotUse*>(&_TestMapLite_MapInt64Int64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapUint32Uint32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapUint32Uint32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapUint32Uint32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    0 > SuperType;
  TestMapLite_MapUint32Uint32Entry_DoNotUse();
  TestMapLite_MapUint32Uint32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapUint32Uint32Entry_DoNotUse& other);
  static const TestMapLite_MapUint32Uint32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapUint32Uint32Entry_DoNotUse*>(&_TestMapLite_MapUint32Uint32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapUint64Uint64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapUint64Uint64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapUint64Uint64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    0 > SuperType;
  TestMapLite_MapUint64Uint64Entry_DoNotUse();
  TestMapLite_MapUint64Uint64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapUint64Uint64Entry_DoNotUse& other);
  static const TestMapLite_MapUint64Uint64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapUint64Uint64Entry_DoNotUse*>(&_TestMapLite_MapUint64Uint64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapSint32Sint32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSint32Sint32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSint32Sint32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    0 > SuperType;
  TestMapLite_MapSint32Sint32Entry_DoNotUse();
  TestMapLite_MapSint32Sint32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapSint32Sint32Entry_DoNotUse& other);
  static const TestMapLite_MapSint32Sint32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapSint32Sint32Entry_DoNotUse*>(&_TestMapLite_MapSint32Sint32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapSint64Sint64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSint64Sint64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSint64Sint64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    0 > SuperType;
  TestMapLite_MapSint64Sint64Entry_DoNotUse();
  TestMapLite_MapSint64Sint64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapSint64Sint64Entry_DoNotUse& other);
  static const TestMapLite_MapSint64Sint64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapSint64Sint64Entry_DoNotUse*>(&_TestMapLite_MapSint64Sint64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapFixed32Fixed32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapFixed32Fixed32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapFixed32Fixed32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    0 > SuperType;
  TestMapLite_MapFixed32Fixed32Entry_DoNotUse();
  TestMapLite_MapFixed32Fixed32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapFixed32Fixed32Entry_DoNotUse& other);
  static const TestMapLite_MapFixed32Fixed32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapFixed32Fixed32Entry_DoNotUse*>(&_TestMapLite_MapFixed32Fixed32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapFixed64Fixed64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapFixed64Fixed64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapFixed64Fixed64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    0 > SuperType;
  TestMapLite_MapFixed64Fixed64Entry_DoNotUse();
  TestMapLite_MapFixed64Fixed64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapFixed64Fixed64Entry_DoNotUse& other);
  static const TestMapLite_MapFixed64Fixed64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapFixed64Fixed64Entry_DoNotUse*>(&_TestMapLite_MapFixed64Fixed64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    0 > SuperType;
  TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse();
  TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse& other);
  static const TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse*>(&_TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    0 > SuperType;
  TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse();
  TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse& other);
  static const TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse*>(&_TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapInt32FloatEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32FloatEntry_DoNotUse, 
    ::google::protobuf::int32, float,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32FloatEntry_DoNotUse, 
    ::google::protobuf::int32, float,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
    0 > SuperType;
  TestMapLite_MapInt32FloatEntry_DoNotUse();
  TestMapLite_MapInt32FloatEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapInt32FloatEntry_DoNotUse& other);
  static const TestMapLite_MapInt32FloatEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapInt32FloatEntry_DoNotUse*>(&_TestMapLite_MapInt32FloatEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapInt32DoubleEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32DoubleEntry_DoNotUse, 
    ::google::protobuf::int32, double,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32DoubleEntry_DoNotUse, 
    ::google::protobuf::int32, double,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE,
    0 > SuperType;
  TestMapLite_MapInt32DoubleEntry_DoNotUse();
  TestMapLite_MapInt32DoubleEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapInt32DoubleEntry_DoNotUse& other);
  static const TestMapLite_MapInt32DoubleEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapInt32DoubleEntry_DoNotUse*>(&_TestMapLite_MapInt32DoubleEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapBoolBoolEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapBoolBoolEntry_DoNotUse, 
    bool, bool,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapBoolBoolEntry_DoNotUse, 
    bool, bool,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    0 > SuperType;
  TestMapLite_MapBoolBoolEntry_DoNotUse();
  TestMapLite_MapBoolBoolEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapBoolBoolEntry_DoNotUse& other);
  static const TestMapLite_MapBoolBoolEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapBoolBoolEntry_DoNotUse*>(&_TestMapLite_MapBoolBoolEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapStringStringEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapStringStringEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapStringStringEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  TestMapLite_MapStringStringEntry_DoNotUse();
  TestMapLite_MapStringStringEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapStringStringEntry_DoNotUse& other);
  static const TestMapLite_MapStringStringEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapStringStringEntry_DoNotUse*>(&_TestMapLite_MapStringStringEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapInt32BytesEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32BytesEntry_DoNotUse, 
    ::google::protobuf::int32, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_BYTES,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32BytesEntry_DoNotUse, 
    ::google::protobuf::int32, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_BYTES,
    0 > SuperType;
  TestMapLite_MapInt32BytesEntry_DoNotUse();
  TestMapLite_MapInt32BytesEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapInt32BytesEntry_DoNotUse& other);
  static const TestMapLite_MapInt32BytesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapInt32BytesEntry_DoNotUse*>(&_TestMapLite_MapInt32BytesEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapInt32EnumEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32EnumEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32EnumEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > SuperType;
  TestMapLite_MapInt32EnumEntry_DoNotUse();
  TestMapLite_MapInt32EnumEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapInt32EnumEntry_DoNotUse& other);
  static const TestMapLite_MapInt32EnumEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapInt32EnumEntry_DoNotUse*>(&_TestMapLite_MapInt32EnumEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_MapInt32ForeignMessageEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32ForeignMessageEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_MapInt32ForeignMessageEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  TestMapLite_MapInt32ForeignMessageEntry_DoNotUse();
  TestMapLite_MapInt32ForeignMessageEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_MapInt32ForeignMessageEntry_DoNotUse& other);
  static const TestMapLite_MapInt32ForeignMessageEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_MapInt32ForeignMessageEntry_DoNotUse*>(&_TestMapLite_MapInt32ForeignMessageEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite_TeboringEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMapLite_TeboringEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMapLite_TeboringEntry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > SuperType;
  TestMapLite_TeboringEntry_DoNotUse();
  TestMapLite_TeboringEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMapLite_TeboringEntry_DoNotUse& other);
  static const TestMapLite_TeboringEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMapLite_TeboringEntry_DoNotUse*>(&_TestMapLite_TeboringEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMapLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestMapLite) */ {
 public:
  TestMapLite();
  virtual ~TestMapLite();

  TestMapLite(const TestMapLite& from);

  inline TestMapLite& operator=(const TestMapLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestMapLite(TestMapLite&& from) noexcept
    : TestMapLite() {
    *this = ::std::move(from);
  }

  inline TestMapLite& operator=(TestMapLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestMapLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestMapLite* internal_default_instance() {
    return reinterpret_cast<const TestMapLite*>(
               &_TestMapLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  void UnsafeArenaSwap(TestMapLite* other);
  void Swap(TestMapLite* other);
  friend void swap(TestMapLite& a, TestMapLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestMapLite* New() const final {
    return CreateMaybeMessage<TestMapLite>(NULL);
  }

  TestMapLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestMapLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestMapLite& from);
  void MergeFrom(const TestMapLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestMapLite* other);
  protected:
  explicit TestMapLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<int32, int32> map_int32_int32 = 1;
  int map_int32_int32_size() const;
  void clear_map_int32_int32();
  static const int kMapInt32Int32FieldNumber = 1;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
      map_int32_int32() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
      mutable_map_int32_int32();

  // map<int64, int64> map_int64_int64 = 2;
  int map_int64_int64_size() const;
  void clear_map_int64_int64();
  static const int kMapInt64Int64FieldNumber = 2;
  const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
      map_int64_int64() const;
  ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
      mutable_map_int64_int64();

  // map<uint32, uint32> map_uint32_uint32 = 3;
  int map_uint32_uint32_size() const;
  void clear_map_uint32_uint32();
  static const int kMapUint32Uint32FieldNumber = 3;
  const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
      map_uint32_uint32() const;
  ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
      mutable_map_uint32_uint32();

  // map<uint64, uint64> map_uint64_uint64 = 4;
  int map_uint64_uint64_size() const;
  void clear_map_uint64_uint64();
  static const int kMapUint64Uint64FieldNumber = 4;
  const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
      map_uint64_uint64() const;
  ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
      mutable_map_uint64_uint64();

  // map<sint32, sint32> map_sint32_sint32 = 5;
  int map_sint32_sint32_size() const;
  void clear_map_sint32_sint32();
  static const int kMapSint32Sint32FieldNumber = 5;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
      map_sint32_sint32() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
      mutable_map_sint32_sint32();

  // map<sint64, sint64> map_sint64_sint64 = 6;
  int map_sint64_sint64_size() const;
  void clear_map_sint64_sint64();
  static const int kMapSint64Sint64FieldNumber = 6;
  const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
      map_sint64_sint64() const;
  ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
      mutable_map_sint64_sint64();

  // map<fixed32, fixed32> map_fixed32_fixed32 = 7;
  int map_fixed32_fixed32_size() const;
  void clear_map_fixed32_fixed32();
  static const int kMapFixed32Fixed32FieldNumber = 7;
  const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
      map_fixed32_fixed32() const;
  ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
      mutable_map_fixed32_fixed32();

  // map<fixed64, fixed64> map_fixed64_fixed64 = 8;
  int map_fixed64_fixed64_size() const;
  void clear_map_fixed64_fixed64();
  static const int kMapFixed64Fixed64FieldNumber = 8;
  const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
      map_fixed64_fixed64() const;
  ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
      mutable_map_fixed64_fixed64();

  // map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 9;
  int map_sfixed32_sfixed32_size() const;
  void clear_map_sfixed32_sfixed32();
  static const int kMapSfixed32Sfixed32FieldNumber = 9;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
      map_sfixed32_sfixed32() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
      mutable_map_sfixed32_sfixed32();

  // map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 10;
  int map_sfixed64_sfixed64_size() const;
  void clear_map_sfixed64_sfixed64();
  static const int kMapSfixed64Sfixed64FieldNumber = 10;
  const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
      map_sfixed64_sfixed64() const;
  ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
      mutable_map_sfixed64_sfixed64();

  // map<int32, float> map_int32_float = 11;
  int map_int32_float_size() const;
  void clear_map_int32_float();
  static const int kMapInt32FloatFieldNumber = 11;
  const ::google::protobuf::Map< ::google::protobuf::int32, float >&
      map_int32_float() const;
  ::google::protobuf::Map< ::google::protobuf::int32, float >*
      mutable_map_int32_float();

  // map<int32, double> map_int32_double = 12;
  int map_int32_double_size() const;
  void clear_map_int32_double();
  static const int kMapInt32DoubleFieldNumber = 12;
  const ::google::protobuf::Map< ::google::protobuf::int32, double >&
      map_int32_double() const;
  ::google::protobuf::Map< ::google::protobuf::int32, double >*
      mutable_map_int32_double();

  // map<bool, bool> map_bool_bool = 13;
  int map_bool_bool_size() const;
  void clear_map_bool_bool();
  static const int kMapBoolBoolFieldNumber = 13;
  const ::google::protobuf::Map< bool, bool >&
      map_bool_bool() const;
  ::google::protobuf::Map< bool, bool >*
      mutable_map_bool_bool();

  // map<string, string> map_string_string = 14;
  int map_string_string_size() const;
  void clear_map_string_string();
  static const int kMapStringStringFieldNumber = 14;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      map_string_string() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_map_string_string();

  // map<int32, bytes> map_int32_bytes = 15;
  int map_int32_bytes_size() const;
  void clear_map_int32_bytes();
  static const int kMapInt32BytesFieldNumber = 15;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >&
      map_int32_bytes() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >*
      mutable_map_int32_bytes();

  // map<int32, .protobuf_unittest.MapEnumLite> map_int32_enum = 16;
  int map_int32_enum_size() const;
  void clear_map_int32_enum();
  static const int kMapInt32EnumFieldNumber = 16;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >&
      map_int32_enum() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >*
      mutable_map_int32_enum();

  // map<int32, .protobuf_unittest.ForeignMessageLite> map_int32_foreign_message = 17;
  int map_int32_foreign_message_size() const;
  void clear_map_int32_foreign_message();
  static const int kMapInt32ForeignMessageFieldNumber = 17;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageLite >&
      map_int32_foreign_message() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageLite >*
      mutable_map_int32_foreign_message();

  // map<int32, int32> teboring = 18;
  int teboring_size() const;
  void clear_teboring();
  static const int kTeboringFieldNumber = 18;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
      teboring() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
      mutable_teboring();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestMapLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapInt32Int32Entry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      0 > map_int32_int32_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapInt64Int64Entry_DoNotUse,
      ::google::protobuf::int64, ::google::protobuf::int64,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
      0 > map_int64_int64_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapUint32Uint32Entry_DoNotUse,
      ::google::protobuf::uint32, ::google::protobuf::uint32,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
      0 > map_uint32_uint32_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapUint64Uint64Entry_DoNotUse,
      ::google::protobuf::uint64, ::google::protobuf::uint64,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
      0 > map_uint64_uint64_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapSint32Sint32Entry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
      0 > map_sint32_sint32_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapSint64Sint64Entry_DoNotUse,
      ::google::protobuf::int64, ::google::protobuf::int64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
      0 > map_sint64_sint64_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapFixed32Fixed32Entry_DoNotUse,
      ::google::protobuf::uint32, ::google::protobuf::uint32,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
      0 > map_fixed32_fixed32_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapFixed64Fixed64Entry_DoNotUse,
      ::google::protobuf::uint64, ::google::protobuf::uint64,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
      0 > map_fixed64_fixed64_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapSfixed32Sfixed32Entry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
      0 > map_sfixed32_sfixed32_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapSfixed64Sfixed64Entry_DoNotUse,
      ::google::protobuf::int64, ::google::protobuf::int64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
      0 > map_sfixed64_sfixed64_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapInt32FloatEntry_DoNotUse,
      ::google::protobuf::int32, float,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
      0 > map_int32_float_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapInt32DoubleEntry_DoNotUse,
      ::google::protobuf::int32, double,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE,
      0 > map_int32_double_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapBoolBoolEntry_DoNotUse,
      bool, bool,
      ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
      ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
      0 > map_bool_bool_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapStringStringEntry_DoNotUse,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > map_string_string_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapInt32BytesEntry_DoNotUse,
      ::google::protobuf::int32, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_BYTES,
      0 > map_int32_bytes_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapInt32EnumEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
      0 > map_int32_enum_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_MapInt32ForeignMessageEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > map_int32_foreign_message_;
  ::google::protobuf::internal::MapFieldLite<
      TestMapLite_TeboringEntry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      0 > teboring_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestArenaMapLite_MapInt32Int32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32Int32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32Int32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > SuperType;
  TestArenaMapLite_MapInt32Int32Entry_DoNotUse();
  TestArenaMapLite_MapInt32Int32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt32Int32Entry_DoNotUse& other);
  static const TestArenaMapLite_MapInt32Int32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt32Int32Entry_DoNotUse*>(&_TestArenaMapLite_MapInt32Int32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapInt64Int64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt64Int64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt64Int64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
    0 > SuperType;
  TestArenaMapLite_MapInt64Int64Entry_DoNotUse();
  TestArenaMapLite_MapInt64Int64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt64Int64Entry_DoNotUse& other);
  static const TestArenaMapLite_MapInt64Int64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt64Int64Entry_DoNotUse*>(&_TestArenaMapLite_MapInt64Int64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapUint32Uint32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapUint32Uint32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapUint32Uint32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
    0 > SuperType;
  TestArenaMapLite_MapUint32Uint32Entry_DoNotUse();
  TestArenaMapLite_MapUint32Uint32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapUint32Uint32Entry_DoNotUse& other);
  static const TestArenaMapLite_MapUint32Uint32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapUint32Uint32Entry_DoNotUse*>(&_TestArenaMapLite_MapUint32Uint32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapUint64Uint64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapUint64Uint64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapUint64Uint64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
    0 > SuperType;
  TestArenaMapLite_MapUint64Uint64Entry_DoNotUse();
  TestArenaMapLite_MapUint64Uint64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapUint64Uint64Entry_DoNotUse& other);
  static const TestArenaMapLite_MapUint64Uint64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapUint64Uint64Entry_DoNotUse*>(&_TestArenaMapLite_MapUint64Uint64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapSint32Sint32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSint32Sint32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSint32Sint32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
    0 > SuperType;
  TestArenaMapLite_MapSint32Sint32Entry_DoNotUse();
  TestArenaMapLite_MapSint32Sint32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapSint32Sint32Entry_DoNotUse& other);
  static const TestArenaMapLite_MapSint32Sint32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapSint32Sint32Entry_DoNotUse*>(&_TestArenaMapLite_MapSint32Sint32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapSint64Sint64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSint64Sint64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSint64Sint64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
    0 > SuperType;
  TestArenaMapLite_MapSint64Sint64Entry_DoNotUse();
  TestArenaMapLite_MapSint64Sint64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapSint64Sint64Entry_DoNotUse& other);
  static const TestArenaMapLite_MapSint64Sint64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapSint64Sint64Entry_DoNotUse*>(&_TestArenaMapLite_MapSint64Sint64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse, 
    ::google::protobuf::uint32, ::google::protobuf::uint32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
    0 > SuperType;
  TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse();
  TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse& other);
  static const TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse*>(&_TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse, 
    ::google::protobuf::uint64, ::google::protobuf::uint64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
    0 > SuperType;
  TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse();
  TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse& other);
  static const TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse*>(&_TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse, 
    ::google::protobuf::int32, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
    0 > SuperType;
  TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse();
  TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse& other);
  static const TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse*>(&_TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse, 
    ::google::protobuf::int64, ::google::protobuf::int64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
    0 > SuperType;
  TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse();
  TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse& other);
  static const TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse*>(&_TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapInt32FloatEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32FloatEntry_DoNotUse, 
    ::google::protobuf::int32, float,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32FloatEntry_DoNotUse, 
    ::google::protobuf::int32, float,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
    0 > SuperType;
  TestArenaMapLite_MapInt32FloatEntry_DoNotUse();
  TestArenaMapLite_MapInt32FloatEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt32FloatEntry_DoNotUse& other);
  static const TestArenaMapLite_MapInt32FloatEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt32FloatEntry_DoNotUse*>(&_TestArenaMapLite_MapInt32FloatEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapInt32DoubleEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32DoubleEntry_DoNotUse, 
    ::google::protobuf::int32, double,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32DoubleEntry_DoNotUse, 
    ::google::protobuf::int32, double,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE,
    0 > SuperType;
  TestArenaMapLite_MapInt32DoubleEntry_DoNotUse();
  TestArenaMapLite_MapInt32DoubleEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt32DoubleEntry_DoNotUse& other);
  static const TestArenaMapLite_MapInt32DoubleEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt32DoubleEntry_DoNotUse*>(&_TestArenaMapLite_MapInt32DoubleEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapBoolBoolEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapBoolBoolEntry_DoNotUse, 
    bool, bool,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapBoolBoolEntry_DoNotUse, 
    bool, bool,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    0 > SuperType;
  TestArenaMapLite_MapBoolBoolEntry_DoNotUse();
  TestArenaMapLite_MapBoolBoolEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapBoolBoolEntry_DoNotUse& other);
  static const TestArenaMapLite_MapBoolBoolEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapBoolBoolEntry_DoNotUse*>(&_TestArenaMapLite_MapBoolBoolEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapStringStringEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapStringStringEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapStringStringEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  TestArenaMapLite_MapStringStringEntry_DoNotUse();
  TestArenaMapLite_MapStringStringEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapStringStringEntry_DoNotUse& other);
  static const TestArenaMapLite_MapStringStringEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapStringStringEntry_DoNotUse*>(&_TestArenaMapLite_MapStringStringEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapInt32BytesEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32BytesEntry_DoNotUse, 
    ::google::protobuf::int32, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_BYTES,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32BytesEntry_DoNotUse, 
    ::google::protobuf::int32, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_BYTES,
    0 > SuperType;
  TestArenaMapLite_MapInt32BytesEntry_DoNotUse();
  TestArenaMapLite_MapInt32BytesEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt32BytesEntry_DoNotUse& other);
  static const TestArenaMapLite_MapInt32BytesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt32BytesEntry_DoNotUse*>(&_TestArenaMapLite_MapInt32BytesEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapInt32EnumEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32EnumEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32EnumEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > SuperType;
  TestArenaMapLite_MapInt32EnumEntry_DoNotUse();
  TestArenaMapLite_MapInt32EnumEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt32EnumEntry_DoNotUse& other);
  static const TestArenaMapLite_MapInt32EnumEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt32EnumEntry_DoNotUse*>(&_TestArenaMapLite_MapInt32EnumEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageArenaLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageArenaLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse();
  TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse& other);
  static const TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse*>(&_TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest_no_arena::ForeignMessageLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest_no_arena::ForeignMessageLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse();
  TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse& other);
  static const TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse*>(&_TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestArenaMapLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestArenaMapLite) */ {
 public:
  TestArenaMapLite();
  virtual ~TestArenaMapLite();

  TestArenaMapLite(const TestArenaMapLite& from);

  inline TestArenaMapLite& operator=(const TestArenaMapLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestArenaMapLite(TestArenaMapLite&& from) noexcept
    : TestArenaMapLite() {
    *this = ::std::move(from);
  }

  inline TestArenaMapLite& operator=(TestArenaMapLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestArenaMapLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestArenaMapLite* internal_default_instance() {
    return reinterpret_cast<const TestArenaMapLite*>(
               &_TestArenaMapLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    37;

  void UnsafeArenaSwap(TestArenaMapLite* other);
  void Swap(TestArenaMapLite* other);
  friend void swap(TestArenaMapLite& a, TestArenaMapLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestArenaMapLite* New() const final {
    return CreateMaybeMessage<TestArenaMapLite>(NULL);
  }

  TestArenaMapLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestArenaMapLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestArenaMapLite& from);
  void MergeFrom(const TestArenaMapLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestArenaMapLite* other);
  protected:
  explicit TestArenaMapLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<int32, int32> map_int32_int32 = 1;
  int map_int32_int32_size() const;
  void clear_map_int32_int32();
  static const int kMapInt32Int32FieldNumber = 1;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
      map_int32_int32() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
      mutable_map_int32_int32();

  // map<int64, int64> map_int64_int64 = 2;
  int map_int64_int64_size() const;
  void clear_map_int64_int64();
  static const int kMapInt64Int64FieldNumber = 2;
  const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
      map_int64_int64() const;
  ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
      mutable_map_int64_int64();

  // map<uint32, uint32> map_uint32_uint32 = 3;
  int map_uint32_uint32_size() const;
  void clear_map_uint32_uint32();
  static const int kMapUint32Uint32FieldNumber = 3;
  const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
      map_uint32_uint32() const;
  ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
      mutable_map_uint32_uint32();

  // map<uint64, uint64> map_uint64_uint64 = 4;
  int map_uint64_uint64_size() const;
  void clear_map_uint64_uint64();
  static const int kMapUint64Uint64FieldNumber = 4;
  const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
      map_uint64_uint64() const;
  ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
      mutable_map_uint64_uint64();

  // map<sint32, sint32> map_sint32_sint32 = 5;
  int map_sint32_sint32_size() const;
  void clear_map_sint32_sint32();
  static const int kMapSint32Sint32FieldNumber = 5;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
      map_sint32_sint32() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
      mutable_map_sint32_sint32();

  // map<sint64, sint64> map_sint64_sint64 = 6;
  int map_sint64_sint64_size() const;
  void clear_map_sint64_sint64();
  static const int kMapSint64Sint64FieldNumber = 6;
  const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
      map_sint64_sint64() const;
  ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
      mutable_map_sint64_sint64();

  // map<fixed32, fixed32> map_fixed32_fixed32 = 7;
  int map_fixed32_fixed32_size() const;
  void clear_map_fixed32_fixed32();
  static const int kMapFixed32Fixed32FieldNumber = 7;
  const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
      map_fixed32_fixed32() const;
  ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
      mutable_map_fixed32_fixed32();

  // map<fixed64, fixed64> map_fixed64_fixed64 = 8;
  int map_fixed64_fixed64_size() const;
  void clear_map_fixed64_fixed64();
  static const int kMapFixed64Fixed64FieldNumber = 8;
  const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
      map_fixed64_fixed64() const;
  ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
      mutable_map_fixed64_fixed64();

  // map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 9;
  int map_sfixed32_sfixed32_size() const;
  void clear_map_sfixed32_sfixed32();
  static const int kMapSfixed32Sfixed32FieldNumber = 9;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
      map_sfixed32_sfixed32() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
      mutable_map_sfixed32_sfixed32();

  // map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 10;
  int map_sfixed64_sfixed64_size() const;
  void clear_map_sfixed64_sfixed64();
  static const int kMapSfixed64Sfixed64FieldNumber = 10;
  const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
      map_sfixed64_sfixed64() const;
  ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
      mutable_map_sfixed64_sfixed64();

  // map<int32, float> map_int32_float = 11;
  int map_int32_float_size() const;
  void clear_map_int32_float();
  static const int kMapInt32FloatFieldNumber = 11;
  const ::google::protobuf::Map< ::google::protobuf::int32, float >&
      map_int32_float() const;
  ::google::protobuf::Map< ::google::protobuf::int32, float >*
      mutable_map_int32_float();

  // map<int32, double> map_int32_double = 12;
  int map_int32_double_size() const;
  void clear_map_int32_double();
  static const int kMapInt32DoubleFieldNumber = 12;
  const ::google::protobuf::Map< ::google::protobuf::int32, double >&
      map_int32_double() const;
  ::google::protobuf::Map< ::google::protobuf::int32, double >*
      mutable_map_int32_double();

  // map<bool, bool> map_bool_bool = 13;
  int map_bool_bool_size() const;
  void clear_map_bool_bool();
  static const int kMapBoolBoolFieldNumber = 13;
  const ::google::protobuf::Map< bool, bool >&
      map_bool_bool() const;
  ::google::protobuf::Map< bool, bool >*
      mutable_map_bool_bool();

  // map<string, string> map_string_string = 14;
  int map_string_string_size() const;
  void clear_map_string_string();
  static const int kMapStringStringFieldNumber = 14;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      map_string_string() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_map_string_string();

  // map<int32, bytes> map_int32_bytes = 15;
  int map_int32_bytes_size() const;
  void clear_map_int32_bytes();
  static const int kMapInt32BytesFieldNumber = 15;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >&
      map_int32_bytes() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >*
      mutable_map_int32_bytes();

  // map<int32, .protobuf_unittest.MapEnumLite> map_int32_enum = 16;
  int map_int32_enum_size() const;
  void clear_map_int32_enum();
  static const int kMapInt32EnumFieldNumber = 16;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >&
      map_int32_enum() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >*
      mutable_map_int32_enum();

  // map<int32, .protobuf_unittest.ForeignMessageArenaLite> map_int32_foreign_message = 17;
  int map_int32_foreign_message_size() const;
  void clear_map_int32_foreign_message();
  static const int kMapInt32ForeignMessageFieldNumber = 17;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageArenaLite >&
      map_int32_foreign_message() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageArenaLite >*
      mutable_map_int32_foreign_message();

  // map<int32, .protobuf_unittest_no_arena.ForeignMessageLite> map_int32_foreign_message_no_arena = 18;
  int map_int32_foreign_message_no_arena_size() const;
  void clear_map_int32_foreign_message_no_arena();
  static const int kMapInt32ForeignMessageNoArenaFieldNumber = 18;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest_no_arena::ForeignMessageLite >&
      map_int32_foreign_message_no_arena() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest_no_arena::ForeignMessageLite >*
      mutable_map_int32_foreign_message_no_arena();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMapLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt32Int32Entry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      0 > map_int32_int32_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt64Int64Entry_DoNotUse,
      ::google::protobuf::int64, ::google::protobuf::int64,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT64,
      0 > map_int64_int64_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapUint32Uint32Entry_DoNotUse,
      ::google::protobuf::uint32, ::google::protobuf::uint32,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT32,
      0 > map_uint32_uint32_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapUint64Uint64Entry_DoNotUse,
      ::google::protobuf::uint64, ::google::protobuf::uint64,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
      ::google::protobuf::internal::WireFormatLite::TYPE_UINT64,
      0 > map_uint64_uint64_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapSint32Sint32Entry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT32,
      0 > map_sint32_sint32_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapSint64Sint64Entry_DoNotUse,
      ::google::protobuf::int64, ::google::protobuf::int64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SINT64,
      0 > map_sint64_sint64_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapFixed32Fixed32Entry_DoNotUse,
      ::google::protobuf::uint32, ::google::protobuf::uint32,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32,
      0 > map_fixed32_fixed32_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapFixed64Fixed64Entry_DoNotUse,
      ::google::protobuf::uint64, ::google::protobuf::uint64,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
      ::google::protobuf::internal::WireFormatLite::TYPE_FIXED64,
      0 > map_fixed64_fixed64_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapSfixed32Sfixed32Entry_DoNotUse,
      ::google::protobuf::int32, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED32,
      0 > map_sfixed32_sfixed32_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapSfixed64Sfixed64Entry_DoNotUse,
      ::google::protobuf::int64, ::google::protobuf::int64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
      ::google::protobuf::internal::WireFormatLite::TYPE_SFIXED64,
      0 > map_sfixed64_sfixed64_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt32FloatEntry_DoNotUse,
      ::google::protobuf::int32, float,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
      0 > map_int32_float_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt32DoubleEntry_DoNotUse,
      ::google::protobuf::int32, double,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE,
      0 > map_int32_double_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapBoolBoolEntry_DoNotUse,
      bool, bool,
      ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
      ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
      0 > map_bool_bool_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapStringStringEntry_DoNotUse,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > map_string_string_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt32BytesEntry_DoNotUse,
      ::google::protobuf::int32, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_BYTES,
      0 > map_int32_bytes_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt32EnumEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
      0 > map_int32_enum_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt32ForeignMessageEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageArenaLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > map_int32_foreign_message_;
  ::google::protobuf::internal::MapFieldLite<
      TestArenaMapLite_MapInt32ForeignMessageNoArenaEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest_no_arena::ForeignMessageLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > map_int32_foreign_message_no_arena_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestRequiredMessageMapLite_MapFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestRequiredMessageMapLite_MapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::TestRequiredLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestRequiredMessageMapLite_MapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::TestRequiredLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  TestRequiredMessageMapLite_MapFieldEntry_DoNotUse();
  TestRequiredMessageMapLite_MapFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestRequiredMessageMapLite_MapFieldEntry_DoNotUse& other);
  static const TestRequiredMessageMapLite_MapFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestRequiredMessageMapLite_MapFieldEntry_DoNotUse*>(&_TestRequiredMessageMapLite_MapFieldEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestRequiredMessageMapLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestRequiredMessageMapLite) */ {
 public:
  TestRequiredMessageMapLite();
  virtual ~TestRequiredMessageMapLite();

  TestRequiredMessageMapLite(const TestRequiredMessageMapLite& from);

  inline TestRequiredMessageMapLite& operator=(const TestRequiredMessageMapLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestRequiredMessageMapLite(TestRequiredMessageMapLite&& from) noexcept
    : TestRequiredMessageMapLite() {
    *this = ::std::move(from);
  }

  inline TestRequiredMessageMapLite& operator=(TestRequiredMessageMapLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestRequiredMessageMapLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestRequiredMessageMapLite* internal_default_instance() {
    return reinterpret_cast<const TestRequiredMessageMapLite*>(
               &_TestRequiredMessageMapLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    39;

  void UnsafeArenaSwap(TestRequiredMessageMapLite* other);
  void Swap(TestRequiredMessageMapLite* other);
  friend void swap(TestRequiredMessageMapLite& a, TestRequiredMessageMapLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestRequiredMessageMapLite* New() const final {
    return CreateMaybeMessage<TestRequiredMessageMapLite>(NULL);
  }

  TestRequiredMessageMapLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestRequiredMessageMapLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestRequiredMessageMapLite& from);
  void MergeFrom(const TestRequiredMessageMapLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestRequiredMessageMapLite* other);
  protected:
  explicit TestRequiredMessageMapLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<int32, .protobuf_unittest.TestRequiredLite> map_field = 1;
  int map_field_size() const;
  void clear_map_field();
  static const int kMapFieldFieldNumber = 1;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestRequiredLite >&
      map_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestRequiredLite >*
      mutable_map_field();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredMessageMapLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::MapFieldLite<
      TestRequiredMessageMapLite_MapFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::TestRequiredLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > map_field_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestEnumMapLite_KnownMapFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestEnumMapLite_KnownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestEnumMapLite_KnownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > SuperType;
  TestEnumMapLite_KnownMapFieldEntry_DoNotUse();
  TestEnumMapLite_KnownMapFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestEnumMapLite_KnownMapFieldEntry_DoNotUse& other);
  static const TestEnumMapLite_KnownMapFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestEnumMapLite_KnownMapFieldEntry_DoNotUse*>(&_TestEnumMapLite_KnownMapFieldEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestEnumMapLite_UnknownMapFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestEnumMapLite_UnknownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestEnumMapLite_UnknownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > SuperType;
  TestEnumMapLite_UnknownMapFieldEntry_DoNotUse();
  TestEnumMapLite_UnknownMapFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestEnumMapLite_UnknownMapFieldEntry_DoNotUse& other);
  static const TestEnumMapLite_UnknownMapFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestEnumMapLite_UnknownMapFieldEntry_DoNotUse*>(&_TestEnumMapLite_UnknownMapFieldEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestEnumMapLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestEnumMapLite) */ {
 public:
  TestEnumMapLite();
  virtual ~TestEnumMapLite();

  TestEnumMapLite(const TestEnumMapLite& from);

  inline TestEnumMapLite& operator=(const TestEnumMapLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestEnumMapLite(TestEnumMapLite&& from) noexcept
    : TestEnumMapLite() {
    *this = ::std::move(from);
  }

  inline TestEnumMapLite& operator=(TestEnumMapLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestEnumMapLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestEnumMapLite* internal_default_instance() {
    return reinterpret_cast<const TestEnumMapLite*>(
               &_TestEnumMapLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    42;

  void UnsafeArenaSwap(TestEnumMapLite* other);
  void Swap(TestEnumMapLite* other);
  friend void swap(TestEnumMapLite& a, TestEnumMapLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestEnumMapLite* New() const final {
    return CreateMaybeMessage<TestEnumMapLite>(NULL);
  }

  TestEnumMapLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestEnumMapLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestEnumMapLite& from);
  void MergeFrom(const TestEnumMapLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestEnumMapLite* other);
  protected:
  explicit TestEnumMapLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<int32, .protobuf_unittest.Proto2MapEnumLite> known_map_field = 101;
  int known_map_field_size() const;
  void clear_known_map_field();
  static const int kKnownMapFieldFieldNumber = 101;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >&
      known_map_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >*
      mutable_known_map_field();

  // map<int32, .protobuf_unittest.Proto2MapEnumLite> unknown_map_field = 102;
  int unknown_map_field_size() const;
  void clear_unknown_map_field();
  static const int kUnknownMapFieldFieldNumber = 102;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >&
      unknown_map_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >*
      mutable_unknown_map_field();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMapLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::MapFieldLite<
      TestEnumMapLite_KnownMapFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
      0 > known_map_field_;
  ::google::protobuf::internal::MapFieldLite<
      TestEnumMapLite_UnknownMapFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
      0 > unknown_map_field_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > SuperType;
  TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse();
  TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse& other);
  static const TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse*>(&_TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
    0 > SuperType;
  TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse();
  TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse& other);
  static const TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse*>(&_TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestEnumMapPlusExtraLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestEnumMapPlusExtraLite) */ {
 public:
  TestEnumMapPlusExtraLite();
  virtual ~TestEnumMapPlusExtraLite();

  TestEnumMapPlusExtraLite(const TestEnumMapPlusExtraLite& from);

  inline TestEnumMapPlusExtraLite& operator=(const TestEnumMapPlusExtraLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestEnumMapPlusExtraLite(TestEnumMapPlusExtraLite&& from) noexcept
    : TestEnumMapPlusExtraLite() {
    *this = ::std::move(from);
  }

  inline TestEnumMapPlusExtraLite& operator=(TestEnumMapPlusExtraLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestEnumMapPlusExtraLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestEnumMapPlusExtraLite* internal_default_instance() {
    return reinterpret_cast<const TestEnumMapPlusExtraLite*>(
               &_TestEnumMapPlusExtraLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    45;

  void UnsafeArenaSwap(TestEnumMapPlusExtraLite* other);
  void Swap(TestEnumMapPlusExtraLite* other);
  friend void swap(TestEnumMapPlusExtraLite& a, TestEnumMapPlusExtraLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestEnumMapPlusExtraLite* New() const final {
    return CreateMaybeMessage<TestEnumMapPlusExtraLite>(NULL);
  }

  TestEnumMapPlusExtraLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestEnumMapPlusExtraLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestEnumMapPlusExtraLite& from);
  void MergeFrom(const TestEnumMapPlusExtraLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestEnumMapPlusExtraLite* other);
  protected:
  explicit TestEnumMapPlusExtraLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<int32, .protobuf_unittest.Proto2MapEnumPlusExtraLite> known_map_field = 101;
  int known_map_field_size() const;
  void clear_known_map_field();
  static const int kKnownMapFieldFieldNumber = 101;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >&
      known_map_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >*
      mutable_known_map_field();

  // map<int32, .protobuf_unittest.Proto2MapEnumPlusExtraLite> unknown_map_field = 102;
  int unknown_map_field_size() const;
  void clear_unknown_map_field();
  static const int kUnknownMapFieldFieldNumber = 102;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >&
      unknown_map_field() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >*
      mutable_unknown_map_field();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMapPlusExtraLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::MapFieldLite<
      TestEnumMapPlusExtraLite_KnownMapFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
      0 > known_map_field_;
  ::google::protobuf::internal::MapFieldLite<
      TestEnumMapPlusExtraLite_UnknownMapFieldEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_ENUM,
      0 > unknown_map_field_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestMessageMapLite_MapInt32MessageEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestMessageMapLite_MapInt32MessageEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::TestAllTypesLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestMessageMapLite_MapInt32MessageEntry_DoNotUse, 
    ::google::protobuf::int32, ::protobuf_unittest::TestAllTypesLite,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  TestMessageMapLite_MapInt32MessageEntry_DoNotUse();
  TestMessageMapLite_MapInt32MessageEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestMessageMapLite_MapInt32MessageEntry_DoNotUse& other);
  static const TestMessageMapLite_MapInt32MessageEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestMessageMapLite_MapInt32MessageEntry_DoNotUse*>(&_TestMessageMapLite_MapInt32MessageEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestMessageMapLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestMessageMapLite) */ {
 public:
  TestMessageMapLite();
  virtual ~TestMessageMapLite();

  TestMessageMapLite(const TestMessageMapLite& from);

  inline TestMessageMapLite& operator=(const TestMessageMapLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestMessageMapLite(TestMessageMapLite&& from) noexcept
    : TestMessageMapLite() {
    *this = ::std::move(from);
  }

  inline TestMessageMapLite& operator=(TestMessageMapLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestMessageMapLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestMessageMapLite* internal_default_instance() {
    return reinterpret_cast<const TestMessageMapLite*>(
               &_TestMessageMapLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    47;

  void UnsafeArenaSwap(TestMessageMapLite* other);
  void Swap(TestMessageMapLite* other);
  friend void swap(TestMessageMapLite& a, TestMessageMapLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestMessageMapLite* New() const final {
    return CreateMaybeMessage<TestMessageMapLite>(NULL);
  }

  TestMessageMapLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestMessageMapLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestMessageMapLite& from);
  void MergeFrom(const TestMessageMapLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestMessageMapLite* other);
  protected:
  explicit TestMessageMapLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  // map<int32, .protobuf_unittest.TestAllTypesLite> map_int32_message = 1;
  int map_int32_message_size() const;
  void clear_map_int32_message();
  static const int kMapInt32MessageFieldNumber = 1;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestAllTypesLite >&
      map_int32_message() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestAllTypesLite >*
      mutable_map_int32_message();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageMapLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::MapFieldLite<
      TestMessageMapLite_MapInt32MessageEntry_DoNotUse,
      ::google::protobuf::int32, ::protobuf_unittest::TestAllTypesLite,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > map_int32_message_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestRequiredLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestRequiredLite) */ {
 public:
  TestRequiredLite();
  virtual ~TestRequiredLite();

  TestRequiredLite(const TestRequiredLite& from);

  inline TestRequiredLite& operator=(const TestRequiredLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestRequiredLite(TestRequiredLite&& from) noexcept
    : TestRequiredLite() {
    *this = ::std::move(from);
  }

  inline TestRequiredLite& operator=(TestRequiredLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const TestRequiredLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestRequiredLite* internal_default_instance() {
    return reinterpret_cast<const TestRequiredLite*>(
               &_TestRequiredLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    48;

  void UnsafeArenaSwap(TestRequiredLite* other);
  void Swap(TestRequiredLite* other);
  friend void swap(TestRequiredLite& a, TestRequiredLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestRequiredLite* New() const final {
    return CreateMaybeMessage<TestRequiredLite>(NULL);
  }

  TestRequiredLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestRequiredLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestRequiredLite& from);
  void MergeFrom(const TestRequiredLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestRequiredLite* other);
  protected:
  explicit TestRequiredLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required int32 a = 1;
  bool has_a() const;
  void clear_a();
  static const int kAFieldNumber = 1;
  ::google::protobuf::int32 a() const;
  void set_a(::google::protobuf::int32 value);

  // required int32 b = 2;
  bool has_b() const;
  void clear_b();
  static const int kBFieldNumber = 2;
  ::google::protobuf::int32 b() const;
  void set_b(::google::protobuf::int32 value);

  // required int32 c = 3;
  bool has_c() const;
  void clear_c();
  static const int kCFieldNumber = 3;
  ::google::protobuf::int32 c() const;
  void set_c(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredLite)
 private:
  void set_has_a();
  void clear_has_a();
  void set_has_b();
  void clear_has_b();
  void set_has_c();
  void clear_has_c();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 a_;
  ::google::protobuf::int32 b_;
  ::google::protobuf::int32 c_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ForeignMessageArenaLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.ForeignMessageArenaLite) */ {
 public:
  ForeignMessageArenaLite();
  virtual ~ForeignMessageArenaLite();

  ForeignMessageArenaLite(const ForeignMessageArenaLite& from);

  inline ForeignMessageArenaLite& operator=(const ForeignMessageArenaLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  ForeignMessageArenaLite(ForeignMessageArenaLite&& from) noexcept
    : ForeignMessageArenaLite() {
    *this = ::std::move(from);
  }

  inline ForeignMessageArenaLite& operator=(ForeignMessageArenaLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  inline ::google::protobuf::Arena* GetArena() const final {
    return GetArenaNoVirtual();
  }
  inline void* GetMaybeArenaPointer() const final {
    return MaybeArenaPtr();
  }
  static const ForeignMessageArenaLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ForeignMessageArenaLite* internal_default_instance() {
    return reinterpret_cast<const ForeignMessageArenaLite*>(
               &_ForeignMessageArenaLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    49;

  void UnsafeArenaSwap(ForeignMessageArenaLite* other);
  void Swap(ForeignMessageArenaLite* other);
  friend void swap(ForeignMessageArenaLite& a, ForeignMessageArenaLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline ForeignMessageArenaLite* New() const final {
    return CreateMaybeMessage<ForeignMessageArenaLite>(NULL);
  }

  ForeignMessageArenaLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ForeignMessageArenaLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const ForeignMessageArenaLite& from);
  void MergeFrom(const ForeignMessageArenaLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ForeignMessageArenaLite* other);
  protected:
  explicit ForeignMessageArenaLite(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 c = 1;
  bool has_c() const;
  void clear_c();
  static const int kCFieldNumber = 1;
  ::google::protobuf::int32 c() const;
  void set_c(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.ForeignMessageArenaLite)
 private:
  void set_has_c();
  void clear_has_c();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 c_;
  friend struct ::protobuf_google_2fprotobuf_2fmap_5flite_5funittest_2eproto::TableStruct;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// TestMapLite

// map<int32, int32> map_int32_int32 = 1;
inline int TestMapLite::map_int32_int32_size() const {
  return map_int32_int32_.size();
}
inline void TestMapLite::clear_map_int32_int32() {
  map_int32_int32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
TestMapLite::map_int32_int32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_int32_int32)
  return map_int32_int32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
TestMapLite::mutable_map_int32_int32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_int32_int32)
  return map_int32_int32_.MutableMap();
}

// map<int64, int64> map_int64_int64 = 2;
inline int TestMapLite::map_int64_int64_size() const {
  return map_int64_int64_.size();
}
inline void TestMapLite::clear_map_int64_int64() {
  map_int64_int64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
TestMapLite::map_int64_int64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_int64_int64)
  return map_int64_int64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
TestMapLite::mutable_map_int64_int64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_int64_int64)
  return map_int64_int64_.MutableMap();
}

// map<uint32, uint32> map_uint32_uint32 = 3;
inline int TestMapLite::map_uint32_uint32_size() const {
  return map_uint32_uint32_.size();
}
inline void TestMapLite::clear_map_uint32_uint32() {
  map_uint32_uint32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
TestMapLite::map_uint32_uint32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_uint32_uint32)
  return map_uint32_uint32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
TestMapLite::mutable_map_uint32_uint32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_uint32_uint32)
  return map_uint32_uint32_.MutableMap();
}

// map<uint64, uint64> map_uint64_uint64 = 4;
inline int TestMapLite::map_uint64_uint64_size() const {
  return map_uint64_uint64_.size();
}
inline void TestMapLite::clear_map_uint64_uint64() {
  map_uint64_uint64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
TestMapLite::map_uint64_uint64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_uint64_uint64)
  return map_uint64_uint64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
TestMapLite::mutable_map_uint64_uint64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_uint64_uint64)
  return map_uint64_uint64_.MutableMap();
}

// map<sint32, sint32> map_sint32_sint32 = 5;
inline int TestMapLite::map_sint32_sint32_size() const {
  return map_sint32_sint32_.size();
}
inline void TestMapLite::clear_map_sint32_sint32() {
  map_sint32_sint32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
TestMapLite::map_sint32_sint32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_sint32_sint32)
  return map_sint32_sint32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
TestMapLite::mutable_map_sint32_sint32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_sint32_sint32)
  return map_sint32_sint32_.MutableMap();
}

// map<sint64, sint64> map_sint64_sint64 = 6;
inline int TestMapLite::map_sint64_sint64_size() const {
  return map_sint64_sint64_.size();
}
inline void TestMapLite::clear_map_sint64_sint64() {
  map_sint64_sint64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
TestMapLite::map_sint64_sint64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_sint64_sint64)
  return map_sint64_sint64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
TestMapLite::mutable_map_sint64_sint64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_sint64_sint64)
  return map_sint64_sint64_.MutableMap();
}

// map<fixed32, fixed32> map_fixed32_fixed32 = 7;
inline int TestMapLite::map_fixed32_fixed32_size() const {
  return map_fixed32_fixed32_.size();
}
inline void TestMapLite::clear_map_fixed32_fixed32() {
  map_fixed32_fixed32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
TestMapLite::map_fixed32_fixed32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_fixed32_fixed32)
  return map_fixed32_fixed32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
TestMapLite::mutable_map_fixed32_fixed32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_fixed32_fixed32)
  return map_fixed32_fixed32_.MutableMap();
}

// map<fixed64, fixed64> map_fixed64_fixed64 = 8;
inline int TestMapLite::map_fixed64_fixed64_size() const {
  return map_fixed64_fixed64_.size();
}
inline void TestMapLite::clear_map_fixed64_fixed64() {
  map_fixed64_fixed64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
TestMapLite::map_fixed64_fixed64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_fixed64_fixed64)
  return map_fixed64_fixed64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
TestMapLite::mutable_map_fixed64_fixed64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_fixed64_fixed64)
  return map_fixed64_fixed64_.MutableMap();
}

// map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 9;
inline int TestMapLite::map_sfixed32_sfixed32_size() const {
  return map_sfixed32_sfixed32_.size();
}
inline void TestMapLite::clear_map_sfixed32_sfixed32() {
  map_sfixed32_sfixed32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
TestMapLite::map_sfixed32_sfixed32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_sfixed32_sfixed32)
  return map_sfixed32_sfixed32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
TestMapLite::mutable_map_sfixed32_sfixed32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_sfixed32_sfixed32)
  return map_sfixed32_sfixed32_.MutableMap();
}

// map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 10;
inline int TestMapLite::map_sfixed64_sfixed64_size() const {
  return map_sfixed64_sfixed64_.size();
}
inline void TestMapLite::clear_map_sfixed64_sfixed64() {
  map_sfixed64_sfixed64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
TestMapLite::map_sfixed64_sfixed64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_sfixed64_sfixed64)
  return map_sfixed64_sfixed64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
TestMapLite::mutable_map_sfixed64_sfixed64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_sfixed64_sfixed64)
  return map_sfixed64_sfixed64_.MutableMap();
}

// map<int32, float> map_int32_float = 11;
inline int TestMapLite::map_int32_float_size() const {
  return map_int32_float_.size();
}
inline void TestMapLite::clear_map_int32_float() {
  map_int32_float_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, float >&
TestMapLite::map_int32_float() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_int32_float)
  return map_int32_float_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, float >*
TestMapLite::mutable_map_int32_float() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_int32_float)
  return map_int32_float_.MutableMap();
}

// map<int32, double> map_int32_double = 12;
inline int TestMapLite::map_int32_double_size() const {
  return map_int32_double_.size();
}
inline void TestMapLite::clear_map_int32_double() {
  map_int32_double_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, double >&
TestMapLite::map_int32_double() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_int32_double)
  return map_int32_double_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, double >*
TestMapLite::mutable_map_int32_double() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_int32_double)
  return map_int32_double_.MutableMap();
}

// map<bool, bool> map_bool_bool = 13;
inline int TestMapLite::map_bool_bool_size() const {
  return map_bool_bool_.size();
}
inline void TestMapLite::clear_map_bool_bool() {
  map_bool_bool_.Clear();
}
inline const ::google::protobuf::Map< bool, bool >&
TestMapLite::map_bool_bool() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_bool_bool)
  return map_bool_bool_.GetMap();
}
inline ::google::protobuf::Map< bool, bool >*
TestMapLite::mutable_map_bool_bool() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_bool_bool)
  return map_bool_bool_.MutableMap();
}

// map<string, string> map_string_string = 14;
inline int TestMapLite::map_string_string_size() const {
  return map_string_string_.size();
}
inline void TestMapLite::clear_map_string_string() {
  map_string_string_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
TestMapLite::map_string_string() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_string_string)
  return map_string_string_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
TestMapLite::mutable_map_string_string() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_string_string)
  return map_string_string_.MutableMap();
}

// map<int32, bytes> map_int32_bytes = 15;
inline int TestMapLite::map_int32_bytes_size() const {
  return map_int32_bytes_.size();
}
inline void TestMapLite::clear_map_int32_bytes() {
  map_int32_bytes_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >&
TestMapLite::map_int32_bytes() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_int32_bytes)
  return map_int32_bytes_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >*
TestMapLite::mutable_map_int32_bytes() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_int32_bytes)
  return map_int32_bytes_.MutableMap();
}

// map<int32, .protobuf_unittest.MapEnumLite> map_int32_enum = 16;
inline int TestMapLite::map_int32_enum_size() const {
  return map_int32_enum_.size();
}
inline void TestMapLite::clear_map_int32_enum() {
  map_int32_enum_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >&
TestMapLite::map_int32_enum() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_int32_enum)
  return map_int32_enum_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >*
TestMapLite::mutable_map_int32_enum() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_int32_enum)
  return map_int32_enum_.MutableMap();
}

// map<int32, .protobuf_unittest.ForeignMessageLite> map_int32_foreign_message = 17;
inline int TestMapLite::map_int32_foreign_message_size() const {
  return map_int32_foreign_message_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageLite >&
TestMapLite::map_int32_foreign_message() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.map_int32_foreign_message)
  return map_int32_foreign_message_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageLite >*
TestMapLite::mutable_map_int32_foreign_message() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.map_int32_foreign_message)
  return map_int32_foreign_message_.MutableMap();
}

// map<int32, int32> teboring = 18;
inline int TestMapLite::teboring_size() const {
  return teboring_.size();
}
inline void TestMapLite::clear_teboring() {
  teboring_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
TestMapLite::teboring() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMapLite.teboring)
  return teboring_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
TestMapLite::mutable_teboring() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMapLite.teboring)
  return teboring_.MutableMap();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// TestArenaMapLite

// map<int32, int32> map_int32_int32 = 1;
inline int TestArenaMapLite::map_int32_int32_size() const {
  return map_int32_int32_.size();
}
inline void TestArenaMapLite::clear_map_int32_int32() {
  map_int32_int32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
TestArenaMapLite::map_int32_int32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int32_int32)
  return map_int32_int32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
TestArenaMapLite::mutable_map_int32_int32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int32_int32)
  return map_int32_int32_.MutableMap();
}

// map<int64, int64> map_int64_int64 = 2;
inline int TestArenaMapLite::map_int64_int64_size() const {
  return map_int64_int64_.size();
}
inline void TestArenaMapLite::clear_map_int64_int64() {
  map_int64_int64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
TestArenaMapLite::map_int64_int64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int64_int64)
  return map_int64_int64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
TestArenaMapLite::mutable_map_int64_int64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int64_int64)
  return map_int64_int64_.MutableMap();
}

// map<uint32, uint32> map_uint32_uint32 = 3;
inline int TestArenaMapLite::map_uint32_uint32_size() const {
  return map_uint32_uint32_.size();
}
inline void TestArenaMapLite::clear_map_uint32_uint32() {
  map_uint32_uint32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
TestArenaMapLite::map_uint32_uint32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_uint32_uint32)
  return map_uint32_uint32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
TestArenaMapLite::mutable_map_uint32_uint32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_uint32_uint32)
  return map_uint32_uint32_.MutableMap();
}

// map<uint64, uint64> map_uint64_uint64 = 4;
inline int TestArenaMapLite::map_uint64_uint64_size() const {
  return map_uint64_uint64_.size();
}
inline void TestArenaMapLite::clear_map_uint64_uint64() {
  map_uint64_uint64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
TestArenaMapLite::map_uint64_uint64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_uint64_uint64)
  return map_uint64_uint64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
TestArenaMapLite::mutable_map_uint64_uint64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_uint64_uint64)
  return map_uint64_uint64_.MutableMap();
}

// map<sint32, sint32> map_sint32_sint32 = 5;
inline int TestArenaMapLite::map_sint32_sint32_size() const {
  return map_sint32_sint32_.size();
}
inline void TestArenaMapLite::clear_map_sint32_sint32() {
  map_sint32_sint32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
TestArenaMapLite::map_sint32_sint32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_sint32_sint32)
  return map_sint32_sint32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
TestArenaMapLite::mutable_map_sint32_sint32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_sint32_sint32)
  return map_sint32_sint32_.MutableMap();
}

// map<sint64, sint64> map_sint64_sint64 = 6;
inline int TestArenaMapLite::map_sint64_sint64_size() const {
  return map_sint64_sint64_.size();
}
inline void TestArenaMapLite::clear_map_sint64_sint64() {
  map_sint64_sint64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
TestArenaMapLite::map_sint64_sint64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_sint64_sint64)
  return map_sint64_sint64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
TestArenaMapLite::mutable_map_sint64_sint64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_sint64_sint64)
  return map_sint64_sint64_.MutableMap();
}

// map<fixed32, fixed32> map_fixed32_fixed32 = 7;
inline int TestArenaMapLite::map_fixed32_fixed32_size() const {
  return map_fixed32_fixed32_.size();
}
inline void TestArenaMapLite::clear_map_fixed32_fixed32() {
  map_fixed32_fixed32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >&
TestArenaMapLite::map_fixed32_fixed32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_fixed32_fixed32)
  return map_fixed32_fixed32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint32, ::google::protobuf::uint32 >*
TestArenaMapLite::mutable_map_fixed32_fixed32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_fixed32_fixed32)
  return map_fixed32_fixed32_.MutableMap();
}

// map<fixed64, fixed64> map_fixed64_fixed64 = 8;
inline int TestArenaMapLite::map_fixed64_fixed64_size() const {
  return map_fixed64_fixed64_.size();
}
inline void TestArenaMapLite::clear_map_fixed64_fixed64() {
  map_fixed64_fixed64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >&
TestArenaMapLite::map_fixed64_fixed64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_fixed64_fixed64)
  return map_fixed64_fixed64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::uint64, ::google::protobuf::uint64 >*
TestArenaMapLite::mutable_map_fixed64_fixed64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_fixed64_fixed64)
  return map_fixed64_fixed64_.MutableMap();
}

// map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 9;
inline int TestArenaMapLite::map_sfixed32_sfixed32_size() const {
  return map_sfixed32_sfixed32_.size();
}
inline void TestArenaMapLite::clear_map_sfixed32_sfixed32() {
  map_sfixed32_sfixed32_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >&
TestArenaMapLite::map_sfixed32_sfixed32() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_sfixed32_sfixed32)
  return map_sfixed32_sfixed32_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::google::protobuf::int32 >*
TestArenaMapLite::mutable_map_sfixed32_sfixed32() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_sfixed32_sfixed32)
  return map_sfixed32_sfixed32_.MutableMap();
}

// map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 10;
inline int TestArenaMapLite::map_sfixed64_sfixed64_size() const {
  return map_sfixed64_sfixed64_.size();
}
inline void TestArenaMapLite::clear_map_sfixed64_sfixed64() {
  map_sfixed64_sfixed64_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >&
TestArenaMapLite::map_sfixed64_sfixed64() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_sfixed64_sfixed64)
  return map_sfixed64_sfixed64_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int64, ::google::protobuf::int64 >*
TestArenaMapLite::mutable_map_sfixed64_sfixed64() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_sfixed64_sfixed64)
  return map_sfixed64_sfixed64_.MutableMap();
}

// map<int32, float> map_int32_float = 11;
inline int TestArenaMapLite::map_int32_float_size() const {
  return map_int32_float_.size();
}
inline void TestArenaMapLite::clear_map_int32_float() {
  map_int32_float_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, float >&
TestArenaMapLite::map_int32_float() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int32_float)
  return map_int32_float_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, float >*
TestArenaMapLite::mutable_map_int32_float() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int32_float)
  return map_int32_float_.MutableMap();
}

// map<int32, double> map_int32_double = 12;
inline int TestArenaMapLite::map_int32_double_size() const {
  return map_int32_double_.size();
}
inline void TestArenaMapLite::clear_map_int32_double() {
  map_int32_double_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, double >&
TestArenaMapLite::map_int32_double() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int32_double)
  return map_int32_double_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, double >*
TestArenaMapLite::mutable_map_int32_double() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int32_double)
  return map_int32_double_.MutableMap();
}

// map<bool, bool> map_bool_bool = 13;
inline int TestArenaMapLite::map_bool_bool_size() const {
  return map_bool_bool_.size();
}
inline void TestArenaMapLite::clear_map_bool_bool() {
  map_bool_bool_.Clear();
}
inline const ::google::protobuf::Map< bool, bool >&
TestArenaMapLite::map_bool_bool() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_bool_bool)
  return map_bool_bool_.GetMap();
}
inline ::google::protobuf::Map< bool, bool >*
TestArenaMapLite::mutable_map_bool_bool() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_bool_bool)
  return map_bool_bool_.MutableMap();
}

// map<string, string> map_string_string = 14;
inline int TestArenaMapLite::map_string_string_size() const {
  return map_string_string_.size();
}
inline void TestArenaMapLite::clear_map_string_string() {
  map_string_string_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
TestArenaMapLite::map_string_string() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_string_string)
  return map_string_string_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
TestArenaMapLite::mutable_map_string_string() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_string_string)
  return map_string_string_.MutableMap();
}

// map<int32, bytes> map_int32_bytes = 15;
inline int TestArenaMapLite::map_int32_bytes_size() const {
  return map_int32_bytes_.size();
}
inline void TestArenaMapLite::clear_map_int32_bytes() {
  map_int32_bytes_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >&
TestArenaMapLite::map_int32_bytes() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int32_bytes)
  return map_int32_bytes_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >*
TestArenaMapLite::mutable_map_int32_bytes() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int32_bytes)
  return map_int32_bytes_.MutableMap();
}

// map<int32, .protobuf_unittest.MapEnumLite> map_int32_enum = 16;
inline int TestArenaMapLite::map_int32_enum_size() const {
  return map_int32_enum_.size();
}
inline void TestArenaMapLite::clear_map_int32_enum() {
  map_int32_enum_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >&
TestArenaMapLite::map_int32_enum() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int32_enum)
  return map_int32_enum_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::MapEnumLite >*
TestArenaMapLite::mutable_map_int32_enum() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int32_enum)
  return map_int32_enum_.MutableMap();
}

// map<int32, .protobuf_unittest.ForeignMessageArenaLite> map_int32_foreign_message = 17;
inline int TestArenaMapLite::map_int32_foreign_message_size() const {
  return map_int32_foreign_message_.size();
}
inline void TestArenaMapLite::clear_map_int32_foreign_message() {
  map_int32_foreign_message_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageArenaLite >&
TestArenaMapLite::map_int32_foreign_message() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int32_foreign_message)
  return map_int32_foreign_message_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::ForeignMessageArenaLite >*
TestArenaMapLite::mutable_map_int32_foreign_message() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int32_foreign_message)
  return map_int32_foreign_message_.MutableMap();
}

// map<int32, .protobuf_unittest_no_arena.ForeignMessageLite> map_int32_foreign_message_no_arena = 18;
inline int TestArenaMapLite::map_int32_foreign_message_no_arena_size() const {
  return map_int32_foreign_message_no_arena_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest_no_arena::ForeignMessageLite >&
TestArenaMapLite::map_int32_foreign_message_no_arena() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestArenaMapLite.map_int32_foreign_message_no_arena)
  return map_int32_foreign_message_no_arena_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest_no_arena::ForeignMessageLite >*
TestArenaMapLite::mutable_map_int32_foreign_message_no_arena() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestArenaMapLite.map_int32_foreign_message_no_arena)
  return map_int32_foreign_message_no_arena_.MutableMap();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// TestRequiredMessageMapLite

// map<int32, .protobuf_unittest.TestRequiredLite> map_field = 1;
inline int TestRequiredMessageMapLite::map_field_size() const {
  return map_field_.size();
}
inline void TestRequiredMessageMapLite::clear_map_field() {
  map_field_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestRequiredLite >&
TestRequiredMessageMapLite::map_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestRequiredMessageMapLite.map_field)
  return map_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestRequiredLite >*
TestRequiredMessageMapLite::mutable_map_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestRequiredMessageMapLite.map_field)
  return map_field_.MutableMap();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// TestEnumMapLite

// map<int32, .protobuf_unittest.Proto2MapEnumLite> known_map_field = 101;
inline int TestEnumMapLite::known_map_field_size() const {
  return known_map_field_.size();
}
inline void TestEnumMapLite::clear_known_map_field() {
  known_map_field_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >&
TestEnumMapLite::known_map_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestEnumMapLite.known_map_field)
  return known_map_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >*
TestEnumMapLite::mutable_known_map_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestEnumMapLite.known_map_field)
  return known_map_field_.MutableMap();
}

// map<int32, .protobuf_unittest.Proto2MapEnumLite> unknown_map_field = 102;
inline int TestEnumMapLite::unknown_map_field_size() const {
  return unknown_map_field_.size();
}
inline void TestEnumMapLite::clear_unknown_map_field() {
  unknown_map_field_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >&
TestEnumMapLite::unknown_map_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestEnumMapLite.unknown_map_field)
  return unknown_map_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumLite >*
TestEnumMapLite::mutable_unknown_map_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestEnumMapLite.unknown_map_field)
  return unknown_map_field_.MutableMap();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// TestEnumMapPlusExtraLite

// map<int32, .protobuf_unittest.Proto2MapEnumPlusExtraLite> known_map_field = 101;
inline int TestEnumMapPlusExtraLite::known_map_field_size() const {
  return known_map_field_.size();
}
inline void TestEnumMapPlusExtraLite::clear_known_map_field() {
  known_map_field_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >&
TestEnumMapPlusExtraLite::known_map_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestEnumMapPlusExtraLite.known_map_field)
  return known_map_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >*
TestEnumMapPlusExtraLite::mutable_known_map_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestEnumMapPlusExtraLite.known_map_field)
  return known_map_field_.MutableMap();
}

// map<int32, .protobuf_unittest.Proto2MapEnumPlusExtraLite> unknown_map_field = 102;
inline int TestEnumMapPlusExtraLite::unknown_map_field_size() const {
  return unknown_map_field_.size();
}
inline void TestEnumMapPlusExtraLite::clear_unknown_map_field() {
  unknown_map_field_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >&
TestEnumMapPlusExtraLite::unknown_map_field() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestEnumMapPlusExtraLite.unknown_map_field)
  return unknown_map_field_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::Proto2MapEnumPlusExtraLite >*
TestEnumMapPlusExtraLite::mutable_unknown_map_field() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestEnumMapPlusExtraLite.unknown_map_field)
  return unknown_map_field_.MutableMap();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// TestMessageMapLite

// map<int32, .protobuf_unittest.TestAllTypesLite> map_int32_message = 1;
inline int TestMessageMapLite::map_int32_message_size() const {
  return map_int32_message_.size();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestAllTypesLite >&
TestMessageMapLite::map_int32_message() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestMessageMapLite.map_int32_message)
  return map_int32_message_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::protobuf_unittest::TestAllTypesLite >*
TestMessageMapLite::mutable_map_int32_message() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestMessageMapLite.map_int32_message)
  return map_int32_message_.MutableMap();
}

// -------------------------------------------------------------------

// TestRequiredLite

// required int32 a = 1;
inline bool TestRequiredLite::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestRequiredLite::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestRequiredLite::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestRequiredLite::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestRequiredLite::a() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestRequiredLite.a)
  return a_;
}
inline void TestRequiredLite::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestRequiredLite.a)
}

// required int32 b = 2;
inline bool TestRequiredLite::has_b() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestRequiredLite::set_has_b() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestRequiredLite::clear_has_b() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestRequiredLite::clear_b() {
  b_ = 0;
  clear_has_b();
}
inline ::google::protobuf::int32 TestRequiredLite::b() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestRequiredLite.b)
  return b_;
}
inline void TestRequiredLite::set_b(::google::protobuf::int32 value) {
  set_has_b();
  b_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestRequiredLite.b)
}

// required int32 c = 3;
inline bool TestRequiredLite::has_c() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestRequiredLite::set_has_c() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestRequiredLite::clear_has_c() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestRequiredLite::clear_c() {
  c_ = 0;
  clear_has_c();
}
inline ::google::protobuf::int32 TestRequiredLite::c() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestRequiredLite.c)
  return c_;
}
inline void TestRequiredLite::set_c(::google::protobuf::int32 value) {
  set_has_c();
  c_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestRequiredLite.c)
}

// -------------------------------------------------------------------

// ForeignMessageArenaLite

// optional int32 c = 1;
inline bool ForeignMessageArenaLite::has_c() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ForeignMessageArenaLite::set_has_c() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ForeignMessageArenaLite::clear_has_c() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ForeignMessageArenaLite::clear_c() {
  c_ = 0;
  clear_has_c();
}
inline ::google::protobuf::int32 ForeignMessageArenaLite::c() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.ForeignMessageArenaLite.c)
  return c_;
}
inline void ForeignMessageArenaLite::set_c(::google::protobuf::int32 value) {
  set_has_c();
  c_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.ForeignMessageArenaLite.c)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace protobuf_unittest

namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::protobuf_unittest::Proto2MapEnumLite> : ::std::true_type {};
template <> struct is_proto_enum< ::protobuf_unittest::Proto2MapEnumPlusExtraLite> : ::std::true_type {};
template <> struct is_proto_enum< ::protobuf_unittest::MapEnumLite> : ::std::true_type {};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2fmap_5flite_5funittest_2eproto
