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

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_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/unknown_field_set.h>
#include <google/protobuf/field_mask.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_2eproto 

namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_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[4];
  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_2ffield_5fmask_2eproto
namespace google {
namespace protobuf {
namespace testing {
class FieldMaskTest;
class FieldMaskTestDefaultTypeInternal;
extern FieldMaskTestDefaultTypeInternal _FieldMaskTest_default_instance_;
class FieldMaskTestCases;
class FieldMaskTestCasesDefaultTypeInternal;
extern FieldMaskTestCasesDefaultTypeInternal _FieldMaskTestCases_default_instance_;
class FieldMaskWrapper;
class FieldMaskWrapperDefaultTypeInternal;
extern FieldMaskWrapperDefaultTypeInternal _FieldMaskWrapper_default_instance_;
class NestedFieldMask;
class NestedFieldMaskDefaultTypeInternal;
extern NestedFieldMaskDefaultTypeInternal _NestedFieldMask_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::protobuf::testing::FieldMaskTest* Arena::CreateMaybeMessage<::google::protobuf::testing::FieldMaskTest>(Arena*);
template<> ::google::protobuf::testing::FieldMaskTestCases* Arena::CreateMaybeMessage<::google::protobuf::testing::FieldMaskTestCases>(Arena*);
template<> ::google::protobuf::testing::FieldMaskWrapper* Arena::CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(Arena*);
template<> ::google::protobuf::testing::NestedFieldMask* Arena::CreateMaybeMessage<::google::protobuf::testing::NestedFieldMask>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
namespace testing {

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

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

  NestedFieldMask(const NestedFieldMask& from);

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

