You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by an...@apache.org on 2017/05/26 17:11:10 UTC

[4/9] mesos git commit: Update related tests in stout to support protobuf 3.3.0.

http://git-wip-us.apache.org/repos/asf/mesos/blob/8eacd7c7/3rdparty/stout/tests/protobuf_tests.pb.h
----------------------------------------------------------------------
diff --git a/3rdparty/stout/tests/protobuf_tests.pb.h b/3rdparty/stout/tests/protobuf_tests.pb.h
index 18870cd..2e4ffe1 100644
--- a/3rdparty/stout/tests/protobuf_tests.pb.h
+++ b/3rdparty/stout/tests/protobuf_tests.pb.h
@@ -8,36 +8,59 @@
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 2006000
+#if GOOGLE_PROTOBUF_VERSION < 3003000
 #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 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3003000 < 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/metadata.h>
 #include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
+#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
+#include <google/protobuf/extension_set.h>  // IWYU pragma: export
 #include <google/protobuf/generated_enum_reflection.h>
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
+namespace tests {
+class ArrayMessage;
+class ArrayMessageDefaultTypeInternal;
+extern ArrayMessageDefaultTypeInternal _ArrayMessage_default_instance_;
+class Message;
+class MessageDefaultTypeInternal;
+extern MessageDefaultTypeInternal _Message_default_instance_;
+class Nested;
+class NestedDefaultTypeInternal;
+extern NestedDefaultTypeInternal _Nested_default_instance_;
+class SimpleMessage;
+class SimpleMessageDefaultTypeInternal;
+extern SimpleMessageDefaultTypeInternal _SimpleMessage_default_instance_;
+}  // namespace tests
 
 namespace tests {
 
+namespace protobuf_protobuf_5ftests_2eproto {
 // Internal implementation detail -- do not call these.
-void  protobuf_AddDesc_protobuf_5ftests_2eproto();
-void protobuf_AssignDesc_protobuf_5ftests_2eproto();
-void protobuf_ShutdownFile_protobuf_5ftests_2eproto();
-
-class Nested;
-class SimpleMessage;
-class Message;
-class ArrayMessage;
+struct TableStruct {
+  static const ::google::protobuf::internal::ParseTableField entries[];
+  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+  static const ::google::protobuf::internal::ParseTable schema[];
+  static const ::google::protobuf::uint32 offsets[];
+  static void InitDefaultsImpl();
+  static void Shutdown();
+};
+void AddDescriptors();
+void InitDefaults();
+}  // namespace protobuf_protobuf_5ftests_2eproto
 
 enum Enum {
   ONE = 1,
@@ -60,7 +83,7 @@ inline bool Enum_Parse(
 }
 // ===================================================================
 
-class Nested : public ::google::protobuf::Message {
+class Nested : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tests.Nested) */ {
  public:
   Nested();
   virtual ~Nested();
@@ -73,110 +96,135 @@ class Nested : public ::google::protobuf::Message {
   }
 
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
 
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const Nested& default_instance();
 
+  static inline const Nested* internal_default_instance() {
+    return reinterpret_cast<const Nested*>(
+               &_Nested_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    0;
+
   void Swap(Nested* other);
 
   // implements Message ----------------------------------------------
 
-  Nested* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline Nested* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  Nested* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
   void CopyFrom(const Nested& from);
   void MergeFrom(const Nested& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(Nested* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
-  ::google::protobuf::Metadata GetMetadata() const;
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
+  // repeated string repeated_str = 3;
+  int repeated_str_size() const;
+  void clear_repeated_str();
+  static const int kRepeatedStrFieldNumber = 3;
+  const ::std::string& repeated_str(int index) const;
+  ::std::string* mutable_repeated_str(int index);
+  void set_repeated_str(int index, const ::std::string& value);
+  #if LANG_CXX11
+  void set_repeated_str(int index, ::std::string&& value);
+  #endif
+  void set_repeated_str(int index, const char* value);
+  void set_repeated_str(int index, const char* value, size_t size);
+  ::std::string* add_repeated_str();
+  void add_repeated_str(const ::std::string& value);
+  #if LANG_CXX11
+  void add_repeated_str(::std::string&& value);
+  #endif
+  void add_repeated_str(const char* value);
+  void add_repeated_str(const char* value, size_t size);
+  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_str() const;
+  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_str();
+
   // required string str = 1;
-  inline bool has_str() const;
-  inline void clear_str();
+  bool has_str() const;
+  void clear_str();
   static const int kStrFieldNumber = 1;
-  inline const ::std::string& str() const;
-  inline void set_str(const ::std::string& value);
-  inline void set_str(const char* value);
-  inline void set_str(const char* value, size_t size);
-  inline ::std::string* mutable_str();
-  inline ::std::string* release_str();
-  inline void set_allocated_str(::std::string* str);
+  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);
 
   // optional string optional_str = 2;
-  inline bool has_optional_str() const;
-  inline void clear_optional_str();
+  bool has_optional_str() const;
+  void clear_optional_str();
   static const int kOptionalStrFieldNumber = 2;
-  inline const ::std::string& optional_str() const;
-  inline void set_optional_str(const ::std::string& value);
-  inline void set_optional_str(const char* value);
-  inline void set_optional_str(const char* value, size_t size);
-  inline ::std::string* mutable_optional_str();
-  inline ::std::string* release_optional_str();
-  inline void set_allocated_optional_str(::std::string* optional_str);
-
-  // repeated string repeated_str = 3;
-  inline int repeated_str_size() const;
-  inline void clear_repeated_str();
-  static const int kRepeatedStrFieldNumber = 3;
-  inline const ::std::string& repeated_str(int index) const;
-  inline ::std::string* mutable_repeated_str(int index);
-  inline void set_repeated_str(int index, const ::std::string& value);
-  inline void set_repeated_str(int index, const char* value);
-  inline void set_repeated_str(int index, const char* value, size_t size);
-  inline ::std::string* add_repeated_str();
-  inline void add_repeated_str(const ::std::string& value);
-  inline void add_repeated_str(const char* value);
-  inline void add_repeated_str(const char* value, size_t size);
-  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_str() const;
-  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_str();
+  const ::std::string& optional_str() const;
+  void set_optional_str(const ::std::string& value);
+  #if LANG_CXX11
+  void set_optional_str(::std::string&& value);
+  #endif
+  void set_optional_str(const char* value);
+  void set_optional_str(const char* value, size_t size);
+  ::std::string* mutable_optional_str();
+  ::std::string* release_optional_str();
+  void set_allocated_optional_str(::std::string* optional_str);
 
   // @@protoc_insertion_point(class_scope:tests.Nested)
  private:
-  inline void set_has_str();
-  inline void clear_has_str();
-  inline void set_has_optional_str();
-  inline void clear_has_optional_str();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+  void set_has_str();
+  void clear_has_str();
+  void set_has_optional_str();
+  void clear_has_optional_str();
 
-  ::google::protobuf::uint32 _has_bits_[1];
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
-  ::std::string* str_;
-  ::std::string* optional_str_;
   ::google::protobuf::RepeatedPtrField< ::std::string> repeated_str_;
-  friend void  protobuf_AddDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_AssignDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_ShutdownFile_protobuf_5ftests_2eproto();
-
-  void InitAsDefaultInstance();
-  static Nested* default_instance_;
+  ::google::protobuf::internal::ArenaStringPtr str_;
+  ::google::protobuf::internal::ArenaStringPtr optional_str_;
+  friend struct protobuf_protobuf_5ftests_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class SimpleMessage : public ::google::protobuf::Message {
+class SimpleMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tests.SimpleMessage) */ {
  public:
   SimpleMessage();
   virtual ~SimpleMessage();
@@ -189,91 +237,107 @@ class SimpleMessage : public ::google::protobuf::Message {
   }
 
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
 
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const SimpleMessage& default_instance();
 
+  static inline const SimpleMessage* internal_default_instance() {
+    return reinterpret_cast<const SimpleMessage*>(
+               &_SimpleMessage_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    1;
+
   void Swap(SimpleMessage* other);
 
   // implements Message ----------------------------------------------
 
-  SimpleMessage* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline SimpleMessage* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  SimpleMessage* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
   void CopyFrom(const SimpleMessage& from);
   void MergeFrom(const SimpleMessage& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(SimpleMessage* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
-  ::google::protobuf::Metadata GetMetadata() const;
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
-  // required string id = 1;
-  inline bool has_id() const;
-  inline void clear_id();
-  static const int kIdFieldNumber = 1;
-  inline const ::std::string& id() const;
-  inline void set_id(const ::std::string& value);
-  inline void set_id(const char* value);
-  inline void set_id(const char* value, size_t size);
-  inline ::std::string* mutable_id();
-  inline ::std::string* release_id();
-  inline void set_allocated_id(::std::string* id);
-
   // repeated int32 numbers = 2;
-  inline int numbers_size() const;
-  inline void clear_numbers();
+  int numbers_size() const;
+  void clear_numbers();
   static const int kNumbersFieldNumber = 2;
-  inline ::google::protobuf::int32 numbers(int index) const;
-  inline void set_numbers(int index, ::google::protobuf::int32 value);
-  inline void add_numbers(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+  ::google::protobuf::int32 numbers(int index) const;
+  void set_numbers(int index, ::google::protobuf::int32 value);
+  void add_numbers(::google::protobuf::int32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
       numbers() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
       mutable_numbers();
 
+  // required string id = 1;
+  bool has_id() const;
+  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);
+
   // @@protoc_insertion_point(class_scope:tests.SimpleMessage)
  private:
-  inline void set_has_id();
-  inline void clear_has_id();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+  void set_has_id();
+  void clear_has_id();
 
-  ::google::protobuf::uint32 _has_bits_[1];
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
-  ::std::string* id_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > numbers_;
-  friend void  protobuf_AddDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_AssignDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_ShutdownFile_protobuf_5ftests_2eproto();
-
-  void InitAsDefaultInstance();
-  static SimpleMessage* default_instance_;
+  ::google::protobuf::internal::ArenaStringPtr id_;
+  friend struct protobuf_protobuf_5ftests_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class Message : public ::google::protobuf::Message {
+class Message : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tests.Message) */ {
  public:
   Message();
   virtual ~Message();
@@ -286,392 +350,423 @@ class Message : public ::google::protobuf::Message {
   }
 
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
 
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const Message& default_instance();
 
+  static inline const Message* internal_default_instance() {
+    return reinterpret_cast<const Message*>(
+               &_Message_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    2;
+
   void Swap(Message* other);
 
   // implements Message ----------------------------------------------
 
-  Message* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline Message* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  Message* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
   void CopyFrom(const Message& from);
   void MergeFrom(const Message& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(Message* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
-  ::google::protobuf::Metadata GetMetadata() const;
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
-  // required bool b = 26;
-  inline bool has_b() const;
-  inline void clear_b();
-  static const int kBFieldNumber = 26;
-  inline bool b() const;
-  inline void set_b(bool value);
-
-  // required string str = 1;
-  inline bool has_str() const;
-  inline void clear_str();
-  static const int kStrFieldNumber = 1;
-  inline const ::std::string& str() const;
-  inline void set_str(const ::std::string& value);
-  inline void set_str(const char* value);
-  inline void set_str(const char* value, size_t size);
-  inline ::std::string* mutable_str();
-  inline ::std::string* release_str();
-  inline void set_allocated_str(::std::string* str);
-
-  // required bytes bytes = 2;
-  inline bool has_bytes() const;
-  inline void clear_bytes();
-  static const int kBytesFieldNumber = 2;
-  inline const ::std::string& bytes() const;
-  inline void set_bytes(const ::std::string& value);
-  inline void set_bytes(const char* value);
-  inline void set_bytes(const void* value, size_t size);
-  inline ::std::string* mutable_bytes();
-  inline ::std::string* release_bytes();
-  inline void set_allocated_bytes(::std::string* bytes);
-
-  // optional int32 int32 = 3;
-  inline bool has_int32() const;
-  inline void clear_int32();
-  static const int kInt32FieldNumber = 3;
-  inline ::google::protobuf::int32 int32() const;
-  inline void set_int32(::google::protobuf::int32 value);
-
-  // optional int64 int64 = 4;
-  inline bool has_int64() const;
-  inline void clear_int64();
-  static const int kInt64FieldNumber = 4;
-  inline ::google::protobuf::int64 int64() const;
-  inline void set_int64(::google::protobuf::int64 value);
-
-  // optional uint32 uint32 = 5;
-  inline bool has_uint32() const;
-  inline void clear_uint32();
-  static const int kUint32FieldNumber = 5;
-  inline ::google::protobuf::uint32 uint32() const;
-  inline void set_uint32(::google::protobuf::uint32 value);
-
-  // optional uint64 uint64 = 6;
-  inline bool has_uint64() const;
-  inline void clear_uint64();
-  static const int kUint64FieldNumber = 6;
-  inline ::google::protobuf::uint64 uint64() const;
-  inline void set_uint64(::google::protobuf::uint64 value);
-
-  // optional sint32 sint32 = 7;
-  inline bool has_sint32() const;
-  inline void clear_sint32();
-  static const int kSint32FieldNumber = 7;
-  inline ::google::protobuf::int32 sint32() const;
-  inline void set_sint32(::google::protobuf::int32 value);
-
-  // optional sint64 sint64 = 8;
-  inline bool has_sint64() const;
-  inline void clear_sint64();
-  static const int kSint64FieldNumber = 8;
-  inline ::google::protobuf::int64 sint64() const;
-  inline void set_sint64(::google::protobuf::int64 value);
-
-  // required float f = 9;
-  inline bool has_f() const;
-  inline void clear_f();
-  static const int kFFieldNumber = 9;
-  inline float f() const;
-  inline void set_f(float value);
-
-  // required double d = 10;
-  inline bool has_d() const;
-  inline void clear_d();
-  static const int kDFieldNumber = 10;
-  inline double d() const;
-  inline void set_d(double value);
-
-  // required .tests.Enum e = 11;
-  inline bool has_e() const;
-  inline void clear_e();
-  static const int kEFieldNumber = 11;
-  inline ::tests::Enum e() const;
-  inline void set_e(::tests::Enum value);
-
-  // required .tests.Nested nested = 12;
-  inline bool has_nested() const;
-  inline void clear_nested();
-  static const int kNestedFieldNumber = 12;
-  inline const ::tests::Nested& nested() const;
-  inline ::tests::Nested* mutable_nested();
-  inline ::tests::Nested* release_nested();
-  inline void set_allocated_nested(::tests::Nested* nested);
-
-  // repeated bool repeated_bool = 27;
-  inline int repeated_bool_size() const;
-  inline void clear_repeated_bool();
-  static const int kRepeatedBoolFieldNumber = 27;
-  inline bool repeated_bool(int index) const;
-  inline void set_repeated_bool(int index, bool value);
-  inline void add_repeated_bool(bool value);
-  inline const ::google::protobuf::RepeatedField< bool >&
-      repeated_bool() const;
-  inline ::google::protobuf::RepeatedField< bool >*
-      mutable_repeated_bool();
-
   // repeated string repeated_string = 13;
-  inline int repeated_string_size() const;
-  inline void clear_repeated_string();
+  int repeated_string_size() const;
+  void clear_repeated_string();
   static const int kRepeatedStringFieldNumber = 13;
-  inline const ::std::string& repeated_string(int index) const;
-  inline ::std::string* mutable_repeated_string(int index);
-  inline void set_repeated_string(int index, const ::std::string& value);
-  inline void set_repeated_string(int index, const char* value);
-  inline void set_repeated_string(int index, const char* value, size_t size);
-  inline ::std::string* add_repeated_string();
-  inline void add_repeated_string(const ::std::string& value);
-  inline void add_repeated_string(const char* value);
-  inline void add_repeated_string(const char* value, size_t size);
-  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string() const;
-  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string();
+  const ::std::string& repeated_string(int index) const;
+  ::std::string* mutable_repeated_string(int index);
+  void set_repeated_string(int index, const ::std::string& value);
+  #if LANG_CXX11
+  void set_repeated_string(int index, ::std::string&& value);
+  #endif
+  void set_repeated_string(int index, const char* value);
+  void set_repeated_string(int index, const char* value, size_t size);
+  ::std::string* add_repeated_string();
+  void add_repeated_string(const ::std::string& value);
+  #if LANG_CXX11
+  void add_repeated_string(::std::string&& value);
+  #endif
+  void add_repeated_string(const char* value);
+  void add_repeated_string(const char* value, size_t size);
+  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string() const;
+  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string();
 
   // repeated bytes repeated_bytes = 14;
-  inline int repeated_bytes_size() const;
-  inline void clear_repeated_bytes();
+  int repeated_bytes_size() const;
+  void clear_repeated_bytes();
   static const int kRepeatedBytesFieldNumber = 14;
-  inline const ::std::string& repeated_bytes(int index) const;
-  inline ::std::string* mutable_repeated_bytes(int index);
-  inline void set_repeated_bytes(int index, const ::std::string& value);
-  inline void set_repeated_bytes(int index, const char* value);
-  inline void set_repeated_bytes(int index, const void* value, size_t size);
-  inline ::std::string* add_repeated_bytes();
-  inline void add_repeated_bytes(const ::std::string& value);
-  inline void add_repeated_bytes(const char* value);
-  inline void add_repeated_bytes(const void* value, size_t size);
-  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_bytes() const;
-  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_bytes();
+  const ::std::string& repeated_bytes(int index) const;
+  ::std::string* mutable_repeated_bytes(int index);
+  void set_repeated_bytes(int index, const ::std::string& value);
+  #if LANG_CXX11
+  void set_repeated_bytes(int index, ::std::string&& value);
+  #endif
+  void set_repeated_bytes(int index, const char* value);
+  void set_repeated_bytes(int index, const void* value, size_t size);
+  ::std::string* add_repeated_bytes();
+  void add_repeated_bytes(const ::std::string& value);
+  #if LANG_CXX11
+  void add_repeated_bytes(::std::string&& value);
+  #endif
+  void add_repeated_bytes(const char* value);
+  void add_repeated_bytes(const void* value, size_t size);
+  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_bytes() const;
+  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_bytes();
 
   // repeated int32 repeated_int32 = 15;
-  inline int repeated_int32_size() const;
-  inline void clear_repeated_int32();
+  int repeated_int32_size() const;
+  void clear_repeated_int32();
   static const int kRepeatedInt32FieldNumber = 15;
-  inline ::google::protobuf::int32 repeated_int32(int index) const;
-  inline void set_repeated_int32(int index, ::google::protobuf::int32 value);
-  inline void add_repeated_int32(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+  ::google::protobuf::int32 repeated_int32(int index) const;
+  void set_repeated_int32(int index, ::google::protobuf::int32 value);
+  void add_repeated_int32(::google::protobuf::int32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
       repeated_int32() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
       mutable_repeated_int32();
 
   // repeated int64 repeated_int64 = 16;
-  inline int repeated_int64_size() const;
-  inline void clear_repeated_int64();
+  int repeated_int64_size() const;
+  void clear_repeated_int64();
   static const int kRepeatedInt64FieldNumber = 16;
-  inline ::google::protobuf::int64 repeated_int64(int index) const;
-  inline void set_repeated_int64(int index, ::google::protobuf::int64 value);
-  inline void add_repeated_int64(::google::protobuf::int64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+  ::google::protobuf::int64 repeated_int64(int index) const;
+  void set_repeated_int64(int index, ::google::protobuf::int64 value);
+  void add_repeated_int64(::google::protobuf::int64 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
       repeated_int64() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
       mutable_repeated_int64();
 
   // repeated uint32 repeated_uint32 = 17;
-  inline int repeated_uint32_size() const;
-  inline void clear_repeated_uint32();
+  int repeated_uint32_size() const;
+  void clear_repeated_uint32();
   static const int kRepeatedUint32FieldNumber = 17;
-  inline ::google::protobuf::uint32 repeated_uint32(int index) const;
-  inline void set_repeated_uint32(int index, ::google::protobuf::uint32 value);
-  inline void add_repeated_uint32(::google::protobuf::uint32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
+  ::google::protobuf::uint32 repeated_uint32(int index) const;
+  void set_repeated_uint32(int index, ::google::protobuf::uint32 value);
+  void add_repeated_uint32(::google::protobuf::uint32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
       repeated_uint32() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
       mutable_repeated_uint32();
 
   // repeated uint64 repeated_uint64 = 18;
-  inline int repeated_uint64_size() const;
-  inline void clear_repeated_uint64();
+  int repeated_uint64_size() const;
+  void clear_repeated_uint64();
   static const int kRepeatedUint64FieldNumber = 18;
-  inline ::google::protobuf::uint64 repeated_uint64(int index) const;
-  inline void set_repeated_uint64(int index, ::google::protobuf::uint64 value);
-  inline void add_repeated_uint64(::google::protobuf::uint64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
+  ::google::protobuf::uint64 repeated_uint64(int index) const;
+  void set_repeated_uint64(int index, ::google::protobuf::uint64 value);
+  void add_repeated_uint64(::google::protobuf::uint64 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
       repeated_uint64() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
       mutable_repeated_uint64();
 
   // repeated sint32 repeated_sint32 = 19;
-  inline int repeated_sint32_size() const;
-  inline void clear_repeated_sint32();
+  int repeated_sint32_size() const;
+  void clear_repeated_sint32();
   static const int kRepeatedSint32FieldNumber = 19;
-  inline ::google::protobuf::int32 repeated_sint32(int index) const;
-  inline void set_repeated_sint32(int index, ::google::protobuf::int32 value);
-  inline void add_repeated_sint32(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+  ::google::protobuf::int32 repeated_sint32(int index) const;
+  void set_repeated_sint32(int index, ::google::protobuf::int32 value);
+  void add_repeated_sint32(::google::protobuf::int32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
       repeated_sint32() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
       mutable_repeated_sint32();
 
   // repeated sint64 repeated_sint64 = 20;
-  inline int repeated_sint64_size() const;
-  inline void clear_repeated_sint64();
+  int repeated_sint64_size() const;
+  void clear_repeated_sint64();
   static const int kRepeatedSint64FieldNumber = 20;
-  inline ::google::protobuf::int64 repeated_sint64(int index) const;
-  inline void set_repeated_sint64(int index, ::google::protobuf::int64 value);
-  inline void add_repeated_sint64(::google::protobuf::int64 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+  ::google::protobuf::int64 repeated_sint64(int index) const;
+  void set_repeated_sint64(int index, ::google::protobuf::int64 value);
+  void add_repeated_sint64(::google::protobuf::int64 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
       repeated_sint64() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
       mutable_repeated_sint64();
 
   // repeated float repeated_float = 21;
-  inline int repeated_float_size() const;
-  inline void clear_repeated_float();
+  int repeated_float_size() const;
+  void clear_repeated_float();
   static const int kRepeatedFloatFieldNumber = 21;
-  inline float repeated_float(int index) const;
-  inline void set_repeated_float(int index, float value);
-  inline void add_repeated_float(float value);
-  inline const ::google::protobuf::RepeatedField< float >&
+  float repeated_float(int index) const;
+  void set_repeated_float(int index, float value);
+  void add_repeated_float(float value);
+  const ::google::protobuf::RepeatedField< float >&
       repeated_float() const;
-  inline ::google::protobuf::RepeatedField< float >*
+  ::google::protobuf::RepeatedField< float >*
       mutable_repeated_float();
 
   // repeated double repeated_double = 22;
-  inline int repeated_double_size() const;
-  inline void clear_repeated_double();
+  int repeated_double_size() const;
+  void clear_repeated_double();
   static const int kRepeatedDoubleFieldNumber = 22;
-  inline double repeated_double(int index) const;
-  inline void set_repeated_double(int index, double value);
-  inline void add_repeated_double(double value);
-  inline const ::google::protobuf::RepeatedField< double >&
+  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;
-  inline ::google::protobuf::RepeatedField< double >*
+  ::google::protobuf::RepeatedField< double >*
       mutable_repeated_double();
 
   // repeated .tests.Enum repeated_enum = 23;
-  inline int repeated_enum_size() const;
-  inline void clear_repeated_enum();
+  int repeated_enum_size() const;
+  void clear_repeated_enum();
   static const int kRepeatedEnumFieldNumber = 23;
-  inline ::tests::Enum repeated_enum(int index) const;
-  inline void set_repeated_enum(int index, ::tests::Enum value);
-  inline void add_repeated_enum(::tests::Enum value);
-  inline const ::google::protobuf::RepeatedField<int>& repeated_enum() const;
-  inline ::google::protobuf::RepeatedField<int>* mutable_repeated_enum();
+  ::tests::Enum repeated_enum(int index) const;
+  void set_repeated_enum(int index, ::tests::Enum value);
+  void add_repeated_enum(::tests::Enum value);
+  const ::google::protobuf::RepeatedField<int>& repeated_enum() const;
+  ::google::protobuf::RepeatedField<int>* mutable_repeated_enum();
 
   // repeated .tests.Nested repeated_nested = 24;
-  inline int repeated_nested_size() const;
-  inline void clear_repeated_nested();
+  int repeated_nested_size() const;
+  void clear_repeated_nested();
   static const int kRepeatedNestedFieldNumber = 24;
-  inline const ::tests::Nested& repeated_nested(int index) const;
-  inline ::tests::Nested* mutable_repeated_nested(int index);
-  inline ::tests::Nested* add_repeated_nested();
-  inline const ::google::protobuf::RepeatedPtrField< ::tests::Nested >&
-      repeated_nested() const;
-  inline ::google::protobuf::RepeatedPtrField< ::tests::Nested >*
+  const ::tests::Nested& repeated_nested(int index) const;
+  ::tests::Nested* mutable_repeated_nested(int index);
+  ::tests::Nested* add_repeated_nested();
+  ::google::protobuf::RepeatedPtrField< ::tests::Nested >*
       mutable_repeated_nested();
+  const ::google::protobuf::RepeatedPtrField< ::tests::Nested >&
+      repeated_nested() const;
 
   // repeated string empty = 25;
-  inline int empty_size() const;
-  inline void clear_empty();
+  int empty_size() const;
+  void clear_empty();
   static const int kEmptyFieldNumber = 25;
-  inline const ::std::string& empty(int index) const;
-  inline ::std::string* mutable_empty(int index);
-  inline void set_empty(int index, const ::std::string& value);
-  inline void set_empty(int index, const char* value);
-  inline void set_empty(int index, const char* value, size_t size);
-  inline ::std::string* add_empty();
-  inline void add_empty(const ::std::string& value);
-  inline void add_empty(const char* value);
-  inline void add_empty(const char* value, size_t size);
-  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& empty() const;
-  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_empty();
+  const ::std::string& empty(int index) const;
+  ::std::string* mutable_empty(int index);
+  void set_empty(int index, const ::std::string& value);
+  #if LANG_CXX11
+  void set_empty(int index, ::std::string&& value);
+  #endif
+  void set_empty(int index, const char* value);
+  void set_empty(int index, const char* value, size_t size);
+  ::std::string* add_empty();
+  void add_empty(const ::std::string& value);
+  #if LANG_CXX11
+  void add_empty(::std::string&& value);
+  #endif
+  void add_empty(const char* value);
+  void add_empty(const char* value, size_t size);
+  const ::google::protobuf::RepeatedPtrField< ::std::string>& empty() const;
+  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_empty();
 
-  // optional double optional_default = 28 [default = 42];
-  inline bool has_optional_default() const;
-  inline void clear_optional_default();
-  static const int kOptionalDefaultFieldNumber = 28;
-  inline double optional_default() const;
-  inline void set_optional_default(double value);
+  // repeated bool repeated_bool = 27;
+  int repeated_bool_size() const;
+  void clear_repeated_bool();
+  static const int kRepeatedBoolFieldNumber = 27;
+  bool repeated_bool(int index) const;
+  void set_repeated_bool(int index, bool value);
+  void add_repeated_bool(bool value);
+  const ::google::protobuf::RepeatedField< bool >&
+      repeated_bool() const;
+  ::google::protobuf::RepeatedField< bool >*
+      mutable_repeated_bool();
+
+  // required string str = 1;
+  bool has_str() const;
+  void clear_str();
+  static const int kStrFieldNumber = 1;
+  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);
+
+  // required bytes bytes = 2;
+  bool has_bytes() const;
+  void clear_bytes();
+  static const int kBytesFieldNumber = 2;
+  const ::std::string& bytes() const;
+  void set_bytes(const ::std::string& value);
+  #if LANG_CXX11
+  void set_bytes(::std::string&& value);
+  #endif
+  void set_bytes(const char* value);
+  void set_bytes(const void* value, size_t size);
+  ::std::string* mutable_bytes();
+  ::std::string* release_bytes();
+  void set_allocated_bytes(::std::string* bytes);
+
+  // required .tests.Nested nested = 12;
+  bool has_nested() const;
+  void clear_nested();
+  static const int kNestedFieldNumber = 12;
+  const ::tests::Nested& nested() const;
+  ::tests::Nested* mutable_nested();
+  ::tests::Nested* release_nested();
+  void set_allocated_nested(::tests::Nested* nested);
+
+  // optional int64 int64 = 4;
+  bool has_int64() const;
+  void clear_int64();
+  static const int kInt64FieldNumber = 4;
+  ::google::protobuf::int64 int64() const;
+  void set_int64(::google::protobuf::int64 value);
+
+  // optional int32 int32 = 3;
+  bool has_int32() const;
+  void clear_int32();
+  static const int kInt32FieldNumber = 3;
+  ::google::protobuf::int32 int32() const;
+  void set_int32(::google::protobuf::int32 value);
+
+  // optional uint32 uint32 = 5;
+  bool has_uint32() const;
+  void clear_uint32();
+  static const int kUint32FieldNumber = 5;
+  ::google::protobuf::uint32 uint32() const;
+  void set_uint32(::google::protobuf::uint32 value);
+
+  // optional uint64 uint64 = 6;
+  bool has_uint64() const;
+  void clear_uint64();
+  static const int kUint64FieldNumber = 6;
+  ::google::protobuf::uint64 uint64() const;
+  void set_uint64(::google::protobuf::uint64 value);
+
+  // optional sint64 sint64 = 8;
+  bool has_sint64() const;
+  void clear_sint64();
+  static const int kSint64FieldNumber = 8;
+  ::google::protobuf::int64 sint64() const;
+  void set_sint64(::google::protobuf::int64 value);
+
+  // optional sint32 sint32 = 7;
+  bool has_sint32() const;
+  void clear_sint32();
+  static const int kSint32FieldNumber = 7;
+  ::google::protobuf::int32 sint32() const;
+  void set_sint32(::google::protobuf::int32 value);
+
+  // required float f = 9;
+  bool has_f() const;
+  void clear_f();
+  static const int kFFieldNumber = 9;
+  float f() const;
+  void set_f(float value);
+
+  // required double d = 10;
+  bool has_d() const;
+  void clear_d();
+  static const int kDFieldNumber = 10;
+  double d() const;
+  void set_d(double value);
 
   // optional double optional_no_default = 29;
-  inline bool has_optional_no_default() const;
-  inline void clear_optional_no_default();
+  bool has_optional_no_default() const;
+  void clear_optional_no_default();
   static const int kOptionalNoDefaultFieldNumber = 29;
-  inline double optional_no_default() const;
-  inline void set_optional_no_default(double value);
+  double optional_no_default() const;
+  void set_optional_no_default(double value);
+
+  // required bool b = 26;
+  bool has_b() const;
+  void clear_b();
+  static const int kBFieldNumber = 26;
+  bool b() const;
+  void set_b(bool value);
+
+  // required .tests.Enum e = 11;
+  bool has_e() const;
+  void clear_e();
+  static const int kEFieldNumber = 11;
+  ::tests::Enum e() const;
+  void set_e(::tests::Enum value);
+
+  // optional double optional_default = 28 [default = 42];
+  bool has_optional_default() const;
+  void clear_optional_default();
+  static const int kOptionalDefaultFieldNumber = 28;
+  double optional_default() const;
+  void set_optional_default(double value);
 
   // @@protoc_insertion_point(class_scope:tests.Message)
  private:
-  inline void set_has_b();
-  inline void clear_has_b();
-  inline void set_has_str();
-  inline void clear_has_str();
-  inline void set_has_bytes();
-  inline void clear_has_bytes();
-  inline void set_has_int32();
-  inline void clear_has_int32();
-  inline void set_has_int64();
-  inline void clear_has_int64();
-  inline void set_has_uint32();
-  inline void clear_has_uint32();
-  inline void set_has_uint64();
-  inline void clear_has_uint64();
-  inline void set_has_sint32();
-  inline void clear_has_sint32();
-  inline void set_has_sint64();
-  inline void clear_has_sint64();
-  inline void set_has_f();
-  inline void clear_has_f();
-  inline void set_has_d();
-  inline void clear_has_d();
-  inline void set_has_e();
-  inline void clear_has_e();
-  inline void set_has_nested();
-  inline void clear_has_nested();
-  inline void set_has_optional_default();
-  inline void clear_has_optional_default();
-  inline void set_has_optional_no_default();
-  inline void clear_has_optional_no_default();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::google::protobuf::uint32 _has_bits_[1];
+  void set_has_b();
+  void clear_has_b();
+  void set_has_str();
+  void clear_has_str();
+  void set_has_bytes();
+  void clear_has_bytes();
+  void set_has_int32();
+  void clear_has_int32();
+  void set_has_int64();
+  void clear_has_int64();
+  void set_has_uint32();
+  void clear_has_uint32();
+  void set_has_uint64();
+  void clear_has_uint64();
+  void set_has_sint32();
+  void clear_has_sint32();
+  void set_has_sint64();
+  void clear_has_sint64();
+  void set_has_f();
+  void clear_has_f();
+  void set_has_d();
+  void clear_has_d();
+  void set_has_e();
+  void clear_has_e();
+  void set_has_nested();
+  void clear_has_nested();
+  void set_has_optional_default();
+  void clear_has_optional_default();
+  void set_has_optional_no_default();
+  void clear_has_optional_no_default();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
-  ::std::string* str_;
-  bool b_;
-  ::google::protobuf::int32 int32_;
-  ::std::string* bytes_;
-  ::google::protobuf::int64 int64_;
-  ::google::protobuf::uint64 uint64_;
-  ::google::protobuf::uint32 uint32_;
-  ::google::protobuf::int32 sint32_;
-  ::google::protobuf::int64 sint64_;
-  double d_;
-  float f_;
-  int e_;
-  ::tests::Nested* nested_;
-  ::google::protobuf::RepeatedField< bool > repeated_bool_;
   ::google::protobuf::RepeatedPtrField< ::std::string> repeated_string_;
   ::google::protobuf::RepeatedPtrField< ::std::string> repeated_bytes_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
@@ -685,18 +780,27 @@ class Message : public ::google::protobuf::Message {
   ::google::protobuf::RepeatedField<int> repeated_enum_;
   ::google::protobuf::RepeatedPtrField< ::tests::Nested > repeated_nested_;
   ::google::protobuf::RepeatedPtrField< ::std::string> empty_;
-  double optional_default_;
+  ::google::protobuf::RepeatedField< bool > repeated_bool_;
+  ::google::protobuf::internal::ArenaStringPtr str_;
+  ::google::protobuf::internal::ArenaStringPtr bytes_;
+  ::tests::Nested* nested_;
+  ::google::protobuf::int64 int64_;
+  ::google::protobuf::int32 int32_;
+  ::google::protobuf::uint32 uint32_;
+  ::google::protobuf::uint64 uint64_;
+  ::google::protobuf::int64 sint64_;
+  ::google::protobuf::int32 sint32_;
+  float f_;
+  double d_;
   double optional_no_default_;
-  friend void  protobuf_AddDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_AssignDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_ShutdownFile_protobuf_5ftests_2eproto();
-
-  void InitAsDefaultInstance();
-  static Message* default_instance_;
+  bool b_;
+  int e_;
+  double optional_default_;
+  friend struct protobuf_protobuf_5ftests_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class ArrayMessage : public ::google::protobuf::Message {
+class ArrayMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tests.ArrayMessage) */ {
  public:
   ArrayMessage();
   virtual ~ArrayMessage();
@@ -709,78 +813,92 @@ class ArrayMessage : public ::google::protobuf::Message {
   }
 
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
 
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const ArrayMessage& default_instance();
 
+  static inline const ArrayMessage* internal_default_instance() {
+    return reinterpret_cast<const ArrayMessage*>(
+               &_ArrayMessage_default_instance_);
+  }
+  static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+    3;
+
   void Swap(ArrayMessage* other);
 
   // implements Message ----------------------------------------------
 
-  ArrayMessage* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline ArrayMessage* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  ArrayMessage* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
   void CopyFrom(const ArrayMessage& from);
   void MergeFrom(const ArrayMessage& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(ArrayMessage* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
-  ::google::protobuf::Metadata GetMetadata() const;
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
   // repeated .tests.SimpleMessage values = 1;
-  inline int values_size() const;
-  inline void clear_values();
+  int values_size() const;
+  void clear_values();
   static const int kValuesFieldNumber = 1;
-  inline const ::tests::SimpleMessage& values(int index) const;
-  inline ::tests::SimpleMessage* mutable_values(int index);
-  inline ::tests::SimpleMessage* add_values();
-  inline const ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage >&
-      values() const;
-  inline ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage >*
+  const ::tests::SimpleMessage& values(int index) const;
+  ::tests::SimpleMessage* mutable_values(int index);
+  ::tests::SimpleMessage* add_values();
+  ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage >*
       mutable_values();
+  const ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage >&
+      values() const;
 
   // @@protoc_insertion_point(class_scope:tests.ArrayMessage)
  private:
 
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::google::protobuf::uint32 _has_bits_[1];
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
   mutable int _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage > values_;
-  friend void  protobuf_AddDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_AssignDesc_protobuf_5ftests_2eproto();
-  friend void protobuf_ShutdownFile_protobuf_5ftests_2eproto();
-
-  void InitAsDefaultInstance();
-  static ArrayMessage* default_instance_;
+  friend struct protobuf_protobuf_5ftests_2eproto::TableStruct;
 };
 // ===================================================================
 
 
 // ===================================================================
 
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
 // Nested
 
 // required string str = 1;
@@ -794,68 +912,55 @@ inline void Nested::clear_has_str() {
   _has_bits_[0] &= ~0x00000001u;
 }
 inline void Nested::clear_str() {
-  if (str_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_->clear();
-  }
+  str_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   clear_has_str();
 }
 inline const ::std::string& Nested::str() const {
   // @@protoc_insertion_point(field_get:tests.Nested.str)
-  return *str_;
+  return str_.GetNoArena();
 }
 inline void Nested::set_str(const ::std::string& value) {
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
-  str_->assign(value);
+  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
   // @@protoc_insertion_point(field_set:tests.Nested.str)
 }
+#if LANG_CXX11
+inline void Nested::set_str(::std::string&& value) {
+  set_has_str();
+  str_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:tests.Nested.str)
+}
+#endif
 inline void Nested::set_str(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
-  str_->assign(value);
+  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
   // @@protoc_insertion_point(field_set_char:tests.Nested.str)
 }
 inline void Nested::set_str(const char* value, size_t size) {
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
-  str_->assign(reinterpret_cast<const char*>(value), size);
+  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
   // @@protoc_insertion_point(field_set_pointer:tests.Nested.str)
 }
 inline ::std::string* Nested::mutable_str() {
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
   // @@protoc_insertion_point(field_mutable:tests.Nested.str)
-  return str_;
+  return str_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline ::std::string* Nested::release_str() {
+  // @@protoc_insertion_point(field_release:tests.Nested.str)
   clear_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    return NULL;
-  } else {
-    ::std::string* temp = str_;
-    str_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    return temp;
-  }
+  return str_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Nested::set_allocated_str(::std::string* str) {
-  if (str_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    delete str_;
-  }
-  if (str) {
+  if (str != NULL) {
     set_has_str();
-    str_ = str;
   } else {
     clear_has_str();
-    str_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   }
+  str_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), str);
   // @@protoc_insertion_point(field_set_allocated:tests.Nested.str)
 }
 
@@ -870,68 +975,55 @@ inline void Nested::clear_has_optional_str() {
   _has_bits_[0] &= ~0x00000002u;
 }
 inline void Nested::clear_optional_str() {
-  if (optional_str_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    optional_str_->clear();
-  }
+  optional_str_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   clear_has_optional_str();
 }
 inline const ::std::string& Nested::optional_str() const {
   // @@protoc_insertion_point(field_get:tests.Nested.optional_str)
-  return *optional_str_;
+  return optional_str_.GetNoArena();
 }
 inline void Nested::set_optional_str(const ::std::string& value) {
   set_has_optional_str();
-  if (optional_str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    optional_str_ = new ::std::string;
-  }
-  optional_str_->assign(value);
+  optional_str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
   // @@protoc_insertion_point(field_set:tests.Nested.optional_str)
 }
+#if LANG_CXX11
+inline void Nested::set_optional_str(::std::string&& value) {
+  set_has_optional_str();
+  optional_str_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:tests.Nested.optional_str)
+}
+#endif
 inline void Nested::set_optional_str(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   set_has_optional_str();
-  if (optional_str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    optional_str_ = new ::std::string;
-  }
-  optional_str_->assign(value);
+  optional_str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
   // @@protoc_insertion_point(field_set_char:tests.Nested.optional_str)
 }
 inline void Nested::set_optional_str(const char* value, size_t size) {
   set_has_optional_str();
-  if (optional_str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    optional_str_ = new ::std::string;
-  }
-  optional_str_->assign(reinterpret_cast<const char*>(value), size);
+  optional_str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
   // @@protoc_insertion_point(field_set_pointer:tests.Nested.optional_str)
 }
 inline ::std::string* Nested::mutable_optional_str() {
   set_has_optional_str();
-  if (optional_str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    optional_str_ = new ::std::string;
-  }
   // @@protoc_insertion_point(field_mutable:tests.Nested.optional_str)
-  return optional_str_;
+  return optional_str_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline ::std::string* Nested::release_optional_str() {
+  // @@protoc_insertion_point(field_release:tests.Nested.optional_str)
   clear_has_optional_str();
-  if (optional_str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    return NULL;
-  } else {
-    ::std::string* temp = optional_str_;
-    optional_str_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    return temp;
-  }
+  return optional_str_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Nested::set_allocated_optional_str(::std::string* optional_str) {
-  if (optional_str_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    delete optional_str_;
-  }
-  if (optional_str) {
+  if (optional_str != NULL) {
     set_has_optional_str();
-    optional_str_ = optional_str;
   } else {
     clear_has_optional_str();
-    optional_str_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   }
+  optional_str_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_str);
   // @@protoc_insertion_point(field_set_allocated:tests.Nested.optional_str)
 }
 
@@ -954,7 +1046,14 @@ inline void Nested::set_repeated_str(int index, const ::std::string& value) {
   // @@protoc_insertion_point(field_set:tests.Nested.repeated_str)
   repeated_str_.Mutable(index)->assign(value);
 }
+#if LANG_CXX11
+inline void Nested::set_repeated_str(int index, ::std::string&& value) {
+  // @@protoc_insertion_point(field_set:tests.Nested.repeated_str)
+  repeated_str_.Mutable(index)->assign(std::move(value));
+}
+#endif
 inline void Nested::set_repeated_str(int index, const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   repeated_str_.Mutable(index)->assign(value);
   // @@protoc_insertion_point(field_set_char:tests.Nested.repeated_str)
 }
@@ -964,13 +1063,21 @@ inline void Nested::set_repeated_str(int index, const char* value, size_t size)
   // @@protoc_insertion_point(field_set_pointer:tests.Nested.repeated_str)
 }
 inline ::std::string* Nested::add_repeated_str() {
+  // @@protoc_insertion_point(field_add_mutable:tests.Nested.repeated_str)
   return repeated_str_.Add();
 }
 inline void Nested::add_repeated_str(const ::std::string& value) {
   repeated_str_.Add()->assign(value);
   // @@protoc_insertion_point(field_add:tests.Nested.repeated_str)
 }
+#if LANG_CXX11
+inline void Nested::add_repeated_str(::std::string&& value) {
+  repeated_str_.Add(std::move(value));
+  // @@protoc_insertion_point(field_add:tests.Nested.repeated_str)
+}
+#endif
 inline void Nested::add_repeated_str(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   repeated_str_.Add()->assign(value);
   // @@protoc_insertion_point(field_add_char:tests.Nested.repeated_str)
 }
@@ -1004,68 +1111,55 @@ inline void SimpleMessage::clear_has_id() {
   _has_bits_[0] &= ~0x00000001u;
 }
 inline void SimpleMessage::clear_id() {
-  if (id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    id_->clear();
-  }
+  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   clear_has_id();
 }
 inline const ::std::string& SimpleMessage::id() const {
   // @@protoc_insertion_point(field_get:tests.SimpleMessage.id)
-  return *id_;
+  return id_.GetNoArena();
 }
 inline void SimpleMessage::set_id(const ::std::string& value) {
   set_has_id();
-  if (id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    id_ = new ::std::string;
-  }
-  id_->assign(value);
+  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
   // @@protoc_insertion_point(field_set:tests.SimpleMessage.id)
 }
+#if LANG_CXX11
+inline void SimpleMessage::set_id(::std::string&& value) {
+  set_has_id();
+  id_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:tests.SimpleMessage.id)
+}
+#endif
 inline void SimpleMessage::set_id(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   set_has_id();
-  if (id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    id_ = new ::std::string;
-  }
-  id_->assign(value);
+  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
   // @@protoc_insertion_point(field_set_char:tests.SimpleMessage.id)
 }
 inline void SimpleMessage::set_id(const char* value, size_t size) {
   set_has_id();
-  if (id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    id_ = new ::std::string;
-  }
-  id_->assign(reinterpret_cast<const char*>(value), size);
+  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
   // @@protoc_insertion_point(field_set_pointer:tests.SimpleMessage.id)
 }
 inline ::std::string* SimpleMessage::mutable_id() {
   set_has_id();
-  if (id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    id_ = new ::std::string;
-  }
   // @@protoc_insertion_point(field_mutable:tests.SimpleMessage.id)
-  return id_;
+  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline ::std::string* SimpleMessage::release_id() {
+  // @@protoc_insertion_point(field_release:tests.SimpleMessage.id)
   clear_has_id();
-  if (id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    return NULL;
-  } else {
-    ::std::string* temp = id_;
-    id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    return temp;
-  }
+  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void SimpleMessage::set_allocated_id(::std::string* id) {
-  if (id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    delete id_;
-  }
-  if (id) {
+  if (id != NULL) {
     set_has_id();
-    id_ = id;
   } else {
     clear_has_id();
-    id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   }
+  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
   // @@protoc_insertion_point(field_set_allocated:tests.SimpleMessage.id)
 }
 
@@ -1105,13 +1199,13 @@ SimpleMessage::mutable_numbers() {
 
 // required bool b = 26;
 inline bool Message::has_b() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
+  return (_has_bits_[0] & 0x00001000u) != 0;
 }
 inline void Message::set_has_b() {
-  _has_bits_[0] |= 0x00000001u;
+  _has_bits_[0] |= 0x00001000u;
 }
 inline void Message::clear_has_b() {
-  _has_bits_[0] &= ~0x00000001u;
+  _has_bits_[0] &= ~0x00001000u;
 }
 inline void Message::clear_b() {
   b_ = false;
@@ -1129,165 +1223,139 @@ inline void Message::set_b(bool value) {
 
 // required string str = 1;
 inline bool Message::has_str() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000001u) != 0;
 }
 inline void Message::set_has_str() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000001u;
 }
 inline void Message::clear_has_str() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000001u;
 }
 inline void Message::clear_str() {
-  if (str_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_->clear();
-  }
+  str_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   clear_has_str();
 }
 inline const ::std::string& Message::str() const {
   // @@protoc_insertion_point(field_get:tests.Message.str)
-  return *str_;
+  return str_.GetNoArena();
 }
 inline void Message::set_str(const ::std::string& value) {
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
-  str_->assign(value);
+  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
   // @@protoc_insertion_point(field_set:tests.Message.str)
 }
+#if LANG_CXX11
+inline void Message::set_str(::std::string&& value) {
+  set_has_str();
+  str_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:tests.Message.str)
+}
+#endif
 inline void Message::set_str(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
-  str_->assign(value);
+  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
   // @@protoc_insertion_point(field_set_char:tests.Message.str)
 }
 inline void Message::set_str(const char* value, size_t size) {
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
-  str_->assign(reinterpret_cast<const char*>(value), size);
+  str_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
   // @@protoc_insertion_point(field_set_pointer:tests.Message.str)
 }
 inline ::std::string* Message::mutable_str() {
   set_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    str_ = new ::std::string;
-  }
   // @@protoc_insertion_point(field_mutable:tests.Message.str)
-  return str_;
+  return str_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline ::std::string* Message::release_str() {
+  // @@protoc_insertion_point(field_release:tests.Message.str)
   clear_has_str();
-  if (str_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    return NULL;
-  } else {
-    ::std::string* temp = str_;
-    str_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    return temp;
-  }
+  return str_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Message::set_allocated_str(::std::string* str) {
-  if (str_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    delete str_;
-  }
-  if (str) {
+  if (str != NULL) {
     set_has_str();
-    str_ = str;
   } else {
     clear_has_str();
-    str_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   }
+  str_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), str);
   // @@protoc_insertion_point(field_set_allocated:tests.Message.str)
 }
 
 // required bytes bytes = 2;
 inline bool Message::has_bytes() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
 inline void Message::set_has_bytes() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000002u;
 }
 inline void Message::clear_has_bytes() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000002u;
 }
 inline void Message::clear_bytes() {
-  if (bytes_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    bytes_->clear();
-  }
+  bytes_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   clear_has_bytes();
 }
 inline const ::std::string& Message::bytes() const {
   // @@protoc_insertion_point(field_get:tests.Message.bytes)
-  return *bytes_;
+  return bytes_.GetNoArena();
 }
 inline void Message::set_bytes(const ::std::string& value) {
   set_has_bytes();
-  if (bytes_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    bytes_ = new ::std::string;
-  }
-  bytes_->assign(value);
+  bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
   // @@protoc_insertion_point(field_set:tests.Message.bytes)
 }
+#if LANG_CXX11
+inline void Message::set_bytes(::std::string&& value) {
+  set_has_bytes();
+  bytes_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:tests.Message.bytes)
+}
+#endif
 inline void Message::set_bytes(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   set_has_bytes();
-  if (bytes_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    bytes_ = new ::std::string;
-  }
-  bytes_->assign(value);
+  bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
   // @@protoc_insertion_point(field_set_char:tests.Message.bytes)
 }
 inline void Message::set_bytes(const void* value, size_t size) {
   set_has_bytes();
-  if (bytes_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    bytes_ = new ::std::string;
-  }
-  bytes_->assign(reinterpret_cast<const char*>(value), size);
+  bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
   // @@protoc_insertion_point(field_set_pointer:tests.Message.bytes)
 }
 inline ::std::string* Message::mutable_bytes() {
   set_has_bytes();
-  if (bytes_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    bytes_ = new ::std::string;
-  }
   // @@protoc_insertion_point(field_mutable:tests.Message.bytes)
-  return bytes_;
+  return bytes_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline ::std::string* Message::release_bytes() {
+  // @@protoc_insertion_point(field_release:tests.Message.bytes)
   clear_has_bytes();
-  if (bytes_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    return NULL;
-  } else {
-    ::std::string* temp = bytes_;
-    bytes_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    return temp;
-  }
+  return bytes_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void Message::set_allocated_bytes(::std::string* bytes) {
-  if (bytes_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
-    delete bytes_;
-  }
-  if (bytes) {
+  if (bytes != NULL) {
     set_has_bytes();
-    bytes_ = bytes;
   } else {
     clear_has_bytes();
-    bytes_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   }
+  bytes_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), bytes);
   // @@protoc_insertion_point(field_set_allocated:tests.Message.bytes)
 }
 
 // optional int32 int32 = 3;
 inline bool Message::has_int32() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+  return (_has_bits_[0] & 0x00000010u) != 0;
 }
 inline void Message::set_has_int32() {
-  _has_bits_[0] |= 0x00000008u;
+  _has_bits_[0] |= 0x00000010u;
 }
 inline void Message::clear_has_int32() {
-  _has_bits_[0] &= ~0x00000008u;
+  _has_bits_[0] &= ~0x00000010u;
 }
 inline void Message::clear_int32() {
   int32_ = 0;
@@ -1305,13 +1373,13 @@ inline void Message::set_int32(::google::protobuf::int32 value) {
 
 // optional int64 int64 = 4;
 inline bool Message::has_int64() const {
-  return (_has_bits_[0] & 0x00000010u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void Message::set_has_int64() {
-  _has_bits_[0] |= 0x00000010u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void Message::clear_has_int64() {
-  _has_bits_[0] &= ~0x00000010u;
+  _has_bits_[0] &= ~0x00000008u;
 }
 inline void Message::clear_int64() {
   int64_ = GOOGLE_LONGLONG(0);
@@ -1377,13 +1445,13 @@ inline void Message::set_uint64(::google::protobuf::uint64 value) {
 
 // optional sint32 sint32 = 7;
 inline bool Message::has_sint32() const {
-  return (_has_bits_[0] & 0x00000080u) != 0;
+  return (_has_bits_[0] & 0x00000100u) != 0;
 }
 inline void Message::set_has_sint32() {
-  _has_bits_[0] |= 0x00000080u;
+  _has_bits_[0] |= 0x00000100u;
 }
 inline void Message::clear_has_sint32() {
-  _has_bits_[0] &= ~0x00000080u;
+  _has_bits_[0] &= ~0x00000100u;
 }
 inline void Message::clear_sint32() {
   sint32_ = 0;
@@ -1401,13 +1469,13 @@ inline void Message::set_sint32(::google::protobuf::int32 value) {
 
 // optional sint64 sint64 = 8;
 inline bool Message::has_sint64() const {
-  return (_has_bits_[0] & 0x00000100u) != 0;
+  return (_has_bits_[0] & 0x00000080u) != 0;
 }
 inline void Message::set_has_sint64() {
-  _has_bits_[0] |= 0x00000100u;
+  _has_bits_[0] |= 0x00000080u;
 }
 inline void Message::clear_has_sint64() {
-  _has_bits_[0] &= ~0x00000100u;
+  _has_bits_[0] &= ~0x00000080u;
 }
 inline void Message::clear_sint64() {
   sint64_ = GOOGLE_LONGLONG(0);
@@ -1473,13 +1541,13 @@ inline void Message::set_d(double value) {
 
 // required .tests.Enum e = 11;
 inline bool Message::has_e() const {
-  return (_has_bits_[0] & 0x00000800u) != 0;
+  return (_has_bits_[0] & 0x00002000u) != 0;
 }
 inline void Message::set_has_e() {
-  _has_bits_[0] |= 0x00000800u;
+  _has_bits_[0] |= 0x00002000u;
 }
 inline void Message::clear_has_e() {
-  _has_bits_[0] &= ~0x00000800u;
+  _has_bits_[0] &= ~0x00002000u;
 }
 inline void Message::clear_e() {
   e_ = 1;
@@ -1498,13 +1566,13 @@ inline void Message::set_e(::tests::Enum value) {
 
 // required .tests.Nested nested = 12;
 inline bool Message::has_nested() const {
-  return (_has_bits_[0] & 0x00001000u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void Message::set_has_nested() {
-  _has_bits_[0] |= 0x00001000u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void Message::clear_has_nested() {
-  _has_bits_[0] &= ~0x00001000u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline void Message::clear_nested() {
   if (nested_ != NULL) nested_->::tests::Nested::Clear();
@@ -1512,15 +1580,19 @@ inline void Message::clear_nested() {
 }
 inline const ::tests::Nested& Message::nested() const {
   // @@protoc_insertion_point(field_get:tests.Message.nested)
-  return nested_ != NULL ? *nested_ : *default_instance_->nested_;
+  return nested_ != NULL ? *nested_
+                         : *::tests::Nested::internal_default_instance();
 }
 inline ::tests::Nested* Message::mutable_nested() {
   set_has_nested();
-  if (nested_ == NULL) nested_ = new ::tests::Nested;
+  if (nested_ == NULL) {
+    nested_ = new ::tests::Nested;
+  }
   // @@protoc_insertion_point(field_mutable:tests.Message.nested)
   return nested_;
 }
 inline ::tests::Nested* Message::release_nested() {
+  // @@protoc_insertion_point(field_release:tests.Message.nested)
   clear_has_nested();
   ::tests::Nested* temp = nested_;
   nested_ = NULL;
@@ -1586,7 +1658,14 @@ inline void Message::set_repeated_string(int index, const ::std::string& value)
   // @@protoc_insertion_point(field_set:tests.Message.repeated_string)
   repeated_string_.Mutable(index)->assign(value);
 }
+#if LANG_CXX11
+inline void Message::set_repeated_string(int index, ::std::string&& value) {
+  // @@protoc_insertion_point(field_set:tests.Message.repeated_string)
+  repeated_string_.Mutable(index)->assign(std::move(value));
+}
+#endif
 inline void Message::set_repeated_string(int index, const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   repeated_string_.Mutable(index)->assign(value);
   // @@protoc_insertion_point(field_set_char:tests.Message.repeated_string)
 }
@@ -1596,13 +1675,21 @@ inline void Message::set_repeated_string(int index, const char* value, size_t si
   // @@protoc_insertion_point(field_set_pointer:tests.Message.repeated_string)
 }
 inline ::std::string* Message::add_repeated_string() {
+  // @@protoc_insertion_point(field_add_mutable:tests.Message.repeated_string)
   return repeated_string_.Add();
 }
 inline void Message::add_repeated_string(const ::std::string& value) {
   repeated_string_.Add()->assign(value);
   // @@protoc_insertion_point(field_add:tests.Message.repeated_string)
 }
+#if LANG_CXX11
+inline void Message::add_repeated_string(::std::string&& value) {
+  repeated_string_.Add(std::move(value));
+  // @@protoc_insertion_point(field_add:tests.Message.repeated_string)
+}
+#endif
 inline void Message::add_repeated_string(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   repeated_string_.Add()->assign(value);
   // @@protoc_insertion_point(field_add_char:tests.Message.repeated_string)
 }
@@ -1640,7 +1727,14 @@ inline void Message::set_repeated_bytes(int index, const ::std::string& value) {
   // @@protoc_insertion_point(field_set:tests.Message.repeated_bytes)
   repeated_bytes_.Mutable(index)->assign(value);
 }
+#if LANG_CXX11
+inline void Message::set_repeated_bytes(int index, ::std::string&& value) {
+  // @@protoc_insertion_point(field_set:tests.Message.repeated_bytes)
+  repeated_bytes_.Mutable(index)->assign(std::move(value));
+}
+#endif
 inline void Message::set_repeated_bytes(int index, const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   repeated_bytes_.Mutable(index)->assign(value);
   // @@protoc_insertion_point(field_set_char:tests.Message.repeated_bytes)
 }
@@ -1650,13 +1744,21 @@ inline void Message::set_repeated_bytes(int index, const void* value, size_t siz
   // @@protoc_insertion_point(field_set_pointer:tests.Message.repeated_bytes)
 }
 inline ::std::string* Message::add_repeated_bytes() {
+  // @@protoc_insertion_point(field_add_mutable:tests.Message.repeated_bytes)
   return repeated_bytes_.Add();
 }
 inline void Message::add_repeated_bytes(const ::std::string& value) {
   repeated_bytes_.Add()->assign(value);
   // @@protoc_insertion_point(field_add:tests.Message.repeated_bytes)
 }
+#if LANG_CXX11
+inline void Message::add_repeated_bytes(::std::string&& value) {
+  repeated_bytes_.Add(std::move(value));
+  // @@protoc_insertion_point(field_add:tests.Message.repeated_bytes)
+}
+#endif
 inline void Message::add_repeated_bytes(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   repeated_bytes_.Add()->assign(value);
   // @@protoc_insertion_point(field_add_char:tests.Message.repeated_bytes)
 }
@@ -1966,16 +2068,16 @@ inline ::tests::Nested* Message::add_repeated_nested() {
   // @@protoc_insertion_point(field_add:tests.Message.repeated_nested)
   return repeated_nested_.Add();
 }
-inline const ::google::protobuf::RepeatedPtrField< ::tests::Nested >&
-Message::repeated_nested() const {
-  // @@protoc_insertion_point(field_list:tests.Message.repeated_nested)
-  return repeated_nested_;
-}
 inline ::google::protobuf::RepeatedPtrField< ::tests::Nested >*
 Message::mutable_repeated_nested() {
   // @@protoc_insertion_point(field_mutable_list:tests.Message.repeated_nested)
   return &repeated_nested_;
 }
+inline const ::google::protobuf::RepeatedPtrField< ::tests::Nested >&
+Message::repeated_nested() const {
+  // @@protoc_insertion_point(field_list:tests.Message.repeated_nested)
+  return repeated_nested_;
+}
 
 // repeated string empty = 25;
 inline int Message::empty_size() const {
@@ -1996,7 +2098,14 @@ inline void Message::set_empty(int index, const ::std::string& value) {
   // @@protoc_insertion_point(field_set:tests.Message.empty)
   empty_.Mutable(index)->assign(value);
 }
+#if LANG_CXX11
+inline void Message::set_empty(int index, ::std::string&& value) {
+  // @@protoc_insertion_point(field_set:tests.Message.empty)
+  empty_.Mutable(index)->assign(std::move(value));
+}
+#endif
 inline void Message::set_empty(int index, const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   empty_.Mutable(index)->assign(value);
   // @@protoc_insertion_point(field_set_char:tests.Message.empty)
 }
@@ -2006,13 +2115,21 @@ inline void Message::set_empty(int index, const char* value, size_t size) {
   // @@protoc_insertion_point(field_set_pointer:tests.Message.empty)
 }
 inline ::std::string* Message::add_empty() {
+  // @@protoc_insertion_point(field_add_mutable:tests.Message.empty)
   return empty_.Add();
 }
 inline void Message::add_empty(const ::std::string& value) {
   empty_.Add()->assign(value);
   // @@protoc_insertion_point(field_add:tests.Message.empty)
 }
+#if LANG_CXX11
+inline void Message::add_empty(::std::string&& value) {
+  empty_.Add(std::move(value));
+  // @@protoc_insertion_point(field_add:tests.Message.empty)
+}
+#endif
 inline void Message::add_empty(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   empty_.Add()->assign(value);
   // @@protoc_insertion_point(field_add_char:tests.Message.empty)
 }
@@ -2033,13 +2150,13 @@ Message::mutable_empty() {
 
 // optional double optional_default = 28 [default = 42];
 inline bool Message::has_optional_default() const {
-  return (_has_bits_[0] & 0x08000000u) != 0;
+  return (_has_bits_[0] & 0x00004000u) != 0;
 }
 inline void Message::set_has_optional_default() {
-  _has_bits_[0] |= 0x08000000u;
+  _has_bits_[0] |= 0x00004000u;
 }
 inline void Message::clear_has_optional_default() {
-  _has_bits_[0] &= ~0x08000000u;
+  _has_bits_[0] &= ~0x00004000u;
 }
 inline void Message::clear_optional_default() {
   optional_default_ = 42;
@@ -2057,13 +2174,13 @@ inline void Message::set_optional_default(double value) {
 
 // optional double optional_no_default = 29;
 inline bool Message::has_optional_no_default() const {
-  return (_has_bits_[0] & 0x10000000u) != 0;
+  return (_has_bits_[0] & 0x00000800u) != 0;
 }
 inline void Message::set_has_optional_no_default() {
-  _has_bits_[0] |= 0x10000000u;
+  _has_bits_[0] |= 0x00000800u;
 }
 inline void Message::clear_has_optional_no_default() {
-  _has_bits_[0] &= ~0x10000000u;
+  _has_bits_[0] &= ~0x00000800u;
 }
 inline void Message::clear_optional_no_default() {
   optional_no_default_ = 0;
@@ -2102,20 +2219,28 @@ inline ::tests::SimpleMessage* ArrayMessage::add_values() {
   // @@protoc_insertion_point(field_add:tests.ArrayMessage.values)
   return values_.Add();
 }
-inline const ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage >&
-ArrayMessage::values() const {
-  // @@protoc_insertion_point(field_list:tests.ArrayMessage.values)
-  return values_;
-}
 inline ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage >*
 ArrayMessage::mutable_values() {
   // @@protoc_insertion_point(field_mutable_list:tests.ArrayMessage.values)
   return &values_;
 }
+inline const ::google::protobuf::RepeatedPtrField< ::tests::SimpleMessage >&
+ArrayMessage::values() const {
+  // @@protoc_insertion_point(field_list:tests.ArrayMessage.values)
+  return values_;
+}
+
+#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
 
 
 // @@protoc_insertion_point(namespace_scope)
 
+
 }  // namespace tests
 
 #ifndef SWIG
@@ -2128,8 +2253,8 @@ inline const EnumDescriptor* GetEnumDescriptor< ::tests::Enum>() {
   return ::tests::Enum_descriptor();
 }
 
-}  // namespace google
 }  // namespace protobuf
+}  // namespace google
 #endif  // SWIG
 
 // @@protoc_insertion_point(global_scope)