// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/util/internal/testdata/default_value.proto

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_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.h>
#include <google/protobuf/message.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.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include <google/protobuf/any.pb.h>
#include <google/protobuf/struct.pb.h>
#include <google/protobuf/wrappers.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto 

namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_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[21];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto
namespace google {
namespace protobuf {
namespace testing {
class AnyData;
class AnyDataDefaultTypeInternal;
extern AnyDataDefaultTypeInternal _AnyData_default_instance_;
class AnyData_MapDataEntry_DoNotUse;
class AnyData_MapDataEntry_DoNotUseDefaultTypeInternal;
extern AnyData_MapDataEntry_DoNotUseDefaultTypeInternal _AnyData_MapDataEntry_DoNotUse_default_instance_;
class AnyMessage;
class AnyMessageDefaultTypeInternal;
extern AnyMessageDefaultTypeInternal _AnyMessage_default_instance_;
class DefaultValueTestCases;
class DefaultValueTestCasesDefaultTypeInternal;
extern DefaultValueTestCasesDefaultTypeInternal _DefaultValueTestCases_default_instance_;
class DoubleMessage;
class DoubleMessageDefaultTypeInternal;
extern DoubleMessageDefaultTypeInternal _DoubleMessage_default_instance_;
class DoubleValueMessage;
class DoubleValueMessageDefaultTypeInternal;
extern DoubleValueMessageDefaultTypeInternal _DoubleValueMessage_default_instance_;
class IntToStringMap;
class IntToStringMapDefaultTypeInternal;
extern IntToStringMapDefaultTypeInternal _IntToStringMap_default_instance_;
class IntToStringMap_MapEntry_DoNotUse;
class IntToStringMap_MapEntry_DoNotUseDefaultTypeInternal;
extern IntToStringMap_MapEntry_DoNotUseDefaultTypeInternal _IntToStringMap_MapEntry_DoNotUse_default_instance_;
class ListValueMessage;
class ListValueMessageDefaultTypeInternal;
extern ListValueMessageDefaultTypeInternal _ListValueMessage_default_instance_;
class MessageMap;
class MessageMapDefaultTypeInternal;
extern MessageMapDefaultTypeInternal _MessageMap_default_instance_;
class MessageMap_M;
class MessageMap_MDefaultTypeInternal;
extern MessageMap_MDefaultTypeInternal _MessageMap_M_default_instance_;
class MessageMap_MapEntry_DoNotUse;
class MessageMap_MapEntry_DoNotUseDefaultTypeInternal;
extern MessageMap_MapEntry_DoNotUseDefaultTypeInternal _MessageMap_MapEntry_DoNotUse_default_instance_;
class MixedMap;
class MixedMapDefaultTypeInternal;
extern MixedMapDefaultTypeInternal _MixedMap_default_instance_;
class MixedMap2;
class MixedMap2DefaultTypeInternal;
extern MixedMap2DefaultTypeInternal _MixedMap2_default_instance_;
class MixedMap2_MapEntry_DoNotUse;
class MixedMap2_MapEntry_DoNotUseDefaultTypeInternal;
extern MixedMap2_MapEntry_DoNotUseDefaultTypeInternal _MixedMap2_MapEntry_DoNotUse_default_instance_;
class MixedMap_MapEntry_DoNotUse;
class MixedMap_MapEntry_DoNotUseDefaultTypeInternal;
extern MixedMap_MapEntry_DoNotUseDefaultTypeInternal _MixedMap_MapEntry_DoNotUse_default_instance_;
class RequestMessage;
class RequestMessageDefaultTypeInternal;
extern RequestMessageDefaultTypeInternal _RequestMessage_default_instance_;
class StringtoIntMap;
class StringtoIntMapDefaultTypeInternal;
extern StringtoIntMapDefaultTypeInternal _StringtoIntMap_default_instance_;
class StringtoIntMap_MapEntry_DoNotUse;
class StringtoIntMap_MapEntry_DoNotUseDefaultTypeInternal;
extern StringtoIntMap_MapEntry_DoNotUseDefaultTypeInternal _StringtoIntMap_MapEntry_DoNotUse_default_instance_;
class StructMessage;
class StructMessageDefaultTypeInternal;
extern StructMessageDefaultTypeInternal _StructMessage_default_instance_;
class ValueMessage;
class ValueMessageDefaultTypeInternal;
extern ValueMessageDefaultTypeInternal _ValueMessage_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::protobuf::testing::AnyData* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyData>(Arena*);
template<> ::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::AnyMessage* Arena::CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(Arena*);
template<> ::google::protobuf::testing::DefaultValueTestCases* Arena::CreateMaybeMessage<::google::protobuf::testing::DefaultValueTestCases>(Arena*);
template<> ::google::protobuf::testing::DoubleMessage* Arena::CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(Arena*);
template<> ::google::protobuf::testing::DoubleValueMessage* Arena::CreateMaybeMessage<::google::protobuf::testing::DoubleValueMessage>(Arena*);
template<> ::google::protobuf::testing::IntToStringMap* Arena::CreateMaybeMessage<::google::protobuf::testing::IntToStringMap>(Arena*);
template<> ::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::ListValueMessage* Arena::CreateMaybeMessage<::google::protobuf::testing::ListValueMessage>(Arena*);
template<> ::google::protobuf::testing::MessageMap* Arena::CreateMaybeMessage<::google::protobuf::testing::MessageMap>(Arena*);
template<> ::google::protobuf::testing::MessageMap_M* Arena::CreateMaybeMessage<::google::protobuf::testing::MessageMap_M>(Arena*);
template<> ::google::protobuf::testing::MessageMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::MessageMap_MapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::MixedMap* Arena::CreateMaybeMessage<::google::protobuf::testing::MixedMap>(Arena*);
template<> ::google::protobuf::testing::MixedMap2* Arena::CreateMaybeMessage<::google::protobuf::testing::MixedMap2>(Arena*);
template<> ::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::MixedMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::MixedMap_MapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::RequestMessage* Arena::CreateMaybeMessage<::google::protobuf::testing::RequestMessage>(Arena*);
template<> ::google::protobuf::testing::StringtoIntMap* Arena::CreateMaybeMessage<::google::protobuf::testing::StringtoIntMap>(Arena*);
template<> ::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage<::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse>(Arena*);
template<> ::google::protobuf::testing::StructMessage* Arena::CreateMaybeMessage<::google::protobuf::testing::StructMessage>(Arena*);
template<> ::google::protobuf::testing::ValueMessage* Arena::CreateMaybeMessage<::google::protobuf::testing::ValueMessage>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
namespace testing {

enum MixedMap2_E {
  MixedMap2_E_E0 = 0,
  MixedMap2_E_E1 = 1,
  MixedMap2_E_E2 = 2,
  MixedMap2_E_E3 = 3,
  MixedMap2_E_MixedMap2_E_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  MixedMap2_E_MixedMap2_E_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool MixedMap2_E_IsValid(int value);
const MixedMap2_E MixedMap2_E_E_MIN = MixedMap2_E_E0;
const MixedMap2_E MixedMap2_E_E_MAX = MixedMap2_E_E3;
const int MixedMap2_E_E_ARRAYSIZE = MixedMap2_E_E_MAX + 1;

const ::google::protobuf::EnumDescriptor* MixedMap2_E_descriptor();
inline const ::std::string& MixedMap2_E_Name(MixedMap2_E value) {
  return ::google::protobuf::internal::NameOfEnum(
    MixedMap2_E_descriptor(), value);
}
inline bool MixedMap2_E_Parse(
    const ::std::string& name, MixedMap2_E* value) {
  return ::google::protobuf::internal::ParseNamedEnum<MixedMap2_E>(
    MixedMap2_E_descriptor(), name, value);
}
// ===================================================================

class DefaultValueTestCases : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.DefaultValueTestCases) */ {
 public:
  DefaultValueTestCases();
  virtual ~DefaultValueTestCases();

  DefaultValueTestCases(const DefaultValueTestCases& from);

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