  inline NestedFieldMask& operator=(NestedFieldMask&& 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 NestedFieldMask& default_instance();

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

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

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

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

  NestedFieldMask* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<NestedFieldMask>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const NestedFieldMask& from);
  void MergeFrom(const NestedFieldMask& 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(NestedFieldMask* 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 .google.protobuf.FieldMask repeated_mask = 3;
  int repeated_mask_size() const;
  void clear_repeated_mask();
  static const int kRepeatedMaskFieldNumber = 3;
  ::google::protobuf::FieldMask* mutable_repeated_mask(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >*
      mutable_repeated_mask();
  const ::google::protobuf::FieldMask& repeated_mask(int index) const;
  ::google::protobuf::FieldMask* add_repeated_mask();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >&
      repeated_mask() const;

  // string data = 1;
  void clear_data();
  static const int kDataFieldNumber = 1;
  const ::std::string& data() const;
  void set_data(const ::std::string& value);
  #if LANG_CXX11
  void set_data(::std::string&& value);
  #endif
  void set_data(const char* value);
  void set_data(const char* value, size_t size);
  ::std::string* mutable_data();
  ::std::string* release_data();
  void set_allocated_data(::std::string* data);

  // .google.protobuf.FieldMask single_mask = 2;
  bool has_single_mask() const;
  void clear_single_mask();
  static const int kSingleMaskFieldNumber = 2;
  private:
  const ::google::protobuf::FieldMask& _internal_single_mask() const;
  public:
  const ::google::protobuf::FieldMask& single_mask() const;
  ::google::protobuf::FieldMask* release_single_mask();
  ::google::protobuf::FieldMask* mutable_single_mask();
  void set_allocated_single_mask(::google::protobuf::FieldMask* single_mask);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask > repeated_mask_;
  ::google::protobuf::internal::ArenaStringPtr data_;
  ::google::protobuf::FieldMask* single_mask_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  FieldMaskTest(const FieldMaskTest& from);

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

  inline FieldMaskTest& operator=(FieldMaskTest&& 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 FieldMaskTest& default_instance();

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

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

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

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

  FieldMaskTest* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FieldMaskTest>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const FieldMaskTest& from);
  void MergeFrom(const FieldMaskTest& 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(FieldMaskTest* 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 .google.protobuf.FieldMask repeated_mask = 3;
  int repeated_mask_size() const;
  void clear_repeated_mask();
  static const int kRepeatedMaskFieldNumber = 3;
  ::google::protobuf::FieldMask* mutable_repeated_mask(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >*
      mutable_repeated_mask();
  const ::google::protobuf::FieldMask& repeated_mask(int index) const;
  ::google::protobuf::FieldMask* add_repeated_mask();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >&
      repeated_mask() const;

  // repeated .google.protobuf.testing.NestedFieldMask nested_mask = 4;
  int nested_mask_size() const;
  void clear_nested_mask();
  static const int kNestedMaskFieldNumber = 4;
  ::google::protobuf::testing::NestedFieldMask* mutable_nested_mask(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::NestedFieldMask >*
      mutable_nested_mask();
  const ::google::protobuf::testing::NestedFieldMask& nested_mask(int index) const;
  ::google::protobuf::testing::NestedFieldMask* add_nested_mask();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::NestedFieldMask >&
      nested_mask() const;

  // string id = 1;
  void clear_id();
  static const int kIdFieldNumber = 1;
  const ::std::string& id() const;
  void set_id(const ::std::string& value);
  #if LANG_CXX11
  void set_id(::std::string&& value);
  #endif
  void set_id(const char* value);
  void set_id(const char* value, size_t size);
  ::std::string* mutable_id();
  ::std::string* release_id();
  void set_allocated_id(::std::string* id);

  // .google.protobuf.FieldMask single_mask = 2;
  bool has_single_mask() const;
  void clear_single_mask();
  static const int kSingleMaskFieldNumber = 2;
  private:
  const ::google::protobuf::FieldMask& _internal_single_mask() const;
  public:
  const ::google::protobuf::FieldMask& single_mask() const;
  ::google::protobuf::FieldMask* release_single_mask();
  ::google::protobuf::FieldMask* mutable_single_mask();
  void set_allocated_single_mask(::google::protobuf::FieldMask* single_mask);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask > repeated_mask_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::NestedFieldMask > nested_mask_;
  ::google::protobuf::internal::ArenaStringPtr id_;
  ::google::protobuf::FieldMask* single_mask_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  FieldMaskTestCases(const FieldMaskTestCases& from);

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

  inline FieldMaskTestCases& operator=(FieldMaskTestCases&& 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 FieldMaskTestCases& default_instance();

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

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

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

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

  FieldMaskTestCases* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FieldMaskTestCases>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const FieldMaskTestCases& from);
  void MergeFrom(const FieldMaskTestCases& 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(FieldMaskTestCases* 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.FieldMaskWrapper single_mask = 1;
  bool has_single_mask() const;
  void clear_single_mask();
  static const int kSingleMaskFieldNumber = 1;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_single_mask() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& single_mask() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_single_mask();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_single_mask();
  void set_allocated_single_mask(::google::protobuf::testing::FieldMaskWrapper* single_mask);

  // .google.protobuf.testing.FieldMaskWrapper multiple_mask = 2;
  bool has_multiple_mask() const;
  void clear_multiple_mask();
  static const int kMultipleMaskFieldNumber = 2;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_multiple_mask() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& multiple_mask() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_multiple_mask();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_multiple_mask();
  void set_allocated_multiple_mask(::google::protobuf::testing::FieldMaskWrapper* multiple_mask);

  // .google.protobuf.testing.FieldMaskWrapper snake_camel = 3;
  bool has_snake_camel() const;
  void clear_snake_camel();
  static const int kSnakeCamelFieldNumber = 3;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_snake_camel() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& snake_camel() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_snake_camel();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_snake_camel();
  void set_allocated_snake_camel(::google::protobuf::testing::FieldMaskWrapper* snake_camel);

  // .google.protobuf.testing.FieldMaskWrapper empty_field = 4;
  bool has_empty_field() const;
  void clear_empty_field();
  static const int kEmptyFieldFieldNumber = 4;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_empty_field() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& empty_field() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_empty_field();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_empty_field();
  void set_allocated_empty_field(::google::protobuf::testing::FieldMaskWrapper* empty_field);

  // .google.protobuf.testing.FieldMaskWrapper apiary_format1 = 5;
  bool has_apiary_format1() const;
  void clear_apiary_format1();
  static const int kApiaryFormat1FieldNumber = 5;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_apiary_format1() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& apiary_format1() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_apiary_format1();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_apiary_format1();
  void set_allocated_apiary_format1(::google::protobuf::testing::FieldMaskWrapper* apiary_format1);

  // .google.protobuf.testing.FieldMaskWrapper apiary_format2 = 6;
  bool has_apiary_format2() const;
  void clear_apiary_format2();
  static const int kApiaryFormat2FieldNumber = 6;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_apiary_format2() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& apiary_format2() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_apiary_format2();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_apiary_format2();
  void set_allocated_apiary_format2(::google::protobuf::testing::FieldMaskWrapper* apiary_format2);

  // .google.protobuf.testing.FieldMaskWrapper apiary_format3 = 7;
  bool has_apiary_format3() const;
  void clear_apiary_format3();
  static const int kApiaryFormat3FieldNumber = 7;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_apiary_format3() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& apiary_format3() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_apiary_format3();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_apiary_format3();
  void set_allocated_apiary_format3(::google::protobuf::testing::FieldMaskWrapper* apiary_format3);

  // .google.protobuf.testing.FieldMaskWrapper map_key1 = 8;
  bool has_map_key1() const;
  void clear_map_key1();
  static const int kMapKey1FieldNumber = 8;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_map_key1() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& map_key1() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_map_key1();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_map_key1();
  void set_allocated_map_key1(::google::protobuf::testing::FieldMaskWrapper* map_key1);

  // .google.protobuf.testing.FieldMaskWrapper map_key2 = 9;
  bool has_map_key2() const;
  void clear_map_key2();
  static const int kMapKey2FieldNumber = 9;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_map_key2() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& map_key2() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_map_key2();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_map_key2();
  void set_allocated_map_key2(::google::protobuf::testing::FieldMaskWrapper* map_key2);

  // .google.protobuf.testing.FieldMaskWrapper map_key3 = 10;
  bool has_map_key3() const;
  void clear_map_key3();
  static const int kMapKey3FieldNumber = 10;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_map_key3() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& map_key3() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_map_key3();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_map_key3();
  void set_allocated_map_key3(::google::protobuf::testing::FieldMaskWrapper* map_key3);

  // .google.protobuf.testing.FieldMaskWrapper map_key4 = 11;
  bool has_map_key4() const;
  void clear_map_key4();
  static const int kMapKey4FieldNumber = 11;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_map_key4() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& map_key4() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_map_key4();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_map_key4();
  void set_allocated_map_key4(::google::protobuf::testing::FieldMaskWrapper* map_key4);

  // .google.protobuf.testing.FieldMaskWrapper map_key5 = 12;
  bool has_map_key5() const;
  void clear_map_key5();
  static const int kMapKey5FieldNumber = 12;
  private:
  const ::google::protobuf::testing::FieldMaskWrapper& _internal_map_key5() const;
  public:
  const ::google::protobuf::testing::FieldMaskWrapper& map_key5() const;
  ::google::protobuf::testing::FieldMaskWrapper* release_map_key5();
  ::google::protobuf::testing::FieldMaskWrapper* mutable_map_key5();
  void set_allocated_map_key5(::google::protobuf::testing::FieldMaskWrapper* map_key5);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::testing::FieldMaskWrapper* single_mask_;
  ::google::protobuf::testing::FieldMaskWrapper* multiple_mask_;
  ::google::protobuf::testing::FieldMaskWrapper* snake_camel_;
  ::google::protobuf::testing::FieldMaskWrapper* empty_field_;
  ::google::protobuf::testing::FieldMaskWrapper* apiary_format1_;
  ::google::protobuf::testing::FieldMaskWrapper* apiary_format2_;
  ::google::protobuf::testing::FieldMaskWrapper* apiary_format3_;
  ::google::protobuf::testing::FieldMaskWrapper* map_key1_;
  ::google::protobuf::testing::FieldMaskWrapper* map_key2_;
  ::google::protobuf::testing::FieldMaskWrapper* map_key3_;
  ::google::protobuf::testing::FieldMaskWrapper* map_key4_;
  ::google::protobuf::testing::FieldMaskWrapper* map_key5_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  FieldMaskWrapper(const FieldMaskWrapper& from);

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

  inline FieldMaskWrapper& operator=(FieldMaskWrapper&& 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 FieldMaskWrapper& default_instance();

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

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

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

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

  FieldMaskWrapper* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<FieldMaskWrapper>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const FieldMaskWrapper& from);
  void MergeFrom(const FieldMaskWrapper& 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(FieldMaskWrapper* 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.FieldMask mask = 1;
  bool has_mask() const;
  void clear_mask();
  static const int kMaskFieldNumber = 1;
  private:
  const ::google::protobuf::FieldMask& _internal_mask() const;
  public:
  const ::google::protobuf::FieldMask& mask() const;
  ::google::protobuf::FieldMask* release_mask();
  ::google::protobuf::FieldMask* mutable_mask();
  void set_allocated_mask(::google::protobuf::FieldMask* mask);

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::FieldMask* mask_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_2eproto::TableStruct;
};
// ===================================================================


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

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

// string data = 1;
inline void NestedFieldMask::clear_data() {
  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& NestedFieldMask::data() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.NestedFieldMask.data)
  return data_.GetNoArena();
}
inline void NestedFieldMask::set_data(const ::std::string& value) {
  
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.NestedFieldMask.data)
}
#if LANG_CXX11
inline void NestedFieldMask::set_data(::std::string&& value) {
  
  data_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.NestedFieldMask.data)
}
#endif
inline void NestedFieldMask::set_data(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.NestedFieldMask.data)
}
inline void NestedFieldMask::set_data(const char* value, size_t size) {
  
  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.NestedFieldMask.data)
}
inline ::std::string* NestedFieldMask::mutable_data() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.NestedFieldMask.data)
  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* NestedFieldMask::release_data() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.NestedFieldMask.data)
  
  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void NestedFieldMask::set_allocated_data(::std::string* data) {
  if (data != NULL) {
    
  } else {
    
  }
  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.NestedFieldMask.data)
}

// .google.protobuf.FieldMask single_mask = 2;
inline bool NestedFieldMask::has_single_mask() const {
  return this != internal_default_instance() && single_mask_ != NULL;
}
inline const ::google::protobuf::FieldMask& NestedFieldMask::_internal_single_mask() const {
  return *single_mask_;
}
inline const ::google::protobuf::FieldMask& NestedFieldMask::single_mask() const {
  const ::google::protobuf::FieldMask* p = single_mask_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.NestedFieldMask.single_mask)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::FieldMask*>(
      &::google::protobuf::_FieldMask_default_instance_);
}
inline ::google::protobuf::FieldMask* NestedFieldMask::release_single_mask() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.NestedFieldMask.single_mask)
  
