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

#include <google/protobuf/util/internal/testdata/wrappers.pb.h>

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)

namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_BoolWrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_BytesWrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_DoubleWrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_FloatWrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Int32Wrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Int64Wrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_StringWrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_UInt32Wrapper;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_UInt64Wrapper;
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto
namespace protobuf_google_2fprotobuf_2fwrappers_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_BoolValue;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_BytesValue;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_DoubleValue;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_FloatValue;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Int32Value;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Int64Value;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_StringValue;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_UInt32Value;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_UInt64Value;
}  // namespace protobuf_google_2fprotobuf_2fwrappers_2eproto
namespace google {
namespace protobuf {
namespace testing {
class WrappersTestCasesDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<WrappersTestCases>
      _instance;
} _WrappersTestCases_default_instance_;
class DoubleWrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DoubleWrapper>
      _instance;
} _DoubleWrapper_default_instance_;
class FloatWrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<FloatWrapper>
      _instance;
} _FloatWrapper_default_instance_;
class Int64WrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Int64Wrapper>
      _instance;
} _Int64Wrapper_default_instance_;
class UInt64WrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<UInt64Wrapper>
      _instance;
} _UInt64Wrapper_default_instance_;
class Int32WrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Int32Wrapper>
      _instance;
} _Int32Wrapper_default_instance_;
class UInt32WrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<UInt32Wrapper>
      _instance;
} _UInt32Wrapper_default_instance_;
class BoolWrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<BoolWrapper>
      _instance;
} _BoolWrapper_default_instance_;
class StringWrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<StringWrapper>
      _instance;
} _StringWrapper_default_instance_;
class BytesWrapperDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<BytesWrapper>
      _instance;
} _BytesWrapper_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto {
static void InitDefaultsWrappersTestCases() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_WrappersTestCases_default_instance_;
    new (ptr) ::google::protobuf::testing::WrappersTestCases();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::WrappersTestCases::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<9> scc_info_WrappersTestCases =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 9, InitDefaultsWrappersTestCases}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_DoubleWrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_FloatWrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_Int64Wrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_UInt64Wrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_Int32Wrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_UInt32Wrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_BoolWrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_StringWrapper.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_BytesWrapper.base,}};

static void InitDefaultsDoubleWrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_DoubleWrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::DoubleWrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::DoubleWrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_DoubleWrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsDoubleWrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_DoubleValue.base,}};

static void InitDefaultsFloatWrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_FloatWrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::FloatWrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::FloatWrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_FloatWrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsFloatWrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_FloatValue.base,}};

static void InitDefaultsInt64Wrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_Int64Wrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::Int64Wrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::Int64Wrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Int64Wrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsInt64Wrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_Int64Value.base,}};

static void InitDefaultsUInt64Wrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_UInt64Wrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::UInt64Wrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::UInt64Wrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_UInt64Wrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsUInt64Wrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_UInt64Value.base,}};

static void InitDefaultsInt32Wrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_Int32Wrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::Int32Wrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::Int32Wrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Int32Wrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsInt32Wrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_Int32Value.base,}};

static void InitDefaultsUInt32Wrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_UInt32Wrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::UInt32Wrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::UInt32Wrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_UInt32Wrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsUInt32Wrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_UInt32Value.base,}};

static void InitDefaultsBoolWrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_BoolWrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::BoolWrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::BoolWrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_BoolWrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBoolWrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_BoolValue.base,}};

static void InitDefaultsStringWrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_StringWrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::StringWrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::StringWrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_StringWrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsStringWrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_StringValue.base,}};

static void InitDefaultsBytesWrapper() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_BytesWrapper_default_instance_;
    new (ptr) ::google::protobuf::testing::BytesWrapper();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::BytesWrapper::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_BytesWrapper =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBytesWrapper}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_BytesValue.base,}};

void InitDefaults() {
  ::google::protobuf::internal::InitSCC(&scc_info_WrappersTestCases.base);
  ::google::protobuf::internal::InitSCC(&scc_info_DoubleWrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_FloatWrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Int64Wrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_UInt64Wrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Int32Wrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_UInt32Wrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_BoolWrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_StringWrapper.base);
  ::google::protobuf::internal::InitSCC(&scc_info_BytesWrapper.base);
}

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

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, double_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, float_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, int64_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, uint64_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, int32_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, uint32_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, bool_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, string_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, bytes_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, double_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, float_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, int64_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, uint64_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, int32_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, uint32_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, bool_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, string_wrapper_default_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::WrappersTestCases, bytes_wrapper_default_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleWrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleWrapper, double__),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::FloatWrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::FloatWrapper, float__),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::Int64Wrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::Int64Wrapper, int64_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::UInt64Wrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::UInt64Wrapper, uint64_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::Int32Wrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::Int32Wrapper, int32_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::UInt32Wrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::UInt32Wrapper, uint32_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::BoolWrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::BoolWrapper, bool__),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringWrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringWrapper, string_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::BytesWrapper, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::BytesWrapper, bytes_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::google::protobuf::testing::WrappersTestCases)},
  { 23, -1, sizeof(::google::protobuf::testing::DoubleWrapper)},
  { 29, -1, sizeof(::google::protobuf::testing::FloatWrapper)},
  { 35, -1, sizeof(::google::protobuf::testing::Int64Wrapper)},
  { 41, -1, sizeof(::google::protobuf::testing::UInt64Wrapper)},
  { 47, -1, sizeof(::google::protobuf::testing::Int32Wrapper)},
  { 53, -1, sizeof(::google::protobuf::testing::UInt32Wrapper)},
  { 59, -1, sizeof(::google::protobuf::testing::BoolWrapper)},
  { 65, -1, sizeof(::google::protobuf::testing::StringWrapper)},
  { 71, -1, sizeof(::google::protobuf::testing::BytesWrapper)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_WrappersTestCases_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_DoubleWrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_FloatWrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_Int64Wrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_UInt64Wrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_Int32Wrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_UInt32Wrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_BoolWrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_StringWrapper_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_BytesWrapper_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  AssignDescriptors(
      "google/protobuf/util/internal/testdata/wrappers.proto", schemas, file_default_instances, TableStruct::offsets,
      file_level_metadata, NULL, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
}

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

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n5google/protobuf/util/internal/testdata"
      "/wrappers.proto\022\027google.protobuf.testing"
      "\032\036google/protobuf/wrappers.proto\"\303\t\n\021Wra"
      "ppersTestCases\022>\n\016double_wrapper\030\001 \001(\0132&"
      ".google.protobuf.testing.DoubleWrapper\022<"
      "\n\rfloat_wrapper\030\002 \001(\0132%.google.protobuf."
      "testing.FloatWrapper\022<\n\rint64_wrapper\030\003 "
      "\001(\0132%.google.protobuf.testing.Int64Wrapp"
      "er\022>\n\016uint64_wrapper\030\004 \001(\0132&.google.prot"
      "obuf.testing.UInt64Wrapper\022<\n\rint32_wrap"
      "per\030\005 \001(\0132%.google.protobuf.testing.Int3"
      "2Wrapper\022>\n\016uint32_wrapper\030\006 \001(\0132&.googl"
      "e.protobuf.testing.UInt32Wrapper\022:\n\014bool"
      "_wrapper\030\007 \001(\0132$.google.protobuf.testing"
      ".BoolWrapper\022>\n\016string_wrapper\030\010 \001(\0132&.g"
      "oogle.protobuf.testing.StringWrapper\022<\n\r"
      "bytes_wrapper\030\t \001(\0132%.google.protobuf.te"
      "sting.BytesWrapper\022F\n\026double_wrapper_def"
      "ault\030\n \001(\0132&.google.protobuf.testing.Dou"
      "bleWrapper\022D\n\025float_wrapper_default\030\013 \001("
      "\0132%.google.protobuf.testing.FloatWrapper"
      "\022D\n\025int64_wrapper_default\030\014 \001(\0132%.google"
      ".protobuf.testing.Int64Wrapper\022F\n\026uint64"
      "_wrapper_default\030\r \001(\0132&.google.protobuf"
      ".testing.UInt64Wrapper\022D\n\025int32_wrapper_"
      "default\030\016 \001(\0132%.google.protobuf.testing."
      "Int32Wrapper\022F\n\026uint32_wrapper_default\030\017"
      " \001(\0132&.google.protobuf.testing.UInt32Wra"
      "pper\022B\n\024bool_wrapper_default\030\020 \001(\0132$.goo"
      "gle.protobuf.testing.BoolWrapper\022F\n\026stri"
      "ng_wrapper_default\030\021 \001(\0132&.google.protob"
      "uf.testing.StringWrapper\022D\n\025bytes_wrappe"
      "r_default\030\022 \001(\0132%.google.protobuf.testin"
      "g.BytesWrapper\"=\n\rDoubleWrapper\022,\n\006doubl"
      "e\030\001 \001(\0132\034.google.protobuf.DoubleValue\":\n"
      "\014FloatWrapper\022*\n\005float\030\001 \001(\0132\033.google.pr"
      "otobuf.FloatValue\":\n\014Int64Wrapper\022*\n\005int"
      "64\030\001 \001(\0132\033.google.protobuf.Int64Value\"=\n"
      "\rUInt64Wrapper\022,\n\006uint64\030\001 \001(\0132\034.google."
      "protobuf.UInt64Value\":\n\014Int32Wrapper\022*\n\005"
      "int32\030\001 \001(\0132\033.google.protobuf.Int32Value"
      "\"=\n\rUInt32Wrapper\022,\n\006uint32\030\001 \001(\0132\034.goog"
      "le.protobuf.UInt32Value\"7\n\013BoolWrapper\022("
      "\n\004bool\030\001 \001(\0132\032.google.protobuf.BoolValue"
      "\"=\n\rStringWrapper\022,\n\006string\030\001 \001(\0132\034.goog"
      "le.protobuf.StringValue\":\n\014BytesWrapper\022"
      "*\n\005bytes\030\001 \001(\0132\033.google.protobuf.BytesVa"
      "lue2u\n\023WrappersTestService\022^\n\004Call\022*.goo"
      "gle.protobuf.testing.WrappersTestCases\032*"
      ".google.protobuf.testing.WrappersTestCas"
      "esb\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 2010);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "google/protobuf/util/internal/testdata/wrappers.proto", &protobuf_RegisterTypes);
  ::protobuf_google_2fprotobuf_2fwrappers_2eproto::AddDescriptors();
}