  inline DefaultValueTestCases& operator=(DefaultValueTestCases&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const DefaultValueTestCases& default_instance();

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

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

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

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

  DefaultValueTestCases* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DefaultValueTestCases>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DefaultValueTestCases& from);
  void MergeFrom(const DefaultValueTestCases& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DefaultValueTestCases* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // .google.protobuf.testing.DoubleMessage empty_double = 1;
  bool has_empty_double() const;
  void clear_empty_double();
  static const int kEmptyDoubleFieldNumber = 1;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_empty_double() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& empty_double() const;
  ::google::protobuf::testing::DoubleMessage* release_empty_double();
  ::google::protobuf::testing::DoubleMessage* mutable_empty_double();
  void set_allocated_empty_double(::google::protobuf::testing::DoubleMessage* empty_double);

  // .google.protobuf.testing.DoubleMessage double_with_default_value = 2;
  bool has_double_with_default_value() const;
  void clear_double_with_default_value();
  static const int kDoubleWithDefaultValueFieldNumber = 2;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_double_with_default_value() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& double_with_default_value() const;
  ::google::protobuf::testing::DoubleMessage* release_double_with_default_value();
  ::google::protobuf::testing::DoubleMessage* mutable_double_with_default_value();
  void set_allocated_double_with_default_value(::google::protobuf::testing::DoubleMessage* double_with_default_value);

  // .google.protobuf.testing.DoubleMessage double_with_nondefault_value = 3;
  bool has_double_with_nondefault_value() const;
  void clear_double_with_nondefault_value();
  static const int kDoubleWithNondefaultValueFieldNumber = 3;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_double_with_nondefault_value() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& double_with_nondefault_value() const;
  ::google::protobuf::testing::DoubleMessage* release_double_with_nondefault_value();
  ::google::protobuf::testing::DoubleMessage* mutable_double_with_nondefault_value();
  void set_allocated_double_with_nondefault_value(::google::protobuf::testing::DoubleMessage* double_with_nondefault_value);

  // .google.protobuf.testing.DoubleMessage repeated_double = 4;
  bool has_repeated_double() const;
  void clear_repeated_double();
  static const int kRepeatedDoubleFieldNumber = 4;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_repeated_double() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& repeated_double() const;
  ::google::protobuf::testing::DoubleMessage* release_repeated_double();
  ::google::protobuf::testing::DoubleMessage* mutable_repeated_double();
  void set_allocated_repeated_double(::google::protobuf::testing::DoubleMessage* repeated_double);

  // .google.protobuf.testing.DoubleMessage nested_message = 5;
  bool has_nested_message() const;
  void clear_nested_message();
  static const int kNestedMessageFieldNumber = 5;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_nested_message() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& nested_message() const;
  ::google::protobuf::testing::DoubleMessage* release_nested_message();
  ::google::protobuf::testing::DoubleMessage* mutable_nested_message();
  void set_allocated_nested_message(::google::protobuf::testing::DoubleMessage* nested_message);

  // .google.protobuf.testing.DoubleMessage repeated_nested_message = 6;
  bool has_repeated_nested_message() const;
  void clear_repeated_nested_message();
  static const int kRepeatedNestedMessageFieldNumber = 6;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_repeated_nested_message() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& repeated_nested_message() const;
  ::google::protobuf::testing::DoubleMessage* release_repeated_nested_message();
  ::google::protobuf::testing::DoubleMessage* mutable_repeated_nested_message();
  void set_allocated_repeated_nested_message(::google::protobuf::testing::DoubleMessage* repeated_nested_message);

  // .google.protobuf.testing.DoubleMessage double_message_with_oneof = 7;
  bool has_double_message_with_oneof() const;
  void clear_double_message_with_oneof();
  static const int kDoubleMessageWithOneofFieldNumber = 7;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_double_message_with_oneof() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& double_message_with_oneof() const;
  ::google::protobuf::testing::DoubleMessage* release_double_message_with_oneof();
  ::google::protobuf::testing::DoubleMessage* mutable_double_message_with_oneof();
  void set_allocated_double_message_with_oneof(::google::protobuf::testing::DoubleMessage* double_message_with_oneof);

  // .google.protobuf.testing.StructMessage empty_struct = 201;
  bool has_empty_struct() const;
  void clear_empty_struct();
  static const int kEmptyStructFieldNumber = 201;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_empty_struct() const;
  public:
  const ::google::protobuf::testing::StructMessage& empty_struct() const;
  ::google::protobuf::testing::StructMessage* release_empty_struct();
  ::google::protobuf::testing::StructMessage* mutable_empty_struct();
  void set_allocated_empty_struct(::google::protobuf::testing::StructMessage* empty_struct);

  // .google.protobuf.testing.StructMessage empty_struct2 = 202;
  bool has_empty_struct2() const;
  void clear_empty_struct2();
  static const int kEmptyStruct2FieldNumber = 202;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_empty_struct2() const;
  public:
  const ::google::protobuf::testing::StructMessage& empty_struct2() const;
  ::google::protobuf::testing::StructMessage* release_empty_struct2();
  ::google::protobuf::testing::StructMessage* mutable_empty_struct2();
  void set_allocated_empty_struct2(::google::protobuf::testing::StructMessage* empty_struct2);

  // .google.protobuf.testing.StructMessage struct_with_null_value = 203;
  bool has_struct_with_null_value() const;
  void clear_struct_with_null_value();
  static const int kStructWithNullValueFieldNumber = 203;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_struct_with_null_value() const;
  public:
  const ::google::protobuf::testing::StructMessage& struct_with_null_value() const;
  ::google::protobuf::testing::StructMessage* release_struct_with_null_value();
  ::google::protobuf::testing::StructMessage* mutable_struct_with_null_value();
  void set_allocated_struct_with_null_value(::google::protobuf::testing::StructMessage* struct_with_null_value);

  // .google.protobuf.testing.StructMessage struct_with_values = 204;
  bool has_struct_with_values() const;
  void clear_struct_with_values();
  static const int kStructWithValuesFieldNumber = 204;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_struct_with_values() const;
  public:
  const ::google::protobuf::testing::StructMessage& struct_with_values() const;
  ::google::protobuf::testing::StructMessage* release_struct_with_values();
  ::google::protobuf::testing::StructMessage* mutable_struct_with_values();
  void set_allocated_struct_with_values(::google::protobuf::testing::StructMessage* struct_with_values);

  // .google.protobuf.testing.StructMessage struct_with_nested_struct = 205;
  bool has_struct_with_nested_struct() const;
  void clear_struct_with_nested_struct();
  static const int kStructWithNestedStructFieldNumber = 205;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_struct_with_nested_struct() const;
  public:
  const ::google::protobuf::testing::StructMessage& struct_with_nested_struct() const;
  ::google::protobuf::testing::StructMessage* release_struct_with_nested_struct();
  ::google::protobuf::testing::StructMessage* mutable_struct_with_nested_struct();
  void set_allocated_struct_with_nested_struct(::google::protobuf::testing::StructMessage* struct_with_nested_struct);

  // .google.protobuf.testing.StructMessage struct_with_nested_list = 206;
  bool has_struct_with_nested_list() const;
  void clear_struct_with_nested_list();
  static const int kStructWithNestedListFieldNumber = 206;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_struct_with_nested_list() const;
  public:
  const ::google::protobuf::testing::StructMessage& struct_with_nested_list() const;
  ::google::protobuf::testing::StructMessage* release_struct_with_nested_list();
  ::google::protobuf::testing::StructMessage* mutable_struct_with_nested_list();
  void set_allocated_struct_with_nested_list(::google::protobuf::testing::StructMessage* struct_with_nested_list);

  // .google.protobuf.testing.StructMessage struct_with_list_of_nulls = 207;
  bool has_struct_with_list_of_nulls() const;
  void clear_struct_with_list_of_nulls();
  static const int kStructWithListOfNullsFieldNumber = 207;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_struct_with_list_of_nulls() const;
  public:
  const ::google::protobuf::testing::StructMessage& struct_with_list_of_nulls() const;
  ::google::protobuf::testing::StructMessage* release_struct_with_list_of_nulls();
  ::google::protobuf::testing::StructMessage* mutable_struct_with_list_of_nulls();
  void set_allocated_struct_with_list_of_nulls(::google::protobuf::testing::StructMessage* struct_with_list_of_nulls);

  // .google.protobuf.testing.StructMessage struct_with_list_of_lists = 208;
  bool has_struct_with_list_of_lists() const;
  void clear_struct_with_list_of_lists();
  static const int kStructWithListOfListsFieldNumber = 208;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_struct_with_list_of_lists() const;
  public:
  const ::google::protobuf::testing::StructMessage& struct_with_list_of_lists() const;
  ::google::protobuf::testing::StructMessage* release_struct_with_list_of_lists();
  ::google::protobuf::testing::StructMessage* mutable_struct_with_list_of_lists();
  void set_allocated_struct_with_list_of_lists(::google::protobuf::testing::StructMessage* struct_with_list_of_lists);

  // .google.protobuf.testing.StructMessage struct_with_list_of_structs = 209;
  bool has_struct_with_list_of_structs() const;
  void clear_struct_with_list_of_structs();
  static const int kStructWithListOfStructsFieldNumber = 209;
  private:
  const ::google::protobuf::testing::StructMessage& _internal_struct_with_list_of_structs() const;
  public:
  const ::google::protobuf::testing::StructMessage& struct_with_list_of_structs() const;
  ::google::protobuf::testing::StructMessage* release_struct_with_list_of_structs();
  ::google::protobuf::testing::StructMessage* mutable_struct_with_list_of_structs();
  void set_allocated_struct_with_list_of_structs(::google::protobuf::testing::StructMessage* struct_with_list_of_structs);

  // .google.protobuf.Struct top_level_struct = 210;
  bool has_top_level_struct() const;
  void clear_top_level_struct();
  static const int kTopLevelStructFieldNumber = 210;
  private:
  const ::google::protobuf::Struct& _internal_top_level_struct() const;
  public:
  const ::google::protobuf::Struct& top_level_struct() const;
  ::google::protobuf::Struct* release_top_level_struct();
  ::google::protobuf::Struct* mutable_top_level_struct();
  void set_allocated_top_level_struct(::google::protobuf::Struct* top_level_struct);

  // .google.protobuf.testing.ValueMessage value_wrapper_simple = 212;
  bool has_value_wrapper_simple() const;
  void clear_value_wrapper_simple();
  static const int kValueWrapperSimpleFieldNumber = 212;
  private:
  const ::google::protobuf::testing::ValueMessage& _internal_value_wrapper_simple() const;
  public:
  const ::google::protobuf::testing::ValueMessage& value_wrapper_simple() const;
  ::google::protobuf::testing::ValueMessage* release_value_wrapper_simple();
  ::google::protobuf::testing::ValueMessage* mutable_value_wrapper_simple();
  void set_allocated_value_wrapper_simple(::google::protobuf::testing::ValueMessage* value_wrapper_simple);

  // .google.protobuf.testing.ValueMessage value_wrapper_with_struct = 213;
  bool has_value_wrapper_with_struct() const;
  void clear_value_wrapper_with_struct();
  static const int kValueWrapperWithStructFieldNumber = 213;
  private:
  const ::google::protobuf::testing::ValueMessage& _internal_value_wrapper_with_struct() const;
  public:
  const ::google::protobuf::testing::ValueMessage& value_wrapper_with_struct() const;
  ::google::protobuf::testing::ValueMessage* release_value_wrapper_with_struct();
  ::google::protobuf::testing::ValueMessage* mutable_value_wrapper_with_struct();
  void set_allocated_value_wrapper_with_struct(::google::protobuf::testing::ValueMessage* value_wrapper_with_struct);

  // .google.protobuf.testing.ValueMessage value_wrapper_with_list = 214;
  bool has_value_wrapper_with_list() const;
  void clear_value_wrapper_with_list();
  static const int kValueWrapperWithListFieldNumber = 214;
  private:
  const ::google::protobuf::testing::ValueMessage& _internal_value_wrapper_with_list() const;
  public:
  const ::google::protobuf::testing::ValueMessage& value_wrapper_with_list() const;
  ::google::protobuf::testing::ValueMessage* release_value_wrapper_with_list();
  ::google::protobuf::testing::ValueMessage* mutable_value_wrapper_with_list();
  void set_allocated_value_wrapper_with_list(::google::protobuf::testing::ValueMessage* value_wrapper_with_list);

  // .google.protobuf.testing.ListValueMessage list_value_wrapper = 215;
  bool has_list_value_wrapper() const;
  void clear_list_value_wrapper();
  static const int kListValueWrapperFieldNumber = 215;
  private:
  const ::google::protobuf::testing::ListValueMessage& _internal_list_value_wrapper() const;
  public:
  const ::google::protobuf::testing::ListValueMessage& list_value_wrapper() const;
  ::google::protobuf::testing::ListValueMessage* release_list_value_wrapper();
  ::google::protobuf::testing::ListValueMessage* mutable_list_value_wrapper();
  void set_allocated_list_value_wrapper(::google::protobuf::testing::ListValueMessage* list_value_wrapper);

  // .google.protobuf.Value top_level_value_simple = 216;
  bool has_top_level_value_simple() const;
  void clear_top_level_value_simple();
  static const int kTopLevelValueSimpleFieldNumber = 216;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_simple() const;
  public:
  const ::google::protobuf::Value& top_level_value_simple() const;
  ::google::protobuf::Value* release_top_level_value_simple();
  ::google::protobuf::Value* mutable_top_level_value_simple();
  void set_allocated_top_level_value_simple(::google::protobuf::Value* top_level_value_simple);

  // .google.protobuf.Value top_level_value_with_struct = 217;
  bool has_top_level_value_with_struct() const;
  void clear_top_level_value_with_struct();
  static const int kTopLevelValueWithStructFieldNumber = 217;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_with_struct() const;
  public:
  const ::google::protobuf::Value& top_level_value_with_struct() const;
  ::google::protobuf::Value* release_top_level_value_with_struct();
  ::google::protobuf::Value* mutable_top_level_value_with_struct();
  void set_allocated_top_level_value_with_struct(::google::protobuf::Value* top_level_value_with_struct);

  // .google.protobuf.Value top_level_value_with_list = 218;
  bool has_top_level_value_with_list() const;
  void clear_top_level_value_with_list();
  static const int kTopLevelValueWithListFieldNumber = 218;
  private:
  const ::google::protobuf::Value& _internal_top_level_value_with_list() const;
  public:
  const ::google::protobuf::Value& top_level_value_with_list() const;
  ::google::protobuf::Value* release_top_level_value_with_list();
  ::google::protobuf::Value* mutable_top_level_value_with_list();
  void set_allocated_top_level_value_with_list(::google::protobuf::Value* top_level_value_with_list);

  // .google.protobuf.ListValue top_level_listvalue = 219;
  bool has_top_level_listvalue() const;
  void clear_top_level_listvalue();
  static const int kTopLevelListvalueFieldNumber = 219;
  private:
  const ::google::protobuf::ListValue& _internal_top_level_listvalue() const;
  public:
  const ::google::protobuf::ListValue& top_level_listvalue() const;
  ::google::protobuf::ListValue* release_top_level_listvalue();
  ::google::protobuf::ListValue* mutable_top_level_listvalue();
  void set_allocated_top_level_listvalue(::google::protobuf::ListValue* top_level_listvalue);

  // .google.protobuf.testing.AnyMessage empty_any = 301;
  bool has_empty_any() const;
  void clear_empty_any();
  static const int kEmptyAnyFieldNumber = 301;
  private:
  const ::google::protobuf::testing::AnyMessage& _internal_empty_any() const;
  public:
  const ::google::protobuf::testing::AnyMessage& empty_any() const;
  ::google::protobuf::testing::AnyMessage* release_empty_any();
  ::google::protobuf::testing::AnyMessage* mutable_empty_any();
  void set_allocated_empty_any(::google::protobuf::testing::AnyMessage* empty_any);

  // .google.protobuf.testing.AnyMessage type_only_any = 302;
  bool has_type_only_any() const;
  void clear_type_only_any();
  static const int kTypeOnlyAnyFieldNumber = 302;
  private:
  const ::google::protobuf::testing::AnyMessage& _internal_type_only_any() const;
  public:
  const ::google::protobuf::testing::AnyMessage& type_only_any() const;
  ::google::protobuf::testing::AnyMessage* release_type_only_any();
  ::google::protobuf::testing::AnyMessage* mutable_type_only_any();
  void set_allocated_type_only_any(::google::protobuf::testing::AnyMessage* type_only_any);

  // .google.protobuf.testing.AnyMessage recursive_any = 303;
  bool has_recursive_any() const;
  void clear_recursive_any();
  static const int kRecursiveAnyFieldNumber = 303;
  private:
  const ::google::protobuf::testing::AnyMessage& _internal_recursive_any() const;
  public:
  const ::google::protobuf::testing::AnyMessage& recursive_any() const;
  ::google::protobuf::testing::AnyMessage* release_recursive_any();
  ::google::protobuf::testing::AnyMessage* mutable_recursive_any();
  void set_allocated_recursive_any(::google::protobuf::testing::AnyMessage* recursive_any);

  // .google.protobuf.testing.AnyMessage any_with_message_value = 304;
  bool has_any_with_message_value() const;
  void clear_any_with_message_value();
  static const int kAnyWithMessageValueFieldNumber = 304;
  private:
  const ::google::protobuf::testing::AnyMessage& _internal_any_with_message_value() const;
  public:
  const ::google::protobuf::testing::AnyMessage& any_with_message_value() const;
  ::google::protobuf::testing::AnyMessage* release_any_with_message_value();
  ::google::protobuf::testing::AnyMessage* mutable_any_with_message_value();
  void set_allocated_any_with_message_value(::google::protobuf::testing::AnyMessage* any_with_message_value);

  // .google.protobuf.testing.AnyMessage any_with_nested_message = 305;
  bool has_any_with_nested_message() const;
  void clear_any_with_nested_message();
  static const int kAnyWithNestedMessageFieldNumber = 305;
  private:
  const ::google::protobuf::testing::AnyMessage& _internal_any_with_nested_message() const;
  public:
  const ::google::protobuf::testing::AnyMessage& any_with_nested_message() const;
  ::google::protobuf::testing::AnyMessage* release_any_with_nested_message();
  ::google::protobuf::testing::AnyMessage* mutable_any_with_nested_message();
  void set_allocated_any_with_nested_message(::google::protobuf::testing::AnyMessage* any_with_nested_message);

  // .google.protobuf.testing.AnyMessage any_with_message_containing_map = 306;
  bool has_any_with_message_containing_map() const;
  void clear_any_with_message_containing_map();
  static const int kAnyWithMessageContainingMapFieldNumber = 306;
  private:
  const ::google::protobuf::testing::AnyMessage& _internal_any_with_message_containing_map() const;
  public:
  const ::google::protobuf::testing::AnyMessage& any_with_message_containing_map() const;
  ::google::protobuf::testing::AnyMessage* release_any_with_message_containing_map();
  ::google::protobuf::testing::AnyMessage* mutable_any_with_message_containing_map();
  void set_allocated_any_with_message_containing_map(::google::protobuf::testing::AnyMessage* any_with_message_containing_map);

  // .google.protobuf.testing.AnyMessage any_with_message_containing_struct = 307;
  bool has_any_with_message_containing_struct() const;
  void clear_any_with_message_containing_struct();
  static const int kAnyWithMessageContainingStructFieldNumber = 307;
  private:
  const ::google::protobuf::testing::AnyMessage& _internal_any_with_message_containing_struct() const;
  public:
  const ::google::protobuf::testing::AnyMessage& any_with_message_containing_struct() const;
  ::google::protobuf::testing::AnyMessage* release_any_with_message_containing_struct();
  ::google::protobuf::testing::AnyMessage* mutable_any_with_message_containing_struct();
  void set_allocated_any_with_message_containing_struct(::google::protobuf::testing::AnyMessage* any_with_message_containing_struct);

  // .google.protobuf.Any top_level_any = 308;
  bool has_top_level_any() const;
  void clear_top_level_any();
  static const int kTopLevelAnyFieldNumber = 308;
  private:
  const ::google::protobuf::Any& _internal_top_level_any() const;
  public:
  const ::google::protobuf::Any& top_level_any() const;
  ::google::protobuf::Any* release_top_level_any();
  ::google::protobuf::Any* mutable_top_level_any();
  void set_allocated_top_level_any(::google::protobuf::Any* top_level_any);

  // .google.protobuf.testing.StringtoIntMap empty_map = 401;
  bool has_empty_map() const;
  void clear_empty_map();
  static const int kEmptyMapFieldNumber = 401;
  private:
  const ::google::protobuf::testing::StringtoIntMap& _internal_empty_map() const;
  public:
  const ::google::protobuf::testing::StringtoIntMap& empty_map() const;
  ::google::protobuf::testing::StringtoIntMap* release_empty_map();
  ::google::protobuf::testing::StringtoIntMap* mutable_empty_map();
  void set_allocated_empty_map(::google::protobuf::testing::StringtoIntMap* empty_map);

  // .google.protobuf.testing.StringtoIntMap string_to_int = 402;
  bool has_string_to_int() const;
  void clear_string_to_int();
  static const int kStringToIntFieldNumber = 402;
  private:
  const ::google::protobuf::testing::StringtoIntMap& _internal_string_to_int() const;
  public:
  const ::google::protobuf::testing::StringtoIntMap& string_to_int() const;
  ::google::protobuf::testing::StringtoIntMap* release_string_to_int();
  ::google::protobuf::testing::StringtoIntMap* mutable_string_to_int();
  void set_allocated_string_to_int(::google::protobuf::testing::StringtoIntMap* string_to_int);

  // .google.protobuf.testing.IntToStringMap int_to_string = 403;
  bool has_int_to_string() const;
  void clear_int_to_string();
  static const int kIntToStringFieldNumber = 403;
  private:
  const ::google::protobuf::testing::IntToStringMap& _internal_int_to_string() const;
  public:
  const ::google::protobuf::testing::IntToStringMap& int_to_string() const;
  ::google::protobuf::testing::IntToStringMap* release_int_to_string();
  ::google::protobuf::testing::IntToStringMap* mutable_int_to_string();
  void set_allocated_int_to_string(::google::protobuf::testing::IntToStringMap* int_to_string);

  // .google.protobuf.testing.MixedMap mixed1 = 404;
  bool has_mixed1() const;
  void clear_mixed1();
  static const int kMixed1FieldNumber = 404;
  private:
  const ::google::protobuf::testing::MixedMap& _internal_mixed1() const;
  public:
  const ::google::protobuf::testing::MixedMap& mixed1() const;
  ::google::protobuf::testing::MixedMap* release_mixed1();
  ::google::protobuf::testing::MixedMap* mutable_mixed1();
  void set_allocated_mixed1(::google::protobuf::testing::MixedMap* mixed1);

  // .google.protobuf.testing.MixedMap2 mixed2 = 405;
  bool has_mixed2() const;
  void clear_mixed2();
  static const int kMixed2FieldNumber = 405;
  private:
  const ::google::protobuf::testing::MixedMap2& _internal_mixed2() const;
  public:
  const ::google::protobuf::testing::MixedMap2& mixed2() const;
  ::google::protobuf::testing::MixedMap2* release_mixed2();
  ::google::protobuf::testing::MixedMap2* mutable_mixed2();
  void set_allocated_mixed2(::google::protobuf::testing::MixedMap2* mixed2);

  // .google.protobuf.testing.MixedMap2 empty_mixed2 = 406;
  bool has_empty_mixed2() const;
  void clear_empty_mixed2();
  static const int kEmptyMixed2FieldNumber = 406;
  private:
  const ::google::protobuf::testing::MixedMap2& _internal_empty_mixed2() const;
  public:
  const ::google::protobuf::testing::MixedMap2& empty_mixed2() const;
  ::google::protobuf::testing::MixedMap2* release_empty_mixed2();
  ::google::protobuf::testing::MixedMap2* mutable_empty_mixed2();
  void set_allocated_empty_mixed2(::google::protobuf::testing::MixedMap2* empty_mixed2);

  // .google.protobuf.testing.MessageMap map_of_objects = 407;
  bool has_map_of_objects() const;
  void clear_map_of_objects();
  static const int kMapOfObjectsFieldNumber = 407;
  private:
  const ::google::protobuf::testing::MessageMap& _internal_map_of_objects() const;
  public:
  const ::google::protobuf::testing::MessageMap& map_of_objects() const;
  ::google::protobuf::testing::MessageMap* release_map_of_objects();
  ::google::protobuf::testing::MessageMap* mutable_map_of_objects();
  void set_allocated_map_of_objects(::google::protobuf::testing::MessageMap* map_of_objects);

  // .google.protobuf.testing.MixedMap mixed_empty = 408;
  bool has_mixed_empty() const;
  void clear_mixed_empty();
  static const int kMixedEmptyFieldNumber = 408;
  private:
  const ::google::protobuf::testing::MixedMap& _internal_mixed_empty() const;
  public:
  const ::google::protobuf::testing::MixedMap& mixed_empty() const;
  ::google::protobuf::testing::MixedMap* release_mixed_empty();
  ::google::protobuf::testing::MixedMap* mutable_mixed_empty();
  void set_allocated_mixed_empty(::google::protobuf::testing::MixedMap* mixed_empty);

  // .google.protobuf.testing.MessageMap message_map_empty = 409;
  bool has_message_map_empty() const;
  void clear_message_map_empty();
  static const int kMessageMapEmptyFieldNumber = 409;
  private:
  const ::google::protobuf::testing::MessageMap& _internal_message_map_empty() const;
  public:
  const ::google::protobuf::testing::MessageMap& message_map_empty() const;
  ::google::protobuf::testing::MessageMap* release_message_map_empty();
  ::google::protobuf::testing::MessageMap* mutable_message_map_empty();
  void set_allocated_message_map_empty(::google::protobuf::testing::MessageMap* message_map_empty);

  // .google.protobuf.testing.DoubleValueMessage double_value = 501;
  bool has_double_value() const;
  void clear_double_value();
  static const int kDoubleValueFieldNumber = 501;
  private:
  const ::google::protobuf::testing::DoubleValueMessage& _internal_double_value() const;
  public:
  const ::google::protobuf::testing::DoubleValueMessage& double_value() const;
  ::google::protobuf::testing::DoubleValueMessage* release_double_value();
  ::google::protobuf::testing::DoubleValueMessage* mutable_double_value();
  void set_allocated_double_value(::google::protobuf::testing::DoubleValueMessage* double_value);

  // .google.protobuf.testing.DoubleValueMessage double_value_default = 502;
  bool has_double_value_default() const;
  void clear_double_value_default();
  static const int kDoubleValueDefaultFieldNumber = 502;
  private:
  const ::google::protobuf::testing::DoubleValueMessage& _internal_double_value_default() const;
  public:
  const ::google::protobuf::testing::DoubleValueMessage& double_value_default() const;
  ::google::protobuf::testing::DoubleValueMessage* release_double_value_default();
  ::google::protobuf::testing::DoubleValueMessage* mutable_double_value_default();
  void set_allocated_double_value_default(::google::protobuf::testing::DoubleValueMessage* double_value_default);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.DefaultValueTestCases)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::testing::DoubleMessage* empty_double_;
  ::google::protobuf::testing::DoubleMessage* double_with_default_value_;
  ::google::protobuf::testing::DoubleMessage* double_with_nondefault_value_;
  ::google::protobuf::testing::DoubleMessage* repeated_double_;
  ::google::protobuf::testing::DoubleMessage* nested_message_;
  ::google::protobuf::testing::DoubleMessage* repeated_nested_message_;
  ::google::protobuf::testing::DoubleMessage* double_message_with_oneof_;
  ::google::protobuf::testing::StructMessage* empty_struct_;
  ::google::protobuf::testing::StructMessage* empty_struct2_;
  ::google::protobuf::testing::StructMessage* struct_with_null_value_;
  ::google::protobuf::testing::StructMessage* struct_with_values_;
  ::google::protobuf::testing::StructMessage* struct_with_nested_struct_;
  ::google::protobuf::testing::StructMessage* struct_with_nested_list_;
  ::google::protobuf::testing::StructMessage* struct_with_list_of_nulls_;
  ::google::protobuf::testing::StructMessage* struct_with_list_of_lists_;
  ::google::protobuf::testing::StructMessage* struct_with_list_of_structs_;
  ::google::protobuf::Struct* top_level_struct_;
  ::google::protobuf::testing::ValueMessage* value_wrapper_simple_;
  ::google::protobuf::testing::ValueMessage* value_wrapper_with_struct_;
  ::google::protobuf::testing::ValueMessage* value_wrapper_with_list_;
  ::google::protobuf::testing::ListValueMessage* list_value_wrapper_;
  ::google::protobuf::Value* top_level_value_simple_;
  ::google::protobuf::Value* top_level_value_with_struct_;
  ::google::protobuf::Value* top_level_value_with_list_;
  ::google::protobuf::ListValue* top_level_listvalue_;
  ::google::protobuf::testing::AnyMessage* empty_any_;
  ::google::protobuf::testing::AnyMessage* type_only_any_;
  ::google::protobuf::testing::AnyMessage* recursive_any_;
  ::google::protobuf::testing::AnyMessage* any_with_message_value_;
  ::google::protobuf::testing::AnyMessage* any_with_nested_message_;
  ::google::protobuf::testing::AnyMessage* any_with_message_containing_map_;
  ::google::protobuf::testing::AnyMessage* any_with_message_containing_struct_;
  ::google::protobuf::Any* top_level_any_;
  ::google::protobuf::testing::StringtoIntMap* empty_map_;
  ::google::protobuf::testing::StringtoIntMap* string_to_int_;
  ::google::protobuf::testing::IntToStringMap* int_to_string_;
  ::google::protobuf::testing::MixedMap* mixed1_;
  ::google::protobuf::testing::MixedMap2* mixed2_;
  ::google::protobuf::testing::MixedMap2* empty_mixed2_;
  ::google::protobuf::testing::MessageMap* map_of_objects_;
  ::google::protobuf::testing::MixedMap* mixed_empty_;
  ::google::protobuf::testing::MessageMap* message_map_empty_;
  ::google::protobuf::testing::DoubleValueMessage* double_value_;
  ::google::protobuf::testing::DoubleValueMessage* double_value_default_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class DoubleMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.DoubleMessage) */ {
 public:
  DoubleMessage();
  virtual ~DoubleMessage();

  DoubleMessage(const DoubleMessage& from);

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

  inline DoubleMessage& operator=(DoubleMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const DoubleMessage& default_instance();

  enum ValueCase {
    kStrValue = 112,
    kNumValue = 113,
    VALUE_NOT_SET = 0,
  };

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

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

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

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

  DoubleMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DoubleMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DoubleMessage& from);
  void MergeFrom(const DoubleMessage& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DoubleMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // repeated double repeated_double = 2;
  int repeated_double_size() const;
  void clear_repeated_double();
  static const int kRepeatedDoubleFieldNumber = 2;
  double repeated_double(int index) const;
  void set_repeated_double(int index, double value);
  void add_repeated_double(double value);
  const ::google::protobuf::RepeatedField< double >&
      repeated_double() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_repeated_double();

  // repeated .google.protobuf.testing.DoubleMessage repeated_nested_message = 4;
  int repeated_nested_message_size() const;
  void clear_repeated_nested_message();
  static const int kRepeatedNestedMessageFieldNumber = 4;
  ::google::protobuf::testing::DoubleMessage* mutable_repeated_nested_message(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::DoubleMessage >*
      mutable_repeated_nested_message();
  const ::google::protobuf::testing::DoubleMessage& repeated_nested_message(int index) const;
  ::google::protobuf::testing::DoubleMessage* add_repeated_nested_message();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::DoubleMessage >&
      repeated_nested_message() const;

  // .google.protobuf.testing.DoubleMessage nested_message = 3;
  bool has_nested_message() const;
  void clear_nested_message();
  static const int kNestedMessageFieldNumber = 3;
  private:
  const ::google::protobuf::testing::DoubleMessage& _internal_nested_message() const;
  public:
  const ::google::protobuf::testing::DoubleMessage& nested_message() const;
  ::google::protobuf::testing::DoubleMessage* release_nested_message();
  ::google::protobuf::testing::DoubleMessage* mutable_nested_message();
  void set_allocated_nested_message(::google::protobuf::testing::DoubleMessage* nested_message);

  // .google.protobuf.DoubleValue double_wrapper = 100;
  bool has_double_wrapper() const;
  void clear_double_wrapper();
  static const int kDoubleWrapperFieldNumber = 100;
  private:
  const ::google::protobuf::DoubleValue& _internal_double_wrapper() const;
  public:
  const ::google::protobuf::DoubleValue& double_wrapper() const;
  ::google::protobuf::DoubleValue* release_double_wrapper();
  ::google::protobuf::DoubleValue* mutable_double_wrapper();
  void set_allocated_double_wrapper(::google::protobuf::DoubleValue* double_wrapper);

  // double double_value = 1;
  void clear_double_value();
  static const int kDoubleValueFieldNumber = 1;
  double double_value() const;
  void set_double_value(double value);

  // string str_value = 112;
  private:
  bool has_str_value() const;
  public:
  void clear_str_value();
  static const int kStrValueFieldNumber = 112;
  const ::std::string& str_value() const;
  void set_str_value(const ::std::string& value);
  #if LANG_CXX11
  void set_str_value(::std::string&& value);
  #endif
  void set_str_value(const char* value);
  void set_str_value(const char* value, size_t size);
  ::std::string* mutable_str_value();
  ::std::string* release_str_value();
  void set_allocated_str_value(::std::string* str_value);

  // int64 num_value = 113;
  private:
  bool has_num_value() const;
  public:
  void clear_num_value();
  static const int kNumValueFieldNumber = 113;
  ::google::protobuf::int64 num_value() const;
  void set_num_value(::google::protobuf::int64 value);

  void clear_value();
  ValueCase value_case() const;
  // @@protoc_insertion_point(class_scope:google.protobuf.testing.DoubleMessage)
 private:
  void set_has_str_value();
  void set_has_num_value();

  inline bool has_value() const;
  inline void clear_has_value();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< double > repeated_double_;
  mutable int _repeated_double_cached_byte_size_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::DoubleMessage > repeated_nested_message_;
  ::google::protobuf::testing::DoubleMessage* nested_message_;
  ::google::protobuf::DoubleValue* double_wrapper_;
  double double_value_;
  union ValueUnion {
    ValueUnion() {}
    ::google::protobuf::internal::ArenaStringPtr str_value_;
    ::google::protobuf::int64 num_value_;
  } value_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class StructMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.StructMessage) */ {
 public:
  StructMessage();
  virtual ~StructMessage();

  StructMessage(const StructMessage& from);

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

  inline StructMessage& operator=(StructMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const StructMessage& default_instance();

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

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

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

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

  StructMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StructMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StructMessage& from);
  void MergeFrom(const StructMessage& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StructMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // .google.protobuf.Struct struct = 1;
  bool has_struct_() const;
  void clear_struct_();
  static const int kStructFieldNumber = 1;
  private:
  const ::google::protobuf::Struct& _internal_struct_() const;
  public:
  const ::google::protobuf::Struct& struct_() const;
  ::google::protobuf::Struct* release_struct_();
  ::google::protobuf::Struct* mutable_struct_();
  void set_allocated_struct_(::google::protobuf::Struct* struct_);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.StructMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Struct* struct__;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ValueMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.ValueMessage) */ {
 public:
  ValueMessage();
  virtual ~ValueMessage();

  ValueMessage(const ValueMessage& from);

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

  inline ValueMessage& operator=(ValueMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ValueMessage& default_instance();

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

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

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

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

  ValueMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ValueMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const ValueMessage& from);
  void MergeFrom(const ValueMessage& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ValueMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // .google.protobuf.Value value = 1;
  bool has_value() const;
  void clear_value();
  static const int kValueFieldNumber = 1;
  private:
  const ::google::protobuf::Value& _internal_value() const;
  public:
  const ::google::protobuf::Value& value() const;
  ::google::protobuf::Value* release_value();
  ::google::protobuf::Value* mutable_value();
  void set_allocated_value(::google::protobuf::Value* value);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.ValueMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Value* value_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ListValueMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.ListValueMessage) */ {
 public:
  ListValueMessage();
  virtual ~ListValueMessage();

  ListValueMessage(const ListValueMessage& from);

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

  inline ListValueMessage& operator=(ListValueMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ListValueMessage& default_instance();

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

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

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

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

  ListValueMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ListValueMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const ListValueMessage& from);
  void MergeFrom(const ListValueMessage& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListValueMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // .google.protobuf.ListValue shopping_list = 1;
  bool has_shopping_list() const;
  void clear_shopping_list();
  static const int kShoppingListFieldNumber = 1;
  private:
  const ::google::protobuf::ListValue& _internal_shopping_list() const;
  public:
  const ::google::protobuf::ListValue& shopping_list() const;
  ::google::protobuf::ListValue* release_shopping_list();
  ::google::protobuf::ListValue* mutable_shopping_list();
  void set_allocated_shopping_list(::google::protobuf::ListValue* shopping_list);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.ListValueMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::ListValue* shopping_list_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class RequestMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.RequestMessage) */ {
 public:
  RequestMessage();
  virtual ~RequestMessage();

  RequestMessage(const RequestMessage& from);

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

  inline RequestMessage& operator=(RequestMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RequestMessage& default_instance();

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

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

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

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

  RequestMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RequestMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const RequestMessage& from);
  void MergeFrom(const RequestMessage& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RequestMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // string content = 1;
  void clear_content();
  static const int kContentFieldNumber = 1;
  const ::std::string& content() const;
  void set_content(const ::std::string& value);
  #if LANG_CXX11
  void set_content(::std::string&& value);
  #endif
  void set_content(const char* value);
  void set_content(const char* value, size_t size);
  ::std::string* mutable_content();
  ::std::string* release_content();
  void set_allocated_content(::std::string* content);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.RequestMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr content_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AnyMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.AnyMessage) */ {
 public:
  AnyMessage();
  virtual ~AnyMessage();

  AnyMessage(const AnyMessage& from);

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

  inline AnyMessage& operator=(AnyMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AnyMessage& default_instance();

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

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

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

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

  AnyMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AnyMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AnyMessage& from);
  void MergeFrom(const AnyMessage& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AnyMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // .google.protobuf.Any any = 1;
  bool has_any() const;
  void clear_any();
  static const int kAnyFieldNumber = 1;
  private:
  const ::google::protobuf::Any& _internal_any() const;
  public:
  const ::google::protobuf::Any& any() const;
  ::google::protobuf::Any* release_any();
  ::google::protobuf::Any* mutable_any();
  void set_allocated_any(::google::protobuf::Any* any);

  // .google.protobuf.testing.AnyData data = 2;
  bool has_data() const;
  void clear_data();
  static const int kDataFieldNumber = 2;
  private:
  const ::google::protobuf::testing::AnyData& _internal_data() const;
  public:
  const ::google::protobuf::testing::AnyData& data() const;
  ::google::protobuf::testing::AnyData* release_data();
  ::google::protobuf::testing::AnyData* mutable_data();
  void set_allocated_data(::google::protobuf::testing::AnyData* data);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.AnyMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Any* any_;
  ::google::protobuf::testing::AnyData* data_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AnyData_MapDataEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<AnyData_MapDataEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<AnyData_MapDataEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  AnyData_MapDataEntry_DoNotUse();
  AnyData_MapDataEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const AnyData_MapDataEntry_DoNotUse& other);
  static const AnyData_MapDataEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const AnyData_MapDataEntry_DoNotUse*>(&_AnyData_MapDataEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class AnyData : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.AnyData) */ {
 public:
  AnyData();
  virtual ~AnyData();

  AnyData(const AnyData& from);

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

  inline AnyData& operator=(AnyData&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AnyData& default_instance();

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

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

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

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

  AnyData* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AnyData>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AnyData& from);
  void MergeFrom(const AnyData& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AnyData* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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


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

  // repeated string msgs = 3;
  int msgs_size() const;
  void clear_msgs();
  static const int kMsgsFieldNumber = 3;
  const ::std::string& msgs(int index) const;
  ::std::string* mutable_msgs(int index);
  void set_msgs(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_msgs(int index, ::std::string&& value);
  #endif
  void set_msgs(int index, const char* value);
  void set_msgs(int index, const char* value, size_t size);
  ::std::string* add_msgs();
  void add_msgs(const ::std::string& value);
  #if LANG_CXX11
  void add_msgs(::std::string&& value);
  #endif
  void add_msgs(const char* value);
  void add_msgs(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& msgs() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_msgs();

  // map<string, string> map_data = 7;
  int map_data_size() const;
  void clear_map_data();
  static const int kMapDataFieldNumber = 7;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      map_data() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_map_data();

  // repeated .google.protobuf.testing.AnyData repeated_data = 9;
  int repeated_data_size() const;
  void clear_repeated_data();
  static const int kRepeatedDataFieldNumber = 9;
  ::google::protobuf::testing::AnyData* mutable_repeated_data(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::AnyData >*
      mutable_repeated_data();
  const ::google::protobuf::testing::AnyData& repeated_data(int index) const;
  ::google::protobuf::testing::AnyData* add_repeated_data();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::AnyData >&
      repeated_data() const;

  // string str = 2;
  void clear_str();
  static const int kStrFieldNumber = 2;
  const ::std::string& str() const;
  void set_str(const ::std::string& value);
  #if LANG_CXX11
  void set_str(::std::string&& value);
  #endif
  void set_str(const char* value);
  void set_str(const char* value, size_t size);
  ::std::string* mutable_str();
  ::std::string* release_str();
  void set_allocated_str(::std::string* str);

  // .google.protobuf.testing.AnyData nested_data = 4;
  bool has_nested_data() const;
  void clear_nested_data();
  static const int kNestedDataFieldNumber = 4;
  private:
  const ::google::protobuf::testing::AnyData& _internal_nested_data() const;
  public:
  const ::google::protobuf::testing::AnyData& nested_data() const;
  ::google::protobuf::testing::AnyData* release_nested_data();
  ::google::protobuf::testing::AnyData* mutable_nested_data();
  void set_allocated_nested_data(::google::protobuf::testing::AnyData* nested_data);

  // .google.protobuf.Struct struct_data = 8;
  bool has_struct_data() const;
  void clear_struct_data();
  static const int kStructDataFieldNumber = 8;
  private:
  const ::google::protobuf::Struct& _internal_struct_data() const;
  public:
  const ::google::protobuf::Struct& struct_data() const;
  ::google::protobuf::Struct* release_struct_data();
  ::google::protobuf::Struct* mutable_struct_data();
  void set_allocated_struct_data(::google::protobuf::Struct* struct_data);

  // int32 attr = 1;
  void clear_attr();
  static const int kAttrFieldNumber = 1;
  ::google::protobuf::int32 attr() const;
  void set_attr(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.AnyData)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::std::string> msgs_;
  ::google::protobuf::internal::MapField<
      AnyData_MapDataEntry_DoNotUse,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > map_data_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::AnyData > repeated_data_;
  ::google::protobuf::internal::ArenaStringPtr str_;
  ::google::protobuf::testing::AnyData* nested_data_;
  ::google::protobuf::Struct* struct_data_;
  ::google::protobuf::int32 attr_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class StringtoIntMap_MapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<StringtoIntMap_MapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<StringtoIntMap_MapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::int32,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    0 > SuperType;
  StringtoIntMap_MapEntry_DoNotUse();
  StringtoIntMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const StringtoIntMap_MapEntry_DoNotUse& other);
  static const StringtoIntMap_MapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const StringtoIntMap_MapEntry_DoNotUse*>(&_StringtoIntMap_MapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class StringtoIntMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.StringtoIntMap) */ {
 public:
  StringtoIntMap();
  virtual ~StringtoIntMap();

  StringtoIntMap(const StringtoIntMap& from);

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

  inline StringtoIntMap& operator=(StringtoIntMap&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const StringtoIntMap& default_instance();

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

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

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

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

  StringtoIntMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<StringtoIntMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const StringtoIntMap& from);
  void MergeFrom(const StringtoIntMap& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StringtoIntMap* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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


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

  // map<string, int32> map = 1;
  int map_size() const;
  void clear_map();
  static const int kMapFieldNumber = 1;
  const ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >&
      map() const;
  ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >*
      mutable_map();

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.StringtoIntMap)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      StringtoIntMap_MapEntry_DoNotUse,
      ::std::string, ::google::protobuf::int32,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      0 > map_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class IntToStringMap_MapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<IntToStringMap_MapEntry_DoNotUse, 
    ::google::protobuf::int32, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<IntToStringMap_MapEntry_DoNotUse, 
    ::google::protobuf::int32, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  IntToStringMap_MapEntry_DoNotUse();
  IntToStringMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const IntToStringMap_MapEntry_DoNotUse& other);
  static const IntToStringMap_MapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const IntToStringMap_MapEntry_DoNotUse*>(&_IntToStringMap_MapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class IntToStringMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.IntToStringMap) */ {
 public:
  IntToStringMap();
  virtual ~IntToStringMap();

  IntToStringMap(const IntToStringMap& from);

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

  inline IntToStringMap& operator=(IntToStringMap&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const IntToStringMap& default_instance();

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

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

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

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

  IntToStringMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<IntToStringMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const IntToStringMap& from);
  void MergeFrom(const IntToStringMap& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(IntToStringMap* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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


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

  // map<int32, string> map = 1;
  int map_size() const;
  void clear_map();
  static const int kMapFieldNumber = 1;
  const ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >&
      map() const;
  ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >*
      mutable_map();

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.IntToStringMap)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      IntToStringMap_MapEntry_DoNotUse,
      ::google::protobuf::int32, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > map_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class MixedMap_MapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MixedMap_MapEntry_DoNotUse, 
    ::std::string, float,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MixedMap_MapEntry_DoNotUse, 
    ::std::string, float,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
    0 > SuperType;
  MixedMap_MapEntry_DoNotUse();
  MixedMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MixedMap_MapEntry_DoNotUse& other);
  static const MixedMap_MapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MixedMap_MapEntry_DoNotUse*>(&_MixedMap_MapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MixedMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.MixedMap) */ {
 public:
  MixedMap();
  virtual ~MixedMap();

  MixedMap(const MixedMap& from);

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

  inline MixedMap& operator=(MixedMap&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const MixedMap& default_instance();

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

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

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

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

  MixedMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MixedMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MixedMap& from);
  void MergeFrom(const MixedMap& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MixedMap* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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


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

  // map<string, float> map = 2;
  int map_size() const;
  void clear_map();
  static const int kMapFieldNumber = 2;
  const ::google::protobuf::Map< ::std::string, float >&
      map() const;
  ::google::protobuf::Map< ::std::string, float >*
      mutable_map();

  // string msg = 1;
  void clear_msg();
  static const int kMsgFieldNumber = 1;
  const ::std::string& msg() const;
  void set_msg(const ::std::string& value);
  #if LANG_CXX11
  void set_msg(::std::string&& value);
  #endif
  void set_msg(const char* value);
  void set_msg(const char* value, size_t size);
  ::std::string* mutable_msg();
  ::std::string* release_msg();
  void set_allocated_msg(::std::string* msg);

  // int32 int_value = 3;
  void clear_int_value();
  static const int kIntValueFieldNumber = 3;
  ::google::protobuf::int32 int_value() const;
  void set_int_value(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.MixedMap)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      MixedMap_MapEntry_DoNotUse,
      ::std::string, float,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
      0 > map_;
  ::google::protobuf::internal::ArenaStringPtr msg_;
  ::google::protobuf::int32 int_value_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class MixedMap2_MapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MixedMap2_MapEntry_DoNotUse, 
    ::google::protobuf::int32, bool,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MixedMap2_MapEntry_DoNotUse, 
    ::google::protobuf::int32, bool,
    ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
    ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
    0 > SuperType;
  MixedMap2_MapEntry_DoNotUse();
  MixedMap2_MapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MixedMap2_MapEntry_DoNotUse& other);
  static const MixedMap2_MapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MixedMap2_MapEntry_DoNotUse*>(&_MixedMap2_MapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MixedMap2 : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.MixedMap2) */ {
 public:
  MixedMap2();
  virtual ~MixedMap2();

  MixedMap2(const MixedMap2& from);

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

  inline MixedMap2& operator=(MixedMap2&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const MixedMap2& default_instance();

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

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

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

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

  MixedMap2* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MixedMap2>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MixedMap2& from);
  void MergeFrom(const MixedMap2& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MixedMap2* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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


  typedef MixedMap2_E E;
  static const E E0 =
    MixedMap2_E_E0;
  static const E E1 =
    MixedMap2_E_E1;
  static const E E2 =
    MixedMap2_E_E2;
  static const E E3 =
    MixedMap2_E_E3;
  static inline bool E_IsValid(int value) {
    return MixedMap2_E_IsValid(value);
  }
  static const E E_MIN =
    MixedMap2_E_E_MIN;
  static const E E_MAX =
    MixedMap2_E_E_MAX;
  static const int E_ARRAYSIZE =
    MixedMap2_E_E_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  E_descriptor() {
    return MixedMap2_E_descriptor();
  }
  static inline const ::std::string& E_Name(E value) {
    return MixedMap2_E_Name(value);
  }
  static inline bool E_Parse(const ::std::string& name,
      E* value) {
    return MixedMap2_E_Parse(name, value);
  }

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

  // map<int32, bool> map = 1;
  int map_size() const;
  void clear_map();
  static const int kMapFieldNumber = 1;
  const ::google::protobuf::Map< ::google::protobuf::int32, bool >&
      map() const;
  ::google::protobuf::Map< ::google::protobuf::int32, bool >*
      mutable_map();

  // string msg = 4;
  void clear_msg();
  static const int kMsgFieldNumber = 4;
  const ::std::string& msg() const;
  void set_msg(const ::std::string& value);
  #if LANG_CXX11
  void set_msg(::std::string&& value);
  #endif
  void set_msg(const char* value);
  void set_msg(const char* value, size_t size);
  ::std::string* mutable_msg();
  ::std::string* release_msg();
  void set_allocated_msg(::std::string* msg);

  // .google.protobuf.testing.MixedMap2.E ee = 2;
  void clear_ee();
  static const int kEeFieldNumber = 2;
  ::google::protobuf::testing::MixedMap2_E ee() const;
  void set_ee(::google::protobuf::testing::MixedMap2_E value);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.MixedMap2)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      MixedMap2_MapEntry_DoNotUse,
      ::google::protobuf::int32, bool,
      ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
      ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
      0 > map_;
  ::google::protobuf::internal::ArenaStringPtr msg_;
  int ee_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class MessageMap_M : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.MessageMap.M) */ {
 public:
  MessageMap_M();
  virtual ~MessageMap_M();

  MessageMap_M(const MessageMap_M& from);

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

  inline MessageMap_M& operator=(MessageMap_M&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const MessageMap_M& default_instance();

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

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

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

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

  MessageMap_M* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MessageMap_M>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MessageMap_M& from);
  void MergeFrom(const MessageMap_M& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MessageMap_M* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // string inner_text = 2;
  void clear_inner_text();
  static const int kInnerTextFieldNumber = 2;
  const ::std::string& inner_text() const;
  void set_inner_text(const ::std::string& value);
  #if LANG_CXX11
  void set_inner_text(::std::string&& value);
  #endif
  void set_inner_text(const char* value);
  void set_inner_text(const char* value, size_t size);
  ::std::string* mutable_inner_text();
  ::std::string* release_inner_text();
  void set_allocated_inner_text(::std::string* inner_text);

  // int32 inner_int = 1;
  void clear_inner_int();
  static const int kInnerIntFieldNumber = 1;
  ::google::protobuf::int32 inner_int() const;
  void set_inner_int(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.MessageMap.M)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr inner_text_;
  ::google::protobuf::int32 inner_int_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class MessageMap_MapEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<MessageMap_MapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::testing::MessageMap_M,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<MessageMap_MapEntry_DoNotUse, 
    ::std::string, ::google::protobuf::testing::MessageMap_M,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  MessageMap_MapEntry_DoNotUse();
  MessageMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const MessageMap_MapEntry_DoNotUse& other);
  static const MessageMap_MapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const MessageMap_MapEntry_DoNotUse*>(&_MessageMap_MapEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

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

class MessageMap : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.MessageMap) */ {
 public:
  MessageMap();
  virtual ~MessageMap();

  MessageMap(const MessageMap& from);

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

  inline MessageMap& operator=(MessageMap&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const MessageMap& default_instance();

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

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

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

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

  MessageMap* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<MessageMap>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const MessageMap& from);
  void MergeFrom(const MessageMap& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MessageMap* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

  typedef MessageMap_M M;

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

  // map<string, .google.protobuf.testing.MessageMap.M> map = 1;
  int map_size() const;
  void clear_map();
  static const int kMapFieldNumber = 1;
  const ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >&
      map() const;
  ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >*
      mutable_map();

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.MessageMap)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      MessageMap_MapEntry_DoNotUse,
      ::std::string, ::google::protobuf::testing::MessageMap_M,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > map_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class DoubleValueMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.protobuf.testing.DoubleValueMessage) */ {
 public:
  DoubleValueMessage();
  virtual ~DoubleValueMessage();

  DoubleValueMessage(const DoubleValueMessage& from);

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

  inline DoubleValueMessage& operator=(DoubleValueMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const DoubleValueMessage& default_instance();

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

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

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

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

  DoubleValueMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DoubleValueMessage>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DoubleValueMessage& from);
  void MergeFrom(const DoubleValueMessage& 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;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DoubleValueMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // .google.protobuf.DoubleValue double = 1;
  bool has_double_() const;
  void clear_double_();
  static const int kDoubleFieldNumber = 1;
  private:
  const ::google::protobuf::DoubleValue& _internal_double_() const;
  public:
  const ::google::protobuf::DoubleValue& double_() const;
  ::google::protobuf::DoubleValue* release_double_();
  ::google::protobuf::DoubleValue* mutable_double_();
  void set_allocated_double_(::google::protobuf::DoubleValue* double_);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.DoubleValueMessage)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::DoubleValue* double__;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::TableStruct;
};
// ===================================================================


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

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

// .google.protobuf.testing.DoubleMessage empty_double = 1;
inline bool DefaultValueTestCases::has_empty_double() const {
  return this != internal_default_instance() && empty_double_ != NULL;
}
inline void DefaultValueTestCases::clear_empty_double() {
  if (GetArenaNoVirtual() == NULL && empty_double_ != NULL) {
    delete empty_double_;
  }
  empty_double_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::_internal_empty_double() const {
  return *empty_double_;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::empty_double() const {
  const ::google::protobuf::testing::DoubleMessage* p = empty_double_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.empty_double)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::release_empty_double() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.empty_double)
  
  ::google::protobuf::testing::DoubleMessage* temp = empty_double_;
  empty_double_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::mutable_empty_double() {
  
  if (empty_double_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    empty_double_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.empty_double)
  return empty_double_;
}
inline void DefaultValueTestCases::set_allocated_empty_double(::google::protobuf::testing::DoubleMessage* empty_double) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_double_;
  }
  if (empty_double) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_double = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_double, submessage_arena);
    }
    
  } else {
    
  }
  empty_double_ = empty_double;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.empty_double)
}

// .google.protobuf.testing.DoubleMessage double_with_default_value = 2;
inline bool DefaultValueTestCases::has_double_with_default_value() const {
  return this != internal_default_instance() && double_with_default_value_ != NULL;
}
inline void DefaultValueTestCases::clear_double_with_default_value() {
  if (GetArenaNoVirtual() == NULL && double_with_default_value_ != NULL) {
    delete double_with_default_value_;
  }
  double_with_default_value_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::_internal_double_with_default_value() const {
  return *double_with_default_value_;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::double_with_default_value() const {
  const ::google::protobuf::testing::DoubleMessage* p = double_with_default_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.double_with_default_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::release_double_with_default_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.double_with_default_value)
  
  ::google::protobuf::testing::DoubleMessage* temp = double_with_default_value_;
  double_with_default_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::mutable_double_with_default_value() {
  
  if (double_with_default_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    double_with_default_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.double_with_default_value)
  return double_with_default_value_;
}
inline void DefaultValueTestCases::set_allocated_double_with_default_value(::google::protobuf::testing::DoubleMessage* double_with_default_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete double_with_default_value_;
  }
  if (double_with_default_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_with_default_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_with_default_value, submessage_arena);
    }
    
  } else {
    
  }
  double_with_default_value_ = double_with_default_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.double_with_default_value)
}

// .google.protobuf.testing.DoubleMessage double_with_nondefault_value = 3;
inline bool DefaultValueTestCases::has_double_with_nondefault_value() const {
  return this != internal_default_instance() && double_with_nondefault_value_ != NULL;
}
inline void DefaultValueTestCases::clear_double_with_nondefault_value() {
  if (GetArenaNoVirtual() == NULL && double_with_nondefault_value_ != NULL) {
    delete double_with_nondefault_value_;
  }
  double_with_nondefault_value_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::_internal_double_with_nondefault_value() const {
  return *double_with_nondefault_value_;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::double_with_nondefault_value() const {
  const ::google::protobuf::testing::DoubleMessage* p = double_with_nondefault_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.double_with_nondefault_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::release_double_with_nondefault_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.double_with_nondefault_value)
  
  ::google::protobuf::testing::DoubleMessage* temp = double_with_nondefault_value_;
  double_with_nondefault_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::mutable_double_with_nondefault_value() {
  
  if (double_with_nondefault_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    double_with_nondefault_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.double_with_nondefault_value)
  return double_with_nondefault_value_;
}
inline void DefaultValueTestCases::set_allocated_double_with_nondefault_value(::google::protobuf::testing::DoubleMessage* double_with_nondefault_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete double_with_nondefault_value_;
  }
  if (double_with_nondefault_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_with_nondefault_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_with_nondefault_value, submessage_arena);
    }
    
  } else {
    
  }
  double_with_nondefault_value_ = double_with_nondefault_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.double_with_nondefault_value)
}

// .google.protobuf.testing.DoubleMessage repeated_double = 4;
inline bool DefaultValueTestCases::has_repeated_double() const {
  return this != internal_default_instance() && repeated_double_ != NULL;
}
inline void DefaultValueTestCases::clear_repeated_double() {
  if (GetArenaNoVirtual() == NULL && repeated_double_ != NULL) {
    delete repeated_double_;
  }
  repeated_double_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::_internal_repeated_double() const {
  return *repeated_double_;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::repeated_double() const {
  const ::google::protobuf::testing::DoubleMessage* p = repeated_double_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.repeated_double)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::release_repeated_double() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.repeated_double)
  
  ::google::protobuf::testing::DoubleMessage* temp = repeated_double_;
  repeated_double_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::mutable_repeated_double() {
  
  if (repeated_double_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    repeated_double_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.repeated_double)
  return repeated_double_;
}
inline void DefaultValueTestCases::set_allocated_repeated_double(::google::protobuf::testing::DoubleMessage* repeated_double) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_double_;
  }
  if (repeated_double) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_double = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_double, submessage_arena);
    }
    
  } else {
    
  }
  repeated_double_ = repeated_double;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.repeated_double)
}

// .google.protobuf.testing.DoubleMessage nested_message = 5;
inline bool DefaultValueTestCases::has_nested_message() const {
  return this != internal_default_instance() && nested_message_ != NULL;
}
inline void DefaultValueTestCases::clear_nested_message() {
  if (GetArenaNoVirtual() == NULL && nested_message_ != NULL) {
    delete nested_message_;
  }
  nested_message_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::_internal_nested_message() const {
  return *nested_message_;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::nested_message() const {
  const ::google::protobuf::testing::DoubleMessage* p = nested_message_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.nested_message)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::release_nested_message() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.nested_message)
  
  ::google::protobuf::testing::DoubleMessage* temp = nested_message_;
  nested_message_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::mutable_nested_message() {
  
  if (nested_message_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    nested_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.nested_message)
  return nested_message_;
}
inline void DefaultValueTestCases::set_allocated_nested_message(::google::protobuf::testing::DoubleMessage* nested_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete nested_message_;
  }
  if (nested_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      nested_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, nested_message, submessage_arena);
    }
    
  } else {
    
  }
  nested_message_ = nested_message;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.nested_message)
}

// .google.protobuf.testing.DoubleMessage repeated_nested_message = 6;
inline bool DefaultValueTestCases::has_repeated_nested_message() const {
  return this != internal_default_instance() && repeated_nested_message_ != NULL;
}
inline void DefaultValueTestCases::clear_repeated_nested_message() {
  if (GetArenaNoVirtual() == NULL && repeated_nested_message_ != NULL) {
    delete repeated_nested_message_;
  }
  repeated_nested_message_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::_internal_repeated_nested_message() const {
  return *repeated_nested_message_;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::repeated_nested_message() const {
  const ::google::protobuf::testing::DoubleMessage* p = repeated_nested_message_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.repeated_nested_message)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::release_repeated_nested_message() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.repeated_nested_message)
  
  ::google::protobuf::testing::DoubleMessage* temp = repeated_nested_message_;
  repeated_nested_message_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::mutable_repeated_nested_message() {
  
  if (repeated_nested_message_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    repeated_nested_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.repeated_nested_message)
  return repeated_nested_message_;
}
inline void DefaultValueTestCases::set_allocated_repeated_nested_message(::google::protobuf::testing::DoubleMessage* repeated_nested_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_nested_message_;
  }
  if (repeated_nested_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_nested_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_nested_message, submessage_arena);
    }
    
  } else {
    
  }
  repeated_nested_message_ = repeated_nested_message;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.repeated_nested_message)
}