  ::google::protobuf::FieldMask* temp = single_mask_;
  single_mask_ = NULL;
  return temp;
}
inline ::google::protobuf::FieldMask* NestedFieldMask::mutable_single_mask() {
  
  if (single_mask_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::FieldMask>(GetArenaNoVirtual());
    single_mask_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.NestedFieldMask.single_mask)
  return single_mask_;
}
inline void NestedFieldMask::set_allocated_single_mask(::google::protobuf::FieldMask* single_mask) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(single_mask_);
  }
  if (single_mask) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      single_mask = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, single_mask, submessage_arena);
    }
    
  } else {
    
  }
  single_mask_ = single_mask;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.NestedFieldMask.single_mask)
}

// repeated .google.protobuf.FieldMask repeated_mask = 3;
inline int NestedFieldMask::repeated_mask_size() const {
  return repeated_mask_.size();
}
inline ::google::protobuf::FieldMask* NestedFieldMask::mutable_repeated_mask(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.NestedFieldMask.repeated_mask)
  return repeated_mask_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >*
NestedFieldMask::mutable_repeated_mask() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.NestedFieldMask.repeated_mask)
  return &repeated_mask_;
}
inline const ::google::protobuf::FieldMask& NestedFieldMask::repeated_mask(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.NestedFieldMask.repeated_mask)
  return repeated_mask_.Get(index);
}
inline ::google::protobuf::FieldMask* NestedFieldMask::add_repeated_mask() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.NestedFieldMask.repeated_mask)
  return repeated_mask_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >&
