// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: phonemetadata.proto
// Protobuf C++ Version: 7.36.0

#include "phonemetadata.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace i18n {
namespace phonenumbers {
class PhoneNumberDesc::_Internal {
 public:
  using HasBits = decltype(::std::declval<PhoneNumberDesc>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_._has_bits_);
};

constexpr PhoneNumberDesc::ParseTableT_ PhoneNumberDesc::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_._has_bits_),
      0, // no _extensions_
      10, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966493,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated int32 possible_length = 9;
      {::_pbi::TcParser::FastV32R1,
       {72, 0, 0,
        PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_)}},
      // optional string national_number_pattern = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.national_number_pattern_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional string example_number = 6;
      {::_pbi::TcParser::FastBS1,
       {50, 2, 0,
        PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.example_number_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string national_number_pattern = 2;
      {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.national_number_pattern_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string example_number = 6;
      {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.example_number_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated int32 possible_length = 9;
      {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
      // repeated int32 possible_length_local_only = 10;
      {PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_.possible_length_local_only_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr PhoneNumberDesc::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : possible_length_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneNumberDesc,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneNumberDesc, _impl_.possible_length_)>()
         }
        ,
        national_number_pattern_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        example_number_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        possible_length_local_only_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneNumberDesc,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneNumberDesc, _impl_.possible_length_local_only_)>()
         }
     {}

template <typename>
constexpr PhoneNumberDesc::PhoneNumberDesc(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PhoneNumberDesc::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PhoneNumberDesc(arena);
}
constexpr auto PhoneNumberDesc::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PhoneNumberDesc), alignof(PhoneNumberDesc));
}
constexpr auto PhoneNumberDesc::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &PhoneNumberDesc::MergeImpl,
          Super_::GetNewImpl<PhoneNumberDesc>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PhoneNumberDesc::SharedDtor,
          Super_::GetClearImpl<PhoneNumberDesc>(), &PhoneNumberDesc::ByteSizeLong,
              &PhoneNumberDesc::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PhoneNumberDesc, _impl_._cached_size_),
          true,
      },
      "i18n.phonenumbers.PhoneNumberDesc",
  };
}
struct PhoneNumberDescGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PhoneNumberDescGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PhoneNumberDesc_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PhoneNumberDesc::InternalGenerateClassData_(
            _default, &PhoneNumberDesc_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PhoneNumberDesc>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PhoneNumberDescGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PhoneNumberDesc _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PhoneNumberDesc>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PhoneNumberDescGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST PhoneNumberDescGlobalsTypeInternal PhoneNumberDesc_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* PhoneNumberDesc_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return PhoneNumberDesc_globals_.GetClassData();
#else
  return PhoneNumberDesc_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class NumberFormat::_Internal {
 public:
  using HasBits = decltype(::std::declval<NumberFormat>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000006) ^ 0x00000006) != 0;
  }
};

constexpr NumberFormat::ParseTableT_ NumberFormat::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::i18n::phonenumbers::NumberFormat>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // required string pattern = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.pattern_)}},
      // required string format = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 2, 0,
        PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.format_)}},
      // repeated string leading_digits_pattern = 3;
      {::_pbi::TcParser::FastBR1,
       {26, 0, 0,
        PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.leading_digits_pattern_)}},
      // optional string national_prefix_formatting_rule = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 3, 0,
        PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_formatting_rule_)}},
      // optional string domestic_carrier_code_formatting_rule = 5;
      {::_pbi::TcParser::FastBS1,
       {42, 4, 0,
        PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.domestic_carrier_code_formatting_rule_)}},
      // optional bool national_prefix_optional_when_formatting = 6 [default = false];
      {::_pbi::TcParser::FastV8S1,
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_optional_when_formatting_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // required string pattern = 1;
      {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.pattern_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // required string format = 2;
      {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.format_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated string leading_digits_pattern = 3;
      {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.leading_digits_pattern_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional string national_prefix_formatting_rule = 4;
      {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_formatting_rule_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string domestic_carrier_code_formatting_rule = 5;
      {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.domestic_carrier_code_formatting_rule_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool national_prefix_optional_when_formatting = 6 [default = false];
      {PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_.national_prefix_optional_when_formatting_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr NumberFormat::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : leading_digits_pattern_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::NumberFormat,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::NumberFormat, _impl_.leading_digits_pattern_)>()
         }
        ,
        pattern_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        format_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        national_prefix_formatting_rule_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        domestic_carrier_code_formatting_rule_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        national_prefix_optional_when_formatting_{false} {}

template <typename>
constexpr NumberFormat::NumberFormat(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL NumberFormat::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NumberFormat(arena);
}
constexpr auto NumberFormat::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NumberFormat), alignof(NumberFormat));
}
constexpr auto NumberFormat::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          NumberFormat::IsInitializedImpl,
          &NumberFormat::MergeImpl,
          Super_::GetNewImpl<NumberFormat>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NumberFormat::SharedDtor,
          Super_::GetClearImpl<NumberFormat>(), &NumberFormat::ByteSizeLong,
              &NumberFormat::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NumberFormat, _impl_._cached_size_),
          true,
      },
      "i18n.phonenumbers.NumberFormat",
  };
}
struct NumberFormatGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NumberFormatGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NumberFormat_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NumberFormat::InternalGenerateClassData_(
            _default, &NumberFormat_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NumberFormat>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NumberFormatGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NumberFormat _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NumberFormat>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NumberFormatGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST NumberFormatGlobalsTypeInternal NumberFormat_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* NumberFormat_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return NumberFormat_globals_.GetClassData();
#else
  return NumberFormat_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class PhoneMetadata::_Internal {
 public:
  using HasBits = decltype(::std::declval<PhoneMetadata>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000004) ^ 0x00000004) != 0;
  }
};