// .google.protobuf.testing.DoubleMessage double_message_with_oneof = 7;
inline bool DefaultValueTestCases::has_double_message_with_oneof() const {
  return this != internal_default_instance() && double_message_with_oneof_ != NULL;
}
inline void DefaultValueTestCases::clear_double_message_with_oneof() {
  if (GetArenaNoVirtual() == NULL && double_message_with_oneof_ != NULL) {
    delete double_message_with_oneof_;
  }
  double_message_with_oneof_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::_internal_double_message_with_oneof() const {
  return *double_message_with_oneof_;
}
inline const ::google::protobuf::testing::DoubleMessage& DefaultValueTestCases::double_message_with_oneof() const {
  const ::google::protobuf::testing::DoubleMessage* p = double_message_with_oneof_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.double_message_with_oneof)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::release_double_message_with_oneof() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.double_message_with_oneof)
  
  ::google::protobuf::testing::DoubleMessage* temp = double_message_with_oneof_;
  double_message_with_oneof_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DefaultValueTestCases::mutable_double_message_with_oneof() {
  
  if (double_message_with_oneof_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    double_message_with_oneof_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.double_message_with_oneof)
  return double_message_with_oneof_;
}
inline void DefaultValueTestCases::set_allocated_double_message_with_oneof(::google::protobuf::testing::DoubleMessage* double_message_with_oneof) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete double_message_with_oneof_;
  }
  if (double_message_with_oneof) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_message_with_oneof = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_message_with_oneof, submessage_arena);
    }
    
  } else {
    
  }
  double_message_with_oneof_ = double_message_with_oneof;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.double_message_with_oneof)
}