NestedFieldMask::repeated_mask() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.NestedFieldMask.repeated_mask)
  return repeated_mask_;
}

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

// FieldMaskTest

// string id = 1;
inline void FieldMaskTest::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& FieldMaskTest::id() const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTest.id)
  return id_.GetNoArena();
}
inline void FieldMaskTest::set_id(const ::std::string& value) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.protobuf.testing.FieldMaskTest.id)
}
#if LANG_CXX11
inline void FieldMaskTest::set_id(::std::string&& value) {
  
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.protobuf.testing.FieldMaskTest.id)
}
#endif
inline void FieldMaskTest::set_id(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.protobuf.testing.FieldMaskTest.id)
}
inline void FieldMaskTest::set_id(const char* value, size_t size) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.protobuf.testing.FieldMaskTest.id)
}
inline ::std::string* FieldMaskTest::mutable_id() {
  
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTest.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* FieldMaskTest::release_id() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTest.id)
  
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void FieldMaskTest::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    
  } else {
    
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTest.id)
}

// .google.protobuf.FieldMask single_mask = 2;
inline bool FieldMaskTest::has_single_mask() const {
  return this != internal_default_instance() && single_mask_ != NULL;
}
inline const ::google::protobuf::FieldMask& FieldMaskTest::_internal_single_mask() const {
  return *single_mask_;
}
inline const ::google::protobuf::FieldMask& FieldMaskTest::single_mask() const {
  const ::google::protobuf::FieldMask* p = single_mask_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTest.single_mask)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::FieldMask*>(
      &::google::protobuf::_FieldMask_default_instance_);
}
inline ::google::protobuf::FieldMask* FieldMaskTest::release_single_mask() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTest.single_mask)
  
  ::google::protobuf::FieldMask* temp = single_mask_;
  single_mask_ = NULL;
  return temp;
}
inline ::google::protobuf::FieldMask* FieldMaskTest::mutable_single_mask() {
  
  if (single_mask_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::FieldMask>(GetArenaNoVirtual());
    single_mask_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTest.single_mask)
  return single_mask_;
}
inline void FieldMaskTest::set_allocated_single_mask(::google::protobuf::FieldMask* single_mask) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(single_mask_);
  }
  if (single_mask) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      single_mask = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, single_mask, submessage_arena);
    }
    
  } else {
    
  }
  single_mask_ = single_mask;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTest.single_mask)
}