constexpr PhoneMetadata::ParseTableT_ PhoneMetadata::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_._has_bits_),
      0, // no _extensions_
      33, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      33562624,  // skipmap
      offsetof(ParseTableT_, field_entries),
      31,  // num_field_entries
      19,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneMetadata>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 10, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.general_desc_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 11, 1,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.fixed_line_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 12, 2,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 13, 3,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.toll_free_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 14, 4,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.premium_rate_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
      {::_pbi::TcParser::FastMtS1,
       {50, 15, 5,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.shared_cost_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
      {::_pbi::TcParser::FastMtS1,
       {58, 16, 6,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.personal_number_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
      {::_pbi::TcParser::FastMtS1,
       {66, 17, 7,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voip_)}},
      // required string id = 9;
      {::_pbi::TcParser::FastBS1,
       {74, 2, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.id_)}},
      // optional int32 country_code = 10;
      {::_pbi::TcParser::FastV32S1,
       {80, 27, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.country_code_)}},
      // optional string international_prefix = 11;
      {::_pbi::TcParser::FastBS1,
       {90, 3, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.international_prefix_)}},
      // optional string national_prefix = 12;
      {::_pbi::TcParser::FastBS1,
       {98, 4, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_)}},
      // optional string preferred_extn_prefix = 13;
      {::_pbi::TcParser::FastBS1,
       {106, 5, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_extn_prefix_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional string national_prefix_for_parsing = 15;
      {::_pbi::TcParser::FastBS1,
       {122, 6, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_for_parsing_)}},
      // optional string national_prefix_transform_rule = 16;
      {::_pbi::TcParser::FastBS2,
       {386, 7, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_transform_rule_)}},
      // optional string preferred_international_prefix = 17;
      {::_pbi::TcParser::FastBS2,
       {394, 8, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_international_prefix_)}},
      // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {400, 28, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.same_mobile_and_fixed_line_pattern_)}},
      // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
      {::_pbi::TcParser::FastMtR2,
       {410, 0, 8,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.number_format_)}},
      // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
      {::_pbi::TcParser::FastMtR2,
       {418, 1, 9,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.intl_number_format_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
      {::_pbi::TcParser::FastMtS2,
       {426, 18, 10,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.pager_)}},
      // optional bool main_country_for_code = 22 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {432, 29, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.main_country_for_code_)}},
      // optional string leading_digits = 23;
      {::_pbi::TcParser::FastBS2,
       {442, 9, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.leading_digits_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
      {::_pbi::TcParser::FastMtS2,
       {450, 19, 11,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.no_international_dialling_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
      {::_pbi::TcParser::FastMtS2,
       {458, 20, 12,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.uan_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
      {::_pbi::TcParser::FastMtS2,
       {474, 21, 13,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.emergency_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
      {::_pbi::TcParser::FastMtS2,
       {482, 22, 14,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voicemail_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
      {::_pbi::TcParser::FastMtS2,
       {490, 23, 15,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.short_code_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
      {::_pbi::TcParser::FastMtS2,
       {498, 24, 16,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.standard_rate_)}},
      // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
      {::_pbi::TcParser::FastMtS2,
       {506, 25, 17,
        PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.carrier_specific_)}},
    }}, {{
      33, 0, 1,
      65534, 30,
      65535, 65535
    }}, {{
      // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.general_desc_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.fixed_line_), _Internal::kHasBitsOffset + 11, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_), _Internal::kHasBitsOffset + 12, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.toll_free_), _Internal::kHasBitsOffset + 13, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.premium_rate_), _Internal::kHasBitsOffset + 14, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.shared_cost_), _Internal::kHasBitsOffset + 15, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.personal_number_), _Internal::kHasBitsOffset + 16, 6, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voip_), _Internal::kHasBitsOffset + 17, 7, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // required string id = 9;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.id_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional int32 country_code = 10;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.country_code_), _Internal::kHasBitsOffset + 27, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional string international_prefix = 11;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.international_prefix_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string national_prefix = 12;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string preferred_extn_prefix = 13;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_extn_prefix_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string national_prefix_for_parsing = 15;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_for_parsing_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string national_prefix_transform_rule = 16;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.national_prefix_transform_rule_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string preferred_international_prefix = 17;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.preferred_international_prefix_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.same_mobile_and_fixed_line_pattern_), _Internal::kHasBitsOffset + 28, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.number_format_), _Internal::kHasBitsOffset + 0, 8, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.intl_number_format_), _Internal::kHasBitsOffset + 1, 9, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.pager_), _Internal::kHasBitsOffset + 18, 10, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bool main_country_for_code = 22 [default = false];
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.main_country_for_code_), _Internal::kHasBitsOffset + 29, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional string leading_digits = 23;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.leading_digits_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.no_international_dialling_), _Internal::kHasBitsOffset + 19, 11, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.uan_), _Internal::kHasBitsOffset + 20, 12, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.emergency_), _Internal::kHasBitsOffset + 21, 13, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.voicemail_), _Internal::kHasBitsOffset + 22, 14, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.short_code_), _Internal::kHasBitsOffset + 23, 15, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.standard_rate_), _Internal::kHasBitsOffset + 24, 16, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.carrier_specific_), _Internal::kHasBitsOffset + 25, 17, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bool mobile_number_portable_region = 32 [default = false];
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_number_portable_region_), _Internal::kHasBitsOffset + 30, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.sms_services_), _Internal::kHasBitsOffset + 26, 18, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::NumberFormat>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::NumberFormat_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::NumberFormat>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::NumberFormat_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneNumberDesc>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneNumberDesc_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr PhoneMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : number_format_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneMetadata,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadata, _impl_.number_format_)>()
         }
        ,
        intl_number_format_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneMetadata,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadata, _impl_.intl_number_format_)>()
         }
        ,
        id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        international_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        national_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        preferred_extn_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        national_prefix_for_parsing_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        national_prefix_transform_rule_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        preferred_international_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        leading_digits_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        general_desc_{nullptr},
        fixed_line_{nullptr},
        mobile_{nullptr},
        toll_free_{nullptr},
        premium_rate_{nullptr},
        shared_cost_{nullptr},
        personal_number_{nullptr},
        voip_{nullptr},
        pager_{nullptr},
        no_international_dialling_{nullptr},
        uan_{nullptr},
        emergency_{nullptr},
        voicemail_{nullptr},
        short_code_{nullptr},
        standard_rate_{nullptr},
        carrier_specific_{nullptr},
        sms_services_{nullptr},
        country_code_{0},
        same_mobile_and_fixed_line_pattern_{false},
        main_country_for_code_{false},
        mobile_number_portable_region_{false} {}

template <typename>
constexpr PhoneMetadata::PhoneMetadata(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PhoneMetadata::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PhoneMetadata(arena);
}
constexpr auto PhoneMetadata::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PhoneMetadata), alignof(PhoneMetadata));
}
constexpr auto PhoneMetadata::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          PhoneMetadata::IsInitializedImpl,
          &PhoneMetadata::MergeImpl,
          Super_::GetNewImpl<PhoneMetadata>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PhoneMetadata::SharedDtor,
          Super_::GetClearImpl<PhoneMetadata>(), &PhoneMetadata::ByteSizeLong,
              &PhoneMetadata::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_._cached_size_),
          true,
      },
      "i18n.phonenumbers.PhoneMetadata",
  };
}
struct PhoneMetadataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PhoneMetadataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PhoneMetadata_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PhoneMetadata::InternalGenerateClassData_(
            _default, &PhoneMetadata_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PhoneMetadata>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PhoneMetadataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PhoneMetadata _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PhoneMetadata>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PhoneMetadataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST PhoneMetadataGlobalsTypeInternal PhoneMetadata_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* PhoneMetadata_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return PhoneMetadata_globals_.GetClassData();
#else
  return PhoneMetadata_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class PhoneMetadataCollection::_Internal {
 public:
  using HasBits = decltype(::std::declval<PhoneMetadataCollection>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_._has_bits_);
};

constexpr PhoneMetadataCollection::ParseTableT_ PhoneMetadataCollection::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneMetadataCollection>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_.metadata_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
      {PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_.metadata_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PhoneMetadata>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::i18n::phonenumbers::PhoneMetadata_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr PhoneMetadataCollection::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : metadata_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneMetadataCollection,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadataCollection, _impl_.metadata_)>()
         }
     {}