// .google.protobuf.testing.StructMessage empty_struct = 201;
inline bool DefaultValueTestCases::has_empty_struct() const {
  return this != internal_default_instance() && empty_struct_ != NULL;
}
inline void DefaultValueTestCases::clear_empty_struct() {
  if (GetArenaNoVirtual() == NULL && empty_struct_ != NULL) {
    delete empty_struct_;
  }
  empty_struct_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_empty_struct() const {
  return *empty_struct_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::empty_struct() const {
  const ::google::protobuf::testing::StructMessage* p = empty_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.empty_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_empty_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.empty_struct)
  
  ::google::protobuf::testing::StructMessage* temp = empty_struct_;
  empty_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_empty_struct() {
  
  if (empty_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    empty_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.empty_struct)
  return empty_struct_;
}
inline void DefaultValueTestCases::set_allocated_empty_struct(::google::protobuf::testing::StructMessage* empty_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_struct_;
  }
  if (empty_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_struct, submessage_arena);
    }
    
  } else {
    
  }
  empty_struct_ = empty_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.empty_struct)
}

// .google.protobuf.testing.StructMessage empty_struct2 = 202;
inline bool DefaultValueTestCases::has_empty_struct2() const {
  return this != internal_default_instance() && empty_struct2_ != NULL;
}
inline void DefaultValueTestCases::clear_empty_struct2() {
  if (GetArenaNoVirtual() == NULL && empty_struct2_ != NULL) {
    delete empty_struct2_;
  }
  empty_struct2_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_empty_struct2() const {
  return *empty_struct2_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::empty_struct2() const {
  const ::google::protobuf::testing::StructMessage* p = empty_struct2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.empty_struct2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_empty_struct2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.empty_struct2)
  
  ::google::protobuf::testing::StructMessage* temp = empty_struct2_;
  empty_struct2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_empty_struct2() {
  
  if (empty_struct2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    empty_struct2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.empty_struct2)
  return empty_struct2_;
}
inline void DefaultValueTestCases::set_allocated_empty_struct2(::google::protobuf::testing::StructMessage* empty_struct2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_struct2_;
  }
  if (empty_struct2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_struct2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_struct2, submessage_arena);
    }
    
  } else {
    
  }
  empty_struct2_ = empty_struct2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.empty_struct2)
}

// .google.protobuf.testing.StructMessage struct_with_null_value = 203;
inline bool DefaultValueTestCases::has_struct_with_null_value() const {
  return this != internal_default_instance() && struct_with_null_value_ != NULL;
}
inline void DefaultValueTestCases::clear_struct_with_null_value() {
  if (GetArenaNoVirtual() == NULL && struct_with_null_value_ != NULL) {
    delete struct_with_null_value_;
  }
  struct_with_null_value_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_struct_with_null_value() const {
  return *struct_with_null_value_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::struct_with_null_value() const {
  const ::google::protobuf::testing::StructMessage* p = struct_with_null_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.struct_with_null_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_struct_with_null_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.struct_with_null_value)
  
  ::google::protobuf::testing::StructMessage* temp = struct_with_null_value_;
  struct_with_null_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_struct_with_null_value() {
  
  if (struct_with_null_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    struct_with_null_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.struct_with_null_value)
  return struct_with_null_value_;
}
inline void DefaultValueTestCases::set_allocated_struct_with_null_value(::google::protobuf::testing::StructMessage* struct_with_null_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_null_value_;
  }
  if (struct_with_null_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_null_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_null_value, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_null_value_ = struct_with_null_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.struct_with_null_value)
}

// .google.protobuf.testing.StructMessage struct_with_values = 204;
inline bool DefaultValueTestCases::has_struct_with_values() const {
  return this != internal_default_instance() && struct_with_values_ != NULL;
}
inline void DefaultValueTestCases::clear_struct_with_values() {
  if (GetArenaNoVirtual() == NULL && struct_with_values_ != NULL) {
    delete struct_with_values_;
  }
  struct_with_values_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_struct_with_values() const {
  return *struct_with_values_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::struct_with_values() const {
  const ::google::protobuf::testing::StructMessage* p = struct_with_values_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.struct_with_values)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_struct_with_values() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.struct_with_values)
  
  ::google::protobuf::testing::StructMessage* temp = struct_with_values_;
  struct_with_values_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_struct_with_values() {
  
  if (struct_with_values_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    struct_with_values_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.struct_with_values)
  return struct_with_values_;
}
inline void DefaultValueTestCases::set_allocated_struct_with_values(::google::protobuf::testing::StructMessage* struct_with_values) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_values_;
  }
  if (struct_with_values) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_values = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_values, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_values_ = struct_with_values;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.struct_with_values)
}

// .google.protobuf.testing.StructMessage struct_with_nested_struct = 205;
inline bool DefaultValueTestCases::has_struct_with_nested_struct() const {
  return this != internal_default_instance() && struct_with_nested_struct_ != NULL;
}
inline void DefaultValueTestCases::clear_struct_with_nested_struct() {
  if (GetArenaNoVirtual() == NULL && struct_with_nested_struct_ != NULL) {
    delete struct_with_nested_struct_;
  }
  struct_with_nested_struct_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_struct_with_nested_struct() const {
  return *struct_with_nested_struct_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::struct_with_nested_struct() const {
  const ::google::protobuf::testing::StructMessage* p = struct_with_nested_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_struct_with_nested_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_struct)
  
  ::google::protobuf::testing::StructMessage* temp = struct_with_nested_struct_;
  struct_with_nested_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_struct_with_nested_struct() {
  
  if (struct_with_nested_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    struct_with_nested_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_struct)
  return struct_with_nested_struct_;
}
inline void DefaultValueTestCases::set_allocated_struct_with_nested_struct(::google::protobuf::testing::StructMessage* struct_with_nested_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_nested_struct_;
  }
  if (struct_with_nested_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_nested_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_nested_struct, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_nested_struct_ = struct_with_nested_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_struct)
}

// .google.protobuf.testing.StructMessage struct_with_nested_list = 206;
inline bool DefaultValueTestCases::has_struct_with_nested_list() const {
  return this != internal_default_instance() && struct_with_nested_list_ != NULL;
}
inline void DefaultValueTestCases::clear_struct_with_nested_list() {
  if (GetArenaNoVirtual() == NULL && struct_with_nested_list_ != NULL) {
    delete struct_with_nested_list_;
  }
  struct_with_nested_list_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_struct_with_nested_list() const {
  return *struct_with_nested_list_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::struct_with_nested_list() const {
  const ::google::protobuf::testing::StructMessage* p = struct_with_nested_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_struct_with_nested_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_list)
  
  ::google::protobuf::testing::StructMessage* temp = struct_with_nested_list_;
  struct_with_nested_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_struct_with_nested_list() {
  
  if (struct_with_nested_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    struct_with_nested_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_list)
  return struct_with_nested_list_;
}
inline void DefaultValueTestCases::set_allocated_struct_with_nested_list(::google::protobuf::testing::StructMessage* struct_with_nested_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_nested_list_;
  }
  if (struct_with_nested_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_nested_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_nested_list, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_nested_list_ = struct_with_nested_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.struct_with_nested_list)
}

// .google.protobuf.testing.StructMessage struct_with_list_of_nulls = 207;
inline bool DefaultValueTestCases::has_struct_with_list_of_nulls() const {
  return this != internal_default_instance() && struct_with_list_of_nulls_ != NULL;
}
inline void DefaultValueTestCases::clear_struct_with_list_of_nulls() {
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_nulls_ != NULL) {
    delete struct_with_list_of_nulls_;
  }
  struct_with_list_of_nulls_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_struct_with_list_of_nulls() const {
  return *struct_with_list_of_nulls_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::struct_with_list_of_nulls() const {
  const ::google::protobuf::testing::StructMessage* p = struct_with_list_of_nulls_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_nulls)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_struct_with_list_of_nulls() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_nulls)
  
  ::google::protobuf::testing::StructMessage* temp = struct_with_list_of_nulls_;
  struct_with_list_of_nulls_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_struct_with_list_of_nulls() {
  
  if (struct_with_list_of_nulls_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    struct_with_list_of_nulls_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_nulls)
  return struct_with_list_of_nulls_;
}
inline void DefaultValueTestCases::set_allocated_struct_with_list_of_nulls(::google::protobuf::testing::StructMessage* struct_with_list_of_nulls) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_list_of_nulls_;
  }
  if (struct_with_list_of_nulls) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_list_of_nulls = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_list_of_nulls, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_list_of_nulls_ = struct_with_list_of_nulls;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_nulls)
}