// repeated .google.protobuf.FieldMask repeated_mask = 3;
inline int FieldMaskTest::repeated_mask_size() const {
  return repeated_mask_.size();
}
inline ::google::protobuf::FieldMask* FieldMaskTest::mutable_repeated_mask(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTest.repeated_mask)
  return repeated_mask_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >*
FieldMaskTest::mutable_repeated_mask() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.FieldMaskTest.repeated_mask)
  return &repeated_mask_;
}
inline const ::google::protobuf::FieldMask& FieldMaskTest::repeated_mask(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTest.repeated_mask)
  return repeated_mask_.Get(index);
}
inline ::google::protobuf::FieldMask* FieldMaskTest::add_repeated_mask() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.FieldMaskTest.repeated_mask)
  return repeated_mask_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::FieldMask >&
FieldMaskTest::repeated_mask() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.FieldMaskTest.repeated_mask)
  return repeated_mask_;
}

// repeated .google.protobuf.testing.NestedFieldMask nested_mask = 4;
inline int FieldMaskTest::nested_mask_size() const {
  return nested_mask_.size();
}
inline void FieldMaskTest::clear_nested_mask() {
  nested_mask_.Clear();
}
inline ::google::protobuf::testing::NestedFieldMask* FieldMaskTest::mutable_nested_mask(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTest.nested_mask)
  return nested_mask_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::NestedFieldMask >*
FieldMaskTest::mutable_nested_mask() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.FieldMaskTest.nested_mask)
  return &nested_mask_;
}
inline const ::google::protobuf::testing::NestedFieldMask& FieldMaskTest::nested_mask(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTest.nested_mask)
  return nested_mask_.Get(index);
}
inline ::google::protobuf::testing::NestedFieldMask* FieldMaskTest::add_nested_mask() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.FieldMaskTest.nested_mask)
  return nested_mask_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::testing::NestedFieldMask >&
FieldMaskTest::nested_mask() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.FieldMaskTest.nested_mask)
  return nested_mask_;
}

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

// FieldMaskTestCases

// .google.protobuf.testing.FieldMaskWrapper single_mask = 1;
inline bool FieldMaskTestCases::has_single_mask() const {
  return this != internal_default_instance() && single_mask_ != NULL;
}
inline void FieldMaskTestCases::clear_single_mask() {
  if (GetArenaNoVirtual() == NULL && single_mask_ != NULL) {
    delete single_mask_;
  }
  single_mask_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_single_mask() const {
  return *single_mask_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::single_mask() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = single_mask_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.single_mask)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_single_mask() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.single_mask)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = single_mask_;
  single_mask_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_single_mask() {
  
  if (single_mask_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    single_mask_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.single_mask)
  return single_mask_;
}
inline void FieldMaskTestCases::set_allocated_single_mask(::google::protobuf::testing::FieldMaskWrapper* single_mask) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete single_mask_;
  }
  if (single_mask) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      single_mask = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, single_mask, submessage_arena);
    }
    
  } else {
    
  }
  single_mask_ = single_mask;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.single_mask)
}