template <typename>
constexpr PhoneMetadataCollection::PhoneMetadataCollection(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PhoneMetadataCollection::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PhoneMetadataCollection(arena);
}
constexpr auto PhoneMetadataCollection::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PhoneMetadataCollection), alignof(PhoneMetadataCollection));
}
constexpr auto PhoneMetadataCollection::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          PhoneMetadataCollection::IsInitializedImpl,
          &PhoneMetadataCollection::MergeImpl,
          Super_::GetNewImpl<PhoneMetadataCollection>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PhoneMetadataCollection::SharedDtor,
          Super_::GetClearImpl<PhoneMetadataCollection>(), &PhoneMetadataCollection::ByteSizeLong,
              &PhoneMetadataCollection::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PhoneMetadataCollection, _impl_._cached_size_),
          true,
      },
      "i18n.phonenumbers.PhoneMetadataCollection",
  };
}
struct PhoneMetadataCollectionGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PhoneMetadataCollectionGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PhoneMetadataCollection_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PhoneMetadataCollection::InternalGenerateClassData_(
            _default, &PhoneMetadataCollection_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PhoneMetadataCollection>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PhoneMetadataCollectionGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PhoneMetadataCollection _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PhoneMetadataCollection>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PhoneMetadataCollectionGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST PhoneMetadataCollectionGlobalsTypeInternal PhoneMetadataCollection_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* PhoneMetadataCollection_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return PhoneMetadataCollection_globals_.GetClassData();
#else
  return PhoneMetadataCollection_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace phonenumbers
}  // namespace i18n
namespace i18n {
namespace phonenumbers {
// ===================================================================

NumberFormat::NumberFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, NumberFormat_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.NumberFormat)
}
PROTOBUF_NDEBUG_INLINE NumberFormat::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::i18n::phonenumbers::NumberFormat& from_msg)
      : _has_bits_{from._has_bits_},
        leading_digits_pattern_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::i18n::phonenumbers::NumberFormat,
              PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::NumberFormat, _impl_.leading_digits_pattern_)>()
          , arena, from.leading_digits_pattern_
        }
        ,
        pattern_(arena, from.pattern_),
        format_(arena, from.format_),
        national_prefix_formatting_rule_(arena, from.national_prefix_formatting_rule_),
        domestic_carrier_code_formatting_rule_(arena, from.domestic_carrier_code_formatting_rule_) {}

NumberFormat::NumberFormat(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NumberFormat& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, NumberFormat_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NumberFormat* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.national_prefix_optional_when_formatting_ = from._impl_.national_prefix_optional_when_formatting_;

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.NumberFormat)
}
PROTOBUF_NDEBUG_INLINE NumberFormat::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : leading_digits_pattern_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::NumberFormat,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::NumberFormat, _impl_.leading_digits_pattern_)>()
         }
        ,
        pattern_(arena),
        format_(arena),
        national_prefix_formatting_rule_(arena),
        domestic_carrier_code_formatting_rule_(arena) {}

inline void NumberFormat::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.national_prefix_optional_when_formatting_ = {};
}
NumberFormat::~NumberFormat() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.NumberFormat)
  SharedDtor(*this);
}
inline void NumberFormat::SharedDtor(MessageLite& self) {
  NumberFormat& this_ = static_cast<NumberFormat&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.pattern_.Destroy();
  this_._impl_.format_.Destroy();
  this_._impl_.national_prefix_formatting_rule_.Destroy();
  this_._impl_.domestic_carrier_code_formatting_rule_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite NumberFormat_class_data_ =
    NumberFormat::InternalGenerateClassData_(NumberFormat_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NumberFormat::GetClassData() const {
  return NumberFormat_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NumberFormat::GetClassData() const {
  return NumberFormat_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NumberFormat::ParseTableT_
    NumberFormat::_table_ =
        NumberFormat::InternalGenerateParseTable_(NumberFormat_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NumberFormat::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.NumberFormat)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.leading_digits_pattern_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      this_._impl_.pattern_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      this_._impl_.format_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      this_._impl_.national_prefix_formatting_rule_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      this_._impl_.domestic_carrier_code_formatting_rule_.ClearNonDefaultToEmpty();
    }
  }
  this_._impl_.national_prefix_optional_when_formatting_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NumberFormat::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NumberFormat& this_ = static_cast<const NumberFormat&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NumberFormat::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NumberFormat& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.NumberFormat)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // required string pattern = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_pattern();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // required string format = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_format();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // repeated string leading_digits_pattern = 3;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_leading_digits_pattern_size(); i < n; ++i) {
      const auto& s = this_._internal_leading_digits_pattern().Get(i);
      target = stream->WriteString(3, s, target);
    }
  }

  // optional string national_prefix_formatting_rule = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_national_prefix_formatting_rule();
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional string domestic_carrier_code_formatting_rule = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_domestic_carrier_code_formatting_rule();
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // optional bool national_prefix_optional_when_formatting = 6 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_national_prefix_optional_when_formatting(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.NumberFormat)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NumberFormat::ByteSizeLong(const MessageLite& base) {
  const NumberFormat& this_ = static_cast<const NumberFormat&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NumberFormat::ByteSizeLong() const {
  const NumberFormat& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.NumberFormat)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 2;
   {
    // repeated string leading_digits_pattern = 3;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_leading_digits_pattern().size());
      for (int i = 0, n = this_._internal_leading_digits_pattern().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_leading_digits_pattern().Get(i));
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    // required string pattern = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_pattern());
    }
    // required string format = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_format());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000018U)) {
    // optional string national_prefix_formatting_rule = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_national_prefix_formatting_rule());
    }
    // optional string domestic_carrier_code_formatting_rule = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_domestic_carrier_code_formatting_rule());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void NumberFormat::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NumberFormat*>(&to_msg);
  auto& from = static_cast<const NumberFormat&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.NumberFormat)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_leading_digits_pattern()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_leading_digits_pattern());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_pattern(from._internal_pattern());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_format(from._internal_format());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_national_prefix_formatting_rule(from._internal_national_prefix_formatting_rule());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_domestic_carrier_code_formatting_rule(from._internal_domestic_carrier_code_formatting_rule());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.national_prefix_optional_when_formatting_ = from._impl_.national_prefix_optional_when_formatting_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void NumberFormat::CopyFrom(const NumberFormat& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.NumberFormat)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool NumberFormat::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const NumberFormat&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void NumberFormat::InternalSwap(NumberFormat* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.leading_digits_pattern_.InternalSwap(&other->_impl_.leading_digits_pattern_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.pattern_, &other->_impl_.pattern_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.format_, &other->_impl_.format_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_formatting_rule_, &other->_impl_.national_prefix_formatting_rule_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.domestic_carrier_code_formatting_rule_, &other->_impl_.domestic_carrier_code_formatting_rule_, arena);
  swap(_impl_.national_prefix_optional_when_formatting_, other->_impl_.national_prefix_optional_when_formatting_);
}

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