// .google.protobuf.testing.StructMessage struct_with_list_of_lists = 208;
inline bool DefaultValueTestCases::has_struct_with_list_of_lists() const {
  return this != internal_default_instance() && struct_with_list_of_lists_ != NULL;
}
inline void DefaultValueTestCases::clear_struct_with_list_of_lists() {
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_lists_ != NULL) {
    delete struct_with_list_of_lists_;
  }
  struct_with_list_of_lists_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_struct_with_list_of_lists() const {
  return *struct_with_list_of_lists_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::struct_with_list_of_lists() const {
  const ::google::protobuf::testing::StructMessage* p = struct_with_list_of_lists_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_lists)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_struct_with_list_of_lists() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_lists)
  
  ::google::protobuf::testing::StructMessage* temp = struct_with_list_of_lists_;
  struct_with_list_of_lists_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_struct_with_list_of_lists() {
  
  if (struct_with_list_of_lists_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    struct_with_list_of_lists_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_lists)
  return struct_with_list_of_lists_;
}
inline void DefaultValueTestCases::set_allocated_struct_with_list_of_lists(::google::protobuf::testing::StructMessage* struct_with_list_of_lists) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_list_of_lists_;
  }
  if (struct_with_list_of_lists) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_list_of_lists = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_list_of_lists, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_list_of_lists_ = struct_with_list_of_lists;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_lists)
}

// .google.protobuf.testing.StructMessage struct_with_list_of_structs = 209;
inline bool DefaultValueTestCases::has_struct_with_list_of_structs() const {
  return this != internal_default_instance() && struct_with_list_of_structs_ != NULL;
}
inline void DefaultValueTestCases::clear_struct_with_list_of_structs() {
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_structs_ != NULL) {
    delete struct_with_list_of_structs_;
  }
  struct_with_list_of_structs_ = NULL;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::_internal_struct_with_list_of_structs() const {
  return *struct_with_list_of_structs_;
}
inline const ::google::protobuf::testing::StructMessage& DefaultValueTestCases::struct_with_list_of_structs() const {
  const ::google::protobuf::testing::StructMessage* p = struct_with_list_of_structs_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_structs)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StructMessage*>(
      &::google::protobuf::testing::_StructMessage_default_instance_);
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::release_struct_with_list_of_structs() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_structs)
  
  ::google::protobuf::testing::StructMessage* temp = struct_with_list_of_structs_;
  struct_with_list_of_structs_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StructMessage* DefaultValueTestCases::mutable_struct_with_list_of_structs() {
  
  if (struct_with_list_of_structs_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StructMessage>(GetArenaNoVirtual());
    struct_with_list_of_structs_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_structs)
  return struct_with_list_of_structs_;
}
inline void DefaultValueTestCases::set_allocated_struct_with_list_of_structs(::google::protobuf::testing::StructMessage* struct_with_list_of_structs) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete struct_with_list_of_structs_;
  }
  if (struct_with_list_of_structs) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      struct_with_list_of_structs = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_with_list_of_structs, submessage_arena);
    }
    
  } else {
    
  }
  struct_with_list_of_structs_ = struct_with_list_of_structs;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.struct_with_list_of_structs)
}

// .google.protobuf.Struct top_level_struct = 210;
inline bool DefaultValueTestCases::has_top_level_struct() const {
  return this != internal_default_instance() && top_level_struct_ != NULL;
}
inline const ::google::protobuf::Struct& DefaultValueTestCases::_internal_top_level_struct() const {
  return *top_level_struct_;
}
inline const ::google::protobuf::Struct& DefaultValueTestCases::top_level_struct() const {
  const ::google::protobuf::Struct* p = top_level_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.top_level_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* DefaultValueTestCases::release_top_level_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.top_level_struct)
  
  ::google::protobuf::Struct* temp = top_level_struct_;
  top_level_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* DefaultValueTestCases::mutable_top_level_struct() {
  
  if (top_level_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    top_level_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.top_level_struct)
  return top_level_struct_;
}
inline void DefaultValueTestCases::set_allocated_top_level_struct(::google::protobuf::Struct* top_level_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_struct_);
  }
  if (top_level_struct) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_struct)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_struct, submessage_arena);
    }
    
  } else {
    
  }
  top_level_struct_ = top_level_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.top_level_struct)
}

// .google.protobuf.testing.ValueMessage value_wrapper_simple = 212;
inline bool DefaultValueTestCases::has_value_wrapper_simple() const {
  return this != internal_default_instance() && value_wrapper_simple_ != NULL;
}
inline void DefaultValueTestCases::clear_value_wrapper_simple() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_simple_ != NULL) {
    delete value_wrapper_simple_;
  }
  value_wrapper_simple_ = NULL;
}
inline const ::google::protobuf::testing::ValueMessage& DefaultValueTestCases::_internal_value_wrapper_simple() const {
  return *value_wrapper_simple_;
}
inline const ::google::protobuf::testing::ValueMessage& DefaultValueTestCases::value_wrapper_simple() const {
  const ::google::protobuf::testing::ValueMessage* p = value_wrapper_simple_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.value_wrapper_simple)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueMessage*>(
      &::google::protobuf::testing::_ValueMessage_default_instance_);
}
inline ::google::protobuf::testing::ValueMessage* DefaultValueTestCases::release_value_wrapper_simple() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.value_wrapper_simple)
  
  ::google::protobuf::testing::ValueMessage* temp = value_wrapper_simple_;
  value_wrapper_simple_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueMessage* DefaultValueTestCases::mutable_value_wrapper_simple() {
  
  if (value_wrapper_simple_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueMessage>(GetArenaNoVirtual());
    value_wrapper_simple_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.value_wrapper_simple)
  return value_wrapper_simple_;
}
inline void DefaultValueTestCases::set_allocated_value_wrapper_simple(::google::protobuf::testing::ValueMessage* value_wrapper_simple) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_simple_;
  }
  if (value_wrapper_simple) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_simple = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_simple, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_simple_ = value_wrapper_simple;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.value_wrapper_simple)
}

// .google.protobuf.testing.ValueMessage value_wrapper_with_struct = 213;
inline bool DefaultValueTestCases::has_value_wrapper_with_struct() const {
  return this != internal_default_instance() && value_wrapper_with_struct_ != NULL;
}
inline void DefaultValueTestCases::clear_value_wrapper_with_struct() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_struct_ != NULL) {
    delete value_wrapper_with_struct_;
  }
  value_wrapper_with_struct_ = NULL;
}
inline const ::google::protobuf::testing::ValueMessage& DefaultValueTestCases::_internal_value_wrapper_with_struct() const {
  return *value_wrapper_with_struct_;
}
inline const ::google::protobuf::testing::ValueMessage& DefaultValueTestCases::value_wrapper_with_struct() const {
  const ::google::protobuf::testing::ValueMessage* p = value_wrapper_with_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueMessage*>(
      &::google::protobuf::testing::_ValueMessage_default_instance_);
}
inline ::google::protobuf::testing::ValueMessage* DefaultValueTestCases::release_value_wrapper_with_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_struct)
  
  ::google::protobuf::testing::ValueMessage* temp = value_wrapper_with_struct_;
  value_wrapper_with_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueMessage* DefaultValueTestCases::mutable_value_wrapper_with_struct() {
  
  if (value_wrapper_with_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueMessage>(GetArenaNoVirtual());
    value_wrapper_with_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_struct)
  return value_wrapper_with_struct_;
}
inline void DefaultValueTestCases::set_allocated_value_wrapper_with_struct(::google::protobuf::testing::ValueMessage* value_wrapper_with_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_with_struct_;
  }
  if (value_wrapper_with_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_with_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_with_struct, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_with_struct_ = value_wrapper_with_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_struct)
}

// .google.protobuf.testing.ValueMessage value_wrapper_with_list = 214;
inline bool DefaultValueTestCases::has_value_wrapper_with_list() const {
  return this != internal_default_instance() && value_wrapper_with_list_ != NULL;
}
inline void DefaultValueTestCases::clear_value_wrapper_with_list() {
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_list_ != NULL) {
    delete value_wrapper_with_list_;
  }
  value_wrapper_with_list_ = NULL;
}
inline const ::google::protobuf::testing::ValueMessage& DefaultValueTestCases::_internal_value_wrapper_with_list() const {
  return *value_wrapper_with_list_;
}
inline const ::google::protobuf::testing::ValueMessage& DefaultValueTestCases::value_wrapper_with_list() const {
  const ::google::protobuf::testing::ValueMessage* p = value_wrapper_with_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ValueMessage*>(
      &::google::protobuf::testing::_ValueMessage_default_instance_);
}
inline ::google::protobuf::testing::ValueMessage* DefaultValueTestCases::release_value_wrapper_with_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_list)
  
  ::google::protobuf::testing::ValueMessage* temp = value_wrapper_with_list_;
  value_wrapper_with_list_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ValueMessage* DefaultValueTestCases::mutable_value_wrapper_with_list() {
  
  if (value_wrapper_with_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ValueMessage>(GetArenaNoVirtual());
    value_wrapper_with_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_list)
  return value_wrapper_with_list_;
}
inline void DefaultValueTestCases::set_allocated_value_wrapper_with_list(::google::protobuf::testing::ValueMessage* value_wrapper_with_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete value_wrapper_with_list_;
  }
  if (value_wrapper_with_list) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      value_wrapper_with_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value_wrapper_with_list, submessage_arena);
    }
    
  } else {
    
  }
  value_wrapper_with_list_ = value_wrapper_with_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.value_wrapper_with_list)
}

// .google.protobuf.testing.ListValueMessage list_value_wrapper = 215;
inline bool DefaultValueTestCases::has_list_value_wrapper() const {
  return this != internal_default_instance() && list_value_wrapper_ != NULL;
}
inline void DefaultValueTestCases::clear_list_value_wrapper() {
  if (GetArenaNoVirtual() == NULL && list_value_wrapper_ != NULL) {
    delete list_value_wrapper_;
  }
  list_value_wrapper_ = NULL;
}
inline const ::google::protobuf::testing::ListValueMessage& DefaultValueTestCases::_internal_list_value_wrapper() const {
  return *list_value_wrapper_;
}
inline const ::google::protobuf::testing::ListValueMessage& DefaultValueTestCases::list_value_wrapper() const {
  const ::google::protobuf::testing::ListValueMessage* p = list_value_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.list_value_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::ListValueMessage*>(
      &::google::protobuf::testing::_ListValueMessage_default_instance_);
}
inline ::google::protobuf::testing::ListValueMessage* DefaultValueTestCases::release_list_value_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.list_value_wrapper)
  
  ::google::protobuf::testing::ListValueMessage* temp = list_value_wrapper_;
  list_value_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::ListValueMessage* DefaultValueTestCases::mutable_list_value_wrapper() {
  
  if (list_value_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::ListValueMessage>(GetArenaNoVirtual());
    list_value_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.list_value_wrapper)
  return list_value_wrapper_;
}
inline void DefaultValueTestCases::set_allocated_list_value_wrapper(::google::protobuf::testing::ListValueMessage* list_value_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete list_value_wrapper_;
  }
  if (list_value_wrapper) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      list_value_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, list_value_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  list_value_wrapper_ = list_value_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.list_value_wrapper)
}

// .google.protobuf.Value top_level_value_simple = 216;
inline bool DefaultValueTestCases::has_top_level_value_simple() const {
  return this != internal_default_instance() && top_level_value_simple_ != NULL;
}
inline const ::google::protobuf::Value& DefaultValueTestCases::_internal_top_level_value_simple() const {
  return *top_level_value_simple_;
}
inline const ::google::protobuf::Value& DefaultValueTestCases::top_level_value_simple() const {
  const ::google::protobuf::Value* p = top_level_value_simple_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.top_level_value_simple)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* DefaultValueTestCases::release_top_level_value_simple() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.top_level_value_simple)
  
  ::google::protobuf::Value* temp = top_level_value_simple_;
  top_level_value_simple_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* DefaultValueTestCases::mutable_top_level_value_simple() {
  
  if (top_level_value_simple_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_simple_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.top_level_value_simple)
  return top_level_value_simple_;
}
inline void DefaultValueTestCases::set_allocated_top_level_value_simple(::google::protobuf::Value* top_level_value_simple) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_simple_);
  }
  if (top_level_value_simple) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_simple)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_simple = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_simple, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_simple_ = top_level_value_simple;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.top_level_value_simple)
}

// .google.protobuf.Value top_level_value_with_struct = 217;
inline bool DefaultValueTestCases::has_top_level_value_with_struct() const {
  return this != internal_default_instance() && top_level_value_with_struct_ != NULL;
}
inline const ::google::protobuf::Value& DefaultValueTestCases::_internal_top_level_value_with_struct() const {
  return *top_level_value_with_struct_;
}
inline const ::google::protobuf::Value& DefaultValueTestCases::top_level_value_with_struct() const {
  const ::google::protobuf::Value* p = top_level_value_with_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* DefaultValueTestCases::release_top_level_value_with_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_struct)
  
  ::google::protobuf::Value* temp = top_level_value_with_struct_;
  top_level_value_with_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* DefaultValueTestCases::mutable_top_level_value_with_struct() {
  
  if (top_level_value_with_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_with_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_struct)
  return top_level_value_with_struct_;
}
inline void DefaultValueTestCases::set_allocated_top_level_value_with_struct(::google::protobuf::Value* top_level_value_with_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_with_struct_);
  }
  if (top_level_value_with_struct) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_with_struct)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_with_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_with_struct, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_with_struct_ = top_level_value_with_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_struct)
}

// .google.protobuf.Value top_level_value_with_list = 218;
inline bool DefaultValueTestCases::has_top_level_value_with_list() const {
  return this != internal_default_instance() && top_level_value_with_list_ != NULL;
}
inline const ::google::protobuf::Value& DefaultValueTestCases::_internal_top_level_value_with_list() const {
  return *top_level_value_with_list_;
}
inline const ::google::protobuf::Value& DefaultValueTestCases::top_level_value_with_list() const {
  const ::google::protobuf::Value* p = top_level_value_with_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* DefaultValueTestCases::release_top_level_value_with_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_list)
  
  ::google::protobuf::Value* temp = top_level_value_with_list_;
  top_level_value_with_list_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* DefaultValueTestCases::mutable_top_level_value_with_list() {
  
  if (top_level_value_with_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    top_level_value_with_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_list)
  return top_level_value_with_list_;
}
inline void DefaultValueTestCases::set_allocated_top_level_value_with_list(::google::protobuf::Value* top_level_value_with_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_value_with_list_);
  }
  if (top_level_value_with_list) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_value_with_list)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_value_with_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_value_with_list, submessage_arena);
    }
    
  } else {
    
  }
  top_level_value_with_list_ = top_level_value_with_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.top_level_value_with_list)
}

// .google.protobuf.ListValue top_level_listvalue = 219;
inline bool DefaultValueTestCases::has_top_level_listvalue() const {
  return this != internal_default_instance() && top_level_listvalue_ != NULL;
}
inline const ::google::protobuf::ListValue& DefaultValueTestCases::_internal_top_level_listvalue() const {
  return *top_level_listvalue_;
}
inline const ::google::protobuf::ListValue& DefaultValueTestCases::top_level_listvalue() const {
  const ::google::protobuf::ListValue* p = top_level_listvalue_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.top_level_listvalue)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::ListValue*>(
      &::google::protobuf::_ListValue_default_instance_);
}
inline ::google::protobuf::ListValue* DefaultValueTestCases::release_top_level_listvalue() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.top_level_listvalue)
  
  ::google::protobuf::ListValue* temp = top_level_listvalue_;
  top_level_listvalue_ = NULL;
  return temp;
}
inline ::google::protobuf::ListValue* DefaultValueTestCases::mutable_top_level_listvalue() {
  
  if (top_level_listvalue_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::ListValue>(GetArenaNoVirtual());
    top_level_listvalue_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.top_level_listvalue)
  return top_level_listvalue_;
}
inline void DefaultValueTestCases::set_allocated_top_level_listvalue(::google::protobuf::ListValue* top_level_listvalue) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_listvalue_);
  }
  if (top_level_listvalue) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(top_level_listvalue)->GetArena();
    if (message_arena != submessage_arena) {
      top_level_listvalue = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_listvalue, submessage_arena);
    }
    
  } else {
    
  }
  top_level_listvalue_ = top_level_listvalue;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.top_level_listvalue)
}

// .google.protobuf.testing.AnyMessage empty_any = 301;
inline bool DefaultValueTestCases::has_empty_any() const {
  return this != internal_default_instance() && empty_any_ != NULL;
}
inline void DefaultValueTestCases::clear_empty_any() {
  if (GetArenaNoVirtual() == NULL && empty_any_ != NULL) {
    delete empty_any_;
  }
  empty_any_ = NULL;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::_internal_empty_any() const {
  return *empty_any_;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::empty_any() const {
  const ::google::protobuf::testing::AnyMessage* p = empty_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.empty_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyMessage*>(
      &::google::protobuf::testing::_AnyMessage_default_instance_);
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::release_empty_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.empty_any)
  
  ::google::protobuf::testing::AnyMessage* temp = empty_any_;
  empty_any_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::mutable_empty_any() {
  
  if (empty_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(GetArenaNoVirtual());
    empty_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.empty_any)
  return empty_any_;
}
inline void DefaultValueTestCases::set_allocated_empty_any(::google::protobuf::testing::AnyMessage* empty_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_any_;
  }
  if (empty_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_any, submessage_arena);
    }
    
  } else {
    
  }
  empty_any_ = empty_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.empty_any)
}