void AddDescriptors() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto
namespace google {
namespace protobuf {
namespace testing {

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

void WrappersTestCases::InitAsDefaultInstance() {
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->double_wrapper_ = const_cast< ::google::protobuf::testing::DoubleWrapper*>(
      ::google::protobuf::testing::DoubleWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->float_wrapper_ = const_cast< ::google::protobuf::testing::FloatWrapper*>(
      ::google::protobuf::testing::FloatWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->int64_wrapper_ = const_cast< ::google::protobuf::testing::Int64Wrapper*>(
      ::google::protobuf::testing::Int64Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->uint64_wrapper_ = const_cast< ::google::protobuf::testing::UInt64Wrapper*>(
      ::google::protobuf::testing::UInt64Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->int32_wrapper_ = const_cast< ::google::protobuf::testing::Int32Wrapper*>(
      ::google::protobuf::testing::Int32Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->uint32_wrapper_ = const_cast< ::google::protobuf::testing::UInt32Wrapper*>(
      ::google::protobuf::testing::UInt32Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->bool_wrapper_ = const_cast< ::google::protobuf::testing::BoolWrapper*>(
      ::google::protobuf::testing::BoolWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->string_wrapper_ = const_cast< ::google::protobuf::testing::StringWrapper*>(
      ::google::protobuf::testing::StringWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->bytes_wrapper_ = const_cast< ::google::protobuf::testing::BytesWrapper*>(
      ::google::protobuf::testing::BytesWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->double_wrapper_default_ = const_cast< ::google::protobuf::testing::DoubleWrapper*>(
      ::google::protobuf::testing::DoubleWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->float_wrapper_default_ = const_cast< ::google::protobuf::testing::FloatWrapper*>(
      ::google::protobuf::testing::FloatWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->int64_wrapper_default_ = const_cast< ::google::protobuf::testing::Int64Wrapper*>(
      ::google::protobuf::testing::Int64Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->uint64_wrapper_default_ = const_cast< ::google::protobuf::testing::UInt64Wrapper*>(
      ::google::protobuf::testing::UInt64Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->int32_wrapper_default_ = const_cast< ::google::protobuf::testing::Int32Wrapper*>(
      ::google::protobuf::testing::Int32Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->uint32_wrapper_default_ = const_cast< ::google::protobuf::testing::UInt32Wrapper*>(
      ::google::protobuf::testing::UInt32Wrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->bool_wrapper_default_ = const_cast< ::google::protobuf::testing::BoolWrapper*>(
      ::google::protobuf::testing::BoolWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->string_wrapper_default_ = const_cast< ::google::protobuf::testing::StringWrapper*>(
      ::google::protobuf::testing::StringWrapper::internal_default_instance());
  ::google::protobuf::testing::_WrappersTestCases_default_instance_._instance.get_mutable()->bytes_wrapper_default_ = const_cast< ::google::protobuf::testing::BytesWrapper*>(
      ::google::protobuf::testing::BytesWrapper::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int WrappersTestCases::kDoubleWrapperFieldNumber;
const int WrappersTestCases::kFloatWrapperFieldNumber;
const int WrappersTestCases::kInt64WrapperFieldNumber;
const int WrappersTestCases::kUint64WrapperFieldNumber;
const int WrappersTestCases::kInt32WrapperFieldNumber;
const int WrappersTestCases::kUint32WrapperFieldNumber;
const int WrappersTestCases::kBoolWrapperFieldNumber;
const int WrappersTestCases::kStringWrapperFieldNumber;
const int WrappersTestCases::kBytesWrapperFieldNumber;
const int WrappersTestCases::kDoubleWrapperDefaultFieldNumber;
const int WrappersTestCases::kFloatWrapperDefaultFieldNumber;
const int WrappersTestCases::kInt64WrapperDefaultFieldNumber;
const int WrappersTestCases::kUint64WrapperDefaultFieldNumber;
const int WrappersTestCases::kInt32WrapperDefaultFieldNumber;
const int WrappersTestCases::kUint32WrapperDefaultFieldNumber;
const int WrappersTestCases::kBoolWrapperDefaultFieldNumber;
const int WrappersTestCases::kStringWrapperDefaultFieldNumber;
const int WrappersTestCases::kBytesWrapperDefaultFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

WrappersTestCases::WrappersTestCases()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_WrappersTestCases.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.WrappersTestCases)
}
WrappersTestCases::WrappersTestCases(const WrappersTestCases& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_double_wrapper()) {
    double_wrapper_ = new ::google::protobuf::testing::DoubleWrapper(*from.double_wrapper_);
  } else {
    double_wrapper_ = NULL;
  }
  if (from.has_float_wrapper()) {
    float_wrapper_ = new ::google::protobuf::testing::FloatWrapper(*from.float_wrapper_);
  } else {
    float_wrapper_ = NULL;
  }
  if (from.has_int64_wrapper()) {
    int64_wrapper_ = new ::google::protobuf::testing::Int64Wrapper(*from.int64_wrapper_);
  } else {
    int64_wrapper_ = NULL;
  }
  if (from.has_uint64_wrapper()) {
    uint64_wrapper_ = new ::google::protobuf::testing::UInt64Wrapper(*from.uint64_wrapper_);
  } else {
    uint64_wrapper_ = NULL;
  }
  if (from.has_int32_wrapper()) {
    int32_wrapper_ = new ::google::protobuf::testing::Int32Wrapper(*from.int32_wrapper_);
  } else {
    int32_wrapper_ = NULL;
  }
  if (from.has_uint32_wrapper()) {
    uint32_wrapper_ = new ::google::protobuf::testing::UInt32Wrapper(*from.uint32_wrapper_);
  } else {
    uint32_wrapper_ = NULL;
  }
  if (from.has_bool_wrapper()) {
    bool_wrapper_ = new ::google::protobuf::testing::BoolWrapper(*from.bool_wrapper_);
  } else {
    bool_wrapper_ = NULL;
  }
  if (from.has_string_wrapper()) {
    string_wrapper_ = new ::google::protobuf::testing::StringWrapper(*from.string_wrapper_);
  } else {
    string_wrapper_ = NULL;
  }
  if (from.has_bytes_wrapper()) {
    bytes_wrapper_ = new ::google::protobuf::testing::BytesWrapper(*from.bytes_wrapper_);
  } else {
    bytes_wrapper_ = NULL;
  }
  if (from.has_double_wrapper_default()) {
    double_wrapper_default_ = new ::google::protobuf::testing::DoubleWrapper(*from.double_wrapper_default_);
  } else {
    double_wrapper_default_ = NULL;
  }
  if (from.has_float_wrapper_default()) {
    float_wrapper_default_ = new ::google::protobuf::testing::FloatWrapper(*from.float_wrapper_default_);
  } else {
    float_wrapper_default_ = NULL;
  }
  if (from.has_int64_wrapper_default()) {
    int64_wrapper_default_ = new ::google::protobuf::testing::Int64Wrapper(*from.int64_wrapper_default_);
  } else {
    int64_wrapper_default_ = NULL;
  }
  if (from.has_uint64_wrapper_default()) {
    uint64_wrapper_default_ = new ::google::protobuf::testing::UInt64Wrapper(*from.uint64_wrapper_default_);
  } else {
    uint64_wrapper_default_ = NULL;
  }
  if (from.has_int32_wrapper_default()) {
    int32_wrapper_default_ = new ::google::protobuf::testing::Int32Wrapper(*from.int32_wrapper_default_);
  } else {
    int32_wrapper_default_ = NULL;
  }
  if (from.has_uint32_wrapper_default()) {
    uint32_wrapper_default_ = new ::google::protobuf::testing::UInt32Wrapper(*from.uint32_wrapper_default_);
  } else {
    uint32_wrapper_default_ = NULL;
  }
  if (from.has_bool_wrapper_default()) {
    bool_wrapper_default_ = new ::google::protobuf::testing::BoolWrapper(*from.bool_wrapper_default_);
  } else {
    bool_wrapper_default_ = NULL;
  }
  if (from.has_string_wrapper_default()) {
    string_wrapper_default_ = new ::google::protobuf::testing::StringWrapper(*from.string_wrapper_default_);
  } else {
    string_wrapper_default_ = NULL;
  }
  if (from.has_bytes_wrapper_default()) {
    bytes_wrapper_default_ = new ::google::protobuf::testing::BytesWrapper(*from.bytes_wrapper_default_);
  } else {
    bytes_wrapper_default_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.WrappersTestCases)
}

void WrappersTestCases::SharedCtor() {
  ::memset(&double_wrapper_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&bytes_wrapper_default_) -
      reinterpret_cast<char*>(&double_wrapper_)) + sizeof(bytes_wrapper_default_));
}

WrappersTestCases::~WrappersTestCases() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.WrappersTestCases)
  SharedDtor();
}

void WrappersTestCases::SharedDtor() {
  if (this != internal_default_instance()) delete double_wrapper_;
  if (this != internal_default_instance()) delete float_wrapper_;
  if (this != internal_default_instance()) delete int64_wrapper_;
  if (this != internal_default_instance()) delete uint64_wrapper_;
  if (this != internal_default_instance()) delete int32_wrapper_;
  if (this != internal_default_instance()) delete uint32_wrapper_;
  if (this != internal_default_instance()) delete bool_wrapper_;
  if (this != internal_default_instance()) delete string_wrapper_;
  if (this != internal_default_instance()) delete bytes_wrapper_;
  if (this != internal_default_instance()) delete double_wrapper_default_;
  if (this != internal_default_instance()) delete float_wrapper_default_;
  if (this != internal_default_instance()) delete int64_wrapper_default_;
  if (this != internal_default_instance()) delete uint64_wrapper_default_;
  if (this != internal_default_instance()) delete int32_wrapper_default_;
  if (this != internal_default_instance()) delete uint32_wrapper_default_;
  if (this != internal_default_instance()) delete bool_wrapper_default_;
  if (this != internal_default_instance()) delete string_wrapper_default_;
  if (this != internal_default_instance()) delete bytes_wrapper_default_;
}

void WrappersTestCases::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* WrappersTestCases::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const WrappersTestCases& WrappersTestCases::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_WrappersTestCases.base);
  return *internal_default_instance();
}


void WrappersTestCases::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.WrappersTestCases)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && double_wrapper_ != NULL) {
    delete double_wrapper_;
  }
  double_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && float_wrapper_ != NULL) {
    delete float_wrapper_;
  }
  float_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && int64_wrapper_ != NULL) {
    delete int64_wrapper_;
  }
  int64_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && uint64_wrapper_ != NULL) {
    delete uint64_wrapper_;
  }
  uint64_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && int32_wrapper_ != NULL) {
    delete int32_wrapper_;
  }
  int32_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && uint32_wrapper_ != NULL) {
    delete uint32_wrapper_;
  }
  uint32_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && bool_wrapper_ != NULL) {
    delete bool_wrapper_;
  }
  bool_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && string_wrapper_ != NULL) {
    delete string_wrapper_;
  }
  string_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && bytes_wrapper_ != NULL) {
    delete bytes_wrapper_;
  }
  bytes_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && double_wrapper_default_ != NULL) {
    delete double_wrapper_default_;
  }
  double_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && float_wrapper_default_ != NULL) {
    delete float_wrapper_default_;
  }
  float_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && int64_wrapper_default_ != NULL) {
    delete int64_wrapper_default_;
  }
  int64_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && uint64_wrapper_default_ != NULL) {
    delete uint64_wrapper_default_;
  }
  uint64_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && int32_wrapper_default_ != NULL) {
    delete int32_wrapper_default_;
  }
  int32_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && uint32_wrapper_default_ != NULL) {
    delete uint32_wrapper_default_;
  }
  uint32_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && bool_wrapper_default_ != NULL) {
    delete bool_wrapper_default_;
  }
  bool_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && string_wrapper_default_ != NULL) {
    delete string_wrapper_default_;
  }
  string_wrapper_default_ = NULL;
  if (GetArenaNoVirtual() == NULL && bytes_wrapper_default_ != NULL) {
    delete bytes_wrapper_default_;
  }
  bytes_wrapper_default_ = NULL;
  _internal_metadata_.Clear();
}