PhoneNumberDesc::PhoneNumberDesc(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, PhoneNumberDesc_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneNumberDesc)
}
PROTOBUF_NDEBUG_INLINE PhoneNumberDesc::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::i18n::phonenumbers::PhoneNumberDesc& from_msg)
      : _has_bits_{from._has_bits_},
        possible_length_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::i18n::phonenumbers::PhoneNumberDesc,
              PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneNumberDesc, _impl_.possible_length_)>()
          , arena, from.possible_length_
        }
        ,
        national_number_pattern_(arena, from.national_number_pattern_),
        example_number_(arena, from.example_number_),
        possible_length_local_only_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::i18n::phonenumbers::PhoneNumberDesc,
              PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneNumberDesc, _impl_.possible_length_local_only_)>()
          , arena, from.possible_length_local_only_
        }
     {}

PhoneNumberDesc::PhoneNumberDesc(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PhoneNumberDesc& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, PhoneNumberDesc_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PhoneNumberDesc* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneNumberDesc)
}
PROTOBUF_NDEBUG_INLINE PhoneNumberDesc::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : possible_length_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneNumberDesc,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneNumberDesc, _impl_.possible_length_)>()
         }
        ,
        national_number_pattern_(arena),
        example_number_(arena),
        possible_length_local_only_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneNumberDesc,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneNumberDesc, _impl_.possible_length_local_only_)>()
         }
     {}

inline void PhoneNumberDesc::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
PhoneNumberDesc::~PhoneNumberDesc() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneNumberDesc)
  SharedDtor(*this);
}
inline void PhoneNumberDesc::SharedDtor(MessageLite& self) {
  PhoneNumberDesc& this_ = static_cast<PhoneNumberDesc&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.national_number_pattern_.Destroy();
  this_._impl_.example_number_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PhoneNumberDesc_class_data_ =
    PhoneNumberDesc::InternalGenerateClassData_(PhoneNumberDesc_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneNumberDesc::GetClassData() const {
  return PhoneNumberDesc_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneNumberDesc::GetClassData() const {
  return PhoneNumberDesc_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PhoneNumberDesc::ParseTableT_
    PhoneNumberDesc::_table_ =
        PhoneNumberDesc::InternalGenerateParseTable_(PhoneNumberDesc_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PhoneNumberDesc::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneNumberDesc)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.possible_length_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      this_._impl_.national_number_pattern_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      this_._impl_.example_number_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.possible_length_local_only_.Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PhoneNumberDesc::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PhoneNumberDesc& this_ = static_cast<const PhoneNumberDesc&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PhoneNumberDesc::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PhoneNumberDesc& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneNumberDesc)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string national_number_pattern = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_national_number_pattern();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional string example_number = 6;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_example_number();
    target = stream->WriteStringMaybeAliased(6, _s, target);
  }

  // repeated int32 possible_length = 9;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_possible_length_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          9, this_._internal_possible_length().Get(i), target);
    }
  }

  // repeated int32 possible_length_local_only = 10;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (int i = 0, n = this_._internal_possible_length_local_only_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          10, this_._internal_possible_length_local_only().Get(i), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneNumberDesc)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PhoneNumberDesc::ByteSizeLong(const MessageLite& base) {
  const PhoneNumberDesc& this_ = static_cast<const PhoneNumberDesc&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PhoneNumberDesc::ByteSizeLong() const {
  const PhoneNumberDesc& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneNumberDesc)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // repeated int32 possible_length = 9;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_possible_length());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_possible_length_size());
      total_size += tag_size + data_size;
    }
    // optional string national_number_pattern = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_national_number_pattern());
    }
    // optional string example_number = 6;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_example_number());
    }
    // repeated int32 possible_length_local_only = 10;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_possible_length_local_only());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_possible_length_local_only_size());
      total_size += tag_size + data_size;
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void PhoneNumberDesc::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PhoneNumberDesc*>(&to_msg);
  auto& from = static_cast<const PhoneNumberDesc&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneNumberDesc)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_possible_length()->MergeFrom(from._internal_possible_length());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_national_number_pattern(from._internal_national_number_pattern());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_example_number(from._internal_example_number());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_possible_length_local_only()->MergeFrom(from._internal_possible_length_local_only());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void PhoneNumberDesc::CopyFrom(const PhoneNumberDesc& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneNumberDesc)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PhoneNumberDesc::InternalSwap(PhoneNumberDesc* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.possible_length_.InternalSwap(&other->_impl_.possible_length_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_number_pattern_, &other->_impl_.national_number_pattern_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.example_number_, &other->_impl_.example_number_, arena);
  _impl_.possible_length_local_only_.InternalSwap(&other->_impl_.possible_length_local_only_);
}

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

PhoneMetadata::PhoneMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, PhoneMetadata_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneMetadata)
}
PROTOBUF_NDEBUG_INLINE PhoneMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::i18n::phonenumbers::PhoneMetadata& from_msg)
      : _has_bits_{from._has_bits_},
        number_format_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::i18n::phonenumbers::PhoneMetadata,
              PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadata, _impl_.number_format_)>()
          , arena, from.number_format_
        }
        ,
        intl_number_format_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::i18n::phonenumbers::PhoneMetadata,
              PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadata, _impl_.intl_number_format_)>()
          , arena, from.intl_number_format_
        }
        ,
        id_(arena, from.id_),
        international_prefix_(arena, from.international_prefix_),
        national_prefix_(arena, from.national_prefix_),
        preferred_extn_prefix_(arena, from.preferred_extn_prefix_),
        national_prefix_for_parsing_(arena, from.national_prefix_for_parsing_),
        national_prefix_transform_rule_(arena, from.national_prefix_transform_rule_),
        preferred_international_prefix_(arena, from.preferred_international_prefix_),
        leading_digits_(arena, from.leading_digits_) {}