// .google.protobuf.testing.AnyMessage type_only_any = 302;
inline bool DefaultValueTestCases::has_type_only_any() const {
  return this != internal_default_instance() && type_only_any_ != NULL;
}
inline void DefaultValueTestCases::clear_type_only_any() {
  if (GetArenaNoVirtual() == NULL && type_only_any_ != NULL) {
    delete type_only_any_;
  }
  type_only_any_ = NULL;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::_internal_type_only_any() const {
  return *type_only_any_;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::type_only_any() const {
  const ::google::protobuf::testing::AnyMessage* p = type_only_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.type_only_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyMessage*>(
      &::google::protobuf::testing::_AnyMessage_default_instance_);
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::release_type_only_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.type_only_any)
  
  ::google::protobuf::testing::AnyMessage* temp = type_only_any_;
  type_only_any_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::mutable_type_only_any() {
  
  if (type_only_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(GetArenaNoVirtual());
    type_only_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.type_only_any)
  return type_only_any_;
}
inline void DefaultValueTestCases::set_allocated_type_only_any(::google::protobuf::testing::AnyMessage* type_only_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete type_only_any_;
  }
  if (type_only_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      type_only_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, type_only_any, submessage_arena);
    }
    
  } else {
    
  }
  type_only_any_ = type_only_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.type_only_any)
}

// .google.protobuf.testing.AnyMessage recursive_any = 303;
inline bool DefaultValueTestCases::has_recursive_any() const {
  return this != internal_default_instance() && recursive_any_ != NULL;
}
inline void DefaultValueTestCases::clear_recursive_any() {
  if (GetArenaNoVirtual() == NULL && recursive_any_ != NULL) {
    delete recursive_any_;
  }
  recursive_any_ = NULL;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::_internal_recursive_any() const {
  return *recursive_any_;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::recursive_any() const {
  const ::google::protobuf::testing::AnyMessage* p = recursive_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.recursive_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyMessage*>(
      &::google::protobuf::testing::_AnyMessage_default_instance_);
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::release_recursive_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.recursive_any)
  
  ::google::protobuf::testing::AnyMessage* temp = recursive_any_;
  recursive_any_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::mutable_recursive_any() {
  
  if (recursive_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(GetArenaNoVirtual());
    recursive_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.recursive_any)
  return recursive_any_;
}
inline void DefaultValueTestCases::set_allocated_recursive_any(::google::protobuf::testing::AnyMessage* recursive_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete recursive_any_;
  }
  if (recursive_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      recursive_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, recursive_any, submessage_arena);
    }
    
  } else {
    
  }
  recursive_any_ = recursive_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.recursive_any)
}

// .google.protobuf.testing.AnyMessage any_with_message_value = 304;
inline bool DefaultValueTestCases::has_any_with_message_value() const {
  return this != internal_default_instance() && any_with_message_value_ != NULL;
}
inline void DefaultValueTestCases::clear_any_with_message_value() {
  if (GetArenaNoVirtual() == NULL && any_with_message_value_ != NULL) {
    delete any_with_message_value_;
  }
  any_with_message_value_ = NULL;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::_internal_any_with_message_value() const {
  return *any_with_message_value_;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::any_with_message_value() const {
  const ::google::protobuf::testing::AnyMessage* p = any_with_message_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.any_with_message_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyMessage*>(
      &::google::protobuf::testing::_AnyMessage_default_instance_);
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::release_any_with_message_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.any_with_message_value)
  
  ::google::protobuf::testing::AnyMessage* temp = any_with_message_value_;
  any_with_message_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::mutable_any_with_message_value() {
  
  if (any_with_message_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(GetArenaNoVirtual());
    any_with_message_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.any_with_message_value)
  return any_with_message_value_;
}
inline void DefaultValueTestCases::set_allocated_any_with_message_value(::google::protobuf::testing::AnyMessage* any_with_message_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_value_;
  }
  if (any_with_message_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_value, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_value_ = any_with_message_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.any_with_message_value)
}

// .google.protobuf.testing.AnyMessage any_with_nested_message = 305;
inline bool DefaultValueTestCases::has_any_with_nested_message() const {
  return this != internal_default_instance() && any_with_nested_message_ != NULL;
}
inline void DefaultValueTestCases::clear_any_with_nested_message() {
  if (GetArenaNoVirtual() == NULL && any_with_nested_message_ != NULL) {
    delete any_with_nested_message_;
  }
  any_with_nested_message_ = NULL;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::_internal_any_with_nested_message() const {
  return *any_with_nested_message_;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::any_with_nested_message() const {
  const ::google::protobuf::testing::AnyMessage* p = any_with_nested_message_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.any_with_nested_message)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyMessage*>(
      &::google::protobuf::testing::_AnyMessage_default_instance_);
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::release_any_with_nested_message() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.any_with_nested_message)
  
  ::google::protobuf::testing::AnyMessage* temp = any_with_nested_message_;
  any_with_nested_message_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::mutable_any_with_nested_message() {
  
  if (any_with_nested_message_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(GetArenaNoVirtual());
    any_with_nested_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.any_with_nested_message)
  return any_with_nested_message_;
}
inline void DefaultValueTestCases::set_allocated_any_with_nested_message(::google::protobuf::testing::AnyMessage* any_with_nested_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_nested_message_;
  }
  if (any_with_nested_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_nested_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_nested_message, submessage_arena);
    }
    
  } else {
    
  }
  any_with_nested_message_ = any_with_nested_message;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.any_with_nested_message)
}

// .google.protobuf.testing.AnyMessage any_with_message_containing_map = 306;
inline bool DefaultValueTestCases::has_any_with_message_containing_map() const {
  return this != internal_default_instance() && any_with_message_containing_map_ != NULL;
}
inline void DefaultValueTestCases::clear_any_with_message_containing_map() {
  if (GetArenaNoVirtual() == NULL && any_with_message_containing_map_ != NULL) {
    delete any_with_message_containing_map_;
  }
  any_with_message_containing_map_ = NULL;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::_internal_any_with_message_containing_map() const {
  return *any_with_message_containing_map_;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::any_with_message_containing_map() const {
  const ::google::protobuf::testing::AnyMessage* p = any_with_message_containing_map_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_map)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyMessage*>(
      &::google::protobuf::testing::_AnyMessage_default_instance_);
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::release_any_with_message_containing_map() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_map)
  
  ::google::protobuf::testing::AnyMessage* temp = any_with_message_containing_map_;
  any_with_message_containing_map_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::mutable_any_with_message_containing_map() {
  
  if (any_with_message_containing_map_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(GetArenaNoVirtual());
    any_with_message_containing_map_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_map)
  return any_with_message_containing_map_;
}
inline void DefaultValueTestCases::set_allocated_any_with_message_containing_map(::google::protobuf::testing::AnyMessage* any_with_message_containing_map) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_containing_map_;
  }
  if (any_with_message_containing_map) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_containing_map = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_containing_map, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_containing_map_ = any_with_message_containing_map;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_map)
}

// .google.protobuf.testing.AnyMessage any_with_message_containing_struct = 307;
inline bool DefaultValueTestCases::has_any_with_message_containing_struct() const {
  return this != internal_default_instance() && any_with_message_containing_struct_ != NULL;
}
inline void DefaultValueTestCases::clear_any_with_message_containing_struct() {
  if (GetArenaNoVirtual() == NULL && any_with_message_containing_struct_ != NULL) {
    delete any_with_message_containing_struct_;
  }
  any_with_message_containing_struct_ = NULL;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::_internal_any_with_message_containing_struct() const {
  return *any_with_message_containing_struct_;
}
inline const ::google::protobuf::testing::AnyMessage& DefaultValueTestCases::any_with_message_containing_struct() const {
  const ::google::protobuf::testing::AnyMessage* p = any_with_message_containing_struct_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyMessage*>(
      &::google::protobuf::testing::_AnyMessage_default_instance_);
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::release_any_with_message_containing_struct() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_struct)
  
  ::google::protobuf::testing::AnyMessage* temp = any_with_message_containing_struct_;
  any_with_message_containing_struct_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyMessage* DefaultValueTestCases::mutable_any_with_message_containing_struct() {
  
  if (any_with_message_containing_struct_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyMessage>(GetArenaNoVirtual());
    any_with_message_containing_struct_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_struct)
  return any_with_message_containing_struct_;
}
inline void DefaultValueTestCases::set_allocated_any_with_message_containing_struct(::google::protobuf::testing::AnyMessage* any_with_message_containing_struct) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete any_with_message_containing_struct_;
  }
  if (any_with_message_containing_struct) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any_with_message_containing_struct = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any_with_message_containing_struct, submessage_arena);
    }
    
  } else {
    
  }
  any_with_message_containing_struct_ = any_with_message_containing_struct;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.any_with_message_containing_struct)
}

// .google.protobuf.Any top_level_any = 308;
inline bool DefaultValueTestCases::has_top_level_any() const {
  return this != internal_default_instance() && top_level_any_ != NULL;
}
inline const ::google::protobuf::Any& DefaultValueTestCases::_internal_top_level_any() const {
  return *top_level_any_;
}
inline const ::google::protobuf::Any& DefaultValueTestCases::top_level_any() const {
  const ::google::protobuf::Any* p = top_level_any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.top_level_any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* DefaultValueTestCases::release_top_level_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.top_level_any)
  
  ::google::protobuf::Any* temp = top_level_any_;
  top_level_any_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* DefaultValueTestCases::mutable_top_level_any() {
  
  if (top_level_any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    top_level_any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.top_level_any)
  return top_level_any_;
}
inline void DefaultValueTestCases::set_allocated_top_level_any(::google::protobuf::Any* top_level_any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(top_level_any_);
  }
  if (top_level_any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      top_level_any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, top_level_any, submessage_arena);
    }
    
  } else {
    
  }
  top_level_any_ = top_level_any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.top_level_any)
}

// .google.protobuf.testing.StringtoIntMap empty_map = 401;
inline bool DefaultValueTestCases::has_empty_map() const {
  return this != internal_default_instance() && empty_map_ != NULL;
}
inline void DefaultValueTestCases::clear_empty_map() {
  if (GetArenaNoVirtual() == NULL && empty_map_ != NULL) {
    delete empty_map_;
  }
  empty_map_ = NULL;
}
inline const ::google::protobuf::testing::StringtoIntMap& DefaultValueTestCases::_internal_empty_map() const {
  return *empty_map_;
}
inline const ::google::protobuf::testing::StringtoIntMap& DefaultValueTestCases::empty_map() const {
  const ::google::protobuf::testing::StringtoIntMap* p = empty_map_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.empty_map)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StringtoIntMap*>(
      &::google::protobuf::testing::_StringtoIntMap_default_instance_);
}
inline ::google::protobuf::testing::StringtoIntMap* DefaultValueTestCases::release_empty_map() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.empty_map)
  
  ::google::protobuf::testing::StringtoIntMap* temp = empty_map_;
  empty_map_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StringtoIntMap* DefaultValueTestCases::mutable_empty_map() {
  
  if (empty_map_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StringtoIntMap>(GetArenaNoVirtual());
    empty_map_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.empty_map)
  return empty_map_;
}
inline void DefaultValueTestCases::set_allocated_empty_map(::google::protobuf::testing::StringtoIntMap* empty_map) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_map_;
  }
  if (empty_map) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_map = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_map, submessage_arena);
    }
    
  } else {
    
  }
  empty_map_ = empty_map;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.empty_map)
}

// .google.protobuf.testing.StringtoIntMap string_to_int = 402;
inline bool DefaultValueTestCases::has_string_to_int() const {
  return this != internal_default_instance() && string_to_int_ != NULL;
}
inline void DefaultValueTestCases::clear_string_to_int() {
  if (GetArenaNoVirtual() == NULL && string_to_int_ != NULL) {
    delete string_to_int_;
  }
  string_to_int_ = NULL;
}
inline const ::google::protobuf::testing::StringtoIntMap& DefaultValueTestCases::_internal_string_to_int() const {
  return *string_to_int_;
}
inline const ::google::protobuf::testing::StringtoIntMap& DefaultValueTestCases::string_to_int() const {
  const ::google::protobuf::testing::StringtoIntMap* p = string_to_int_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.string_to_int)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::StringtoIntMap*>(
      &::google::protobuf::testing::_StringtoIntMap_default_instance_);
}
inline ::google::protobuf::testing::StringtoIntMap* DefaultValueTestCases::release_string_to_int() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.string_to_int)
  
  ::google::protobuf::testing::StringtoIntMap* temp = string_to_int_;
  string_to_int_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::StringtoIntMap* DefaultValueTestCases::mutable_string_to_int() {
  
  if (string_to_int_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::StringtoIntMap>(GetArenaNoVirtual());
    string_to_int_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.string_to_int)
  return string_to_int_;
}
inline void DefaultValueTestCases::set_allocated_string_to_int(::google::protobuf::testing::StringtoIntMap* string_to_int) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete string_to_int_;
  }
  if (string_to_int) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      string_to_int = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, string_to_int, submessage_arena);
    }
    
  } else {
    
  }
  string_to_int_ = string_to_int;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.string_to_int)
}

// .google.protobuf.testing.IntToStringMap int_to_string = 403;
inline bool DefaultValueTestCases::has_int_to_string() const {
  return this != internal_default_instance() && int_to_string_ != NULL;
}
inline void DefaultValueTestCases::clear_int_to_string() {
  if (GetArenaNoVirtual() == NULL && int_to_string_ != NULL) {
    delete int_to_string_;
  }
  int_to_string_ = NULL;
}
inline const ::google::protobuf::testing::IntToStringMap& DefaultValueTestCases::_internal_int_to_string() const {
  return *int_to_string_;
}
inline const ::google::protobuf::testing::IntToStringMap& DefaultValueTestCases::int_to_string() const {
  const ::google::protobuf::testing::IntToStringMap* p = int_to_string_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.int_to_string)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::IntToStringMap*>(
      &::google::protobuf::testing::_IntToStringMap_default_instance_);
}
inline ::google::protobuf::testing::IntToStringMap* DefaultValueTestCases::release_int_to_string() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.int_to_string)
  
  ::google::protobuf::testing::IntToStringMap* temp = int_to_string_;
  int_to_string_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::IntToStringMap* DefaultValueTestCases::mutable_int_to_string() {
  
  if (int_to_string_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::IntToStringMap>(GetArenaNoVirtual());
    int_to_string_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.int_to_string)
  return int_to_string_;
}
inline void DefaultValueTestCases::set_allocated_int_to_string(::google::protobuf::testing::IntToStringMap* int_to_string) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete int_to_string_;
  }
  if (int_to_string) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      int_to_string = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, int_to_string, submessage_arena);
    }
    
  } else {
    
  }
  int_to_string_ = int_to_string;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.int_to_string)
}

// .google.protobuf.testing.MixedMap mixed1 = 404;
inline bool DefaultValueTestCases::has_mixed1() const {
  return this != internal_default_instance() && mixed1_ != NULL;
}
inline void DefaultValueTestCases::clear_mixed1() {
  if (GetArenaNoVirtual() == NULL && mixed1_ != NULL) {
    delete mixed1_;
  }
  mixed1_ = NULL;
}
inline const ::google::protobuf::testing::MixedMap& DefaultValueTestCases::_internal_mixed1() const {
  return *mixed1_;
}
inline const ::google::protobuf::testing::MixedMap& DefaultValueTestCases::mixed1() const {
  const ::google::protobuf::testing::MixedMap* p = mixed1_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.mixed1)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MixedMap*>(
      &::google::protobuf::testing::_MixedMap_default_instance_);
}
inline ::google::protobuf::testing::MixedMap* DefaultValueTestCases::release_mixed1() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.mixed1)
  
  ::google::protobuf::testing::MixedMap* temp = mixed1_;
  mixed1_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MixedMap* DefaultValueTestCases::mutable_mixed1() {
  
  if (mixed1_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MixedMap>(GetArenaNoVirtual());
    mixed1_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.mixed1)
  return mixed1_;
}
inline void DefaultValueTestCases::set_allocated_mixed1(::google::protobuf::testing::MixedMap* mixed1) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete mixed1_;
  }
  if (mixed1) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      mixed1 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, mixed1, submessage_arena);
    }
    
  } else {
    
  }
  mixed1_ = mixed1;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.mixed1)
}

// .google.protobuf.testing.MixedMap2 mixed2 = 405;
inline bool DefaultValueTestCases::has_mixed2() const {
  return this != internal_default_instance() && mixed2_ != NULL;
}
inline void DefaultValueTestCases::clear_mixed2() {
  if (GetArenaNoVirtual() == NULL && mixed2_ != NULL) {
    delete mixed2_;
  }
  mixed2_ = NULL;
}
inline const ::google::protobuf::testing::MixedMap2& DefaultValueTestCases::_internal_mixed2() const {
  return *mixed2_;
}
inline const ::google::protobuf::testing::MixedMap2& DefaultValueTestCases::mixed2() const {
  const ::google::protobuf::testing::MixedMap2* p = mixed2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.mixed2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MixedMap2*>(
      &::google::protobuf::testing::_MixedMap2_default_instance_);
}
inline ::google::protobuf::testing::MixedMap2* DefaultValueTestCases::release_mixed2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.mixed2)
  
  ::google::protobuf::testing::MixedMap2* temp = mixed2_;
  mixed2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MixedMap2* DefaultValueTestCases::mutable_mixed2() {
  
  if (mixed2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MixedMap2>(GetArenaNoVirtual());
    mixed2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.mixed2)
  return mixed2_;
}
inline void DefaultValueTestCases::set_allocated_mixed2(::google::protobuf::testing::MixedMap2* mixed2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete mixed2_;
  }
  if (mixed2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      mixed2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, mixed2, submessage_arena);
    }
    
  } else {
    
  }
  mixed2_ = mixed2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.mixed2)
}

// .google.protobuf.testing.MixedMap2 empty_mixed2 = 406;
inline bool DefaultValueTestCases::has_empty_mixed2() const {
  return this != internal_default_instance() && empty_mixed2_ != NULL;
}
inline void DefaultValueTestCases::clear_empty_mixed2() {
  if (GetArenaNoVirtual() == NULL && empty_mixed2_ != NULL) {
    delete empty_mixed2_;
  }
  empty_mixed2_ = NULL;
}
inline const ::google::protobuf::testing::MixedMap2& DefaultValueTestCases::_internal_empty_mixed2() const {
  return *empty_mixed2_;
}
inline const ::google::protobuf::testing::MixedMap2& DefaultValueTestCases::empty_mixed2() const {
  const ::google::protobuf::testing::MixedMap2* p = empty_mixed2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.empty_mixed2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MixedMap2*>(
      &::google::protobuf::testing::_MixedMap2_default_instance_);
}
inline ::google::protobuf::testing::MixedMap2* DefaultValueTestCases::release_empty_mixed2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.empty_mixed2)
  
  ::google::protobuf::testing::MixedMap2* temp = empty_mixed2_;
  empty_mixed2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MixedMap2* DefaultValueTestCases::mutable_empty_mixed2() {
  
  if (empty_mixed2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MixedMap2>(GetArenaNoVirtual());
    empty_mixed2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.empty_mixed2)
  return empty_mixed2_;
}
inline void DefaultValueTestCases::set_allocated_empty_mixed2(::google::protobuf::testing::MixedMap2* empty_mixed2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_mixed2_;
  }
  if (empty_mixed2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_mixed2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_mixed2, submessage_arena);
    }
    
  } else {
    
  }
  empty_mixed2_ = empty_mixed2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.empty_mixed2)
}