bool WrappersTestCases::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.WrappersTestCases)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.testing.DoubleWrapper double_wrapper = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.FloatWrapper float_wrapper = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_float_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.Int64Wrapper int64_wrapper = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int64_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.UInt64Wrapper uint64_wrapper = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_uint64_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.Int32Wrapper int32_wrapper = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int32_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.UInt32Wrapper uint32_wrapper = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_uint32_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.BoolWrapper bool_wrapper = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_bool_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StringWrapper string_wrapper = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_string_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.BytesWrapper bytes_wrapper = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_bytes_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleWrapper double_wrapper_default = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.FloatWrapper float_wrapper_default = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u /* 90 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_float_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.Int64Wrapper int64_wrapper_default = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u /* 98 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int64_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.UInt64Wrapper uint64_wrapper_default = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u /* 106 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_uint64_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.Int32Wrapper int32_wrapper_default = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(114u /* 114 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int32_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.UInt32Wrapper uint32_wrapper_default = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(122u /* 122 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_uint32_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.BoolWrapper bool_wrapper_default = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u /* 130 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_bool_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StringWrapper string_wrapper_default = 17;
      case 17: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(138u /* 138 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_string_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.BytesWrapper bytes_wrapper_default = 18;
      case 18: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(146u /* 146 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_bytes_wrapper_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.WrappersTestCases)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.WrappersTestCases)
  return false;
#undef DO_
}

void WrappersTestCases::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.WrappersTestCases)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.testing.DoubleWrapper double_wrapper = 1;
  if (this->has_double_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_double_wrapper(), output);
  }

  // .google.protobuf.testing.FloatWrapper float_wrapper = 2;
  if (this->has_float_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->_internal_float_wrapper(), output);
  }

  // .google.protobuf.testing.Int64Wrapper int64_wrapper = 3;
  if (this->has_int64_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, this->_internal_int64_wrapper(), output);
  }

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper = 4;
  if (this->has_uint64_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_uint64_wrapper(), output);
  }

  // .google.protobuf.testing.Int32Wrapper int32_wrapper = 5;
  if (this->has_int32_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, this->_internal_int32_wrapper(), output);
  }

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper = 6;
  if (this->has_uint32_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, this->_internal_uint32_wrapper(), output);
  }

  // .google.protobuf.testing.BoolWrapper bool_wrapper = 7;
  if (this->has_bool_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, this->_internal_bool_wrapper(), output);
  }

  // .google.protobuf.testing.StringWrapper string_wrapper = 8;
  if (this->has_string_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      8, this->_internal_string_wrapper(), output);
  }

  // .google.protobuf.testing.BytesWrapper bytes_wrapper = 9;
  if (this->has_bytes_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      9, this->_internal_bytes_wrapper(), output);
  }

  // .google.protobuf.testing.DoubleWrapper double_wrapper_default = 10;
  if (this->has_double_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, this->_internal_double_wrapper_default(), output);
  }

  // .google.protobuf.testing.FloatWrapper float_wrapper_default = 11;
  if (this->has_float_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      11, this->_internal_float_wrapper_default(), output);
  }

  // .google.protobuf.testing.Int64Wrapper int64_wrapper_default = 12;
  if (this->has_int64_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      12, this->_internal_int64_wrapper_default(), output);
  }

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper_default = 13;
  if (this->has_uint64_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      13, this->_internal_uint64_wrapper_default(), output);
  }

  // .google.protobuf.testing.Int32Wrapper int32_wrapper_default = 14;
  if (this->has_int32_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      14, this->_internal_int32_wrapper_default(), output);
  }

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper_default = 15;
  if (this->has_uint32_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      15, this->_internal_uint32_wrapper_default(), output);
  }

  // .google.protobuf.testing.BoolWrapper bool_wrapper_default = 16;
  if (this->has_bool_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      16, this->_internal_bool_wrapper_default(), output);
  }

  // .google.protobuf.testing.StringWrapper string_wrapper_default = 17;
  if (this->has_string_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      17, this->_internal_string_wrapper_default(), output);
  }

  // .google.protobuf.testing.BytesWrapper bytes_wrapper_default = 18;
  if (this->has_bytes_wrapper_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      18, this->_internal_bytes_wrapper_default(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.WrappersTestCases)
}

::google::protobuf::uint8* WrappersTestCases::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.WrappersTestCases)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.testing.DoubleWrapper double_wrapper = 1;
  if (this->has_double_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_double_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.FloatWrapper float_wrapper = 2;
  if (this->has_float_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->_internal_float_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.Int64Wrapper int64_wrapper = 3;
  if (this->has_int64_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, this->_internal_int64_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper = 4;
  if (this->has_uint64_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_uint64_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.Int32Wrapper int32_wrapper = 5;
  if (this->has_int32_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->_internal_int32_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper = 6;
  if (this->has_uint32_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, this->_internal_uint32_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.BoolWrapper bool_wrapper = 7;
  if (this->has_bool_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, this->_internal_bool_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.StringWrapper string_wrapper = 8;
  if (this->has_string_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        8, this->_internal_string_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.BytesWrapper bytes_wrapper = 9;
  if (this->has_bytes_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, this->_internal_bytes_wrapper(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleWrapper double_wrapper_default = 10;
  if (this->has_double_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        10, this->_internal_double_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.FloatWrapper float_wrapper_default = 11;
  if (this->has_float_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        11, this->_internal_float_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.Int64Wrapper int64_wrapper_default = 12;
  if (this->has_int64_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        12, this->_internal_int64_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper_default = 13;
  if (this->has_uint64_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        13, this->_internal_uint64_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.Int32Wrapper int32_wrapper_default = 14;
  if (this->has_int32_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        14, this->_internal_int32_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper_default = 15;
  if (this->has_uint32_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        15, this->_internal_uint32_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.BoolWrapper bool_wrapper_default = 16;
  if (this->has_bool_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        16, this->_internal_bool_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.StringWrapper string_wrapper_default = 17;
  if (this->has_string_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        17, this->_internal_string_wrapper_default(), deterministic, target);
  }

  // .google.protobuf.testing.BytesWrapper bytes_wrapper_default = 18;
  if (this->has_bytes_wrapper_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        18, this->_internal_bytes_wrapper_default(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.WrappersTestCases)
  return target;
}

size_t WrappersTestCases::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.WrappersTestCases)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.testing.DoubleWrapper double_wrapper = 1;
  if (this->has_double_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_wrapper_);
  }

  // .google.protobuf.testing.FloatWrapper float_wrapper = 2;
  if (this->has_float_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *float_wrapper_);
  }

  // .google.protobuf.testing.Int64Wrapper int64_wrapper = 3;
  if (this->has_int64_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *int64_wrapper_);
  }

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper = 4;
  if (this->has_uint64_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *uint64_wrapper_);
  }

  // .google.protobuf.testing.Int32Wrapper int32_wrapper = 5;
  if (this->has_int32_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *int32_wrapper_);
  }

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper = 6;
  if (this->has_uint32_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *uint32_wrapper_);
  }

  // .google.protobuf.testing.BoolWrapper bool_wrapper = 7;
  if (this->has_bool_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *bool_wrapper_);
  }

  // .google.protobuf.testing.StringWrapper string_wrapper = 8;
  if (this->has_string_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *string_wrapper_);
  }

  // .google.protobuf.testing.BytesWrapper bytes_wrapper = 9;
  if (this->has_bytes_wrapper()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *bytes_wrapper_);
  }

  // .google.protobuf.testing.DoubleWrapper double_wrapper_default = 10;
  if (this->has_double_wrapper_default()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_wrapper_default_);
  }

  // .google.protobuf.testing.FloatWrapper float_wrapper_default = 11;
  if (this->has_float_wrapper_default()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *float_wrapper_default_);
  }

  // .google.protobuf.testing.Int64Wrapper int64_wrapper_default = 12;
  if (this->has_int64_wrapper_default()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *int64_wrapper_default_);
  }

  // .google.protobuf.testing.UInt64Wrapper uint64_wrapper_default = 13;
  if (this->has_uint64_wrapper_default()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *uint64_wrapper_default_);
  }

  // .google.protobuf.testing.Int32Wrapper int32_wrapper_default = 14;
  if (this->has_int32_wrapper_default()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *int32_wrapper_default_);
  }

  // .google.protobuf.testing.UInt32Wrapper uint32_wrapper_default = 15;
  if (this->has_uint32_wrapper_default()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *uint32_wrapper_default_);
  }

  // .google.protobuf.testing.BoolWrapper bool_wrapper_default = 16;
  if (this->has_bool_wrapper_default()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *bool_wrapper_default_);
  }

  // .google.protobuf.testing.StringWrapper string_wrapper_default = 17;
  if (this->has_string_wrapper_default()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *string_wrapper_default_);
  }

  // .google.protobuf.testing.BytesWrapper bytes_wrapper_default = 18;
  if (this->has_bytes_wrapper_default()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *bytes_wrapper_default_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void WrappersTestCases::MergeFrom(const WrappersTestCases& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.WrappersTestCases)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_double_wrapper()) {
    mutable_double_wrapper()->::google::protobuf::testing::DoubleWrapper::MergeFrom(from.double_wrapper());
  }
  if (from.has_float_wrapper()) {
    mutable_float_wrapper()->::google::protobuf::testing::FloatWrapper::MergeFrom(from.float_wrapper());
  }
  if (from.has_int64_wrapper()) {
    mutable_int64_wrapper()->::google::protobuf::testing::Int64Wrapper::MergeFrom(from.int64_wrapper());
  }
  if (from.has_uint64_wrapper()) {
    mutable_uint64_wrapper()->::google::protobuf::testing::UInt64Wrapper::MergeFrom(from.uint64_wrapper());
  }
  if (from.has_int32_wrapper()) {
    mutable_int32_wrapper()->::google::protobuf::testing::Int32Wrapper::MergeFrom(from.int32_wrapper());
  }
  if (from.has_uint32_wrapper()) {
    mutable_uint32_wrapper()->::google::protobuf::testing::UInt32Wrapper::MergeFrom(from.uint32_wrapper());
  }
  if (from.has_bool_wrapper()) {
    mutable_bool_wrapper()->::google::protobuf::testing::BoolWrapper::MergeFrom(from.bool_wrapper());
  }
  if (from.has_string_wrapper()) {
    mutable_string_wrapper()->::google::protobuf::testing::StringWrapper::MergeFrom(from.string_wrapper());
  }
  if (from.has_bytes_wrapper()) {
    mutable_bytes_wrapper()->::google::protobuf::testing::BytesWrapper::MergeFrom(from.bytes_wrapper());
  }
  if (from.has_double_wrapper_default()) {
    mutable_double_wrapper_default()->::google::protobuf::testing::DoubleWrapper::MergeFrom(from.double_wrapper_default());
  }
  if (from.has_float_wrapper_default()) {
    mutable_float_wrapper_default()->::google::protobuf::testing::FloatWrapper::MergeFrom(from.float_wrapper_default());
  }
  if (from.has_int64_wrapper_default()) {
    mutable_int64_wrapper_default()->::google::protobuf::testing::Int64Wrapper::MergeFrom(from.int64_wrapper_default());
  }
  if (from.has_uint64_wrapper_default()) {
    mutable_uint64_wrapper_default()->::google::protobuf::testing::UInt64Wrapper::MergeFrom(from.uint64_wrapper_default());
  }
  if (from.has_int32_wrapper_default()) {
    mutable_int32_wrapper_default()->::google::protobuf::testing::Int32Wrapper::MergeFrom(from.int32_wrapper_default());
  }
  if (from.has_uint32_wrapper_default()) {
    mutable_uint32_wrapper_default()->::google::protobuf::testing::UInt32Wrapper::MergeFrom(from.uint32_wrapper_default());
  }
  if (from.has_bool_wrapper_default()) {
    mutable_bool_wrapper_default()->::google::protobuf::testing::BoolWrapper::MergeFrom(from.bool_wrapper_default());
  }
  if (from.has_string_wrapper_default()) {
    mutable_string_wrapper_default()->::google::protobuf::testing::StringWrapper::MergeFrom(from.string_wrapper_default());
  }
  if (from.has_bytes_wrapper_default()) {
    mutable_bytes_wrapper_default()->::google::protobuf::testing::BytesWrapper::MergeFrom(from.bytes_wrapper_default());
  }
}

void WrappersTestCases::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.WrappersTestCases)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void WrappersTestCases::CopyFrom(const WrappersTestCases& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.WrappersTestCases)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void WrappersTestCases::Swap(WrappersTestCases* other) {
  if (other == this) return;
  InternalSwap(other);
}
void WrappersTestCases::InternalSwap(WrappersTestCases* other) {
  using std::swap;
  swap(double_wrapper_, other->double_wrapper_);
  swap(float_wrapper_, other->float_wrapper_);
  swap(int64_wrapper_, other->int64_wrapper_);
  swap(uint64_wrapper_, other->uint64_wrapper_);
  swap(int32_wrapper_, other->int32_wrapper_);
  swap(uint32_wrapper_, other->uint32_wrapper_);
  swap(bool_wrapper_, other->bool_wrapper_);
  swap(string_wrapper_, other->string_wrapper_);
  swap(bytes_wrapper_, other->bytes_wrapper_);
  swap(double_wrapper_default_, other->double_wrapper_default_);
  swap(float_wrapper_default_, other->float_wrapper_default_);
  swap(int64_wrapper_default_, other->int64_wrapper_default_);
  swap(uint64_wrapper_default_, other->uint64_wrapper_default_);
  swap(int32_wrapper_default_, other->int32_wrapper_default_);
  swap(uint32_wrapper_default_, other->uint32_wrapper_default_);
  swap(bool_wrapper_default_, other->bool_wrapper_default_);
  swap(string_wrapper_default_, other->string_wrapper_default_);
  swap(bytes_wrapper_default_, other->bytes_wrapper_default_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void DoubleWrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_DoubleWrapper_default_instance_._instance.get_mutable()->double__ = const_cast< ::google::protobuf::DoubleValue*>(
      ::google::protobuf::DoubleValue::internal_default_instance());
}
void DoubleWrapper::clear_double_() {
  if (GetArenaNoVirtual() == NULL && double__ != NULL) {
    delete double__;
  }
  double__ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DoubleWrapper::kDoubleFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DoubleWrapper::DoubleWrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_DoubleWrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.DoubleWrapper)
}
DoubleWrapper::DoubleWrapper(const DoubleWrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_double_()) {
    double__ = new ::google::protobuf::DoubleValue(*from.double__);
  } else {
    double__ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.DoubleWrapper)
}

void DoubleWrapper::SharedCtor() {
  double__ = NULL;
}

DoubleWrapper::~DoubleWrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.DoubleWrapper)
  SharedDtor();
}

void DoubleWrapper::SharedDtor() {
  if (this != internal_default_instance()) delete double__;
}

void DoubleWrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* DoubleWrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const DoubleWrapper& DoubleWrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_DoubleWrapper.base);
  return *internal_default_instance();
}


void DoubleWrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.DoubleWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && double__ != NULL) {
    delete double__;
  }
  double__ = NULL;
  _internal_metadata_.Clear();
}

bool DoubleWrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.DoubleWrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.DoubleValue double = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.DoubleWrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.DoubleWrapper)
  return false;
#undef DO_
}

void DoubleWrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.DoubleWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.DoubleValue double = 1;
  if (this->has_double_()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_double_(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.DoubleWrapper)
}

::google::protobuf::uint8* DoubleWrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.DoubleWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.DoubleValue double = 1;
  if (this->has_double_()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_double_(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.DoubleWrapper)
  return target;
}

size_t DoubleWrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.DoubleWrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.DoubleValue double = 1;
  if (this->has_double_()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double__);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void DoubleWrapper::MergeFrom(const DoubleWrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.DoubleWrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_double_()) {
    mutable_double_()->::google::protobuf::DoubleValue::MergeFrom(from.double_());
  }
}

void DoubleWrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.DoubleWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DoubleWrapper::CopyFrom(const DoubleWrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.DoubleWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void DoubleWrapper::Swap(DoubleWrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DoubleWrapper::InternalSwap(DoubleWrapper* other) {
  using std::swap;
  swap(double__, other->double__);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void FloatWrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_FloatWrapper_default_instance_._instance.get_mutable()->float__ = const_cast< ::google::protobuf::FloatValue*>(
      ::google::protobuf::FloatValue::internal_default_instance());
}
void FloatWrapper::clear_float_() {
  if (GetArenaNoVirtual() == NULL && float__ != NULL) {
    delete float__;
  }
  float__ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int FloatWrapper::kFloatFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

FloatWrapper::FloatWrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_FloatWrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.FloatWrapper)
}
FloatWrapper::FloatWrapper(const FloatWrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_float_()) {
    float__ = new ::google::protobuf::FloatValue(*from.float__);
  } else {
    float__ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.FloatWrapper)
}

void FloatWrapper::SharedCtor() {
  float__ = NULL;
}

FloatWrapper::~FloatWrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.FloatWrapper)
  SharedDtor();
}

void FloatWrapper::SharedDtor() {
  if (this != internal_default_instance()) delete float__;
}

void FloatWrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* FloatWrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const FloatWrapper& FloatWrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_FloatWrapper.base);
  return *internal_default_instance();
}


void FloatWrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.FloatWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && float__ != NULL) {
    delete float__;
  }
  float__ = NULL;
  _internal_metadata_.Clear();
}

bool FloatWrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.FloatWrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.FloatValue float = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_float_()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.FloatWrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.FloatWrapper)
  return false;
#undef DO_
}

void FloatWrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.FloatWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.FloatValue float = 1;
  if (this->has_float_()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_float_(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.FloatWrapper)
}

::google::protobuf::uint8* FloatWrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.FloatWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.FloatValue float = 1;
  if (this->has_float_()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_float_(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.FloatWrapper)
  return target;
}

size_t FloatWrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.FloatWrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.FloatValue float = 1;
  if (this->has_float_()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *float__);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void FloatWrapper::MergeFrom(const FloatWrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.FloatWrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_float_()) {
    mutable_float_()->::google::protobuf::FloatValue::MergeFrom(from.float_());
  }
}

void FloatWrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.FloatWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void FloatWrapper::CopyFrom(const FloatWrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.FloatWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void FloatWrapper::Swap(FloatWrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void FloatWrapper::InternalSwap(FloatWrapper* other) {
  using std::swap;
  swap(float__, other->float__);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void Int64Wrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_Int64Wrapper_default_instance_._instance.get_mutable()->int64_ = const_cast< ::google::protobuf::Int64Value*>(
      ::google::protobuf::Int64Value::internal_default_instance());
}
void Int64Wrapper::clear_int64() {
  if (GetArenaNoVirtual() == NULL && int64_ != NULL) {
    delete int64_;
  }
  int64_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Int64Wrapper::kInt64FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Int64Wrapper::Int64Wrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_Int64Wrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.Int64Wrapper)
}
Int64Wrapper::Int64Wrapper(const Int64Wrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_int64()) {
    int64_ = new ::google::protobuf::Int64Value(*from.int64_);
  } else {
    int64_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.Int64Wrapper)
}

void Int64Wrapper::SharedCtor() {
  int64_ = NULL;
}

Int64Wrapper::~Int64Wrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.Int64Wrapper)
  SharedDtor();
}

void Int64Wrapper::SharedDtor() {
  if (this != internal_default_instance()) delete int64_;
}

void Int64Wrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Int64Wrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Int64Wrapper& Int64Wrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_Int64Wrapper.base);
  return *internal_default_instance();
}


void Int64Wrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.Int64Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && int64_ != NULL) {
    delete int64_;
  }
  int64_ = NULL;
  _internal_metadata_.Clear();
}

bool Int64Wrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.Int64Wrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Int64Value int64 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int64()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.Int64Wrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.Int64Wrapper)
  return false;
#undef DO_
}

void Int64Wrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.Int64Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Int64Value int64 = 1;
  if (this->has_int64()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_int64(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.Int64Wrapper)
}

::google::protobuf::uint8* Int64Wrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.Int64Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Int64Value int64 = 1;
  if (this->has_int64()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_int64(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.Int64Wrapper)
  return target;
}

size_t Int64Wrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.Int64Wrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.Int64Value int64 = 1;
  if (this->has_int64()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *int64_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void Int64Wrapper::MergeFrom(const Int64Wrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.Int64Wrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_int64()) {
    mutable_int64()->::google::protobuf::Int64Value::MergeFrom(from.int64());
  }
}

void Int64Wrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.Int64Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Int64Wrapper::CopyFrom(const Int64Wrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.Int64Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Int64Wrapper::Swap(Int64Wrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Int64Wrapper::InternalSwap(Int64Wrapper* other) {
  using std::swap;
  swap(int64_, other->int64_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void UInt64Wrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_UInt64Wrapper_default_instance_._instance.get_mutable()->uint64_ = const_cast< ::google::protobuf::UInt64Value*>(
      ::google::protobuf::UInt64Value::internal_default_instance());
}
void UInt64Wrapper::clear_uint64() {
  if (GetArenaNoVirtual() == NULL && uint64_ != NULL) {
    delete uint64_;
  }
  uint64_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int UInt64Wrapper::kUint64FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

UInt64Wrapper::UInt64Wrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_UInt64Wrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.UInt64Wrapper)
}
UInt64Wrapper::UInt64Wrapper(const UInt64Wrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_uint64()) {
    uint64_ = new ::google::protobuf::UInt64Value(*from.uint64_);
  } else {
    uint64_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.UInt64Wrapper)
}

void UInt64Wrapper::SharedCtor() {
  uint64_ = NULL;
}

UInt64Wrapper::~UInt64Wrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.UInt64Wrapper)
  SharedDtor();
}

void UInt64Wrapper::SharedDtor() {
  if (this != internal_default_instance()) delete uint64_;
}

void UInt64Wrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* UInt64Wrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const UInt64Wrapper& UInt64Wrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_UInt64Wrapper.base);
  return *internal_default_instance();
}


void UInt64Wrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.UInt64Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && uint64_ != NULL) {
    delete uint64_;
  }
  uint64_ = NULL;
  _internal_metadata_.Clear();
}

bool UInt64Wrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.UInt64Wrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.UInt64Value uint64 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_uint64()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.UInt64Wrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.UInt64Wrapper)
  return false;
#undef DO_
}

void UInt64Wrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.UInt64Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.UInt64Value uint64 = 1;
  if (this->has_uint64()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_uint64(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.UInt64Wrapper)
}

::google::protobuf::uint8* UInt64Wrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.UInt64Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.UInt64Value uint64 = 1;
  if (this->has_uint64()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_uint64(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.UInt64Wrapper)
  return target;
}

size_t UInt64Wrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.UInt64Wrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.UInt64Value uint64 = 1;
  if (this->has_uint64()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *uint64_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void UInt64Wrapper::MergeFrom(const UInt64Wrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.UInt64Wrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_uint64()) {
    mutable_uint64()->::google::protobuf::UInt64Value::MergeFrom(from.uint64());
  }
}

void UInt64Wrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.UInt64Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UInt64Wrapper::CopyFrom(const UInt64Wrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.UInt64Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void UInt64Wrapper::Swap(UInt64Wrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void UInt64Wrapper::InternalSwap(UInt64Wrapper* other) {
  using std::swap;
  swap(uint64_, other->uint64_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void Int32Wrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_Int32Wrapper_default_instance_._instance.get_mutable()->int32_ = const_cast< ::google::protobuf::Int32Value*>(
      ::google::protobuf::Int32Value::internal_default_instance());
}
void Int32Wrapper::clear_int32() {
  if (GetArenaNoVirtual() == NULL && int32_ != NULL) {
    delete int32_;
  }
  int32_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Int32Wrapper::kInt32FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Int32Wrapper::Int32Wrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_Int32Wrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.Int32Wrapper)
}
Int32Wrapper::Int32Wrapper(const Int32Wrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_int32()) {
    int32_ = new ::google::protobuf::Int32Value(*from.int32_);
  } else {
    int32_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.Int32Wrapper)
}

void Int32Wrapper::SharedCtor() {
  int32_ = NULL;
}

Int32Wrapper::~Int32Wrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.Int32Wrapper)
  SharedDtor();
}

void Int32Wrapper::SharedDtor() {
  if (this != internal_default_instance()) delete int32_;
}

void Int32Wrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* Int32Wrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Int32Wrapper& Int32Wrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_Int32Wrapper.base);
  return *internal_default_instance();
}


void Int32Wrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.Int32Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && int32_ != NULL) {
    delete int32_;
  }
  int32_ = NULL;
  _internal_metadata_.Clear();
}

bool Int32Wrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.Int32Wrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Int32Value int32 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int32()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.Int32Wrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.Int32Wrapper)
  return false;
#undef DO_
}

void Int32Wrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.Int32Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Int32Value int32 = 1;
  if (this->has_int32()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_int32(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.Int32Wrapper)
}

::google::protobuf::uint8* Int32Wrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.Int32Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Int32Value int32 = 1;
  if (this->has_int32()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_int32(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.Int32Wrapper)
  return target;
}

size_t Int32Wrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.Int32Wrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.Int32Value int32 = 1;
  if (this->has_int32()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *int32_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void Int32Wrapper::MergeFrom(const Int32Wrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.Int32Wrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_int32()) {
    mutable_int32()->::google::protobuf::Int32Value::MergeFrom(from.int32());
  }
}

void Int32Wrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.Int32Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Int32Wrapper::CopyFrom(const Int32Wrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.Int32Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Int32Wrapper::Swap(Int32Wrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Int32Wrapper::InternalSwap(Int32Wrapper* other) {
  using std::swap;
  swap(int32_, other->int32_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void UInt32Wrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_UInt32Wrapper_default_instance_._instance.get_mutable()->uint32_ = const_cast< ::google::protobuf::UInt32Value*>(
      ::google::protobuf::UInt32Value::internal_default_instance());
}
void UInt32Wrapper::clear_uint32() {
  if (GetArenaNoVirtual() == NULL && uint32_ != NULL) {
    delete uint32_;
  }
  uint32_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int UInt32Wrapper::kUint32FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

UInt32Wrapper::UInt32Wrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_UInt32Wrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.UInt32Wrapper)
}
UInt32Wrapper::UInt32Wrapper(const UInt32Wrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_uint32()) {
    uint32_ = new ::google::protobuf::UInt32Value(*from.uint32_);
  } else {
    uint32_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.UInt32Wrapper)
}

void UInt32Wrapper::SharedCtor() {
  uint32_ = NULL;
}

UInt32Wrapper::~UInt32Wrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.UInt32Wrapper)
  SharedDtor();
}

void UInt32Wrapper::SharedDtor() {
  if (this != internal_default_instance()) delete uint32_;
}

void UInt32Wrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* UInt32Wrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const UInt32Wrapper& UInt32Wrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_UInt32Wrapper.base);
  return *internal_default_instance();
}


void UInt32Wrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.UInt32Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && uint32_ != NULL) {
    delete uint32_;
  }
  uint32_ = NULL;
  _internal_metadata_.Clear();
}

bool UInt32Wrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.UInt32Wrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.UInt32Value uint32 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_uint32()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.UInt32Wrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.UInt32Wrapper)
  return false;
#undef DO_
}

void UInt32Wrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.UInt32Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.UInt32Value uint32 = 1;
  if (this->has_uint32()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_uint32(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.UInt32Wrapper)
}

::google::protobuf::uint8* UInt32Wrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.UInt32Wrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.UInt32Value uint32 = 1;
  if (this->has_uint32()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_uint32(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.UInt32Wrapper)
  return target;
}

size_t UInt32Wrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.UInt32Wrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.UInt32Value uint32 = 1;
  if (this->has_uint32()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *uint32_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void UInt32Wrapper::MergeFrom(const UInt32Wrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.UInt32Wrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_uint32()) {
    mutable_uint32()->::google::protobuf::UInt32Value::MergeFrom(from.uint32());
  }
}

void UInt32Wrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.UInt32Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UInt32Wrapper::CopyFrom(const UInt32Wrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.UInt32Wrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void UInt32Wrapper::Swap(UInt32Wrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void UInt32Wrapper::InternalSwap(UInt32Wrapper* other) {
  using std::swap;
  swap(uint32_, other->uint32_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void BoolWrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_BoolWrapper_default_instance_._instance.get_mutable()->bool__ = const_cast< ::google::protobuf::BoolValue*>(
      ::google::protobuf::BoolValue::internal_default_instance());
}
void BoolWrapper::clear_bool_() {
  if (GetArenaNoVirtual() == NULL && bool__ != NULL) {
    delete bool__;
  }
  bool__ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int BoolWrapper::kBoolFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

BoolWrapper::BoolWrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_BoolWrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.BoolWrapper)
}
BoolWrapper::BoolWrapper(const BoolWrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_bool_()) {
    bool__ = new ::google::protobuf::BoolValue(*from.bool__);
  } else {
    bool__ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.BoolWrapper)
}

void BoolWrapper::SharedCtor() {
  bool__ = NULL;
}

BoolWrapper::~BoolWrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.BoolWrapper)
  SharedDtor();
}

void BoolWrapper::SharedDtor() {
  if (this != internal_default_instance()) delete bool__;
}

void BoolWrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* BoolWrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const BoolWrapper& BoolWrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_BoolWrapper.base);
  return *internal_default_instance();
}


void BoolWrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.BoolWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && bool__ != NULL) {
    delete bool__;
  }
  bool__ = NULL;
  _internal_metadata_.Clear();
}

bool BoolWrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.BoolWrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.BoolValue bool = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_bool_()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.BoolWrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.BoolWrapper)
  return false;
#undef DO_
}

void BoolWrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.BoolWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.BoolValue bool = 1;
  if (this->has_bool_()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_bool_(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.BoolWrapper)
}

::google::protobuf::uint8* BoolWrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.BoolWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.BoolValue bool = 1;
  if (this->has_bool_()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_bool_(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.BoolWrapper)
  return target;
}

size_t BoolWrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.BoolWrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.BoolValue bool = 1;
  if (this->has_bool_()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *bool__);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void BoolWrapper::MergeFrom(const BoolWrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.BoolWrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_bool_()) {
    mutable_bool_()->::google::protobuf::BoolValue::MergeFrom(from.bool_());
  }
}

void BoolWrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.BoolWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void BoolWrapper::CopyFrom(const BoolWrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.BoolWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void BoolWrapper::Swap(BoolWrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void BoolWrapper::InternalSwap(BoolWrapper* other) {
  using std::swap;
  swap(bool__, other->bool__);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void StringWrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_StringWrapper_default_instance_._instance.get_mutable()->string_ = const_cast< ::google::protobuf::StringValue*>(
      ::google::protobuf::StringValue::internal_default_instance());
}
void StringWrapper::clear_string() {
  if (GetArenaNoVirtual() == NULL && string_ != NULL) {
    delete string_;
  }
  string_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int StringWrapper::kStringFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

StringWrapper::StringWrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_StringWrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.StringWrapper)
}
StringWrapper::StringWrapper(const StringWrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_string()) {
    string_ = new ::google::protobuf::StringValue(*from.string_);
  } else {
    string_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.StringWrapper)
}

void StringWrapper::SharedCtor() {
  string_ = NULL;
}

StringWrapper::~StringWrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.StringWrapper)
  SharedDtor();
}

void StringWrapper::SharedDtor() {
  if (this != internal_default_instance()) delete string_;
}

void StringWrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* StringWrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const StringWrapper& StringWrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_StringWrapper.base);
  return *internal_default_instance();
}


void StringWrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.StringWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && string_ != NULL) {
    delete string_;
  }
  string_ = NULL;
  _internal_metadata_.Clear();
}

bool StringWrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.StringWrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.StringValue string = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_string()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.StringWrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.StringWrapper)
  return false;
#undef DO_
}

void StringWrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.StringWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.StringValue string = 1;
  if (this->has_string()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_string(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.StringWrapper)
}

::google::protobuf::uint8* StringWrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.StringWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.StringValue string = 1;
  if (this->has_string()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_string(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.StringWrapper)
  return target;
}

size_t StringWrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.StringWrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.StringValue string = 1;
  if (this->has_string()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *string_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void StringWrapper::MergeFrom(const StringWrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.StringWrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_string()) {
    mutable_string()->::google::protobuf::StringValue::MergeFrom(from.string());
  }
}

void StringWrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.StringWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void StringWrapper::CopyFrom(const StringWrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.StringWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void StringWrapper::Swap(StringWrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void StringWrapper::InternalSwap(StringWrapper* other) {
  using std::swap;
  swap(string_, other->string_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


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

void BytesWrapper::InitAsDefaultInstance() {
  ::google::protobuf::testing::_BytesWrapper_default_instance_._instance.get_mutable()->bytes_ = const_cast< ::google::protobuf::BytesValue*>(
      ::google::protobuf::BytesValue::internal_default_instance());
}
void BytesWrapper::clear_bytes() {
  if (GetArenaNoVirtual() == NULL && bytes_ != NULL) {
    delete bytes_;
  }
  bytes_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int BytesWrapper::kBytesFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

BytesWrapper::BytesWrapper()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_BytesWrapper.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.BytesWrapper)
}
BytesWrapper::BytesWrapper(const BytesWrapper& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_bytes()) {
    bytes_ = new ::google::protobuf::BytesValue(*from.bytes_);
  } else {
    bytes_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.BytesWrapper)
}

void BytesWrapper::SharedCtor() {
  bytes_ = NULL;
}

BytesWrapper::~BytesWrapper() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.BytesWrapper)
  SharedDtor();
}

void BytesWrapper::SharedDtor() {
  if (this != internal_default_instance()) delete bytes_;
}

void BytesWrapper::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* BytesWrapper::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const BytesWrapper& BytesWrapper::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fwrappers_2eproto::scc_info_BytesWrapper.base);
  return *internal_default_instance();
}


void BytesWrapper::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.BytesWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && bytes_ != NULL) {
    delete bytes_;
  }
  bytes_ = NULL;
  _internal_metadata_.Clear();
}

bool BytesWrapper::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.BytesWrapper)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.BytesValue bytes = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_bytes()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.BytesWrapper)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.BytesWrapper)
  return false;
#undef DO_
}

void BytesWrapper::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.BytesWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.BytesValue bytes = 1;
  if (this->has_bytes()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_bytes(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.BytesWrapper)
}

::google::protobuf::uint8* BytesWrapper::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.BytesWrapper)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.BytesValue bytes = 1;
  if (this->has_bytes()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_bytes(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.BytesWrapper)
  return target;
}

size_t BytesWrapper::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.BytesWrapper)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.BytesValue bytes = 1;
  if (this->has_bytes()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *bytes_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

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

void BytesWrapper::MergeFrom(const BytesWrapper& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.BytesWrapper)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_bytes()) {
    mutable_bytes()->::google::protobuf::BytesValue::MergeFrom(from.bytes());
  }
}

void BytesWrapper::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.BytesWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void BytesWrapper::CopyFrom(const BytesWrapper& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.BytesWrapper)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void BytesWrapper::Swap(BytesWrapper* other) {
  if (other == this) return;
  InternalSwap(other);
}
void BytesWrapper::InternalSwap(BytesWrapper* other) {
  using std::swap;
  swap(bytes_, other->bytes_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

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


// @@protoc_insertion_point(namespace_scope)
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::WrappersTestCases* Arena::CreateMaybeMessage< ::google::protobuf::testing::WrappersTestCases >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::WrappersTestCases >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::DoubleWrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::DoubleWrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::DoubleWrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::FloatWrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::FloatWrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::FloatWrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::Int64Wrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::Int64Wrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::Int64Wrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::UInt64Wrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::UInt64Wrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::UInt64Wrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::Int32Wrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::Int32Wrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::Int32Wrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::UInt32Wrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::UInt32Wrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::UInt32Wrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::BoolWrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::BoolWrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::BoolWrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::StringWrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::StringWrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::StringWrapper >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::BytesWrapper* Arena::CreateMaybeMessage< ::google::protobuf::testing::BytesWrapper >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::BytesWrapper >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