// .google.protobuf.testing.FieldMaskWrapper multiple_mask = 2;
inline bool FieldMaskTestCases::has_multiple_mask() const {
  return this != internal_default_instance() && multiple_mask_ != NULL;
}
inline void FieldMaskTestCases::clear_multiple_mask() {
  if (GetArenaNoVirtual() == NULL && multiple_mask_ != NULL) {
    delete multiple_mask_;
  }
  multiple_mask_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_multiple_mask() const {
  return *multiple_mask_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::multiple_mask() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = multiple_mask_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.multiple_mask)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_multiple_mask() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.multiple_mask)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = multiple_mask_;
  multiple_mask_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_multiple_mask() {
  
  if (multiple_mask_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    multiple_mask_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.multiple_mask)
  return multiple_mask_;
}
inline void FieldMaskTestCases::set_allocated_multiple_mask(::google::protobuf::testing::FieldMaskWrapper* multiple_mask) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete multiple_mask_;
  }
  if (multiple_mask) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      multiple_mask = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, multiple_mask, submessage_arena);
    }
    
  } else {
    
  }
  multiple_mask_ = multiple_mask;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.multiple_mask)
}

// .google.protobuf.testing.FieldMaskWrapper snake_camel = 3;
inline bool FieldMaskTestCases::has_snake_camel() const {
  return this != internal_default_instance() && snake_camel_ != NULL;
}
inline void FieldMaskTestCases::clear_snake_camel() {
  if (GetArenaNoVirtual() == NULL && snake_camel_ != NULL) {
    delete snake_camel_;
  }
  snake_camel_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_snake_camel() const {
  return *snake_camel_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::snake_camel() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = snake_camel_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.snake_camel)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_snake_camel() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.snake_camel)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = snake_camel_;
  snake_camel_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_snake_camel() {
  
  if (snake_camel_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    snake_camel_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.snake_camel)
  return snake_camel_;
}
inline void FieldMaskTestCases::set_allocated_snake_camel(::google::protobuf::testing::FieldMaskWrapper* snake_camel) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete snake_camel_;
  }
  if (snake_camel) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      snake_camel = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, snake_camel, submessage_arena);
    }
    
  } else {
    
  }
  snake_camel_ = snake_camel;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.snake_camel)
}

// .google.protobuf.testing.FieldMaskWrapper empty_field = 4;
inline bool FieldMaskTestCases::has_empty_field() const {
  return this != internal_default_instance() && empty_field_ != NULL;
}
inline void FieldMaskTestCases::clear_empty_field() {
  if (GetArenaNoVirtual() == NULL && empty_field_ != NULL) {
    delete empty_field_;
  }
  empty_field_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_empty_field() const {
  return *empty_field_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::empty_field() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = empty_field_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.empty_field)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_empty_field() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.empty_field)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = empty_field_;
  empty_field_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_empty_field() {
  
  if (empty_field_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    empty_field_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.empty_field)
  return empty_field_;
}
inline void FieldMaskTestCases::set_allocated_empty_field(::google::protobuf::testing::FieldMaskWrapper* empty_field) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete empty_field_;
  }
  if (empty_field) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      empty_field = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, empty_field, submessage_arena);
    }
    
  } else {
    
  }
  empty_field_ = empty_field;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.empty_field)
}

// .google.protobuf.testing.FieldMaskWrapper apiary_format1 = 5;
inline bool FieldMaskTestCases::has_apiary_format1() const {
  return this != internal_default_instance() && apiary_format1_ != NULL;
}
inline void FieldMaskTestCases::clear_apiary_format1() {
  if (GetArenaNoVirtual() == NULL && apiary_format1_ != NULL) {
    delete apiary_format1_;
  }
  apiary_format1_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_apiary_format1() const {
  return *apiary_format1_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::apiary_format1() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = apiary_format1_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.apiary_format1)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_apiary_format1() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.apiary_format1)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = apiary_format1_;
  apiary_format1_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_apiary_format1() {
  
  if (apiary_format1_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    apiary_format1_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.apiary_format1)
  return apiary_format1_;
}
inline void FieldMaskTestCases::set_allocated_apiary_format1(::google::protobuf::testing::FieldMaskWrapper* apiary_format1) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete apiary_format1_;
  }
  if (apiary_format1) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      apiary_format1 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, apiary_format1, submessage_arena);
    }
    
  } else {
    
  }
  apiary_format1_ = apiary_format1;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.apiary_format1)
}