// .google.protobuf.testing.MessageMap map_of_objects = 407;
inline bool DefaultValueTestCases::has_map_of_objects() const {
  return this != internal_default_instance() && map_of_objects_ != NULL;
}
inline void DefaultValueTestCases::clear_map_of_objects() {
  if (GetArenaNoVirtual() == NULL && map_of_objects_ != NULL) {
    delete map_of_objects_;
  }
  map_of_objects_ = NULL;
}
inline const ::google::protobuf::testing::MessageMap& DefaultValueTestCases::_internal_map_of_objects() const {
  return *map_of_objects_;
}
inline const ::google::protobuf::testing::MessageMap& DefaultValueTestCases::map_of_objects() const {
  const ::google::protobuf::testing::MessageMap* p = map_of_objects_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.map_of_objects)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MessageMap*>(
      &::google::protobuf::testing::_MessageMap_default_instance_);
}
inline ::google::protobuf::testing::MessageMap* DefaultValueTestCases::release_map_of_objects() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.map_of_objects)
  
  ::google::protobuf::testing::MessageMap* temp = map_of_objects_;
  map_of_objects_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MessageMap* DefaultValueTestCases::mutable_map_of_objects() {
  
  if (map_of_objects_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MessageMap>(GetArenaNoVirtual());
    map_of_objects_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.map_of_objects)
  return map_of_objects_;
}
inline void DefaultValueTestCases::set_allocated_map_of_objects(::google::protobuf::testing::MessageMap* map_of_objects) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_of_objects_;
  }
  if (map_of_objects) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_of_objects = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_of_objects, submessage_arena);
    }
    
  } else {
    
  }
  map_of_objects_ = map_of_objects;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.map_of_objects)
}

// .google.protobuf.testing.MixedMap mixed_empty = 408;
inline bool DefaultValueTestCases::has_mixed_empty() const {
  return this != internal_default_instance() && mixed_empty_ != NULL;
}
inline void DefaultValueTestCases::clear_mixed_empty() {
  if (GetArenaNoVirtual() == NULL && mixed_empty_ != NULL) {
    delete mixed_empty_;
  }
  mixed_empty_ = NULL;
}
inline const ::google::protobuf::testing::MixedMap& DefaultValueTestCases::_internal_mixed_empty() const {
  return *mixed_empty_;
}
inline const ::google::protobuf::testing::MixedMap& DefaultValueTestCases::mixed_empty() const {
  const ::google::protobuf::testing::MixedMap* p = mixed_empty_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.mixed_empty)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MixedMap*>(
      &::google::protobuf::testing::_MixedMap_default_instance_);
}
inline ::google::protobuf::testing::MixedMap* DefaultValueTestCases::release_mixed_empty() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.mixed_empty)
  
  ::google::protobuf::testing::MixedMap* temp = mixed_empty_;
  mixed_empty_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MixedMap* DefaultValueTestCases::mutable_mixed_empty() {
  
  if (mixed_empty_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MixedMap>(GetArenaNoVirtual());
    mixed_empty_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.mixed_empty)
  return mixed_empty_;
}
inline void DefaultValueTestCases::set_allocated_mixed_empty(::google::protobuf::testing::MixedMap* mixed_empty) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete mixed_empty_;
  }
  if (mixed_empty) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      mixed_empty = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, mixed_empty, submessage_arena);
    }
    
  } else {
    
  }
  mixed_empty_ = mixed_empty;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.mixed_empty)
}

// .google.protobuf.testing.MessageMap message_map_empty = 409;
inline bool DefaultValueTestCases::has_message_map_empty() const {
  return this != internal_default_instance() && message_map_empty_ != NULL;
}
inline void DefaultValueTestCases::clear_message_map_empty() {
  if (GetArenaNoVirtual() == NULL && message_map_empty_ != NULL) {
    delete message_map_empty_;
  }
  message_map_empty_ = NULL;
}
inline const ::google::protobuf::testing::MessageMap& DefaultValueTestCases::_internal_message_map_empty() const {
  return *message_map_empty_;
}
inline const ::google::protobuf::testing::MessageMap& DefaultValueTestCases::message_map_empty() const {
  const ::google::protobuf::testing::MessageMap* p = message_map_empty_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.message_map_empty)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::MessageMap*>(
      &::google::protobuf::testing::_MessageMap_default_instance_);
}
inline ::google::protobuf::testing::MessageMap* DefaultValueTestCases::release_message_map_empty() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.message_map_empty)
  
  ::google::protobuf::testing::MessageMap* temp = message_map_empty_;
  message_map_empty_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::MessageMap* DefaultValueTestCases::mutable_message_map_empty() {
  
  if (message_map_empty_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::MessageMap>(GetArenaNoVirtual());
    message_map_empty_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.message_map_empty)
  return message_map_empty_;
}
inline void DefaultValueTestCases::set_allocated_message_map_empty(::google::protobuf::testing::MessageMap* message_map_empty) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete message_map_empty_;
  }
  if (message_map_empty) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      message_map_empty = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, message_map_empty, submessage_arena);
    }
    
  } else {
    
  }
  message_map_empty_ = message_map_empty;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.message_map_empty)
}

// .google.protobuf.testing.DoubleValueMessage double_value = 501;
inline bool DefaultValueTestCases::has_double_value() const {
  return this != internal_default_instance() && double_value_ != NULL;
}
inline void DefaultValueTestCases::clear_double_value() {
  if (GetArenaNoVirtual() == NULL && double_value_ != NULL) {
    delete double_value_;
  }
  double_value_ = NULL;
}
inline const ::google::protobuf::testing::DoubleValueMessage& DefaultValueTestCases::_internal_double_value() const {
  return *double_value_;
}
inline const ::google::protobuf::testing::DoubleValueMessage& DefaultValueTestCases::double_value() const {
  const ::google::protobuf::testing::DoubleValueMessage* p = double_value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.double_value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleValueMessage*>(
      &::google::protobuf::testing::_DoubleValueMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleValueMessage* DefaultValueTestCases::release_double_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.double_value)
  
  ::google::protobuf::testing::DoubleValueMessage* temp = double_value_;
  double_value_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleValueMessage* DefaultValueTestCases::mutable_double_value() {
  
  if (double_value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleValueMessage>(GetArenaNoVirtual());
    double_value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.double_value)
  return double_value_;
}
inline void DefaultValueTestCases::set_allocated_double_value(::google::protobuf::testing::DoubleValueMessage* double_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete double_value_;
  }
  if (double_value) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_value, submessage_arena);
    }
    
  } else {
    
  }
  double_value_ = double_value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.double_value)
}

// .google.protobuf.testing.DoubleValueMessage double_value_default = 502;
inline bool DefaultValueTestCases::has_double_value_default() const {
  return this != internal_default_instance() && double_value_default_ != NULL;
}
inline void DefaultValueTestCases::clear_double_value_default() {
  if (GetArenaNoVirtual() == NULL && double_value_default_ != NULL) {
    delete double_value_default_;
  }
  double_value_default_ = NULL;
}
inline const ::google::protobuf::testing::DoubleValueMessage& DefaultValueTestCases::_internal_double_value_default() const {
  return *double_value_default_;
}
inline const ::google::protobuf::testing::DoubleValueMessage& DefaultValueTestCases::double_value_default() const {
  const ::google::protobuf::testing::DoubleValueMessage* p = double_value_default_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DefaultValueTestCases.double_value_default)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleValueMessage*>(
      &::google::protobuf::testing::_DoubleValueMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleValueMessage* DefaultValueTestCases::release_double_value_default() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DefaultValueTestCases.double_value_default)
  
  ::google::protobuf::testing::DoubleValueMessage* temp = double_value_default_;
  double_value_default_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleValueMessage* DefaultValueTestCases::mutable_double_value_default() {
  
  if (double_value_default_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleValueMessage>(GetArenaNoVirtual());
    double_value_default_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DefaultValueTestCases.double_value_default)
  return double_value_default_;
}
inline void DefaultValueTestCases::set_allocated_double_value_default(::google::protobuf::testing::DoubleValueMessage* double_value_default) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete double_value_default_;
  }
  if (double_value_default) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      double_value_default = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_value_default, submessage_arena);
    }
    
  } else {
    
  }
  double_value_default_ = double_value_default;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DefaultValueTestCases.double_value_default)
}

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

// DoubleMessage

// double double_value = 1;
inline void DoubleMessage::clear_double_value() {
  double_value_ = 0;
}
inline double DoubleMessage::double_value() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleMessage.double_value)
  return double_value_;
}
inline void DoubleMessage::set_double_value(double value) {
  
  double_value_ = value;
  // @@protoc_insertion_point(field_set:google.protobuf.testing.DoubleMessage.double_value)
}

// repeated double repeated_double = 2;
inline int DoubleMessage::repeated_double_size() const {
  return repeated_double_.size();
}
inline void DoubleMessage::clear_repeated_double() {
  repeated_double_.Clear();
}
inline double DoubleMessage::repeated_double(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleMessage.repeated_double)
  return repeated_double_.Get(index);
}
inline void DoubleMessage::set_repeated_double(int index, double value) {
  repeated_double_.Set(index, value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.DoubleMessage.repeated_double)
}
inline void DoubleMessage::add_repeated_double(double value) {
  repeated_double_.Add(value);
  // @@protoc_insertion_point(field_add:google.protobuf.testing.DoubleMessage.repeated_double)
}
inline const ::google::protobuf::RepeatedField< double >&
DoubleMessage::repeated_double() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.DoubleMessage.repeated_double)
  return repeated_double_;
}
inline ::google::protobuf::RepeatedField< double >*
DoubleMessage::mutable_repeated_double() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.DoubleMessage.repeated_double)
  return &repeated_double_;
}

// .google.protobuf.testing.DoubleMessage nested_message = 3;
inline bool DoubleMessage::has_nested_message() const {
  return this != internal_default_instance() && nested_message_ != NULL;
}
inline void DoubleMessage::clear_nested_message() {
  if (GetArenaNoVirtual() == NULL && nested_message_ != NULL) {
    delete nested_message_;
  }
  nested_message_ = NULL;
}
inline const ::google::protobuf::testing::DoubleMessage& DoubleMessage::_internal_nested_message() const {
  return *nested_message_;
}
inline const ::google::protobuf::testing::DoubleMessage& DoubleMessage::nested_message() const {
  const ::google::protobuf::testing::DoubleMessage* p = nested_message_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleMessage.nested_message)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DoubleMessage*>(
      &::google::protobuf::testing::_DoubleMessage_default_instance_);
}
inline ::google::protobuf::testing::DoubleMessage* DoubleMessage::release_nested_message() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DoubleMessage.nested_message)
  
  ::google::protobuf::testing::DoubleMessage* temp = nested_message_;
  nested_message_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DoubleMessage* DoubleMessage::mutable_nested_message() {
  
  if (nested_message_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DoubleMessage>(GetArenaNoVirtual());
    nested_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DoubleMessage.nested_message)
  return nested_message_;
}
inline void DoubleMessage::set_allocated_nested_message(::google::protobuf::testing::DoubleMessage* nested_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete nested_message_;
  }
  if (nested_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      nested_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, nested_message, submessage_arena);
    }
    
  } else {
    
  }
  nested_message_ = nested_message;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DoubleMessage.nested_message)
}

// repeated .google.protobuf.testing.DoubleMessage repeated_nested_message = 4;
inline int DoubleMessage::repeated_nested_message_size() const {
  return repeated_nested_message_.size();
}
inline void DoubleMessage::clear_repeated_nested_message() {
  repeated_nested_message_.Clear();
}
inline ::google::protobuf::testing::DoubleMessage* DoubleMessage::mutable_repeated_nested_message(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DoubleMessage.repeated_nested_message)
  return repeated_nested_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::DoubleMessage >*
DoubleMessage::mutable_repeated_nested_message() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.DoubleMessage.repeated_nested_message)
  return &repeated_nested_message_;
}
inline const ::google::protobuf::testing::DoubleMessage& DoubleMessage::repeated_nested_message(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleMessage.repeated_nested_message)
  return repeated_nested_message_.Get(index);
}
inline ::google::protobuf::testing::DoubleMessage* DoubleMessage::add_repeated_nested_message() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.DoubleMessage.repeated_nested_message)
  return repeated_nested_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::DoubleMessage >&
DoubleMessage::repeated_nested_message() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.DoubleMessage.repeated_nested_message)
  return repeated_nested_message_;
}

// .google.protobuf.DoubleValue double_wrapper = 100;
inline bool DoubleMessage::has_double_wrapper() const {
  return this != internal_default_instance() && double_wrapper_ != NULL;
}
inline const ::google::protobuf::DoubleValue& DoubleMessage::_internal_double_wrapper() const {
  return *double_wrapper_;
}
inline const ::google::protobuf::DoubleValue& DoubleMessage::double_wrapper() const {
  const ::google::protobuf::DoubleValue* p = double_wrapper_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleMessage.double_wrapper)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::DoubleValue*>(
      &::google::protobuf::_DoubleValue_default_instance_);
}
inline ::google::protobuf::DoubleValue* DoubleMessage::release_double_wrapper() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DoubleMessage.double_wrapper)
  
  ::google::protobuf::DoubleValue* temp = double_wrapper_;
  double_wrapper_ = NULL;
  return temp;
}
inline ::google::protobuf::DoubleValue* DoubleMessage::mutable_double_wrapper() {
  
  if (double_wrapper_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::DoubleValue>(GetArenaNoVirtual());
    double_wrapper_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DoubleMessage.double_wrapper)
  return double_wrapper_;
}
inline void DoubleMessage::set_allocated_double_wrapper(::google::protobuf::DoubleValue* double_wrapper) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(double_wrapper_);
  }
  if (double_wrapper) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(double_wrapper)->GetArena();
    if (message_arena != submessage_arena) {
      double_wrapper = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_wrapper, submessage_arena);
    }
    
  } else {
    
  }
  double_wrapper_ = double_wrapper;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DoubleMessage.double_wrapper)
}

// string str_value = 112;
inline bool DoubleMessage::has_str_value() const {
  return value_case() == kStrValue;
}
inline void DoubleMessage::set_has_str_value() {
  _oneof_case_[0] = kStrValue;
}
inline void DoubleMessage::clear_str_value() {
  if (has_str_value()) {
    value_.str_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_value();
  }
}
inline const ::std::string& DoubleMessage::str_value() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleMessage.str_value)
  if (has_str_value()) {
    return value_.str_value_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void DoubleMessage::set_str_value(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:google.protobuf.testing.DoubleMessage.str_value)
  if (!has_str_value()) {
    clear_value();
    set_has_str_value();
    value_.str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  value_.str_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.DoubleMessage.str_value)
}
#if LANG_CXX11
inline void DoubleMessage::set_str_value(::std::string&& value) {
  // @@protoc_insertion_point(field_set:google.protobuf.testing.DoubleMessage.str_value)
  if (!has_str_value()) {
    clear_value();
    set_has_str_value();
    value_.str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  value_.str_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.DoubleMessage.str_value)
}
#endif
inline void DoubleMessage::set_str_value(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_str_value()) {
    clear_value();
    set_has_str_value();
    value_.str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  value_.str_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.DoubleMessage.str_value)
}
inline void DoubleMessage::set_str_value(const char* value, size_t size) {
  if (!has_str_value()) {
    clear_value();
    set_has_str_value();
    value_.str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  value_.str_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.DoubleMessage.str_value)
}
inline ::std::string* DoubleMessage::mutable_str_value() {
  if (!has_str_value()) {
    clear_value();
    set_has_str_value();
    value_.str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DoubleMessage.str_value)
  return value_.str_value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* DoubleMessage::release_str_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DoubleMessage.str_value)
  if (has_str_value()) {
    clear_has_value();
    return value_.str_value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void DoubleMessage::set_allocated_str_value(::std::string* str_value) {
  if (!has_str_value()) {
    value_.str_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_value();
  if (str_value != NULL) {
    set_has_str_value();
    value_.str_value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), str_value);
  }
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DoubleMessage.str_value)
}

// int64 num_value = 113;
inline bool DoubleMessage::has_num_value() const {
  return value_case() == kNumValue;
}
inline void DoubleMessage::set_has_num_value() {
  _oneof_case_[0] = kNumValue;
}
inline void DoubleMessage::clear_num_value() {
  if (has_num_value()) {
    value_.num_value_ = GOOGLE_LONGLONG(0);
    clear_has_value();
  }
}
inline ::google::protobuf::int64 DoubleMessage::num_value() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleMessage.num_value)
  if (has_num_value()) {
    return value_.num_value_;
  }
  return GOOGLE_LONGLONG(0);
}
inline void DoubleMessage::set_num_value(::google::protobuf::int64 value) {
  if (!has_num_value()) {
    clear_value();
    set_has_num_value();
  }
  value_.num_value_ = value;
  // @@protoc_insertion_point(field_set:google.protobuf.testing.DoubleMessage.num_value)
}

inline bool DoubleMessage::has_value() const {
  return value_case() != VALUE_NOT_SET;
}
inline void DoubleMessage::clear_has_value() {
  _oneof_case_[0] = VALUE_NOT_SET;
}
inline DoubleMessage::ValueCase DoubleMessage::value_case() const {
  return DoubleMessage::ValueCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// StructMessage

// .google.protobuf.Struct struct = 1;
inline bool StructMessage::has_struct_() const {
  return this != internal_default_instance() && struct__ != NULL;
}
inline const ::google::protobuf::Struct& StructMessage::_internal_struct_() const {
  return *struct__;
}
inline const ::google::protobuf::Struct& StructMessage::struct_() const {
  const ::google::protobuf::Struct* p = struct__;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.StructMessage.struct)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* StructMessage::release_struct_() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.StructMessage.struct)
  
  ::google::protobuf::Struct* temp = struct__;
  struct__ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* StructMessage::mutable_struct_() {
  
  if (struct__ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    struct__ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.StructMessage.struct)
  return struct__;
}
inline void StructMessage::set_allocated_struct_(::google::protobuf::Struct* struct_) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(struct__);
  }
  if (struct_) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(struct_)->GetArena();
    if (message_arena != submessage_arena) {
      struct_ = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_, submessage_arena);
    }
    
  } else {
    
  }
  struct__ = struct_;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.StructMessage.struct)
}

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

// ValueMessage

// .google.protobuf.Value value = 1;
inline bool ValueMessage::has_value() const {
  return this != internal_default_instance() && value_ != NULL;
}
inline const ::google::protobuf::Value& ValueMessage::_internal_value() const {
  return *value_;
}
inline const ::google::protobuf::Value& ValueMessage::value() const {
  const ::google::protobuf::Value* p = value_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.ValueMessage.value)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Value*>(
      &::google::protobuf::_Value_default_instance_);
}
inline ::google::protobuf::Value* ValueMessage::release_value() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.ValueMessage.value)
  
  ::google::protobuf::Value* temp = value_;
  value_ = NULL;
  return temp;
}
inline ::google::protobuf::Value* ValueMessage::mutable_value() {
  
  if (value_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Value>(GetArenaNoVirtual());
    value_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.ValueMessage.value)
  return value_;
}
inline void ValueMessage::set_allocated_value(::google::protobuf::Value* value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(value_);
  }
  if (value) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, value, submessage_arena);
    }
    
  } else {
    
  }
  value_ = value;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.ValueMessage.value)
}

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

// ListValueMessage