PhoneMetadata::PhoneMetadata(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PhoneMetadata& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, PhoneMetadata_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PhoneMetadata* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.general_desc_ = (CheckHasBit(cached_has_bits, 0x00000400U))
                 ? Super_::CopyConstruct(arena, *from._impl_.general_desc_)
                 : nullptr;
  _impl_.fixed_line_ = (CheckHasBit(cached_has_bits, 0x00000800U))
                 ? Super_::CopyConstruct(arena, *from._impl_.fixed_line_)
                 : nullptr;
  _impl_.mobile_ = (CheckHasBit(cached_has_bits, 0x00001000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.mobile_)
                 : nullptr;
  _impl_.toll_free_ = (CheckHasBit(cached_has_bits, 0x00002000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.toll_free_)
                 : nullptr;
  _impl_.premium_rate_ = (CheckHasBit(cached_has_bits, 0x00004000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.premium_rate_)
                 : nullptr;
  _impl_.shared_cost_ = (CheckHasBit(cached_has_bits, 0x00008000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.shared_cost_)
                 : nullptr;
  _impl_.personal_number_ = (CheckHasBit(cached_has_bits, 0x00010000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.personal_number_)
                 : nullptr;
  _impl_.voip_ = (CheckHasBit(cached_has_bits, 0x00020000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.voip_)
                 : nullptr;
  _impl_.pager_ = (CheckHasBit(cached_has_bits, 0x00040000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.pager_)
                 : nullptr;
  _impl_.no_international_dialling_ = (CheckHasBit(cached_has_bits, 0x00080000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.no_international_dialling_)
                 : nullptr;
  _impl_.uan_ = (CheckHasBit(cached_has_bits, 0x00100000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.uan_)
                 : nullptr;
  _impl_.emergency_ = (CheckHasBit(cached_has_bits, 0x00200000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.emergency_)
                 : nullptr;
  _impl_.voicemail_ = (CheckHasBit(cached_has_bits, 0x00400000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.voicemail_)
                 : nullptr;
  _impl_.short_code_ = (CheckHasBit(cached_has_bits, 0x00800000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.short_code_)
                 : nullptr;
  _impl_.standard_rate_ = (CheckHasBit(cached_has_bits, 0x01000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.standard_rate_)
                 : nullptr;
  _impl_.carrier_specific_ = (CheckHasBit(cached_has_bits, 0x02000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.carrier_specific_)
                 : nullptr;
  _impl_.sms_services_ = (CheckHasBit(cached_has_bits, 0x04000000U))
                 ? Super_::CopyConstruct(arena, *from._impl_.sms_services_)
                 : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, country_code_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, country_code_),
           offsetof(Impl_, mobile_number_portable_region_) -
               offsetof(Impl_, country_code_) +
               sizeof(Impl_::mobile_number_portable_region_));

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneMetadata)
}
PROTOBUF_NDEBUG_INLINE PhoneMetadata::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : number_format_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneMetadata,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadata, _impl_.number_format_)>()
         }
        ,
        intl_number_format_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneMetadata,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadata, _impl_.intl_number_format_)>()
         }
        ,
        id_(arena),
        international_prefix_(arena),
        national_prefix_(arena),
        preferred_extn_prefix_(arena),
        national_prefix_for_parsing_(arena),
        national_prefix_transform_rule_(arena),
        preferred_international_prefix_(arena),
        leading_digits_(arena) {}

inline void PhoneMetadata::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, general_desc_),
           0,
           offsetof(Impl_, mobile_number_portable_region_) -
               offsetof(Impl_, general_desc_) +
               sizeof(Impl_::mobile_number_portable_region_));
}
PhoneMetadata::~PhoneMetadata() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneMetadata)
  SharedDtor(*this);
}
inline void PhoneMetadata::SharedDtor(MessageLite& self) {
  PhoneMetadata& this_ = static_cast<PhoneMetadata&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.id_.Destroy();
  this_._impl_.international_prefix_.Destroy();
  this_._impl_.national_prefix_.Destroy();
  this_._impl_.preferred_extn_prefix_.Destroy();
  this_._impl_.national_prefix_for_parsing_.Destroy();
  this_._impl_.national_prefix_transform_rule_.Destroy();
  this_._impl_.preferred_international_prefix_.Destroy();
  this_._impl_.leading_digits_.Destroy();
  delete this_._impl_.general_desc_;
  delete this_._impl_.fixed_line_;
  delete this_._impl_.mobile_;
  delete this_._impl_.toll_free_;
  delete this_._impl_.premium_rate_;
  delete this_._impl_.shared_cost_;
  delete this_._impl_.personal_number_;
  delete this_._impl_.voip_;
  delete this_._impl_.pager_;
  delete this_._impl_.no_international_dialling_;
  delete this_._impl_.uan_;
  delete this_._impl_.emergency_;
  delete this_._impl_.voicemail_;
  delete this_._impl_.short_code_;
  delete this_._impl_.standard_rate_;
  delete this_._impl_.carrier_specific_;
  delete this_._impl_.sms_services_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PhoneMetadata_class_data_ =
    PhoneMetadata::InternalGenerateClassData_(PhoneMetadata_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneMetadata::GetClassData() const {
  return PhoneMetadata_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneMetadata::GetClassData() const {
  return PhoneMetadata_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PhoneMetadata::ParseTableT_
    PhoneMetadata::_table_ =
        PhoneMetadata::InternalGenerateParseTable_(PhoneMetadata_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PhoneMetadata::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneMetadata)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.number_format_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.intl_number_format_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      this_._impl_.id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      this_._impl_.international_prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      this_._impl_.national_prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      this_._impl_.preferred_extn_prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      this_._impl_.national_prefix_for_parsing_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      this_._impl_.national_prefix_transform_rule_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      this_._impl_.preferred_international_prefix_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      this_._impl_.leading_digits_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(this_._impl_.general_desc_ != nullptr);
      this_._impl_.general_desc_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(this_._impl_.fixed_line_ != nullptr);
      this_._impl_.fixed_line_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(this_._impl_.mobile_ != nullptr);
      this_._impl_.mobile_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(this_._impl_.toll_free_ != nullptr);
      this_._impl_.toll_free_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(this_._impl_.premium_rate_ != nullptr);
      this_._impl_.premium_rate_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      ABSL_DCHECK(this_._impl_.shared_cost_ != nullptr);
      this_._impl_.shared_cost_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      ABSL_DCHECK(this_._impl_.personal_number_ != nullptr);
      this_._impl_.personal_number_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      ABSL_DCHECK(this_._impl_.voip_ != nullptr);
      this_._impl_.voip_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      ABSL_DCHECK(this_._impl_.pager_ != nullptr);
      this_._impl_.pager_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      ABSL_DCHECK(this_._impl_.no_international_dialling_ != nullptr);
      this_._impl_.no_international_dialling_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      ABSL_DCHECK(this_._impl_.uan_ != nullptr);
      this_._impl_.uan_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      ABSL_DCHECK(this_._impl_.emergency_ != nullptr);
      this_._impl_.emergency_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      ABSL_DCHECK(this_._impl_.voicemail_ != nullptr);
      this_._impl_.voicemail_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      ABSL_DCHECK(this_._impl_.short_code_ != nullptr);
      this_._impl_.short_code_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x07000000U)) {
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      ABSL_DCHECK(this_._impl_.standard_rate_ != nullptr);
      this_._impl_.standard_rate_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      ABSL_DCHECK(this_._impl_.carrier_specific_ != nullptr);
      this_._impl_.carrier_specific_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      ABSL_DCHECK(this_._impl_.sms_services_ != nullptr);
      this_._impl_.sms_services_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x78000000U)) {
    ::memset(&this_._impl_.country_code_, 0,
             static_cast<::size_t>(
                 reinterpret_cast<char*>(&this_._impl_.mobile_number_portable_region_) -
                 reinterpret_cast<char*>(&this_._impl_.country_code_)) +
                 sizeof(_impl_.mobile_number_portable_region_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PhoneMetadata::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PhoneMetadata& this_ = static_cast<const PhoneMetadata&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PhoneMetadata::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PhoneMetadata& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneMetadata)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.general_desc_, this_._impl_.general_desc_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.fixed_line_, this_._impl_.fixed_line_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.mobile_, this_._impl_.mobile_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.toll_free_, this_._impl_.toll_free_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.premium_rate_, this_._impl_.premium_rate_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.shared_cost_, this_._impl_.shared_cost_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.personal_number_, this_._impl_.personal_number_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8, *this_._impl_.voip_, this_._impl_.voip_->GetCachedSize(), target,
        stream);
  }

  // required string id = 9;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_id();
    target = stream->WriteStringMaybeAliased(9, _s, target);
  }

  // optional int32 country_code = 10;
  if (CheckHasBit(cached_has_bits, 0x08000000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<10>(
            stream, this_._internal_country_code(), target);
  }

  // optional string international_prefix = 11;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_international_prefix();
    target = stream->WriteStringMaybeAliased(11, _s, target);
  }

  // optional string national_prefix = 12;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_national_prefix();
    target = stream->WriteStringMaybeAliased(12, _s, target);
  }

  // optional string preferred_extn_prefix = 13;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_preferred_extn_prefix();
    target = stream->WriteStringMaybeAliased(13, _s, target);
  }

  // optional string national_prefix_for_parsing = 15;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    const ::std::string& _s = this_._internal_national_prefix_for_parsing();
    target = stream->WriteStringMaybeAliased(15, _s, target);
  }

  // optional string national_prefix_transform_rule = 16;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    const ::std::string& _s = this_._internal_national_prefix_transform_rule();
    target = stream->WriteStringMaybeAliased(16, _s, target);
  }

  // optional string preferred_international_prefix = 17;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    const ::std::string& _s = this_._internal_preferred_international_prefix();
    target = stream->WriteStringMaybeAliased(17, _s, target);
  }

  // optional bool same_mobile_and_fixed_line_pattern = 18 [default = false];
  if (CheckHasBit(cached_has_bits, 0x10000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        18, this_._internal_same_mobile_and_fixed_line_pattern(), target);
  }

  // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_number_format_size());
         i < n; i++) {
      const auto& repfield = this_._internal_number_format().Get(i);
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          19, repfield, repfield.GetCachedSize(), target,
          stream);
    }
  }

  // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_intl_number_format_size());
         i < n; i++) {
      const auto& repfield = this_._internal_intl_number_format().Get(i);
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          20, repfield, repfield.GetCachedSize(), target,
          stream);
    }
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        21, *this_._impl_.pager_, this_._impl_.pager_->GetCachedSize(), target,
        stream);
  }

  // optional bool main_country_for_code = 22 [default = false];
  if (CheckHasBit(cached_has_bits, 0x20000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        22, this_._internal_main_country_for_code(), target);
  }

  // optional string leading_digits = 23;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    const ::std::string& _s = this_._internal_leading_digits();
    target = stream->WriteStringMaybeAliased(23, _s, target);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        24, *this_._impl_.no_international_dialling_, this_._impl_.no_international_dialling_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        25, *this_._impl_.uan_, this_._impl_.uan_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
  if (CheckHasBit(cached_has_bits, 0x00200000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        27, *this_._impl_.emergency_, this_._impl_.emergency_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
  if (CheckHasBit(cached_has_bits, 0x00400000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        28, *this_._impl_.voicemail_, this_._impl_.voicemail_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
  if (CheckHasBit(cached_has_bits, 0x00800000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        29, *this_._impl_.short_code_, this_._impl_.short_code_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
  if (CheckHasBit(cached_has_bits, 0x01000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        30, *this_._impl_.standard_rate_, this_._impl_.standard_rate_->GetCachedSize(), target,
        stream);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
  if (CheckHasBit(cached_has_bits, 0x02000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        31, *this_._impl_.carrier_specific_, this_._impl_.carrier_specific_->GetCachedSize(), target,
        stream);
  }

  // optional bool mobile_number_portable_region = 32 [default = false];
  if (CheckHasBit(cached_has_bits, 0x40000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        32, this_._internal_mobile_number_portable_region(), target);
  }

  // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
  if (CheckHasBit(cached_has_bits, 0x04000000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        33, *this_._impl_.sms_services_, this_._impl_.sms_services_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneMetadata)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PhoneMetadata::ByteSizeLong(const MessageLite& base) {
  const PhoneMetadata& this_ = static_cast<const PhoneMetadata&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PhoneMetadata::ByteSizeLong() const {
  const PhoneMetadata& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneMetadata)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x70000000U & cached_has_bits) * 3;
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .i18n.phonenumbers.NumberFormat number_format = 19;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 2UL * this_._internal_number_format_size();
      for (const auto& msg : this_._internal_number_format()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .i18n.phonenumbers.NumberFormat intl_number_format = 20;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 2UL * this_._internal_intl_number_format_size();
      for (const auto& msg : this_._internal_intl_number_format()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
   {
    // required string id = 9;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_id());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f8U)) {
    // optional string international_prefix = 11;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_international_prefix());
    }
    // optional string national_prefix = 12;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_national_prefix());
    }
    // optional string preferred_extn_prefix = 13;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_preferred_extn_prefix());
    }
    // optional string national_prefix_for_parsing = 15;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_national_prefix_for_parsing());
    }
    // optional string national_prefix_transform_rule = 16;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_national_prefix_transform_rule());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // optional string preferred_international_prefix = 17;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_preferred_international_prefix());
    }
    // optional string leading_digits = 23;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_leading_digits());
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc general_desc = 1;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.general_desc_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc fixed_line = 2;
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.fixed_line_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc mobile = 3;
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.mobile_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc toll_free = 4;
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.toll_free_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc premium_rate = 5;
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.premium_rate_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc shared_cost = 6;
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.shared_cost_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    // optional .i18n.phonenumbers.PhoneNumberDesc personal_number = 7;
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.personal_number_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc voip = 8;
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.voip_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc pager = 21;
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.pager_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc no_international_dialling = 24;
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.no_international_dialling_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc uan = 25;
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.uan_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc emergency = 27;
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.emergency_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc voicemail = 28;
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.voicemail_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc short_code = 29;
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.short_code_);
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0f000000U)) {
    // optional .i18n.phonenumbers.PhoneNumberDesc standard_rate = 30;
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.standard_rate_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc carrier_specific = 31;
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.carrier_specific_);
    }
    // optional .i18n.phonenumbers.PhoneNumberDesc sms_services = 33;
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sms_services_);
    }
    // optional int32 country_code = 10;
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_country_code());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void PhoneMetadata::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PhoneMetadata*>(&to_msg);
  auto& from = static_cast<const PhoneMetadata&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneMetadata)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_number_format()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_number_format());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_intl_number_format()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_intl_number_format());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_id(from._internal_id());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_international_prefix(from._internal_international_prefix());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_national_prefix(from._internal_national_prefix());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_preferred_extn_prefix(from._internal_preferred_extn_prefix());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_set_national_prefix_for_parsing(from._internal_national_prefix_for_parsing());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_internal_set_national_prefix_transform_rule(from._internal_national_prefix_transform_rule());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_internal_set_preferred_international_prefix(from._internal_preferred_international_prefix());
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_internal_set_leading_digits(from._internal_leading_digits());
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      ABSL_DCHECK(from._impl_.general_desc_ != nullptr);
      if (_this->_impl_.general_desc_ == nullptr) {
        _this->_impl_.general_desc_ = Super_::CopyConstruct(arena, *from._impl_.general_desc_);
      } else {
        _this->_impl_.general_desc_->MergeFrom(*from._impl_.general_desc_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      ABSL_DCHECK(from._impl_.fixed_line_ != nullptr);
      if (_this->_impl_.fixed_line_ == nullptr) {
        _this->_impl_.fixed_line_ = Super_::CopyConstruct(arena, *from._impl_.fixed_line_);
      } else {
        _this->_impl_.fixed_line_->MergeFrom(*from._impl_.fixed_line_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      ABSL_DCHECK(from._impl_.mobile_ != nullptr);
      if (_this->_impl_.mobile_ == nullptr) {
        _this->_impl_.mobile_ = Super_::CopyConstruct(arena, *from._impl_.mobile_);
      } else {
        _this->_impl_.mobile_->MergeFrom(*from._impl_.mobile_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      ABSL_DCHECK(from._impl_.toll_free_ != nullptr);
      if (_this->_impl_.toll_free_ == nullptr) {
        _this->_impl_.toll_free_ = Super_::CopyConstruct(arena, *from._impl_.toll_free_);
      } else {
        _this->_impl_.toll_free_->MergeFrom(*from._impl_.toll_free_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      ABSL_DCHECK(from._impl_.premium_rate_ != nullptr);
      if (_this->_impl_.premium_rate_ == nullptr) {
        _this->_impl_.premium_rate_ = Super_::CopyConstruct(arena, *from._impl_.premium_rate_);
      } else {
        _this->_impl_.premium_rate_->MergeFrom(*from._impl_.premium_rate_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      ABSL_DCHECK(from._impl_.shared_cost_ != nullptr);
      if (_this->_impl_.shared_cost_ == nullptr) {
        _this->_impl_.shared_cost_ = Super_::CopyConstruct(arena, *from._impl_.shared_cost_);
      } else {
        _this->_impl_.shared_cost_->MergeFrom(*from._impl_.shared_cost_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      ABSL_DCHECK(from._impl_.personal_number_ != nullptr);
      if (_this->_impl_.personal_number_ == nullptr) {
        _this->_impl_.personal_number_ = Super_::CopyConstruct(arena, *from._impl_.personal_number_);
      } else {
        _this->_impl_.personal_number_->MergeFrom(*from._impl_.personal_number_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      ABSL_DCHECK(from._impl_.voip_ != nullptr);
      if (_this->_impl_.voip_ == nullptr) {
        _this->_impl_.voip_ = Super_::CopyConstruct(arena, *from._impl_.voip_);
      } else {
        _this->_impl_.voip_->MergeFrom(*from._impl_.voip_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      ABSL_DCHECK(from._impl_.pager_ != nullptr);
      if (_this->_impl_.pager_ == nullptr) {
        _this->_impl_.pager_ = Super_::CopyConstruct(arena, *from._impl_.pager_);
      } else {
        _this->_impl_.pager_->MergeFrom(*from._impl_.pager_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      ABSL_DCHECK(from._impl_.no_international_dialling_ != nullptr);
      if (_this->_impl_.no_international_dialling_ == nullptr) {
        _this->_impl_.no_international_dialling_ = Super_::CopyConstruct(arena, *from._impl_.no_international_dialling_);
      } else {
        _this->_impl_.no_international_dialling_->MergeFrom(*from._impl_.no_international_dialling_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      ABSL_DCHECK(from._impl_.uan_ != nullptr);
      if (_this->_impl_.uan_ == nullptr) {
        _this->_impl_.uan_ = Super_::CopyConstruct(arena, *from._impl_.uan_);
      } else {
        _this->_impl_.uan_->MergeFrom(*from._impl_.uan_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      ABSL_DCHECK(from._impl_.emergency_ != nullptr);
      if (_this->_impl_.emergency_ == nullptr) {
        _this->_impl_.emergency_ = Super_::CopyConstruct(arena, *from._impl_.emergency_);
      } else {
        _this->_impl_.emergency_->MergeFrom(*from._impl_.emergency_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      ABSL_DCHECK(from._impl_.voicemail_ != nullptr);
      if (_this->_impl_.voicemail_ == nullptr) {
        _this->_impl_.voicemail_ = Super_::CopyConstruct(arena, *from._impl_.voicemail_);
      } else {
        _this->_impl_.voicemail_->MergeFrom(*from._impl_.voicemail_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      ABSL_DCHECK(from._impl_.short_code_ != nullptr);
      if (_this->_impl_.short_code_ == nullptr) {
        _this->_impl_.short_code_ = Super_::CopyConstruct(arena, *from._impl_.short_code_);
      } else {
        _this->_impl_.short_code_->MergeFrom(*from._impl_.short_code_);
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x7f000000U)) {
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      ABSL_DCHECK(from._impl_.standard_rate_ != nullptr);
      if (_this->_impl_.standard_rate_ == nullptr) {
        _this->_impl_.standard_rate_ = Super_::CopyConstruct(arena, *from._impl_.standard_rate_);
      } else {
        _this->_impl_.standard_rate_->MergeFrom(*from._impl_.standard_rate_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      ABSL_DCHECK(from._impl_.carrier_specific_ != nullptr);
      if (_this->_impl_.carrier_specific_ == nullptr) {
        _this->_impl_.carrier_specific_ = Super_::CopyConstruct(arena, *from._impl_.carrier_specific_);
      } else {
        _this->_impl_.carrier_specific_->MergeFrom(*from._impl_.carrier_specific_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      ABSL_DCHECK(from._impl_.sms_services_ != nullptr);
      if (_this->_impl_.sms_services_ == nullptr) {
        _this->_impl_.sms_services_ = Super_::CopyConstruct(arena, *from._impl_.sms_services_);
      } else {
        _this->_impl_.sms_services_->MergeFrom(*from._impl_.sms_services_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      _this->_impl_.country_code_ = from._impl_.country_code_;
    }
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      _this->_impl_.same_mobile_and_fixed_line_pattern_ = from._impl_.same_mobile_and_fixed_line_pattern_;
    }
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      _this->_impl_.main_country_for_code_ = from._impl_.main_country_for_code_;
    }
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      _this->_impl_.mobile_number_portable_region_ = from._impl_.mobile_number_portable_region_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void PhoneMetadata::CopyFrom(const PhoneMetadata& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneMetadata)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool PhoneMetadata::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const PhoneMetadata&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_number_format()))
    return false;
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_intl_number_format()))
    return false;
  return true;
}

void PhoneMetadata::InternalSwap(PhoneMetadata* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.number_format_.InternalSwap(&other->_impl_.number_format_);
  _impl_.intl_number_format_.InternalSwap(&other->_impl_.intl_number_format_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.id_, &other->_impl_.id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.international_prefix_, &other->_impl_.international_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_, &other->_impl_.national_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.preferred_extn_prefix_, &other->_impl_.preferred_extn_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_for_parsing_, &other->_impl_.national_prefix_for_parsing_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.national_prefix_transform_rule_, &other->_impl_.national_prefix_transform_rule_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.preferred_international_prefix_, &other->_impl_.preferred_international_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.leading_digits_, &other->_impl_.leading_digits_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.mobile_number_portable_region_)
      + sizeof(PhoneMetadata::_impl_.mobile_number_portable_region_)
      - PROTOBUF_FIELD_OFFSET(PhoneMetadata, _impl_.general_desc_)>(
          reinterpret_cast<char*>(&_impl_.general_desc_),
          reinterpret_cast<char*>(&other->_impl_.general_desc_));
}

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

PhoneMetadataCollection::PhoneMetadataCollection(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, PhoneMetadataCollection_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PhoneMetadataCollection)
}
PROTOBUF_NDEBUG_INLINE PhoneMetadataCollection::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::i18n::phonenumbers::PhoneMetadataCollection& from_msg)
      : _has_bits_{from._has_bits_},
        metadata_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::i18n::phonenumbers::PhoneMetadataCollection,
              PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadataCollection, _impl_.metadata_)>()
          , arena, from.metadata_
        }
     {}

PhoneMetadataCollection::PhoneMetadataCollection(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PhoneMetadataCollection& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, PhoneMetadataCollection_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PhoneMetadataCollection* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PhoneMetadataCollection)
}
PROTOBUF_NDEBUG_INLINE PhoneMetadataCollection::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : metadata_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::i18n::phonenumbers::PhoneMetadataCollection,
            PROTOBUF_FIELD_OFFSET(::i18n::phonenumbers::PhoneMetadataCollection, _impl_.metadata_)>()
         }
     {}

inline void PhoneMetadataCollection::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
PhoneMetadataCollection::~PhoneMetadataCollection() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.PhoneMetadataCollection)
  SharedDtor(*this);
}
inline void PhoneMetadataCollection::SharedDtor(MessageLite& self) {
  PhoneMetadataCollection& this_ = static_cast<PhoneMetadataCollection&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PhoneMetadataCollection_class_data_ =
    PhoneMetadataCollection::InternalGenerateClassData_(PhoneMetadataCollection_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneMetadataCollection::GetClassData() const {
  return PhoneMetadataCollection_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PhoneMetadataCollection::GetClassData() const {
  return PhoneMetadataCollection_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PhoneMetadataCollection::ParseTableT_
    PhoneMetadataCollection::_table_ =
        PhoneMetadataCollection::InternalGenerateParseTable_(PhoneMetadataCollection_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PhoneMetadataCollection::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PhoneMetadataCollection)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.metadata_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PhoneMetadataCollection::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PhoneMetadataCollection& this_ = static_cast<const PhoneMetadataCollection&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PhoneMetadataCollection::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PhoneMetadataCollection& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PhoneMetadataCollection)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_metadata_size());
         i < n; i++) {
      const auto& repfield = this_._internal_metadata().Get(i);
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, repfield, repfield.GetCachedSize(), target,
          stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PhoneMetadataCollection)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PhoneMetadataCollection::ByteSizeLong(const MessageLite& base) {
  const PhoneMetadataCollection& this_ = static_cast<const PhoneMetadataCollection&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PhoneMetadataCollection::ByteSizeLong() const {
  const PhoneMetadataCollection& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PhoneMetadataCollection)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .i18n.phonenumbers.PhoneMetadata metadata = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_metadata_size();
      for (const auto& msg : this_._internal_metadata()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void PhoneMetadataCollection::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PhoneMetadataCollection*>(&to_msg);
  auto& from = static_cast<const PhoneMetadataCollection&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PhoneMetadataCollection)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_metadata()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_metadata());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void PhoneMetadataCollection::CopyFrom(const PhoneMetadataCollection& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PhoneMetadataCollection)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool PhoneMetadataCollection::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const PhoneMetadataCollection&>(msg);
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_metadata()))
    return false;
  return true;
}

void PhoneMetadataCollection::InternalSwap(PhoneMetadataCollection* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.metadata_.InternalSwap(&other->_impl_.metadata_);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace phonenumbers
}  // namespace i18n
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