// .google.protobuf.testing.FieldMaskWrapper apiary_format2 = 6;
inline bool FieldMaskTestCases::has_apiary_format2() const {
  return this != internal_default_instance() && apiary_format2_ != NULL;
}
inline void FieldMaskTestCases::clear_apiary_format2() {
  if (GetArenaNoVirtual() == NULL && apiary_format2_ != NULL) {
    delete apiary_format2_;
  }
  apiary_format2_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_apiary_format2() const {
  return *apiary_format2_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::apiary_format2() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = apiary_format2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.apiary_format2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_apiary_format2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.apiary_format2)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = apiary_format2_;
  apiary_format2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_apiary_format2() {
  
  if (apiary_format2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    apiary_format2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.apiary_format2)
  return apiary_format2_;
}
inline void FieldMaskTestCases::set_allocated_apiary_format2(::google::protobuf::testing::FieldMaskWrapper* apiary_format2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete apiary_format2_;
  }
  if (apiary_format2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      apiary_format2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, apiary_format2, submessage_arena);
    }
    
  } else {
    
  }
  apiary_format2_ = apiary_format2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.apiary_format2)
}

// .google.protobuf.testing.FieldMaskWrapper apiary_format3 = 7;
inline bool FieldMaskTestCases::has_apiary_format3() const {
  return this != internal_default_instance() && apiary_format3_ != NULL;
}
inline void FieldMaskTestCases::clear_apiary_format3() {
  if (GetArenaNoVirtual() == NULL && apiary_format3_ != NULL) {
    delete apiary_format3_;
  }
  apiary_format3_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_apiary_format3() const {
  return *apiary_format3_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::apiary_format3() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = apiary_format3_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.apiary_format3)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_apiary_format3() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.apiary_format3)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = apiary_format3_;
  apiary_format3_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_apiary_format3() {
  
  if (apiary_format3_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    apiary_format3_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.apiary_format3)
  return apiary_format3_;
}
inline void FieldMaskTestCases::set_allocated_apiary_format3(::google::protobuf::testing::FieldMaskWrapper* apiary_format3) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete apiary_format3_;
  }
  if (apiary_format3) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      apiary_format3 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, apiary_format3, submessage_arena);
    }
    
  } else {
    
  }
  apiary_format3_ = apiary_format3;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.apiary_format3)
}

// .google.protobuf.testing.FieldMaskWrapper map_key1 = 8;
inline bool FieldMaskTestCases::has_map_key1() const {
  return this != internal_default_instance() && map_key1_ != NULL;
}
inline void FieldMaskTestCases::clear_map_key1() {
  if (GetArenaNoVirtual() == NULL && map_key1_ != NULL) {
    delete map_key1_;
  }
  map_key1_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_map_key1() const {
  return *map_key1_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::map_key1() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = map_key1_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.map_key1)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_map_key1() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.map_key1)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = map_key1_;
  map_key1_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_map_key1() {
  
  if (map_key1_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    map_key1_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.map_key1)
  return map_key1_;
}
inline void FieldMaskTestCases::set_allocated_map_key1(::google::protobuf::testing::FieldMaskWrapper* map_key1) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_key1_;
  }
  if (map_key1) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_key1 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_key1, submessage_arena);
    }
    
  } else {
    
  }
  map_key1_ = map_key1;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.map_key1)
}

// .google.protobuf.testing.FieldMaskWrapper map_key2 = 9;
inline bool FieldMaskTestCases::has_map_key2() const {
  return this != internal_default_instance() && map_key2_ != NULL;
}
inline void FieldMaskTestCases::clear_map_key2() {
  if (GetArenaNoVirtual() == NULL && map_key2_ != NULL) {
    delete map_key2_;
  }
  map_key2_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_map_key2() const {
  return *map_key2_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::map_key2() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = map_key2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.map_key2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_map_key2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.map_key2)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = map_key2_;
  map_key2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_map_key2() {
  
  if (map_key2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    map_key2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.map_key2)
  return map_key2_;
}
inline void FieldMaskTestCases::set_allocated_map_key2(::google::protobuf::testing::FieldMaskWrapper* map_key2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_key2_;
  }
  if (map_key2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_key2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_key2, submessage_arena);
    }
    
  } else {
    
  }
  map_key2_ = map_key2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.map_key2)
}

// .google.protobuf.testing.FieldMaskWrapper map_key3 = 10;
inline bool FieldMaskTestCases::has_map_key3() const {
  return this != internal_default_instance() && map_key3_ != NULL;
}
inline void FieldMaskTestCases::clear_map_key3() {
  if (GetArenaNoVirtual() == NULL && map_key3_ != NULL) {
    delete map_key3_;
  }
  map_key3_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_map_key3() const {
  return *map_key3_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::map_key3() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = map_key3_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.map_key3)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_map_key3() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.map_key3)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = map_key3_;
  map_key3_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_map_key3() {
  
  if (map_key3_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    map_key3_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.map_key3)
  return map_key3_;
}
inline void FieldMaskTestCases::set_allocated_map_key3(::google::protobuf::testing::FieldMaskWrapper* map_key3) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_key3_;
  }
  if (map_key3) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_key3 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_key3, submessage_arena);
    }
    
  } else {
    
  }
  map_key3_ = map_key3;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.map_key3)
}

// .google.protobuf.testing.FieldMaskWrapper map_key4 = 11;
inline bool FieldMaskTestCases::has_map_key4() const {
  return this != internal_default_instance() && map_key4_ != NULL;
}
inline void FieldMaskTestCases::clear_map_key4() {
  if (GetArenaNoVirtual() == NULL && map_key4_ != NULL) {
    delete map_key4_;
  }
  map_key4_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_map_key4() const {
  return *map_key4_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::map_key4() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = map_key4_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.map_key4)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_map_key4() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.map_key4)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = map_key4_;
  map_key4_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_map_key4() {
  
  if (map_key4_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    map_key4_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.map_key4)
  return map_key4_;
}
inline void FieldMaskTestCases::set_allocated_map_key4(::google::protobuf::testing::FieldMaskWrapper* map_key4) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_key4_;
  }
  if (map_key4) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_key4 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_key4, submessage_arena);
    }
    
  } else {
    
  }
  map_key4_ = map_key4;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.map_key4)
}

// .google.protobuf.testing.FieldMaskWrapper map_key5 = 12;
inline bool FieldMaskTestCases::has_map_key5() const {
  return this != internal_default_instance() && map_key5_ != NULL;
}
inline void FieldMaskTestCases::clear_map_key5() {
  if (GetArenaNoVirtual() == NULL && map_key5_ != NULL) {
    delete map_key5_;
  }
  map_key5_ = NULL;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::_internal_map_key5() const {
  return *map_key5_;
}
inline const ::google::protobuf::testing::FieldMaskWrapper& FieldMaskTestCases::map_key5() const {
  const ::google::protobuf::testing::FieldMaskWrapper* p = map_key5_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskTestCases.map_key5)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::FieldMaskWrapper*>(
      &::google::protobuf::testing::_FieldMaskWrapper_default_instance_);
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::release_map_key5() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskTestCases.map_key5)
  
  ::google::protobuf::testing::FieldMaskWrapper* temp = map_key5_;
  map_key5_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::FieldMaskWrapper* FieldMaskTestCases::mutable_map_key5() {
  
  if (map_key5_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::FieldMaskWrapper>(GetArenaNoVirtual());
    map_key5_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskTestCases.map_key5)
  return map_key5_;
}
inline void FieldMaskTestCases::set_allocated_map_key5(::google::protobuf::testing::FieldMaskWrapper* map_key5) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete map_key5_;
  }
  if (map_key5) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      map_key5 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, map_key5, submessage_arena);
    }
    
  } else {
    
  }
  map_key5_ = map_key5;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskTestCases.map_key5)
}

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

// FieldMaskWrapper

// .google.protobuf.FieldMask mask = 1;
inline bool FieldMaskWrapper::has_mask() const {
  return this != internal_default_instance() && mask_ != NULL;
}
inline const ::google::protobuf::FieldMask& FieldMaskWrapper::_internal_mask() const {
  return *mask_;
}
inline const ::google::protobuf::FieldMask& FieldMaskWrapper::mask() const {
  const ::google::protobuf::FieldMask* p = mask_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.FieldMaskWrapper.mask)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::FieldMask*>(
      &::google::protobuf::_FieldMask_default_instance_);
}
inline ::google::protobuf::FieldMask* FieldMaskWrapper::release_mask() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.FieldMaskWrapper.mask)
  
  ::google::protobuf::FieldMask* temp = mask_;
  mask_ = NULL;
  return temp;
}
inline ::google::protobuf::FieldMask* FieldMaskWrapper::mutable_mask() {
  
  if (mask_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::FieldMask>(GetArenaNoVirtual());
    mask_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.FieldMaskWrapper.mask)
  return mask_;
}
inline void FieldMaskWrapper::set_allocated_mask(::google::protobuf::FieldMask* mask) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(mask_);
  }
  if (mask) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      mask = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, mask, submessage_arena);
    }
    
  } else {
    
  }
  mask_ = mask;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.FieldMaskWrapper.mask)
}

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

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

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


// @@protoc_insertion_point(namespace_scope)

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

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2ffield_5fmask_2eproto