// .google.protobuf.ListValue shopping_list = 1;
inline bool ListValueMessage::has_shopping_list() const {
  return this != internal_default_instance() && shopping_list_ != NULL;
}
inline const ::google::protobuf::ListValue& ListValueMessage::_internal_shopping_list() const {
  return *shopping_list_;
}
inline const ::google::protobuf::ListValue& ListValueMessage::shopping_list() const {
  const ::google::protobuf::ListValue* p = shopping_list_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.ListValueMessage.shopping_list)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::ListValue*>(
      &::google::protobuf::_ListValue_default_instance_);
}
inline ::google::protobuf::ListValue* ListValueMessage::release_shopping_list() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.ListValueMessage.shopping_list)
  
  ::google::protobuf::ListValue* temp = shopping_list_;
  shopping_list_ = NULL;
  return temp;
}
inline ::google::protobuf::ListValue* ListValueMessage::mutable_shopping_list() {
  
  if (shopping_list_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::ListValue>(GetArenaNoVirtual());
    shopping_list_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.ListValueMessage.shopping_list)
  return shopping_list_;
}
inline void ListValueMessage::set_allocated_shopping_list(::google::protobuf::ListValue* shopping_list) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(shopping_list_);
  }
  if (shopping_list) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(shopping_list)->GetArena();
    if (message_arena != submessage_arena) {
      shopping_list = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, shopping_list, submessage_arena);
    }
    
  } else {
    
  }
  shopping_list_ = shopping_list;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.ListValueMessage.shopping_list)
}

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

// RequestMessage

// string content = 1;
inline void RequestMessage::clear_content() {
  content_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& RequestMessage::content() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.RequestMessage.content)
  return content_.GetNoArena();
}
inline void RequestMessage::set_content(const ::std::string& value) {
  
  content_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.RequestMessage.content)
}
#if LANG_CXX11
inline void RequestMessage::set_content(::std::string&& value) {
  
  content_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.RequestMessage.content)
}
#endif
inline void RequestMessage::set_content(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  content_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.RequestMessage.content)
}
inline void RequestMessage::set_content(const char* value, size_t size) {
  
  content_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.RequestMessage.content)
}
inline ::std::string* RequestMessage::mutable_content() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.RequestMessage.content)
  return content_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* RequestMessage::release_content() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.RequestMessage.content)
  
  return content_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void RequestMessage::set_allocated_content(::std::string* content) {
  if (content != NULL) {
    
  } else {
    
  }
  content_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), content);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.RequestMessage.content)
}

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

// AnyMessage

// .google.protobuf.Any any = 1;
inline bool AnyMessage::has_any() const {
  return this != internal_default_instance() && any_ != NULL;
}
inline const ::google::protobuf::Any& AnyMessage::_internal_any() const {
  return *any_;
}
inline const ::google::protobuf::Any& AnyMessage::any() const {
  const ::google::protobuf::Any* p = any_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyMessage.any)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Any*>(
      &::google::protobuf::_Any_default_instance_);
}
inline ::google::protobuf::Any* AnyMessage::release_any() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyMessage.any)
  
  ::google::protobuf::Any* temp = any_;
  any_ = NULL;
  return temp;
}
inline ::google::protobuf::Any* AnyMessage::mutable_any() {
  
  if (any_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Any>(GetArenaNoVirtual());
    any_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyMessage.any)
  return any_;
}
inline void AnyMessage::set_allocated_any(::google::protobuf::Any* any) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(any_);
  }
  if (any) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      any = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, any, submessage_arena);
    }
    
  } else {
    
  }
  any_ = any;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyMessage.any)
}

// .google.protobuf.testing.AnyData data = 2;
inline bool AnyMessage::has_data() const {
  return this != internal_default_instance() && data_ != NULL;
}
inline void AnyMessage::clear_data() {
  if (GetArenaNoVirtual() == NULL && data_ != NULL) {
    delete data_;
  }
  data_ = NULL;
}
inline const ::google::protobuf::testing::AnyData& AnyMessage::_internal_data() const {
  return *data_;
}
inline const ::google::protobuf::testing::AnyData& AnyMessage::data() const {
  const ::google::protobuf::testing::AnyData* p = data_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyMessage.data)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyData*>(
      &::google::protobuf::testing::_AnyData_default_instance_);
}
inline ::google::protobuf::testing::AnyData* AnyMessage::release_data() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyMessage.data)
  
  ::google::protobuf::testing::AnyData* temp = data_;
  data_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyData* AnyMessage::mutable_data() {
  
  if (data_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyData>(GetArenaNoVirtual());
    data_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyMessage.data)
  return data_;
}
inline void AnyMessage::set_allocated_data(::google::protobuf::testing::AnyData* data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete data_;
  }
  if (data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, data, submessage_arena);
    }
    
  } else {
    
  }
  data_ = data;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyMessage.data)
}

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

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

// AnyData

// int32 attr = 1;
inline void AnyData::clear_attr() {
  attr_ = 0;
}
inline ::google::protobuf::int32 AnyData::attr() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyData.attr)
  return attr_;
}
inline void AnyData::set_attr(::google::protobuf::int32 value) {
  
  attr_ = value;
  // @@protoc_insertion_point(field_set:google.protobuf.testing.AnyData.attr)
}

// string str = 2;
inline void AnyData::clear_str() {
  str_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AnyData::str() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyData.str)
  return str_.GetNoArena();
}
inline void AnyData::set_str(const ::std::string& value) {
  
  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.AnyData.str)
}
#if LANG_CXX11
inline void AnyData::set_str(::std::string&& value) {
  
  str_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.AnyData.str)
}
#endif
inline void AnyData::set_str(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.AnyData.str)
}
inline void AnyData::set_str(const char* value, size_t size) {
  
  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.AnyData.str)
}
inline ::std::string* AnyData::mutable_str() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyData.str)
  return str_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AnyData::release_str() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyData.str)
  
  return str_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AnyData::set_allocated_str(::std::string* str) {
  if (str != NULL) {
    
  } else {
    
  }
  str_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), str);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyData.str)
}

// repeated string msgs = 3;
inline int AnyData::msgs_size() const {
  return msgs_.size();
}
inline void AnyData::clear_msgs() {
  msgs_.Clear();
}
inline const ::std::string& AnyData::msgs(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyData.msgs)
  return msgs_.Get(index);
}
inline ::std::string* AnyData::mutable_msgs(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyData.msgs)
  return msgs_.Mutable(index);
}
inline void AnyData::set_msgs(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:google.protobuf.testing.AnyData.msgs)
  msgs_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void AnyData::set_msgs(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:google.protobuf.testing.AnyData.msgs)
  msgs_.Mutable(index)->assign(std::move(value));
}
#endif
inline void AnyData::set_msgs(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  msgs_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.AnyData.msgs)
}
inline void AnyData::set_msgs(int index, const char* value, size_t size) {
  msgs_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.AnyData.msgs)
}
inline ::std::string* AnyData::add_msgs() {
  // @@protoc_insertion_point(field_add_mutable:google.protobuf.testing.AnyData.msgs)
  return msgs_.Add();
}
inline void AnyData::add_msgs(const ::std::string& value) {
  msgs_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:google.protobuf.testing.AnyData.msgs)
}
#if LANG_CXX11
inline void AnyData::add_msgs(::std::string&& value) {
  msgs_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:google.protobuf.testing.AnyData.msgs)
}
#endif
inline void AnyData::add_msgs(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  msgs_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:google.protobuf.testing.AnyData.msgs)
}
inline void AnyData::add_msgs(const char* value, size_t size) {
  msgs_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:google.protobuf.testing.AnyData.msgs)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
AnyData::msgs() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.AnyData.msgs)
  return msgs_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
AnyData::mutable_msgs() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.AnyData.msgs)
  return &msgs_;
}

// .google.protobuf.testing.AnyData nested_data = 4;
inline bool AnyData::has_nested_data() const {
  return this != internal_default_instance() && nested_data_ != NULL;
}
inline void AnyData::clear_nested_data() {
  if (GetArenaNoVirtual() == NULL && nested_data_ != NULL) {
    delete nested_data_;
  }
  nested_data_ = NULL;
}
inline const ::google::protobuf::testing::AnyData& AnyData::_internal_nested_data() const {
  return *nested_data_;
}
inline const ::google::protobuf::testing::AnyData& AnyData::nested_data() const {
  const ::google::protobuf::testing::AnyData* p = nested_data_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyData.nested_data)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::AnyData*>(
      &::google::protobuf::testing::_AnyData_default_instance_);
}
inline ::google::protobuf::testing::AnyData* AnyData::release_nested_data() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyData.nested_data)
  
  ::google::protobuf::testing::AnyData* temp = nested_data_;
  nested_data_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::AnyData* AnyData::mutable_nested_data() {
  
  if (nested_data_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::AnyData>(GetArenaNoVirtual());
    nested_data_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyData.nested_data)
  return nested_data_;
}
inline void AnyData::set_allocated_nested_data(::google::protobuf::testing::AnyData* nested_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete nested_data_;
  }
  if (nested_data) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      nested_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, nested_data, submessage_arena);
    }
    
  } else {
    
  }
  nested_data_ = nested_data;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyData.nested_data)
}

// map<string, string> map_data = 7;
inline int AnyData::map_data_size() const {
  return map_data_.size();
}
inline void AnyData::clear_map_data() {
  map_data_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
AnyData::map_data() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.AnyData.map_data)
  return map_data_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
AnyData::mutable_map_data() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.AnyData.map_data)
  return map_data_.MutableMap();
}

// .google.protobuf.Struct struct_data = 8;
inline bool AnyData::has_struct_data() const {
  return this != internal_default_instance() && struct_data_ != NULL;
}
inline const ::google::protobuf::Struct& AnyData::_internal_struct_data() const {
  return *struct_data_;
}
inline const ::google::protobuf::Struct& AnyData::struct_data() const {
  const ::google::protobuf::Struct* p = struct_data_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyData.struct_data)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Struct*>(
      &::google::protobuf::_Struct_default_instance_);
}
inline ::google::protobuf::Struct* AnyData::release_struct_data() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.AnyData.struct_data)
  
  ::google::protobuf::Struct* temp = struct_data_;
  struct_data_ = NULL;
  return temp;
}
inline ::google::protobuf::Struct* AnyData::mutable_struct_data() {
  
  if (struct_data_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Struct>(GetArenaNoVirtual());
    struct_data_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyData.struct_data)
  return struct_data_;
}
inline void AnyData::set_allocated_struct_data(::google::protobuf::Struct* struct_data) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(struct_data_);
  }
  if (struct_data) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(struct_data)->GetArena();
    if (message_arena != submessage_arena) {
      struct_data = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, struct_data, submessage_arena);
    }
    
  } else {
    
  }
  struct_data_ = struct_data;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.AnyData.struct_data)
}

// repeated .google.protobuf.testing.AnyData repeated_data = 9;
inline int AnyData::repeated_data_size() const {
  return repeated_data_.size();
}
inline void AnyData::clear_repeated_data() {
  repeated_data_.Clear();
}
inline ::google::protobuf::testing::AnyData* AnyData::mutable_repeated_data(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.AnyData.repeated_data)
  return repeated_data_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::AnyData >*
AnyData::mutable_repeated_data() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.AnyData.repeated_data)
  return &repeated_data_;
}
inline const ::google::protobuf::testing::AnyData& AnyData::repeated_data(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.AnyData.repeated_data)
  return repeated_data_.Get(index);
}
inline ::google::protobuf::testing::AnyData* AnyData::add_repeated_data() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.AnyData.repeated_data)
  return repeated_data_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::AnyData >&
AnyData::repeated_data() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.AnyData.repeated_data)
  return repeated_data_;
}

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

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

// StringtoIntMap

// map<string, int32> map = 1;
inline int StringtoIntMap::map_size() const {
  return map_.size();
}
inline void StringtoIntMap::clear_map() {
  map_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >&
StringtoIntMap::map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.StringtoIntMap.map)
  return map_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >*
StringtoIntMap::mutable_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.StringtoIntMap.map)
  return map_.MutableMap();
}

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

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

// IntToStringMap

// map<int32, string> map = 1;
inline int IntToStringMap::map_size() const {
  return map_.size();
}
inline void IntToStringMap::clear_map() {
  map_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >&
IntToStringMap::map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.IntToStringMap.map)
  return map_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >*
IntToStringMap::mutable_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.IntToStringMap.map)
  return map_.MutableMap();
}

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

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

// MixedMap

// string msg = 1;
inline void MixedMap::clear_msg() {
  msg_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& MixedMap::msg() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.MixedMap.msg)
  return msg_.GetNoArena();
}
inline void MixedMap::set_msg(const ::std::string& value) {
  
  msg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.MixedMap.msg)
}
#if LANG_CXX11
inline void MixedMap::set_msg(::std::string&& value) {
  
  msg_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.MixedMap.msg)
}
#endif
inline void MixedMap::set_msg(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  msg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.MixedMap.msg)
}
inline void MixedMap::set_msg(const char* value, size_t size) {
  
  msg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.MixedMap.msg)
}
inline ::std::string* MixedMap::mutable_msg() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.MixedMap.msg)
  return msg_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* MixedMap::release_msg() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.MixedMap.msg)
  
  return msg_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void MixedMap::set_allocated_msg(::std::string* msg) {
  if (msg != NULL) {
    
  } else {
    
  }
  msg_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), msg);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.MixedMap.msg)
}

// map<string, float> map = 2;
inline int MixedMap::map_size() const {
  return map_.size();
}
inline void MixedMap::clear_map() {
  map_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, float >&
MixedMap::map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.MixedMap.map)
  return map_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, float >*
MixedMap::mutable_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.MixedMap.map)
  return map_.MutableMap();
}

// int32 int_value = 3;
inline void MixedMap::clear_int_value() {
  int_value_ = 0;
}
inline ::google::protobuf::int32 MixedMap::int_value() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.MixedMap.int_value)
  return int_value_;
}
inline void MixedMap::set_int_value(::google::protobuf::int32 value) {
  
  int_value_ = value;
  // @@protoc_insertion_point(field_set:google.protobuf.testing.MixedMap.int_value)
}

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

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

// MixedMap2

// map<int32, bool> map = 1;
inline int MixedMap2::map_size() const {
  return map_.size();
}
inline void MixedMap2::clear_map() {
  map_.Clear();
}
inline const ::google::protobuf::Map< ::google::protobuf::int32, bool >&
MixedMap2::map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.MixedMap2.map)
  return map_.GetMap();
}
inline ::google::protobuf::Map< ::google::protobuf::int32, bool >*
MixedMap2::mutable_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.MixedMap2.map)
  return map_.MutableMap();
}

// .google.protobuf.testing.MixedMap2.E ee = 2;
inline void MixedMap2::clear_ee() {
  ee_ = 0;
}
inline ::google::protobuf::testing::MixedMap2_E MixedMap2::ee() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.MixedMap2.ee)
  return static_cast< ::google::protobuf::testing::MixedMap2_E >(ee_);
}
inline void MixedMap2::set_ee(::google::protobuf::testing::MixedMap2_E value) {
  
  ee_ = value;
  // @@protoc_insertion_point(field_set:google.protobuf.testing.MixedMap2.ee)
}

// string msg = 4;
inline void MixedMap2::clear_msg() {
  msg_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& MixedMap2::msg() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.MixedMap2.msg)
  return msg_.GetNoArena();
}
inline void MixedMap2::set_msg(const ::std::string& value) {
  
  msg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.MixedMap2.msg)
}
#if LANG_CXX11
inline void MixedMap2::set_msg(::std::string&& value) {
  
  msg_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.MixedMap2.msg)
}
#endif
inline void MixedMap2::set_msg(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  msg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.MixedMap2.msg)
}
inline void MixedMap2::set_msg(const char* value, size_t size) {
  
  msg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.MixedMap2.msg)
}
inline ::std::string* MixedMap2::mutable_msg() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.MixedMap2.msg)
  return msg_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* MixedMap2::release_msg() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.MixedMap2.msg)
  
  return msg_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void MixedMap2::set_allocated_msg(::std::string* msg) {
  if (msg != NULL) {
    
  } else {
    
  }
  msg_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), msg);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.MixedMap2.msg)
}

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

// MessageMap_M

// int32 inner_int = 1;
inline void MessageMap_M::clear_inner_int() {
  inner_int_ = 0;
}
inline ::google::protobuf::int32 MessageMap_M::inner_int() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.MessageMap.M.inner_int)
  return inner_int_;
}
inline void MessageMap_M::set_inner_int(::google::protobuf::int32 value) {
  
  inner_int_ = value;
  // @@protoc_insertion_point(field_set:google.protobuf.testing.MessageMap.M.inner_int)
}

// string inner_text = 2;
inline void MessageMap_M::clear_inner_text() {
  inner_text_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& MessageMap_M::inner_text() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.MessageMap.M.inner_text)
  return inner_text_.GetNoArena();
}
inline void MessageMap_M::set_inner_text(const ::std::string& value) {
  
  inner_text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.MessageMap.M.inner_text)
}
#if LANG_CXX11
inline void MessageMap_M::set_inner_text(::std::string&& value) {
  
  inner_text_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.MessageMap.M.inner_text)
}
#endif
inline void MessageMap_M::set_inner_text(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  inner_text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.MessageMap.M.inner_text)
}
inline void MessageMap_M::set_inner_text(const char* value, size_t size) {
  
  inner_text_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.MessageMap.M.inner_text)
}
inline ::std::string* MessageMap_M::mutable_inner_text() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.MessageMap.M.inner_text)
  return inner_text_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* MessageMap_M::release_inner_text() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.MessageMap.M.inner_text)
  
  return inner_text_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void MessageMap_M::set_allocated_inner_text(::std::string* inner_text) {
  if (inner_text != NULL) {
    
  } else {
    
  }
  inner_text_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), inner_text);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.MessageMap.M.inner_text)
}

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

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

// MessageMap

// map<string, .google.protobuf.testing.MessageMap.M> map = 1;
inline int MessageMap::map_size() const {
  return map_.size();
}
inline void MessageMap::clear_map() {
  map_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >&
MessageMap::map() const {
  // @@protoc_insertion_point(field_map:google.protobuf.testing.MessageMap.map)
  return map_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >*
MessageMap::mutable_map() {
  // @@protoc_insertion_point(field_mutable_map:google.protobuf.testing.MessageMap.map)
  return map_.MutableMap();
}

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

// DoubleValueMessage

// .google.protobuf.DoubleValue double = 1;
inline bool DoubleValueMessage::has_double_() const {
  return this != internal_default_instance() && double__ != NULL;
}
inline const ::google::protobuf::DoubleValue& DoubleValueMessage::_internal_double_() const {
  return *double__;
}
inline const ::google::protobuf::DoubleValue& DoubleValueMessage::double_() const {
  const ::google::protobuf::DoubleValue* p = double__;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DoubleValueMessage.double)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::DoubleValue*>(
      &::google::protobuf::_DoubleValue_default_instance_);
}
inline ::google::protobuf::DoubleValue* DoubleValueMessage::release_double_() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DoubleValueMessage.double)
  
  ::google::protobuf::DoubleValue* temp = double__;
  double__ = NULL;
  return temp;
}
inline ::google::protobuf::DoubleValue* DoubleValueMessage::mutable_double_() {
  
  if (double__ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::DoubleValue>(GetArenaNoVirtual());
    double__ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DoubleValueMessage.double)
  return double__;
}
inline void DoubleValueMessage::set_allocated_double_(::google::protobuf::DoubleValue* double_) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(double__);
  }
  if (double_) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(double_)->GetArena();
    if (message_arena != submessage_arena) {
      double_ = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, double_, submessage_arena);
    }
    
  } else {
    
  }
  double__ = double_;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DoubleValueMessage.double)
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace testing
}  // namespace protobuf
}  // namespace google

namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::google::protobuf::testing::MixedMap2_E> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::testing::MixedMap2_E>() {
  return ::google::protobuf::testing::MixedMap2_E_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto
